From b775bd00e11cfd575b067f6394684849a0796479 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 14 九月 2023 17:45:25 +0800
Subject: [PATCH] 111
---
server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 220 insertions(+), 20 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..ad37932 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,21 @@
@Autowired
private WorkPlansExtMapper workPlansExtMapper;
@Autowired
- private WorkorderRecordExtMapper workorderRecordExtMapper;
+ private CompanyExtService companyExtService;
@Autowired
private DepartmentExtService departmentExtService;
+ @Autowired
+ private RouteProcedureExtMapper routeProcedureExtMapper;
+ @Autowired
+ private PlansExtMapper plansExtMapper;
+ @Autowired
+ private WStockExtMapper stockExtMapper;
+ @Autowired
+ private WorkorderRecordExtMapper workorderRecordExtMapper;
+ @Autowired
+ private DeviceCheckExtService deviceCheckExtService;
+ @Autowired
+ private PlansExtService plansExtService;
@Override
public StatisticsPlanDataModel getPlansData(Integer companyId, Integer departId) {
@@ -69,7 +72,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 +80,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 +114,58 @@
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));
+ //涓嶈壇鍝佺巼
+ if(doneNum.compareTo(new BigDecimal(0) )>0){
+ model.setUnqualifiedRate(model.getUnqualifiedNum().divide(doneNum,4).multiply(new BigDecimal(100)));
+ }
+ }
+ }
+ return result;
+ }
+ @Override
+ public List<StockDataModel> getStockList(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(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳");
+ }
+ QueryWStockExtDTO param = new QueryWStockExtDTO();
+ param.setRootDepartId(department.getRootId());
+ param.setWmodelDepartId(departId);
+ //鏌ヨ缁熻缁撴灉
+ List<StockDataModel> result = stockExtMapper.getStatisticsStockList(param);
+ return result;
+ }
+ @Override
+ public List<DepartmentExtListVO> getDepartmentList(Integer companyId){
+ CompanyExtListVO companyExtListVO = companyExtService.getModelById(companyId);
+ if(companyExtListVO == null || Constants.equalsInteger(companyExtListVO.getDeleted(), Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浼佷笟鎴栬�呴儴闂ㄤ俊鎭笉鍚堟硶锛屽鏈夌枒闂紝璇疯仈绯荤郴缁熺鐞嗗憳");
+ }
+ QueryDepartmentExtDTO param = new QueryDepartmentExtDTO();
+ param.setDeleted(Constants.ZERO);
+ param.setCompanyId(companyId);
+ param.setType(Constants.DEPART_TYPE.com);
+ List<DepartmentExtListVO> result = departmentExtService.findList(param);
+ 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,12 +173,13 @@
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<>();
Date date = DateUtil.getCurrentDate();
for (int i = 0; i < 7; i++) {
- Date td = DateUtil.addDaysToDate(date, 7-i);
+ Date td = DateUtil.addDaysToDate(date, i-6);
Unqualified7DayModel m = getReusltModelByDate(td,model);
if(m == null){
m = new Unqualified7DayModel();
@@ -114,13 +189,138 @@
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.setUnqualifiedRate(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);
+ return deviceCheckExtService.getDeviceCheckPage(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);
+ r.setWorkPlanId(model.getId());
+ 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.getQualifiedNum()).divide(t.getPlanNum(),4).multiply(new BigDecimal(100)));
+ }
+ tt.setPlanNum(Constants.formatBigdecimal(t.getPlanNum()));
+ tt.setDoneNum(Constants.formatBigdecimal(t.getQualifiedNum()));
+ rList.add(tt);
+ //鏈�鍚庝竴鍒楃殑鑹搧鏁�/瀹屽伐鏁帮細涓哄綋鍓嶄骇鍝佹渶鍚庝竴閬撳伐搴忕殑鑹搧鏁�/瀹屽伐鏁�
+ model.setDoneNum(t.getDoneNum());
+ model.setQualifiedNum(t.getQualifiedNum());
+ }
+ }
+ model.setProcedureList(rList);
+ }
+ }
+ return result;
}
private Unqualified7DayModel getReusltModelByDate(Date td, List<Unqualified7DayModel> model ) {
if(model !=null){
for(Unqualified7DayModel m : model){
- if(StringUtils.equals(DateUtil.getShortTime(td),DateUtil.getShortTime(m.getCreateTime()))){
+ String d1 = DateUtil.getShortTime(td);
+ String d2 = DateUtil.getShortTime(m.getCreateTime());
+ if(StringUtils.equals(d1,d2)){
return m;
}
}
--
Gitblit v1.9.3