From c642e468df7f88cdd33d7b5417dd500ee3850813 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 08 七月 2024 11:05:58 +0800
Subject: [PATCH] 调整标准加工时间和加工数量维护功能

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
index 348d6b2..0bc60f5 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
@@ -8,7 +8,6 @@
 import org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency;
-import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration;
 import org.jeecg.modules.mdc.mapper.MdcOverallEquipmentEfficiencyMapper;
 import org.jeecg.modules.mdc.service.*;
 import org.jeecg.modules.mdc.util.DateUtils;
@@ -21,6 +20,7 @@
 import java.math.RoundingMode;
 import java.time.YearMonth;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -88,7 +88,6 @@
             }
         }
         // 鑾峰彇璁惧鍒楄〃
-//        List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198"));
         List<MdcEquipment> equipmentList = mdcEquipmentService.list();
         for (MdcEquipment mdcEquipment : equipmentList) {
             String equipmentId = mdcEquipment.getEquipmentId();
@@ -105,10 +104,15 @@
             if (shiftSubIdList != null && !shiftSubIdList.isEmpty()) {
                 String shift = String.join(",", shiftSubIdList);
                 mdcOverallEquipmentEfficiency.setShift(shift);
+            } else {
+                mdcOverallEquipmentEfficiency.setShift("鏃�");
             }
 
-            BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate);
-            mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount);
+            if (StringUtils.isEmpty(mdcOverallEquipmentEfficiency.getShift())) {
+                mdcOverallEquipmentEfficiency.setShiftTimeCount(BigDecimal.ZERO);
+            } else {
+                mdcOverallEquipmentEfficiency.setShiftTimeCount(new BigDecimal("8"));
+            }
 
             // 璁$畻鍔犵彮鏃堕棿
             BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(equipmentId, validDate);
@@ -119,7 +123,7 @@
             mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount);
 
             // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓)
-            mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().add(overtime));
+            mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).add(overtime));
 
             // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓)
             BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN);
@@ -155,7 +159,10 @@
              */
             // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration
             // 璐熻嵎鏃堕棿(鍒嗛挓)
-            BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
+            BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration).add(overtime);
+            if (loadTime.compareTo(BigDecimal.ZERO) < 0) {
+                loadTime = BigDecimal.ZERO;
+            }
             mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP));
 
             // 鏃堕棿寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
@@ -169,17 +176,18 @@
                 mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate);
             }
 
+            BigDecimal processQuantity;
             // 鍔犲伐闆朵欢鏁�(浠�)  processQuantity
-            BigDecimal processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate);
+            if ("FANUC".equals(mdcEquipment.getDriveType())) {
+                processQuantity = processCountService.findCount(equipmentId, validDate);
+            } else {
+                processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate);
+            }
             mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity);
 
             // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓)
-            MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId));
-            if (mdcStandardProcessDuration != null) {
-                mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity));
-            } else {
-                mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO);
-            }
+            BigDecimal standardProcessDuration = mdcStandardProcessDurationService.findByEquipmentId(equipmentId, validDate);
+            mdcOverallEquipmentEfficiency.setStandardProcessDuration(standardProcessDuration);
 
             if ("FANUC".equals(mdcEquipment.getDriveType())) {
                 // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級
@@ -197,11 +205,14 @@
                 }
             } else {
                 // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
+                // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 鐝鍐呰繍琛屾椂闂�/涓昏酱杩愯鏃堕棿
                 if (loadTime.compareTo(BigDecimal.ZERO) != 0) {
-                    mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP));
+//                    mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP));
+                    mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE);
                 } else {
                     mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
                 }
+
             }
 
             // 搴熷搧鏁� unqualifiedQuantity
@@ -217,7 +228,7 @@
             // 璁惧缁煎悎鏁堢巼 = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼
             mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()).setScale(4, RoundingMode.HALF_UP));
             if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) {
-                mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE);
+                mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO);
             }
             result.add(mdcOverallEquipmentEfficiency);
 
@@ -264,6 +275,18 @@
         if (mdcOverallEquipmentEfficiencyVo.getEquipmentIdList() == null || mdcOverallEquipmentEfficiencyVo.getEquipmentIdList().isEmpty()) {
             return null;
         }
+        if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getEquipmentType())) {
+            mdcOverallEquipmentEfficiencyVo.setEquipmentTypeList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getEquipmentType().split(",")));
+        }
+        if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDeviceCategory())) {
+            mdcOverallEquipmentEfficiencyVo.setDeviceCategoryList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDeviceCategory().split(",")));
+        }
+        if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDeviceLevel())) {
+            mdcOverallEquipmentEfficiencyVo.setDeviceLevelList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDeviceLevel().split(",")));
+        }
+        if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDriveType())) {
+            mdcOverallEquipmentEfficiencyVo.setDriveTypeList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDriveType().split(",")));
+        }
         return this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo);
     }
 }

--
Gitblit v1.9.3