From b7eab0dfd01f691efa10980aebc872fa872cb8ea Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期三, 30 七月 2025 14:50:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceImpl.java |   31 +++++++--------
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java                  |    8 ++--
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java  |   25 +++---------
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeController.java    |    7 ++-
 4 files changed, 30 insertions(+), 41 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeController.java
index ae4d7c1..4c1dfcc 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeController.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.mdc.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
@@ -73,6 +74,9 @@
         if (StringUtils.isBlank(mdcDowntime.getEquipmentIds())) {
             return Result.error("鏈�夋嫨璁惧锛岃鎺掓煡");
         }
+        if (CollectionUtils.isEmpty(mdcDowntime.getDateList())) {
+            return Result.error("鏈�夋嫨鏃ユ湡锛岃鎺掓煡");
+        }
         boolean flag = mdcDowntimeService.saveDowntime(mdcDowntime);
         return flag ? Result.ok("娣诲姞鎴愬姛") : Result.error("娣诲姞澶辫触");
     }
@@ -87,9 +91,6 @@
     @ApiOperation(value = "寰呮満鍋滄満琛�-缂栬緫", notes = "寰呮満鍋滄満琛�-缂栬緫")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<?> edit(@RequestBody MdcDowntime mdcDowntime) {
-//        if (mdcDowntime.getReasonId() != null) {
-//            mdcDowntime.setStatus(CommonConstant.DOWNTIME_STATUS_1);
-//        }
         mdcDowntimeService.updateById(mdcDowntime);
         return Result.OK("缂栬緫鎴愬姛!");
     }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java
index 1aff187..41d8523 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java
@@ -2,19 +2,16 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
-import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
-import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 寰呮満鍋滄満琛�
@@ -71,4 +68,7 @@
     @TableField(exist = false)
     private String equipmentIds;
 
+    @TableField(exist = false)
+    private List<String> dateList;
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceImpl.java
index c7dff38..fd6a98a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceImpl.java
@@ -7,20 +7,18 @@
 import org.jeecg.modules.mdc.dto.MdcDowntimeDto;
 import org.jeecg.modules.mdc.entity.MdcDowntime;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
-import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration;
 import org.jeecg.modules.mdc.mapper.MdcDowntimeMapper;
 import org.jeecg.modules.mdc.service.IMdcDowntimeService;
 import org.jeecg.modules.mdc.service.IMdcEquipmentService;
-import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.MdcDowntimeVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -66,8 +64,6 @@
         List<MdcDowntime> mdcDowntimeList = this.baseMapper.findPlanTimeDuration(equipmentId, validDate, closeType);
         if (mdcDowntimeList != null && !mdcDowntimeList.isEmpty()) {
             for (MdcDowntime mdcDowntime : mdcDowntimeList) {
-//                Date startDate = DateUtils.toDate(mdcDowntime.getTheDate() + " " + mdcDowntime.getStartTime(), DateUtils.STR_DATE_TIME_SMALL);
-//                Date endDate = DateUtils.toDate(mdcDowntime.getTheDate() + " " + mdcDowntime.getEndTime(), DateUtils.STR_DATE_TIME_SMALL);
                 result = mdcDowntime.getDownLong() + result;
             }
         }
@@ -80,22 +76,25 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean saveDowntime(MdcDowntime mdcDowntime) {
-        boolean result = false;
         String[] equipmentIds = mdcDowntime.getEquipmentIds().split(",");
+        List<String> dateList = mdcDowntime.getDateList();
+        List<MdcDowntime> mdcDowntimeList = new ArrayList<>();
         for (String equipmentId : equipmentIds) {
-            MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId);
-            MdcDowntime downtime = new MdcDowntime();
-            BeanUtils.copyProperties(mdcDowntime, downtime);
-            downtime.setEquipmentId(mdcEquipment.getEquipmentId());
-            downtime.setEquipmentName(mdcEquipment.getEquipmentName());
-            boolean b = super.save(downtime);
-            if (b) {
-                result = true;
+            for (String date : dateList) {
+//                this.baseMapper.delete(new LambdaQueryWrapper<MdcDowntime>().eq(MdcDowntime::getTheDate, date).eq(MdcDowntime::getEquipmentId, equipmentId));
+                MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId);
+                MdcDowntime downtime = new MdcDowntime();
+                BeanUtils.copyProperties(mdcDowntime, downtime);
+                downtime.setEquipmentId(mdcEquipment.getEquipmentId());
+                downtime.setEquipmentName(mdcEquipment.getEquipmentName());
+                downtime.setTheDate(date);
+                mdcDowntimeList.add(downtime);
             }
         }
-
-        return result;
+        this.saveBatch(mdcDowntimeList);
+        return true;
     }
 
     private List<String> getEquipmentIds(String userId, MdcDowntimeVo mdcDowntimeVo) {
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
index f6a7c9b..c60c56d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -204,21 +204,20 @@
                     int actuateLong = loadLong - noPlanCloseLong;
                     mdcOeeInfo.setActuateLong(actuateLong);
                     // 鏃堕棿寮�鍔ㄧ巼 --- 寮�鍔ㄦ椂闂�/璐熻嵎鏃堕棿
-                    BigDecimal timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
-                    mdcOeeInfo.setTimeActuationRate(timeActuationRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : timeActuationRate);
+                    BigDecimal timeActuationRate = BigDecimal.ZERO;
+                    if (loadLong == 0) {
+                        mdcOeeInfo.setTimeActuationRate(timeActuationRate);
+                    } else {
+                        timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+                        mdcOeeInfo.setTimeActuationRate(timeActuationRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : timeActuationRate);
+                    }
                     // 鏈夋晥杩愯鏃堕棿 --- 鎸夐渶姹傜淮鎶ら浂浠跺姞宸ユ�绘椂闀縷|绯荤粺涓昏酱璐熻浇鏃堕棿
                     Integer effectiveRunLong = 0;
-//                    Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate);
                     //鏌ヨ璁惧杩愯鏃堕棿
                     effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", ""));
                     if (effectiveRunLong == null) {
                         effectiveRunLong = 0;
                     }
-//                    if (totalProcessLong == 0) {
-//
-//                    } else {
-//                        effectiveRunLong = totalProcessLong;
-//                    }
                     mdcOeeInfo.setEffectiveRunLong(effectiveRunLong);
                     // 鎬ц兘寮�鍔ㄧ巼 --- 鏈夋晥杩愯鏃堕棿/寮�鍔ㄦ椂闂�
                     BigDecimal performanceRate = BigDecimal.ZERO;
@@ -227,16 +226,6 @@
                     }
                     mdcOeeInfo.setPerformanceRate(performanceRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : performanceRate);
                     // 鍔犲伐闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶�
-//                    Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate);
-//                    mdcOeeInfo.setProcessCount(processCount);
-//                    // 鍚堟牸闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶�
-//                    Integer passCount = mdcPartProcessInfoService.selectTotalPassCount(equipmentId, validDate);
-//                    mdcOeeInfo.setPassCount(passCount);
-//                    // 鍚堟牸鐜� --- 鍚堟牸鏁�/鍔犲伐鏁�
-//                    BigDecimal passRate = BigDecimal.ZERO;
-//                    if (processCount != 0 && passCount != 0) {
-//                        passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
-//                    }
                     // 鍔犲伐闆朵欢鏁伴噺
                     Integer processCount = mdcJcRcJobreportService.selectTotalProcessCount(equipmentId, validDate);
                     mdcOeeInfo.setProcessCount(processCount);

--
Gitblit v1.9.3