From 1f4e7d0f73a73e7350cf5a1df279d5f30904c5d5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 06 十二月 2023 08:41:32 +0800
Subject: [PATCH] bug

---
 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