From 5dfbc4af25ab4f5e8d75f99c6e889b5004a49ef0 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 18 八月 2023 19:22:25 +0800 Subject: [PATCH] 大屏统计 --- server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java | 198 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 181 insertions(+), 17 deletions(-) diff --git a/server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java index 23f8481..eb026ef 100644 --- a/server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java +++ b/server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java @@ -14,28 +14,19 @@ import doumeemes.dao.business.WOutboundMapper; import doumeemes.dao.business.WTransferMapper; import doumeemes.dao.business.WorkorderMapper; -import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; -import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; -import doumeemes.dao.business.dto.statistics.UserProduceTopModel; +import doumeemes.dao.business.dto.statistics.*; import doumeemes.dao.business.model.*; import doumeemes.dao.ext.*; -import doumeemes.dao.ext.dto.QueryBarcodeParamExtDTO; -import doumeemes.dao.ext.dto.QueryCompanyExtDTO; -import doumeemes.dao.ext.dto.QueryWorkPlansDTO; -import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; -import doumeemes.dao.ext.vo.BarcodeParamContent; -import doumeemes.dao.ext.vo.BarcodeParamExtListVO; -import doumeemes.dao.ext.vo.CompanyExtListVO; -import doumeemes.dao.ext.vo.DepartmentExtListVO; -import doumeemes.service.ext.BarcodeParamExtService; -import doumeemes.service.ext.DepartmentExtService; -import doumeemes.service.ext.StatisticsService; +import doumeemes.dao.ext.dto.*; +import doumeemes.dao.ext.vo.*; +import doumeemes.service.ext.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -54,9 +45,17 @@ @Autowired private WorkPlansExtMapper workPlansExtMapper; @Autowired + private RouteProcedureExtMapper routeProcedureExtMapper; + @Autowired + private PlansExtMapper plansExtMapper; + @Autowired private WorkorderRecordExtMapper workorderRecordExtMapper; @Autowired private DepartmentExtService departmentExtService; + @Autowired + private DeviceCheckExtService deviceCheckExtService; + @Autowired + private PlansExtService plansExtService; @Override public StatisticsPlanDataModel getPlansData(Integer companyId, Integer departId) { @@ -69,7 +68,7 @@ workPlans.setDepartId(departId); //鏌ヨ缁熻缁撴灉 StatisticsPlanDataModel model = workPlansExtMapper.getPlansStaticticsData(workPlans); - model.setUnqualifiedNum(new BigDecimal(0)); + model.setUnqualifiedRate(new BigDecimal(0)); if(model.getDoneNUm() !=null && model.getDoneNUm().compareTo(new BigDecimal(0)) != 0){ //涓嶈壇鍝佺巼 model.setUnqualifiedRate(model.getUnqualifiedNum().divide(model.getDoneNUm(),4).multiply(new BigDecimal(100))); @@ -77,13 +76,33 @@ return model; } @Override - public List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId) { + public StatisticsPlanDataModel getProcedurePlanData(Integer companyId, Integer departId, Integer procedureId){ + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + QueryPlansExtDTO param = new QueryPlansExtDTO(); + param.setRootDepartId(department.getRootId()); + param.setDepartId(departId); + param.setProcedureId(procedureId); + //鏌ヨ缁熻缁撴灉 + StatisticsPlanDataModel model = plansExtMapper.getPlansStaticticsData(param); + model.setUnqualifiedRate(new BigDecimal(0)); + if(model.getDoneNUm() !=null && model.getDoneNUm().compareTo(new BigDecimal(0)) != 0){ + //涓嶈壇鍝佺巼 + model.setUnqualifiedRate(model.getUnqualifiedNum().divide(model.getDoneNUm(),4).multiply(new BigDecimal(100))); + } + return model; + } + @Override + public List<UserProduceTopModel> getUserProduceTopData(Integer companyId, Integer departId, Integer procedureId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); } QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); + param.setProcedureId(procedureId); param.setDepartId(departId); //鏌ヨ缁熻缁撴灉 List<UserProduceTopModel> model = workorderRecordExtMapper.getUserProduceTopData(param); @@ -91,7 +110,30 @@ return model; } @Override - public List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId) { + public List<ProcedureProcessModel> getProcedureProcessList(Integer companyId, Integer departId) { + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + QueryPlansExtDTO param = new QueryPlansExtDTO(); + param.setRootDepartId(department.getRootId()); + param.setDepartId(departId); + //鏌ヨ缁熻缁撴灉 + List<ProcedureProcessModel> result = plansExtMapper.selectProcedureProcessList(param); + if(result !=null){ + for(ProcedureProcessModel model : result){ + //鏈畬鎴愭暟 + BigDecimal doneNum =Constants.formatBigdecimal(model.getUnqualifiedNum()) + .add(Constants.formatBigdecimal(model.getQualifiedNum())); + model.setUndoneNum(Constants.formatBigdecimal(model.getNum()).subtract(doneNum); + //涓嶈壇鍝佺巼 + model.set + } + } + return result; + } + @Override + public List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId, Integer procedureId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); @@ -99,6 +141,7 @@ QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); + param.setProcedureId(procedureId); //鏌ヨ缁熻缁撴灉 List<Unqualified7DayModel> model = workorderRecordExtMapper.getUnqualified7DayData(param); List<Unqualified7DayModel> result = new ArrayList<>(); @@ -114,8 +157,129 @@ result.add(m); } + return result; + } + @Override + public List<UnqualifiedCateModel> getUnqualifiedCateData(Integer companyId, Integer departId, Integer procedureId) { + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); + param.setRootDepartId(department.getRootId()); + param.setDepartId(departId); + param.setProcedureId(procedureId); + //鏌ヨ缁熻缁撴灉 + List<UnqualifiedCateModel> model = workorderRecordExtMapper.getUnqualifiedCateData(param); + return model; } + @Override + public PageData<RecordLogModel> getRecordLogPage(Integer companyId, Integer departId, PageWrap<QueryWorkorderRecordExtDTO> pageWrap){ + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + //鍙兘鏌ョ湅褰撳墠鏍圭粍缁囩殑鏁版嵁 + pageWrap.getModel().setRootDepartId(department.getRootId()); + pageWrap.getModel().setDepartId(departId); + PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); + List<RecordLogModel> result = workorderRecordExtMapper.getRecordLog(pageWrap.getModel()); + if(result!=null){ + for(RecordLogModel model : result){ + model.setUnqualifiedNum(new BigDecimal(0)); + BigDecimal doneNum = Constants.formatBigdecimal(model.getUnqualifiedNum()).add(Constants.formatBigdecimal(model.getQualifiedNum())); + if(model.getUnqualifiedNum() !=null && doneNum.compareTo(new BigDecimal(0)) != 0){ + //涓嶈壇鍝佺巼 + model.setUnqualifiedRate(model.getUnqualifiedNum().divide(doneNum,4).multiply(new BigDecimal(100))); + } + } + } + return PageData.from(new PageInfo<>(result)); + } + @Override + public PageData<DeviceCheckExtListVO> getDeviceCheckPage(Integer companyId, Integer departId,PageWrap<QueryDeviceCheckExtDTO> pageWrap){ + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + //鍙兘鏌ョ湅褰撳墠鏍圭粍缁囩殑鏁版嵁 + pageWrap.getModel().setRootDepartId(department.getRootId()); + pageWrap.getModel().setComDepartId(departId); + PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); + return deviceCheckExtService.findPage(pageWrap); + } + @Override + public List<ProcedurePlansPageModel> getProcedurePlansPage(Integer companyId, Integer departId,Integer procedureId){ + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + if(procedureId == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"宸ュ簭缂栫爜涓嶈兘涓虹┖锛�"); + } + QueryPlansExtDTO param = new QueryPlansExtDTO(); + param.setRootDepartId(department.getRootId()); + param.setDepartId(departId); + param.setProcedureId(procedureId); + + List<ProcedurePlansPageModel> result = plansExtMapper.selectStatisticsList(param); + + if(result != null){ + for(ProcedurePlansPageModel model :result){ + model.setUnqualifiedRate(new BigDecimal(0)); + BigDecimal doneNum = Constants.formatBigdecimal(model.getQualifiedNum()).add(Constants.formatBigdecimal(model.getUnqualifiedNum())); + if(model.getUnqualifiedNum() !=null && doneNum.compareTo(new BigDecimal(0)) != 0){ + //涓嶈壇鍝佺巼 + model.setUnqualifiedRate(model.getUnqualifiedNum().divide(doneNum,4).multiply(new BigDecimal(100))); + model.setUndoneNum(Constants.formatBigdecimal(model.getNum()).subtract(doneNum)); + } + } + } + return result; + } + @Override + public List<WorkPlansPageModel> getWorkPlansList(Integer companyId, Integer departId){ + DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); + if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳"); + } + QueryWorkPlansExtDTO param = new QueryWorkPlansExtDTO(); + param.setRootDepartId(department.getRootId()); + param.setDepartId(departId); + List<WorkPlansPageModel> result = workPlansExtMapper.selectStatisticsList(param); + if(result != null){ + for(WorkPlansPageModel model :result){ + if(model.getRouteId() ==null){ + continue; + } + //鏌ヨ宸ュ簭闆嗗悎鍜屽畬鎴愭儏鍐� + QueryRouteProcedureExtDTO r = new QueryRouteProcedureExtDTO(); + r.setRouteId(model.getRouteId()); + r.setDeleted(Constants.ZERO); + List<RouteProcedureExtListVO> list = routeProcedureExtMapper.selectStatisticsList(r); + List<WorkPlansProcedureModel> rList = new ArrayList<>(); + if(list != null){ + for(RouteProcedureExtListVO t : list){ + WorkPlansProcedureModel tt = new WorkPlansProcedureModel(); + tt.setProcedureName(t.getProcedureName()); + tt.setProcedureId(t.getProcedureId()); + tt.setRate(new BigDecimal(0)); + if( Constants.formatBigdecimal(t.getPlanNum()).compareTo(new BigDecimal(0)) >0){ + //瀹屾垚鐜� + tt.setRate(Constants.formatBigdecimal(t.getDoneNum()).divide(t.getPlanNum(),4).subtract(new BigDecimal(100))); + } + rList.add(tt); + //鏈�鍚庝竴鍒楃殑鑹搧鏁�/瀹屽伐鏁帮細涓哄綋鍓嶄骇鍝佹渶鍚庝竴閬撳伐搴忕殑鑹搧鏁�/瀹屽伐鏁� + model.setNum(t.getPlanNum()); + model.setQualifiedNum(t.getDoneNum()); + } + } + model.setProcedureList(rList); + } + } + return result; + } private Unqualified7DayModel getReusltModelByDate(Date td, List<Unqualified7DayModel> model ) { if(model !=null){ -- Gitblit v1.9.3