From a3cfd941f3ccb05906ecbe99e6993f96770b51ed Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 10 七月 2025 10:43:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 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 7499f8d..441a6a1 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
@@ -18,6 +18,7 @@
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -73,6 +74,7 @@
      * 璁$畻璁惧缁煎悎鏁堢巼OEE
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void runningOverallEquipmentEfficiency(String dateTime) {
         /*
             OEE = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼
@@ -89,14 +91,11 @@
         String validDate = YearMonth.now().minusMonths(1).toString();
         if (StringUtils.isNotBlank(dateTime)) {
             validDate = DateUtils.format(DateUtils.toDate(dateTime, "yyyyMM"), DateUtils.STR_YEAR_MONTH);
-            try {
-                if (validDate != null) {
-                    this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>().
-                            eq(MdcOverallEquipmentEfficiency::getValidDate, validDate));
-                }
-            } catch (Exception e) {
-                log.error("鍙傛暟鏍煎紡涓嶅", e);
-            }
+        }
+        try {
+            this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>().eq(MdcOverallEquipmentEfficiency::getValidDate, validDate));
+        } catch (Exception e) {
+            log.error("鍙傛暟鏍煎紡涓嶅", e);
         }
         // 鑾峰彇璁惧鍒楄〃
         List<MdcEquipment> equipmentList = mdcEquipmentService.list();
@@ -135,8 +134,11 @@
             BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(equipmentId, validDate);
             mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount);
 
+            // 璁$畻鐝鏁伴噺
+            BigDecimal shiftSubCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate);
+
             // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓)
-            mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).add(overtime));
+            mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(shiftSubCount).multiply(new BigDecimal("60")).add(overtime));
 
             // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓)
             BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN);
@@ -172,7 +174,7 @@
              */
             // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration
             // 璐熻嵎鏃堕棿(鍒嗛挓)
-            BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration).add(overtime);
+            BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration);
             if (loadTime.compareTo(BigDecimal.ZERO) < 0) {
                 loadTime = BigDecimal.ZERO;
             }
@@ -402,7 +404,7 @@
                 oeeStatisticsChartVo.setKey(mdcProduction.getProductionName());
                 BigDecimal oee = this.baseMapper.findAvgOee(date, equipmentTypeList, mdcProduction.getId());
                 if (oee != null) {
-                    oeeStatisticsChartVo.setValue(oee);
+                    oeeStatisticsChartVo.setValue(oee.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
                 }
                 result.add(oeeStatisticsChartVo);
             }

--
Gitblit v1.9.3