Commit 78236d1f by 高晓磊

运输记录统计(按照区域公司统计和按照砂石类型统计)

parent a7d65a10
......@@ -5,6 +5,8 @@ import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.dao.BaseDao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
......@@ -13,4 +15,8 @@ import java.util.UUID;
public interface TransportRecordDao extends BaseDao {
Page<KObject> recordPage(Integer pageNo, Integer pageSize, UUID vehicleId, Date startDate, Date endDate, Object o, UUID dinasTypeId, String purchaseSandUnitName, String projectName, UUID stationId, UUID productionLineId, String driverUserName, UUID projectId, Integer confirmStatus, UUID regionalCompanyId);
List<Map<String, Object>> groupByRegionalCompanyInfo();
List<Map<String, Object>> groupByDinasTypeInfo();
}
......@@ -11,6 +11,7 @@ import com.xyst.dinas.transport.constant.TransportRecordConstant;
import com.xyst.dinas.transport.dao.TransportRecordDao;
import org.hibernate.criterion.*;
import org.hibernate.sql.JoinType;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
......@@ -105,4 +106,38 @@ public class TransportRecordDaoImpl extends AbstractBaseDao implements Transport
return page;
}
@Override
public List<Map<String, Object>> groupByRegionalCompanyInfo() {
KClass bean = Amino.getStaticMetadataContext().getBean(ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.createAlias("salesRecord."+SalesRecordConstant.DINASTYPE,SalesRecordConstant.DINASTYPE);
detachedCriteria.createAlias("saleRecord","salesRecord");
detachedCriteria.createAlias("regionalCompany","regionalCompany");
detachedCriteria.setProjection(Projections.projectionList()
.add(Projections.alias(Projections.sum("salesRecord."+SalesRecordConstant.DEALAMOUNT),"sum"))
.add(Projections.alias(Projections.max("regionalCompany.name"),"name"))
.add(Projections.alias(Projections.groupProperty("regionalCompany.id"),"regionalCompany")));
detachedCriteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return (List<Map<String, Object>>)template.findByCriteria(detachedCriteria);
}
@Override
public List<Map<String, Object>> groupByDinasTypeInfo() {
KClass bean = Amino.getStaticMetadataContext().getBean(ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.createAlias("salesRecord."+SalesRecordConstant.DINASTYPE,SalesRecordConstant.DINASTYPE);
detachedCriteria.createAlias("saleRecord","salesRecord");
detachedCriteria.createAlias("regionalCompany","regionalCompany");
detachedCriteria.setProjection(Projections.projectionList()
.add(Projections.alias(Projections.sum("salesRecord."+SalesRecordConstant.DEALAMOUNT),"sum"))
.add(Projections.alias(Projections.max("regionalCompany.name"),"name"))
.add(Projections.alias(Projections.groupProperty(SalesRecordConstant.DINASTYPE+".id"),SalesRecordConstant.DINASTYPE)));
detachedCriteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return (List<Map<String, Object>>)template.findByCriteria(detachedCriteria);
}
}
......@@ -62,9 +62,20 @@ public class TransportRecordServiceImpl implements TransportRecordService {
return listPage;
}
@Override
public List<Map<String, Object>> groupByRegionalCompanyInfo() {
return transportRecordDao.groupByRegionalCompanyInfo();
}
@Override
public List<Map<String, Object>> groupByDinasTypeInfo() {
return transportRecordDao.groupByDinasTypeInfo();
}
private void setInfo(HashMap<String, Object> stringObjectHashMap, KObject data) {
KObject saleRecord = data.get("saleRecord");
KObject transportVehicle = data.get("transportVehicle");
KObject code = data.get("billCode");
String projectName = saleRecord.get(SalesRecordConstant.PROJECT).getString("projectName");
String dinasTypeName = saleRecord.get(SalesRecordConstant.DINASTYPE).getString("dinasTypeName");
BigDecimal dealAmount = saleRecord.getBigDecimal(SalesRecordConstant.DEALAMOUNT);
......@@ -74,6 +85,7 @@ public class TransportRecordServiceImpl implements TransportRecordService {
Date dealTime = saleRecord.getDate(SalesRecordConstant.DEALTIME);
String purchaseSandCompanyName = saleRecord.get(SalesRecordConstant.PURCHASESANDCOMPANY).getString("name");
String contractAddrReceive = saleRecord.get(SalesRecordConstant.CONTRACT).getString("addrReceive");
Date saleRecordDealTime = saleRecord.getDate(SalesRecordConstant.DEALTIME);
KObject station = saleRecord.get(SalesRecordConstant.STATION);
......@@ -83,6 +95,8 @@ public class TransportRecordServiceImpl implements TransportRecordService {
String plateNumber = transportVehicle.getString("plateNumber");
stringObjectHashMap.put("projectName",projectName);
stringObjectHashMap.put("code",code);
stringObjectHashMap.put("saleRecordDealTime",saleRecordDealTime);
stringObjectHashMap.put(BaseConstants.ID,data.get(BaseConstants.ID));
stringObjectHashMap.put("stationName",stationName);
stringObjectHashMap.put("dinasTypeName",dinasTypeName);
......
......@@ -3,14 +3,18 @@ package com.xyst.dinas.transport.service;
import com.beecode.bap.attachment.common.Page;
import org.springframework.lang.NonNull;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
public interface TransportRecordService {
Map<String, Object> loadTransportRecord(@NonNull UUID id);
Page<HashMap<String, Object>> recordPage(Integer pageNo, Integer pageSize, UUID vehicleId, Date startDate, Date endDate, UUID id, UUID dinasTypeId, String purchaseSandUnitName, String projectName, UUID stationId, UUID productionLineId, String driverUserName, UUID projectId, Integer confirmStatus, UUID regionalCompanyId);
List<Map<String, Object>> groupByRegionalCompanyInfo();
List<Map<String, Object>> groupByDinasTypeInfo();
}
package com.xyst.dinas.transport.web;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.context.driver.DriverUserContextHolder;
import com.beecode.inz.basis.pojo.DriverUser;
import com.beecode.inz.basis.service.DriverUserService;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.transport.service.TransportRecordService;
......@@ -14,10 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
/**
* @author scol
......@@ -85,6 +78,20 @@ public class TransportRecordController {
return ResponseObj.success("查询成功", byId);
}
@GetMapping("transportRecord/groupByRegionalCompanyInfo")
public ResponseObj groupByRegionalCompanyInfo(
) {
List<Map<String, Object>> byId = transportRecordService.groupByRegionalCompanyInfo();
return ResponseObj.success("查询成功", byId);
}
@GetMapping("transportRecord/groupByDinasTypeInfo")
public ResponseObj groupByDinasTypeInfo(
) {
List<Map<String, Object>> byId = transportRecordService.groupByDinasTypeInfo();
return ResponseObj.success("查询成功", byId);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment