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