From 368e938e3ced045d6b8499cdaed7d61a84180a1c Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期三, 06 八月 2025 11:12:35 +0800
Subject: [PATCH] 删除原MDC设备车间管理代码

---
 src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java |  782 +++++++++++++++++++++++++++----------------------------
 1 files changed, 388 insertions(+), 394 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
index 2a15529..5faa6b6 100644
--- a/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
@@ -1,10 +1,13 @@
 package org.jeecg.modules.mdc.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import liquibase.pro.packaged.I;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.modules.base.entity.Factory;
+import org.jeecg.modules.base.service.IFactoryService;
 import org.jeecg.modules.mdc.dto.*;
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.mapper.MdcEfficiencyReportMapper;
@@ -46,7 +49,10 @@
     private ISysDepartService sysDepartService;
 
     @Resource
-    private IMdcProductionService mdcProductionService;
+    private IFactoryService factoryService;
+
+//    @Resource
+//    private IMdcProductionService mdcProductionService;
 
     @Resource
     private IMdcShiftSubService mdcShiftSubService;
@@ -192,12 +198,12 @@
                     mdcEfficiencyResultDto.setWaitLong(mdcEfficiencyResultDto.getWaitLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
                     mdcEfficiencyResultDto1.setCloseLong(mdcEfficiencyResultDto.getCloseLong());
                     mdcEfficiencyResultDto.setCloseLong(mdcEfficiencyResultDto.getCloseLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setFaultLong(mdcEfficiencyResultDto.getFaultLong());
-                    mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setFaultRate(mdcEfficiencyResultDto.getFaultRate());
-                    mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(dates.size()), 4, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong());
-                    mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setFaultLong(mdcEfficiencyResultDto.getFaultLong());
+//                    mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setFaultRate(mdcEfficiencyResultDto.getFaultRate());
+//                    mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(dates.size()), 4, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong());
+//                    mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
                     long rate = mdcEfficiencyResultDto.getUtilizationRate().multiply(new BigDecimal("100")).longValue();
                     for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                         if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) {
@@ -214,7 +220,7 @@
                 // 浜х嚎灞傜骇
                 List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
                 // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
-                List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(MdcProduction::getProductionOrder));
+                List<Factory> factoryList = factoryService.list(new LambdaQueryWrapper<Factory>().ne(Factory::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(Factory::getSorter));
 
                 for (MdcEquProDto mdcEquProDto : equipmentList) {
                     MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
@@ -233,31 +239,31 @@
                             break;
                         default:
                     }
-                    MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
-                    if (mdcProduction != null) {
-                        switch (mdcProduction.getOrgType()) {
+                    Factory baseFactory = factoryList.stream().filter(factory -> factory.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+                    if (baseFactory != null) {
+                        switch (baseFactory.getFactoryCategory()) {
                             case "1":
-                                mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel1(baseFactory.getFactoryName());
                                 break;
                             case "2":
-                                mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel2(baseFactory.getFactoryName());
                                 break;
                             case "3":
-                                mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel3(baseFactory.getFactoryName());
                                 break;
                             default:
                         }
-                        if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
-                            productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
-                                switch (production1.getOrgType()) {
+                        if (StringUtils.isNotEmpty(baseFactory.getParentId())) {
+                            factoryList.stream().filter(factory -> factory.getId().equals(baseFactory.getParentId())).findAny().ifPresent(factory1 -> {
+                                switch (factory1.getFactoryCategory()) {
                                     case "1":
-                                        mdcEfficiencyListDto.setLevel1(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel1(factory1.getFactoryName());
                                         break;
                                     case "2":
-                                        mdcEfficiencyListDto.setLevel2(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel2(factory1.getFactoryName());
                                         break;
                                     case "3":
-                                        mdcEfficiencyListDto.setLevel3(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel3(factory1.getFactoryName());
                                         break;
                                     default:
                                 }
@@ -286,12 +292,12 @@
                     mdcEfficiencyResultDto.setWaitLong(mdcEfficiencyResultDto.getWaitLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
                     mdcEfficiencyResultDto1.setCloseLong(mdcEfficiencyResultDto.getCloseLong());
                     mdcEfficiencyResultDto.setCloseLong(mdcEfficiencyResultDto.getCloseLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setFaultLong(mdcEfficiencyResultDto.getFaultLong());
-                    mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setFaultRate(mdcEfficiencyResultDto.getFaultRate());
-                    mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(dates.size()), 4, RoundingMode.HALF_UP));
-                    mdcEfficiencyResultDto1.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong());
-                    mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setFaultLong(mdcEfficiencyResultDto.getFaultLong());
+//                    mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setFaultRate(mdcEfficiencyResultDto.getFaultRate());
+//                    mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(dates.size()), 4, RoundingMode.HALF_UP));
+//                    mdcEfficiencyResultDto1.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong());
+//                    mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(dates.size()), 0, RoundingMode.HALF_UP));
                     long rate = mdcEfficiencyResultDto.getUtilizationRate().multiply(new BigDecimal("100")).longValue();
                     for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                         if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) {
@@ -357,10 +363,7 @@
                             a.getOpenRate().add(b.getOpenRate()),
                             a.getOpenLong().add(b.getOpenLong()),
                             a.getWaitLong().add(b.getWaitLong()),
-                            a.getCloseLong().add(b.getCloseLong()),
-                            a.getFaultLong().add(b.getFaultLong()),
-                            a.getFaultRate().add(b.getFaultRate()),
-                            a.getRemoveFaultRunLong().add(b.getRemoveFaultRunLong()))).ifPresent(result::add);
+                            a.getCloseLong().add(b.getCloseLong()))).ifPresent(result::add);
                 });
         for (MdcEfficiencyResultDto mdcEfficiencyResultDto : result) {
             mdcEfficiencyResultDto.setUtilizationRate(mdcEfficiencyResultDto.getUtilizationRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
@@ -403,10 +406,7 @@
                             a.getOpenRate().add(b.getOpenRate()),
                             a.getOpenLong().add(b.getOpenLong()),
                             a.getWaitLong().add(b.getWaitLong()),
-                            a.getCloseLong().add(b.getCloseLong()),
-                            a.getFaultLong().add(b.getFaultLong()),
-                            a.getFaultRate().add(b.getFaultRate()),
-                            a.getRemoveFaultRunLong().add(b.getRemoveFaultRunLong()))).ifPresent(result::add);
+                            a.getCloseLong().add(b.getCloseLong()))).ifPresent(result::add);
                 });
         for (MdcEfficiencyResultDto mdcEfficiencyResultDto : result) {
             mdcEfficiencyResultDto.setUtilizationRate(mdcEfficiencyResultDto.getUtilizationRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
@@ -574,7 +574,7 @@
                 // 浜х嚎灞傜骇
                 List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
                 // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
-                List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(MdcProduction::getProductionOrder));
+                List<Factory> factoryList = factoryService.list(new LambdaQueryWrapper<Factory>().ne(Factory::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(Factory::getSorter));
 
                 for (MdcEquProDto mdcEquProDto : equipmentList) {
                     MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
@@ -593,31 +593,31 @@
                             break;
                         default:
                     }
-                    MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
-                    if (mdcProduction != null) {
-                        switch (mdcProduction.getOrgType()) {
+                    Factory baseFactory = factoryList.stream().filter(factory -> factory.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+                    if (baseFactory != null) {
+                        switch (baseFactory.getFactoryCategory()) {
                             case "1":
-                                mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel1(baseFactory.getFactoryName());
                                 break;
                             case "2":
-                                mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel2(baseFactory.getFactoryName());
                                 break;
                             case "3":
-                                mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName());
+                                mdcEfficiencyListDto.setLevel3(baseFactory.getFactoryName());
                                 break;
                             default:
                         }
-                        if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
-                            productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
-                                switch (production1.getOrgType()) {
+                        if (StringUtils.isNotEmpty(baseFactory.getParentId())) {
+                            factoryList.stream().filter(factory -> factory.getId().equals(baseFactory.getParentId())).findAny().ifPresent(factory1 -> {
+                                switch (factory1.getFactoryCategory()) {
                                     case "1":
-                                        mdcEfficiencyListDto.setLevel1(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel1(factory1.getFactoryName());
                                         break;
                                     case "2":
-                                        mdcEfficiencyListDto.setLevel2(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel2(factory1.getFactoryName());
                                         break;
                                     case "3":
-                                        mdcEfficiencyListDto.setLevel3(production1.getProductionName());
+                                        mdcEfficiencyListDto.setLevel3(factory1.getFactoryName());
                                         break;
                                     default:
                                 }
@@ -710,10 +710,7 @@
                             a.getOpenRate().add(b.getOpenRate()),
                             a.getOpenLong().add(b.getOpenLong()),
                             a.getWaitLong().add(b.getWaitLong()),
-                            a.getCloseLong().add(b.getCloseLong()),
-                            a.getFaultLong().add(b.getFaultLong()),
-                            a.getFaultRate().add(b.getFaultRate()),
-                            a.getRemoveFaultRunLong().add(b.getRemoveFaultRunLong()))).ifPresent(result::add);
+                            a.getCloseLong().add(b.getCloseLong()))).ifPresent(result::add);
                 });
         for (MdcEfficiencyResultDto mdcEfficiencyResultDto : result) {
             mdcEfficiencyResultDto.setUtilizationRate(mdcEfficiencyResultDto.getUtilizationRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
@@ -723,9 +720,9 @@
             mdcEfficiencyResultDto.setWaitLong(mdcEfficiencyResultDto.getWaitLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
             mdcEfficiencyResultDto.setOpenLong(mdcEfficiencyResultDto.getOpenLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
             mdcEfficiencyResultDto.setProcessLong(mdcEfficiencyResultDto.getProcessLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
-            mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
-            mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
-            mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
+//            mdcEfficiencyResultDto.setFaultLong(mdcEfficiencyResultDto.getFaultLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
+//            mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
+//            mdcEfficiencyResultDto.setRemoveFaultRunLong(mdcEfficiencyResultDto.getRemoveFaultRunLong().divide(new BigDecimal(mdcEfficiencyList.size()), 0, RoundingMode.HALF_UP));
             long rate = mdcEfficiencyResultDto.getStartRate().multiply(new BigDecimal("100")).longValue();
             for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                 if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) {
@@ -760,16 +757,13 @@
                             a.getOpenRate().add(b.getOpenRate()),
                             a.getOpenLong().add(b.getOpenLong()),
                             a.getWaitLong().add(b.getWaitLong()),
-                            a.getCloseLong().add(b.getCloseLong()),
-                            a.getFaultLong().add(b.getFaultLong()),
-                            a.getFaultRate().add(b.getFaultRate()),
-                            a.getRemoveFaultRunLong().add(b.getRemoveFaultRunLong()))).ifPresent(result::add);
+                            a.getCloseLong().add(b.getCloseLong()))).ifPresent(result::add);
                 });
         for (MdcEfficiencyResultDto mdcEfficiencyResultDto : result) {
             mdcEfficiencyResultDto.setUtilizationRate(mdcEfficiencyResultDto.getUtilizationRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
             mdcEfficiencyResultDto.setOpenRate(mdcEfficiencyResultDto.getOpenRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
             mdcEfficiencyResultDto.setStartRate(mdcEfficiencyResultDto.getStartRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
-            mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
+//            mdcEfficiencyResultDto.setFaultRate(mdcEfficiencyResultDto.getFaultRate().divide(new BigDecimal(mdcEfficiencyList.size()), 4, RoundingMode.HALF_UP));
             long rate = mdcEfficiencyResultDto.getStartRate().multiply(new BigDecimal("100")).longValue();
             for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                 if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) {
@@ -955,7 +949,7 @@
                 // 浜х嚎灞傜骇
                 List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
                 // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
-                List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(MdcProduction::getProductionOrder));
+                List<Factory> factoryList = factoryService.list(new LambdaQueryWrapper<Factory>().ne(Factory::getDelFlag, CommonConstant.DEL_FLAG_1.toString()).orderByAsc(Factory::getSorter));
 
                 // 鐝鍚嶇О鏄剧ず澶勭悊
                 String shiftSubName = "";
@@ -996,31 +990,31 @@
                             break;
                         default:
                     }
-                    MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
-                    if (mdcProduction != null) {
-                        switch (mdcProduction.getOrgType()) {
+                    Factory baseFactory = factoryList.stream().filter(factory -> factory.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+                    if (baseFactory != null) {
+                        switch (baseFactory.getFactoryCategory()) {
                             case "1":
-                                mdcEfficiencyShiftListDto.setLevel1(mdcProduction.getProductionName());
+                                mdcEfficiencyShiftListDto.setLevel1(baseFactory.getFactoryName());
                                 break;
                             case "2":
-                                mdcEfficiencyShiftListDto.setLevel2(mdcProduction.getProductionName());
+                                mdcEfficiencyShiftListDto.setLevel2(baseFactory.getFactoryName());
                                 break;
                             case "3":
-                                mdcEfficiencyShiftListDto.setLevel3(mdcProduction.getProductionName());
+                                mdcEfficiencyShiftListDto.setLevel3(baseFactory.getFactoryName());
                                 break;
                             default:
                         }
-                        if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
-                            productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
-                                switch (production1.getOrgType()) {
+                        if (StringUtils.isNotEmpty(baseFactory.getParentId())) {
+                            factoryList.stream().filter(factory -> factory.getId().equals(baseFactory.getParentId())).findAny().ifPresent(factory1 -> {
+                                switch (factory1.getFactoryCategory()) {
                                     case "1":
-                                        mdcEfficiencyShiftListDto.setLevel1(production1.getProductionName());
+                                        mdcEfficiencyShiftListDto.setLevel1(factory1.getFactoryName());
                                         break;
                                     case "2":
-                                        mdcEfficiencyShiftListDto.setLevel2(production1.getProductionName());
+                                        mdcEfficiencyShiftListDto.setLevel2(factory1.getFactoryName());
                                         break;
                                     case "3":
-                                        mdcEfficiencyShiftListDto.setLevel3(production1.getProductionName());
+                                        mdcEfficiencyShiftListDto.setLevel3(factory1.getFactoryName());
                                         break;
                                     default:
                                 }
@@ -1767,316 +1761,316 @@
         return mdcEfficiencyReportMapper.getEfficiencyRate(equipmentId, date);
     }
 
-    /**
-     * 鐝粍鍚勮澶囩患鍚堝埄鐢ㄧ巼
-     *
-     * @param equEffVo
-     * @return
-     */
-    @Override
-    public Map<String, Object> equipmentEfficiencyAnalyze(String userId, EquEffVo equEffVo) {
-        Map<String, Object> result = new HashMap<>();
-        List<String> mdcProductionIds = new ArrayList<>();
-        if (StringUtils.isBlank(equEffVo.getProductionIds())) {
-            mdcProductionIds.add(equEffVo.getProductionId());
-        } else {
-            mdcProductionIds.addAll(Arrays.asList(equEffVo.getProductionIds().split(",")));
-        }
-        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
-        //鏁版嵁鏉冮檺杩囨护
-        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
-        List<MdcEquipment> equipmentList = mdcEquipmentService.findByProductionIds(allProductionIds);
-        if (equipmentList != null && !equipmentList.isEmpty()) {
-            List<String> equipmentIdList = equipmentList.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
-            List<EquipmentEfficiencyAnalyzeDto> dataList = mdcEfficiencyReportMapper.equipmentEfficiencyAnalyze(equipmentIdList, equEffVo.getMonth());
-            result.put("dataList", dataList);
-            List<String> equipmentNameList = dataList.stream().map(EquipmentEfficiencyAnalyzeDto::getEquipmentId).collect(Collectors.toList());
-            result.put("equipmentNameList", equipmentNameList);
-        }
-        return result;
-    }
-
-    @Override
-    public Map<String, Object> teamEquipmentEfficiencyAnalyze(String userId, EquEffVo equEffVo) {
-        Map<String, Object> result = new HashMap<>();
-        // 1. 澶勭悊鐢熶骇ID
-        List<String> mdcProductionIds = StringUtils.isBlank(equEffVo.getProductionIds())
-                ? Collections.singletonList(equEffVo.getProductionId())
-                : Arrays.asList(equEffVo.getProductionIds().split(","));
-
-        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
-        if (allProductionIds.isEmpty()) {
-            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
-        }
-        //鏁版嵁鏉冮檺杩囨护
-        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
-        // 2. 鑾峰彇璁惧鍒楄〃
-        List<MdcEquipment> equipmentList = StringUtils.isNotBlank(equEffVo.getTeamCodes())
-                ? mdcEquipmentService.findByProIdsAndTeamCode(allProductionIds, Arrays.asList(equEffVo.getTeamCodes().split(",")))
-                : mdcEquipmentService.findByProductionIds(allProductionIds);
-
-        if (equipmentList.isEmpty()) {
-            return result;
-        }
-
-        // 3. 鏁版嵁澶勭悊
-        List<String> equipmentIdList = equipmentList.stream()
-                .map(MdcEquipment::getEquipmentId)
-                .collect(Collectors.toList());
-
-        List<TeamEquEffDto> dataList = mdcEfficiencyReportMapper
-                .teamEquipmentEfficiencyAnalyze(equipmentIdList, equEffVo.getMonth());
-
-        if (dataList.isEmpty()) {
-            return result;
-        }
-
-        // 4. 鍒嗙粍璁$畻骞冲潎鍊�
-        Map<String, TeamEquEffDto> grouped = dataList.stream()
-                .collect(Collectors.groupingBy(
-                        TeamEquEffDto::getTeamCode,
-                        Collectors.collectingAndThen(
-                                Collectors.toList(),
-                                this::calculateAverages // 鎻愬彇璁$畻鏂规硶
-                        )));
-
-        // 5. 瀛楀吀杞崲
-        Map<String, String> dictMap = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_MDC_STAFF_TEAM)
-                .stream()
-                .collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
-
-        List<TeamEquEffDto> resultList = grouped.entrySet().stream()
-                .map(entry -> buildResultDto(entry, dictMap))// 鎻愬彇鏋勫缓鏂规硶
-                .sorted(Comparator.comparing(TeamEquEffDto::getUtilizationRate).reversed())
-                .collect(Collectors.toList());
-
-        result.put("dataList", resultList);
-        result.put("teamCodeList", resultList.stream()
-                .map(TeamEquEffDto::getTeamCode)
-                .collect(Collectors.toList()));
-
-        return result;
-
-    }
-
-    @Override
-    public Map<String, Object> teamEfficiencyAnalyzeByMonth(String userId, EquEffVo equEffVo) {
-        Map<String, Object> result = new HashMap<>();
-
-        // 1. 鏃ユ湡澶勭悊
-        LocalDate now = LocalDate.now();
-        Date start = DateUtils.toDate(now.plusMonths(-6).toString(), DateUtils.STR_DATE);
-        Date end = DateUtils.toDate(now.plusMonths(-1).toString(), DateUtils.STR_DATE);
-
-        List<String> monthBetween = DateUtils.getMonthBetween(start, end);
-        List<String> dateList = monthBetween.stream()
-                .map(date -> date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�")
-                .collect(Collectors.toList());
-        result.put("dateList", dateList);
-
-        // 2. 鑾峰彇浜х嚎鏁版嵁
-        List<MdcProduction> mdcProductions = mdcProductionService.findMdcPros(userId, equEffVo.getProductionId());
-
-        // 3. 鍒濆鍖栫粨鏋滈泦
-        List<TeamEquEffMonthDto> utilizationRateList = new ArrayList<>();
-        List<TeamEquEffMonthDto> shiftUtilizationRateList = new ArrayList<>();
-        List<TeamEquEffMonthDto> amendUtilizationRateList = new ArrayList<>();
-
-        // 4. 澶勭悊姣忎釜浜х嚎
-        mdcProductions.forEach(mdcProduction -> {
-            // 4.1 鑾峰彇涓嬬骇浜х嚎骞惰繃婊�
-            List<String> allProductionIds = mdcProductionService.recursionChildren(mdcProduction.getId());
-            // 鏁版嵁鏉冮檺杩囨护
-            allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
-            // 4.2 鑾峰彇璁惧鍒楄〃
-            List<MdcEquipment> equipmentList = mdcEquipmentService.findByProductionIds(allProductionIds);
-            if (equipmentList == null || equipmentList.isEmpty()) {
-                return;
-            }
-            //鎻愬彇id闆嗗悎
-            List<String> equipmentIdList = equipmentList.stream()
-                    .map(MdcEquipment::getEquipmentId)
-                    .collect(Collectors.toList());
-
-            TeamEquEffMonthDto urDto = new TeamEquEffMonthDto();
-            TeamEquEffMonthDto surDto = new TeamEquEffMonthDto();
-            TeamEquEffMonthDto aurDto = new TeamEquEffMonthDto();
-            urDto.setProductionName(mdcProduction.getProductionName());
-            surDto.setProductionName(mdcProduction.getProductionName());
-            aurDto.setProductionName(mdcProduction.getProductionName());
-            List<TeamEquEffMonthChildDto> urDataList = new ArrayList<>();
-            List<TeamEquEffMonthChildDto> surDataList = new ArrayList<>();
-            List<TeamEquEffMonthChildDto> aurDataList = new ArrayList<>();
-
-            monthBetween.forEach(date -> {
-                TeamEquEffMonthChildDto urCDto = new TeamEquEffMonthChildDto();
-                TeamEquEffMonthChildDto surCDto = new TeamEquEffMonthChildDto();
-                TeamEquEffMonthChildDto aurCDto = new TeamEquEffMonthChildDto();
-                String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
-                urCDto.setMonth(month);
-                surCDto.setMonth(month);
-                aurCDto.setMonth(month);
-                List<TeamEquEffDto> dataList = mdcEfficiencyReportMapper.teamEquipmentEfficiencyAnalyze(equipmentIdList, date.replaceAll("-", ""));
-                if (dataList != null && !dataList.isEmpty()) {
-                    // 璁$畻骞冲潎鍊�
-                    BigDecimal ur = dataList.stream()
-                            .map(TeamEquEffDto::getUtilizationRate)
-                            .reduce(BigDecimal.ZERO, BigDecimal::add)
-                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
-                    //鍒╃敤鐜�
-                    urCDto.setUtilizationRate(ur);
-                    //鐝鍒╃敤鐜�
-                    BigDecimal sur = dataList.stream()
-                            .map(TeamEquEffDto::getShiftUtilizationRate)
-                            .reduce(BigDecimal.ZERO, BigDecimal::add)
-                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
-                    surCDto.setUtilizationRate(sur);
-                    //鍘婚櫎鏁呴殰24灏忔椂鍒╃敤鐜�
-                    BigDecimal aur = dataList.stream()
-                            .map(TeamEquEffDto::getAmendUtilizationRate)
-                            .reduce(BigDecimal.ZERO, BigDecimal::add)
-                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
-                    aurCDto.setUtilizationRate(aur);
-                }
-                urDataList.add(urCDto);
-                surDataList.add(surCDto);
-                aurDataList.add(aurCDto);
-            });
-            urDto.setDataList(urDataList);
-            surDto.setDataList(surDataList);
-            aurDto.setDataList(aurDataList);
-            utilizationRateList.add(urDto);
-            shiftUtilizationRateList.add(surDto);
-            amendUtilizationRateList.add(aurDto);
-        });
-        result.put("utilizationRateList", utilizationRateList);
-        result.put("shiftUtilizationRateList", shiftUtilizationRateList);
-        result.put("amendUtilizationRateList", amendUtilizationRateList);
-        return result;
-    }
-
-    @Override
-    public Map<String, Object> comprehensiveRateAnalyze(String userId, EquEffVo vo) {
-        Map<String, Object> result = new HashMap<>();
-        // 1. 鏃ユ湡澶勭悊
-        LocalDate now = LocalDate.now();
-        Date start = DateUtils.toDate(now.plusMonths(-12).toString(), DateUtils.STR_DATE);
-        Date end = DateUtils.toDate(now.plusMonths(-1).toString(), DateUtils.STR_DATE);
-
-        List<String> monthBetween = DateUtils.getMonthBetween(start, end);
-        List<String> dateList = monthBetween.stream()
-                .map(date -> date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�")
-                .collect(Collectors.toList());
-        result.put("dateList", dateList);
-
-        // 1. 澶勭悊鐢熶骇ID
-        List<String> mdcProductionIds = StringUtils.isBlank(vo.getProductionIds())
-                ? Collections.singletonList(vo.getProductionId())
-                : Arrays.asList(vo.getProductionIds().split(","));
-
-        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
-        if (allProductionIds.isEmpty()) {
-            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
-        }
-        //鏁版嵁鏉冮檺杩囨护
-        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
-        // 2. 鑾峰彇璁惧鍒楄〃
-        List<MdcEquipment> equipmentList = StringUtils.isNotBlank(vo.getEquipmentType())
-                ? mdcEquipmentService.findByProIdsAndType(allProductionIds, Arrays.asList(vo.getEquipmentType().split(",")))
-                : mdcEquipmentService.findByProductionIds(allProductionIds);
-
-        if (equipmentList.isEmpty()) {
-            return result;
-        }
-
-        // 3. 鏁版嵁澶勭悊
-        List<String> equipmentIdList = equipmentList.stream()
-                .map(MdcEquipment::getEquipmentId)
-                .collect(Collectors.toList());
-        String startStr = monthBetween.get(0).replaceAll("-", "");
-        String endStr = monthBetween.get(monthBetween.size() - 1).replaceAll("-", "");
-        List<ComRateDto> comRateDtoList = mdcEfficiencyReportMapper.comprehensiveRateAnalyze(equipmentIdList, startStr, endStr);
-        if (comRateDtoList.isEmpty()) {
-            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
-        }
-        List<ComRateDto> dataList = new ArrayList<>();
-        Map<String, ComRateDto> map = comRateDtoList.stream().collect(Collectors.toMap(ComRateDto::getTheMonth, comRateDto -> comRateDto));
-        monthBetween.forEach(date -> {
-            String d = date.replaceAll("-", "");
-            String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
-            if (map.containsKey(d)) {
-                ComRateDto comRateDto = map.get(d);
-                comRateDto.setTheMonth(month);
-                comRateDto.setUtilizationRate(comRateDto.getUtilizationRate().setScale(2, RoundingMode.HALF_UP));
-                comRateDto.setShiftUtilizationRate(comRateDto.getShiftUtilizationRate() != null ? comRateDto.getShiftUtilizationRate().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO);
-                comRateDto.setAmendUtilizationRate(comRateDto.getAmendUtilizationRate().setScale(2, RoundingMode.HALF_UP));
-                comRateDto.setProcessLong(comRateDto.getProcessLong().divide(new BigDecimal("3600"), 2, RoundingMode.HALF_UP));
-                dataList.add(comRateDto);
-            } else {
-                ComRateDto comRateDto = new ComRateDto();
-                comRateDto.setTheMonth(month);
-                dataList.add(comRateDto);
-            }
-        });
-        result.put("dataList", dataList);
-
-        if (StringUtils.isNotBlank(vo.getShiftId())) {
-            List<MdcShiftSub> shiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getShiftId, vo.getShiftId()));
-            if (shiftSubList == null || shiftSubList.isEmpty()) {
-                return result;
-            }
-            List<String> shiftSubNameList = shiftSubList.stream().map(MdcShiftSub::getShiftSubName).collect(Collectors.toList());
-            result.put("shiftSubList", shiftSubNameList);
-
-            List<ComShiftRateDto> comShiftRateDtoList = mdcEfficiencyReportMapper.comprehensiveShiftRateAnalyze(equipmentIdList, startStr, endStr, vo.getShiftId());
-            Map<String, List<ComShiftRateDto>> groupMap;
-            if (comShiftRateDtoList != null && !comShiftRateDtoList.isEmpty()) {
-                groupMap = comShiftRateDtoList.stream().collect(Collectors.groupingBy(ComShiftRateDto::getShiftSub));
-            } else {
-                groupMap = new HashMap<>();
-            }
-            List<ComShiftDto> shiftDataList = new ArrayList<>();
-            shiftSubList.forEach(mdcShiftSub -> {
-                ComShiftDto comShiftDto = new ComShiftDto();
-                comShiftDto.setShiftSubName(mdcShiftSub.getShiftSubName());
-                if (groupMap.containsKey(mdcShiftSub.getId())) {
-                    List<ComShiftRateDto> csrd = groupMap.get(mdcShiftSub.getId());
-                    Map<String, ComShiftRateDto> collect = csrd.stream().collect(Collectors.toMap(ComShiftRateDto::getTheMonth, comShiftRateDto -> comShiftRateDto));
-                    List<ComShiftChildDto> comShiftChildDtoList = new ArrayList<>();
-                    monthBetween.forEach(date -> {
-                        String d = date.replaceAll("-", "");
-                        String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
-                        if (collect.containsKey(d)) {
-                            ComShiftRateDto comShiftRateDto = collect.get(d);
-                            ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
-                            comShiftChildDto.setMonth(month);
-                            comShiftChildDto.setUtilizationRate(comShiftRateDto.getUtilizationRate().setScale(2, RoundingMode.HALF_UP));
-                            comShiftChildDtoList.add(comShiftChildDto);
-                        } else {
-                            ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
-                            comShiftChildDto.setMonth(month);
-                            comShiftChildDtoList.add(comShiftChildDto);
-                        }
-                    });
-                    comShiftDto.setDataList(comShiftChildDtoList);
-                } else {
-                    List<ComShiftChildDto> comShiftChildDtoList = new ArrayList<>();
-                    monthBetween.forEach(date -> {
-                        String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
-                        ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
-                        comShiftChildDto.setMonth(month);
-                        comShiftChildDtoList.add(comShiftChildDto);
-                    });
-                    comShiftDto.setDataList(comShiftChildDtoList);
-                }
-                shiftDataList.add(comShiftDto);
-            });
-
-            result.put("shiftDataList", shiftDataList);
-        }
-
-        return result;
-    }
+//    /**
+//     * 鐝粍鍚勮澶囩患鍚堝埄鐢ㄧ巼
+//     *
+//     * @param equEffVo
+//     * @return
+//     */
+//    @Override
+//    public Map<String, Object> equipmentEfficiencyAnalyze(String userId, EquEffVo equEffVo) {
+//        Map<String, Object> result = new HashMap<>();
+//        List<String> mdcProductionIds = new ArrayList<>();
+//        if (StringUtils.isBlank(equEffVo.getProductionIds())) {
+//            mdcProductionIds.add(equEffVo.getProductionId());
+//        } else {
+//            mdcProductionIds.addAll(Arrays.asList(equEffVo.getProductionIds().split(",")));
+//        }
+//        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
+//        //鏁版嵁鏉冮檺杩囨护
+//        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
+//        List<MdcEquipment> equipmentList = mdcEquipmentService.findByProductionIds(allProductionIds);
+//        if (equipmentList != null && !equipmentList.isEmpty()) {
+//            List<String> equipmentIdList = equipmentList.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
+//            List<EquipmentEfficiencyAnalyzeDto> dataList = mdcEfficiencyReportMapper.equipmentEfficiencyAnalyze(equipmentIdList, equEffVo.getMonth());
+//            result.put("dataList", dataList);
+//            List<String> equipmentNameList = dataList.stream().map(EquipmentEfficiencyAnalyzeDto::getEquipmentId).collect(Collectors.toList());
+//            result.put("equipmentNameList", equipmentNameList);
+//        }
+//        return result;
+//    }
+//
+//    @Override
+//    public Map<String, Object> teamEquipmentEfficiencyAnalyze(String userId, EquEffVo equEffVo) {
+//        Map<String, Object> result = new HashMap<>();
+//        // 1. 澶勭悊鐢熶骇ID
+//        List<String> mdcProductionIds = StringUtils.isBlank(equEffVo.getProductionIds())
+//                ? Collections.singletonList(equEffVo.getProductionId())
+//                : Arrays.asList(equEffVo.getProductionIds().split(","));
+//
+//        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
+//        if (allProductionIds.isEmpty()) {
+//            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
+//        }
+//        //鏁版嵁鏉冮檺杩囨护
+//        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
+//        // 2. 鑾峰彇璁惧鍒楄〃
+//        List<MdcEquipment> equipmentList = StringUtils.isNotBlank(equEffVo.getTeamCodes())
+//                ? mdcEquipmentService.findByProIdsAndTeamCode(allProductionIds, Arrays.asList(equEffVo.getTeamCodes().split(",")))
+//                : mdcEquipmentService.findByProductionIds(allProductionIds);
+//
+//        if (equipmentList.isEmpty()) {
+//            return result;
+//        }
+//
+//        // 3. 鏁版嵁澶勭悊
+//        List<String> equipmentIdList = equipmentList.stream()
+//                .map(MdcEquipment::getEquipmentId)
+//                .collect(Collectors.toList());
+//
+//        List<TeamEquEffDto> dataList = mdcEfficiencyReportMapper
+//                .teamEquipmentEfficiencyAnalyze(equipmentIdList, equEffVo.getMonth());
+//
+//        if (dataList.isEmpty()) {
+//            return result;
+//        }
+//
+//        // 4. 鍒嗙粍璁$畻骞冲潎鍊�
+//        Map<String, TeamEquEffDto> grouped = dataList.stream()
+//                .collect(Collectors.groupingBy(
+//                        TeamEquEffDto::getTeamCode,
+//                        Collectors.collectingAndThen(
+//                                Collectors.toList(),
+//                                this::calculateAverages // 鎻愬彇璁$畻鏂规硶
+//                        )));
+//
+//        // 5. 瀛楀吀杞崲
+//        Map<String, String> dictMap = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_MDC_STAFF_TEAM)
+//                .stream()
+//                .collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
+//
+//        List<TeamEquEffDto> resultList = grouped.entrySet().stream()
+//                .map(entry -> buildResultDto(entry, dictMap))// 鎻愬彇鏋勫缓鏂规硶
+//                .sorted(Comparator.comparing(TeamEquEffDto::getUtilizationRate).reversed())
+//                .collect(Collectors.toList());
+//
+//        result.put("dataList", resultList);
+//        result.put("teamCodeList", resultList.stream()
+//                .map(TeamEquEffDto::getTeamCode)
+//                .collect(Collectors.toList()));
+//
+//        return result;
+//
+//    }
+//
+//    @Override
+//    public Map<String, Object> teamEfficiencyAnalyzeByMonth(String userId, EquEffVo equEffVo) {
+//        Map<String, Object> result = new HashMap<>();
+//
+//        // 1. 鏃ユ湡澶勭悊
+//        LocalDate now = LocalDate.now();
+//        Date start = DateUtils.toDate(now.plusMonths(-6).toString(), DateUtils.STR_DATE);
+//        Date end = DateUtils.toDate(now.plusMonths(-1).toString(), DateUtils.STR_DATE);
+//
+//        List<String> monthBetween = DateUtils.getMonthBetween(start, end);
+//        List<String> dateList = monthBetween.stream()
+//                .map(date -> date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�")
+//                .collect(Collectors.toList());
+//        result.put("dateList", dateList);
+//
+//        // 2. 鑾峰彇浜х嚎鏁版嵁
+//        List<MdcProduction> mdcProductions = mdcProductionService.findMdcPros(userId, equEffVo.getProductionId());
+//
+//        // 3. 鍒濆鍖栫粨鏋滈泦
+//        List<TeamEquEffMonthDto> utilizationRateList = new ArrayList<>();
+//        List<TeamEquEffMonthDto> shiftUtilizationRateList = new ArrayList<>();
+//        List<TeamEquEffMonthDto> amendUtilizationRateList = new ArrayList<>();
+//
+//        // 4. 澶勭悊姣忎釜浜х嚎
+//        mdcProductions.forEach(mdcProduction -> {
+//            // 4.1 鑾峰彇涓嬬骇浜х嚎骞惰繃婊�
+//            List<String> allProductionIds = mdcProductionService.recursionChildren(mdcProduction.getId());
+//            // 鏁版嵁鏉冮檺杩囨护
+//            allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
+//            // 4.2 鑾峰彇璁惧鍒楄〃
+//            List<MdcEquipment> equipmentList = mdcEquipmentService.findByProductionIds(allProductionIds);
+//            if (equipmentList == null || equipmentList.isEmpty()) {
+//                return;
+//            }
+//            //鎻愬彇id闆嗗悎
+//            List<String> equipmentIdList = equipmentList.stream()
+//                    .map(MdcEquipment::getEquipmentId)
+//                    .collect(Collectors.toList());
+//
+//            TeamEquEffMonthDto urDto = new TeamEquEffMonthDto();
+//            TeamEquEffMonthDto surDto = new TeamEquEffMonthDto();
+//            TeamEquEffMonthDto aurDto = new TeamEquEffMonthDto();
+//            urDto.setProductionName(mdcProduction.getProductionName());
+//            surDto.setProductionName(mdcProduction.getProductionName());
+//            aurDto.setProductionName(mdcProduction.getProductionName());
+//            List<TeamEquEffMonthChildDto> urDataList = new ArrayList<>();
+//            List<TeamEquEffMonthChildDto> surDataList = new ArrayList<>();
+//            List<TeamEquEffMonthChildDto> aurDataList = new ArrayList<>();
+//
+//            monthBetween.forEach(date -> {
+//                TeamEquEffMonthChildDto urCDto = new TeamEquEffMonthChildDto();
+//                TeamEquEffMonthChildDto surCDto = new TeamEquEffMonthChildDto();
+//                TeamEquEffMonthChildDto aurCDto = new TeamEquEffMonthChildDto();
+//                String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
+//                urCDto.setMonth(month);
+//                surCDto.setMonth(month);
+//                aurCDto.setMonth(month);
+//                List<TeamEquEffDto> dataList = mdcEfficiencyReportMapper.teamEquipmentEfficiencyAnalyze(equipmentIdList, date.replaceAll("-", ""));
+//                if (dataList != null && !dataList.isEmpty()) {
+//                    // 璁$畻骞冲潎鍊�
+//                    BigDecimal ur = dataList.stream()
+//                            .map(TeamEquEffDto::getUtilizationRate)
+//                            .reduce(BigDecimal.ZERO, BigDecimal::add)
+//                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
+//                    //鍒╃敤鐜�
+//                    urCDto.setUtilizationRate(ur);
+//                    //鐝鍒╃敤鐜�
+//                    BigDecimal sur = dataList.stream()
+//                            .map(TeamEquEffDto::getShiftUtilizationRate)
+//                            .reduce(BigDecimal.ZERO, BigDecimal::add)
+//                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
+//                    surCDto.setUtilizationRate(sur);
+//                    //鍘婚櫎鏁呴殰24灏忔椂鍒╃敤鐜�
+//                    BigDecimal aur = dataList.stream()
+//                            .map(TeamEquEffDto::getAmendUtilizationRate)
+//                            .reduce(BigDecimal.ZERO, BigDecimal::add)
+//                            .divide(BigDecimal.valueOf(dataList.size()), 2, RoundingMode.HALF_UP);
+//                    aurCDto.setUtilizationRate(aur);
+//                }
+//                urDataList.add(urCDto);
+//                surDataList.add(surCDto);
+//                aurDataList.add(aurCDto);
+//            });
+//            urDto.setDataList(urDataList);
+//            surDto.setDataList(surDataList);
+//            aurDto.setDataList(aurDataList);
+//            utilizationRateList.add(urDto);
+//            shiftUtilizationRateList.add(surDto);
+//            amendUtilizationRateList.add(aurDto);
+//        });
+//        result.put("utilizationRateList", utilizationRateList);
+//        result.put("shiftUtilizationRateList", shiftUtilizationRateList);
+//        result.put("amendUtilizationRateList", amendUtilizationRateList);
+//        return result;
+//    }
+//
+//    @Override
+//    public Map<String, Object> comprehensiveRateAnalyze(String userId, EquEffVo vo) {
+//        Map<String, Object> result = new HashMap<>();
+//        // 1. 鏃ユ湡澶勭悊
+//        LocalDate now = LocalDate.now();
+//        Date start = DateUtils.toDate(now.plusMonths(-12).toString(), DateUtils.STR_DATE);
+//        Date end = DateUtils.toDate(now.plusMonths(-1).toString(), DateUtils.STR_DATE);
+//
+//        List<String> monthBetween = DateUtils.getMonthBetween(start, end);
+//        List<String> dateList = monthBetween.stream()
+//                .map(date -> date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�")
+//                .collect(Collectors.toList());
+//        result.put("dateList", dateList);
+//
+//        // 1. 澶勭悊鐢熶骇ID
+//        List<String> mdcProductionIds = StringUtils.isBlank(vo.getProductionIds())
+//                ? Collections.singletonList(vo.getProductionId())
+//                : Arrays.asList(vo.getProductionIds().split(","));
+//
+//        List<String> allProductionIds = mdcProductionService.findChildren(mdcProductionIds);
+//        if (allProductionIds.isEmpty()) {
+//            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
+//        }
+//        //鏁版嵁鏉冮檺杩囨护
+//        allProductionIds = mdcProductionService.findProIdsByUId(userId, allProductionIds);
+//        // 2. 鑾峰彇璁惧鍒楄〃
+//        List<MdcEquipment> equipmentList = StringUtils.isNotBlank(vo.getEquipmentType())
+//                ? mdcEquipmentService.findByProIdsAndType(allProductionIds, Arrays.asList(vo.getEquipmentType().split(",")))
+//                : mdcEquipmentService.findByProductionIds(allProductionIds);
+//
+//        if (equipmentList.isEmpty()) {
+//            return result;
+//        }
+//
+//        // 3. 鏁版嵁澶勭悊
+//        List<String> equipmentIdList = equipmentList.stream()
+//                .map(MdcEquipment::getEquipmentId)
+//                .collect(Collectors.toList());
+//        String startStr = monthBetween.get(0).replaceAll("-", "");
+//        String endStr = monthBetween.get(monthBetween.size() - 1).replaceAll("-", "");
+//        List<ComRateDto> comRateDtoList = mdcEfficiencyReportMapper.comprehensiveRateAnalyze(equipmentIdList, startStr, endStr);
+//        if (comRateDtoList.isEmpty()) {
+//            return result; // 鎻愬墠杩斿洖绌虹粨鏋�
+//        }
+//        List<ComRateDto> dataList = new ArrayList<>();
+//        Map<String, ComRateDto> map = comRateDtoList.stream().collect(Collectors.toMap(ComRateDto::getTheMonth, comRateDto -> comRateDto));
+//        monthBetween.forEach(date -> {
+//            String d = date.replaceAll("-", "");
+//            String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
+//            if (map.containsKey(d)) {
+//                ComRateDto comRateDto = map.get(d);
+//                comRateDto.setTheMonth(month);
+//                comRateDto.setUtilizationRate(comRateDto.getUtilizationRate().setScale(2, RoundingMode.HALF_UP));
+//                comRateDto.setShiftUtilizationRate(comRateDto.getShiftUtilizationRate() != null ? comRateDto.getShiftUtilizationRate().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO);
+//                comRateDto.setAmendUtilizationRate(comRateDto.getAmendUtilizationRate().setScale(2, RoundingMode.HALF_UP));
+//                comRateDto.setProcessLong(comRateDto.getProcessLong().divide(new BigDecimal("3600"), 2, RoundingMode.HALF_UP));
+//                dataList.add(comRateDto);
+//            } else {
+//                ComRateDto comRateDto = new ComRateDto();
+//                comRateDto.setTheMonth(month);
+//                dataList.add(comRateDto);
+//            }
+//        });
+//        result.put("dataList", dataList);
+//
+//        if (StringUtils.isNotBlank(vo.getShiftId())) {
+//            List<MdcShiftSub> shiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getShiftId, vo.getShiftId()));
+//            if (shiftSubList == null || shiftSubList.isEmpty()) {
+//                return result;
+//            }
+//            List<String> shiftSubNameList = shiftSubList.stream().map(MdcShiftSub::getShiftSubName).collect(Collectors.toList());
+//            result.put("shiftSubList", shiftSubNameList);
+//
+//            List<ComShiftRateDto> comShiftRateDtoList = mdcEfficiencyReportMapper.comprehensiveShiftRateAnalyze(equipmentIdList, startStr, endStr, vo.getShiftId());
+//            Map<String, List<ComShiftRateDto>> groupMap;
+//            if (comShiftRateDtoList != null && !comShiftRateDtoList.isEmpty()) {
+//                groupMap = comShiftRateDtoList.stream().collect(Collectors.groupingBy(ComShiftRateDto::getShiftSub));
+//            } else {
+//                groupMap = new HashMap<>();
+//            }
+//            List<ComShiftDto> shiftDataList = new ArrayList<>();
+//            shiftSubList.forEach(mdcShiftSub -> {
+//                ComShiftDto comShiftDto = new ComShiftDto();
+//                comShiftDto.setShiftSubName(mdcShiftSub.getShiftSubName());
+//                if (groupMap.containsKey(mdcShiftSub.getId())) {
+//                    List<ComShiftRateDto> csrd = groupMap.get(mdcShiftSub.getId());
+//                    Map<String, ComShiftRateDto> collect = csrd.stream().collect(Collectors.toMap(ComShiftRateDto::getTheMonth, comShiftRateDto -> comShiftRateDto));
+//                    List<ComShiftChildDto> comShiftChildDtoList = new ArrayList<>();
+//                    monthBetween.forEach(date -> {
+//                        String d = date.replaceAll("-", "");
+//                        String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
+//                        if (collect.containsKey(d)) {
+//                            ComShiftRateDto comShiftRateDto = collect.get(d);
+//                            ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
+//                            comShiftChildDto.setMonth(month);
+//                            comShiftChildDto.setUtilizationRate(comShiftRateDto.getUtilizationRate().setScale(2, RoundingMode.HALF_UP));
+//                            comShiftChildDtoList.add(comShiftChildDto);
+//                        } else {
+//                            ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
+//                            comShiftChildDto.setMonth(month);
+//                            comShiftChildDtoList.add(comShiftChildDto);
+//                        }
+//                    });
+//                    comShiftDto.setDataList(comShiftChildDtoList);
+//                } else {
+//                    List<ComShiftChildDto> comShiftChildDtoList = new ArrayList<>();
+//                    monthBetween.forEach(date -> {
+//                        String month = date.substring(date.lastIndexOf("-") + 1).replaceFirst("^0*", "") + "鏈�";
+//                        ComShiftChildDto comShiftChildDto = new ComShiftChildDto();
+//                        comShiftChildDto.setMonth(month);
+//                        comShiftChildDtoList.add(comShiftChildDto);
+//                    });
+//                    comShiftDto.setDataList(comShiftChildDtoList);
+//                }
+//                shiftDataList.add(comShiftDto);
+//            });
+//
+//            result.put("shiftDataList", shiftDataList);
+//        }
+//
+//        return result;
+//    }
 
     // 鎻愬彇鐨勫钩鍧囧�艰绠楁柟娉�
     private TeamEquEffDto calculateAverages(List<TeamEquEffDto> items) {
@@ -2170,9 +2164,9 @@
                     mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong());
                     mdcEfficiencyResultDto.setWaitLong(efficiencyDto.getWaitLong());
                     mdcEfficiencyResultDto.setCloseLong(efficiencyDto.getCloseLong());
-                    mdcEfficiencyResultDto.setFaultLong(efficiencyDto.getFaultLong());
-                    mdcEfficiencyResultDto.setFaultRate(efficiencyDto.getFaultRate());
-                    mdcEfficiencyResultDto.setRemoveFaultRunLong(efficiencyDto.getRemoveFaultRunLong());
+//                    mdcEfficiencyResultDto.setFaultLong(efficiencyDto.getFaultLong());
+//                    mdcEfficiencyResultDto.setFaultRate(efficiencyDto.getFaultRate());
+//                    mdcEfficiencyResultDto.setRemoveFaultRunLong(efficiencyDto.getRemoveFaultRunLong());
                     long rate = efficiencyDto.getUtilizationRate().multiply(new BigDecimal("100")).longValue();
                     for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                         if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) {
@@ -2190,9 +2184,9 @@
             mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0"));
             mdcEfficiencyResultDto.setWaitLong(new BigDecimal("0"));
             mdcEfficiencyResultDto.setCloseLong(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setFaultLong(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setFaultRate(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setRemoveFaultRunLong(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setFaultLong(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setFaultRate(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setRemoveFaultRunLong(new BigDecimal("0"));
             for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                 if (0 >= mdcUtilizationRate.getMinimumRange() && 0 < mdcUtilizationRate.getMaximumRange()) {
                     mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
@@ -2208,9 +2202,9 @@
             mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0"));
             mdcEfficiencyResultDto.setWaitLong(new BigDecimal("0"));
             mdcEfficiencyResultDto.setCloseLong(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setFaultLong(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setFaultRate(new BigDecimal("0"));
-            mdcEfficiencyResultDto.setRemoveFaultRunLong(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setFaultLong(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setFaultRate(new BigDecimal("0"));
+//            mdcEfficiencyResultDto.setRemoveFaultRunLong(new BigDecimal("0"));
             for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
                 if (0 >= mdcUtilizationRate.getMinimumRange() && 0 < mdcUtilizationRate.getMaximumRange()) {
                     mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
@@ -2224,9 +2218,9 @@
         efficiencyResultDto.setOpenLong(efficiencyResultDto.getOpenLong().add(mdcEfficiencyResultDto.getOpenLong()));
         efficiencyResultDto.setWaitLong(efficiencyResultDto.getWaitLong().add(mdcEfficiencyResultDto.getWaitLong()));
         efficiencyResultDto.setCloseLong(efficiencyResultDto.getCloseLong().add(mdcEfficiencyResultDto.getCloseLong()));
-        efficiencyResultDto.setFaultLong(efficiencyResultDto.getFaultLong().add(mdcEfficiencyResultDto.getFaultLong()));
-        efficiencyResultDto.setFaultRate(efficiencyResultDto.getFaultRate().add(mdcEfficiencyResultDto.getFaultRate()));
-        efficiencyResultDto.setRemoveFaultRunLong(efficiencyResultDto.getRemoveFaultRunLong().add(mdcEfficiencyResultDto.getRemoveFaultRunLong()));
+//        efficiencyResultDto.setFaultLong(efficiencyResultDto.getFaultLong().add(mdcEfficiencyResultDto.getFaultLong()));
+//        efficiencyResultDto.setFaultRate(efficiencyResultDto.getFaultRate().add(mdcEfficiencyResultDto.getFaultRate()));
+//        efficiencyResultDto.setRemoveFaultRunLong(efficiencyResultDto.getRemoveFaultRunLong().add(mdcEfficiencyResultDto.getRemoveFaultRunLong()));
         return mdcEfficiencyResultDto;
     }
 

--
Gitblit v1.9.3