Commit 78236d1f by 高晓磊

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

parent a7d65a10
...@@ -5,6 +5,8 @@ import com.beecode.bcp.type.KObject; ...@@ -5,6 +5,8 @@ import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.dao.BaseDao; import com.beecode.inz.basis.dao.BaseDao;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
/** /**
...@@ -13,4 +15,8 @@ import java.util.UUID; ...@@ -13,4 +15,8 @@ import java.util.UUID;
public interface TransportRecordDao extends BaseDao { 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); 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; ...@@ -11,6 +11,7 @@ import com.xyst.dinas.transport.constant.TransportRecordConstant;
import com.xyst.dinas.transport.dao.TransportRecordDao; import com.xyst.dinas.transport.dao.TransportRecordDao;
import org.hibernate.criterion.*; import org.hibernate.criterion.*;
import org.hibernate.sql.JoinType; import org.hibernate.sql.JoinType;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate; import org.springframework.orm.hibernate5.HibernateTemplate;
...@@ -105,4 +106,38 @@ public class TransportRecordDaoImpl extends AbstractBaseDao implements Transport ...@@ -105,4 +106,38 @@ public class TransportRecordDaoImpl extends AbstractBaseDao implements Transport
return page; 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 { ...@@ -62,9 +62,20 @@ public class TransportRecordServiceImpl implements TransportRecordService {
return listPage; 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) { private void setInfo(HashMap<String, Object> stringObjectHashMap, KObject data) {
KObject saleRecord = data.get("saleRecord"); KObject saleRecord = data.get("saleRecord");
KObject transportVehicle = data.get("transportVehicle"); KObject transportVehicle = data.get("transportVehicle");
KObject code = data.get("billCode");
String projectName = saleRecord.get(SalesRecordConstant.PROJECT).getString("projectName"); String projectName = saleRecord.get(SalesRecordConstant.PROJECT).getString("projectName");
String dinasTypeName = saleRecord.get(SalesRecordConstant.DINASTYPE).getString("dinasTypeName"); String dinasTypeName = saleRecord.get(SalesRecordConstant.DINASTYPE).getString("dinasTypeName");
BigDecimal dealAmount = saleRecord.getBigDecimal(SalesRecordConstant.DEALAMOUNT); BigDecimal dealAmount = saleRecord.getBigDecimal(SalesRecordConstant.DEALAMOUNT);
...@@ -74,6 +85,7 @@ public class TransportRecordServiceImpl implements TransportRecordService { ...@@ -74,6 +85,7 @@ public class TransportRecordServiceImpl implements TransportRecordService {
Date dealTime = saleRecord.getDate(SalesRecordConstant.DEALTIME); Date dealTime = saleRecord.getDate(SalesRecordConstant.DEALTIME);
String purchaseSandCompanyName = saleRecord.get(SalesRecordConstant.PURCHASESANDCOMPANY).getString("name"); String purchaseSandCompanyName = saleRecord.get(SalesRecordConstant.PURCHASESANDCOMPANY).getString("name");
String contractAddrReceive = saleRecord.get(SalesRecordConstant.CONTRACT).getString("addrReceive"); String contractAddrReceive = saleRecord.get(SalesRecordConstant.CONTRACT).getString("addrReceive");
Date saleRecordDealTime = saleRecord.getDate(SalesRecordConstant.DEALTIME);
KObject station = saleRecord.get(SalesRecordConstant.STATION); KObject station = saleRecord.get(SalesRecordConstant.STATION);
...@@ -83,6 +95,8 @@ public class TransportRecordServiceImpl implements TransportRecordService { ...@@ -83,6 +95,8 @@ public class TransportRecordServiceImpl implements TransportRecordService {
String plateNumber = transportVehicle.getString("plateNumber"); String plateNumber = transportVehicle.getString("plateNumber");
stringObjectHashMap.put("projectName",projectName); stringObjectHashMap.put("projectName",projectName);
stringObjectHashMap.put("code",code);
stringObjectHashMap.put("saleRecordDealTime",saleRecordDealTime);
stringObjectHashMap.put(BaseConstants.ID,data.get(BaseConstants.ID)); stringObjectHashMap.put(BaseConstants.ID,data.get(BaseConstants.ID));
stringObjectHashMap.put("stationName",stationName); stringObjectHashMap.put("stationName",stationName);
stringObjectHashMap.put("dinasTypeName",dinasTypeName); stringObjectHashMap.put("dinasTypeName",dinasTypeName);
......
...@@ -3,14 +3,18 @@ package com.xyst.dinas.transport.service; ...@@ -3,14 +3,18 @@ package com.xyst.dinas.transport.service;
import com.beecode.bap.attachment.common.Page; import com.beecode.bap.attachment.common.Page;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public interface TransportRecordService { public interface TransportRecordService {
Map<String, Object> loadTransportRecord(@NonNull UUID id); 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); 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; package com.xyst.dinas.transport.web;
import com.beecode.bap.attachment.common.Page; 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.service.DriverUserService;
import com.beecode.inz.basis.team.pojo.ResponseObj; import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.transport.service.TransportRecordService; import com.xyst.dinas.transport.service.TransportRecordService;
...@@ -14,10 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,10 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/** /**
* @author scol * @author scol
...@@ -85,6 +78,20 @@ public class TransportRecordController { ...@@ -85,6 +78,20 @@ public class TransportRecordController {
return ResponseObj.success("查询成功", byId); 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