From 212eb8010c66c321dcdfc617725b37885573a44e Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期三, 02 七月 2025 21:20:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

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

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentFaultInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentFaultInfoServiceImpl.java
index 83fa48f..fc76c70 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentFaultInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentFaultInfoServiceImpl.java
@@ -1,8 +1,12 @@
 package org.jeecg.modules.mdc.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
-import org.jeecg.modules.mdc.entity.*;
+import org.jeecg.modules.mdc.entity.Equipment;
+import org.jeecg.modules.mdc.entity.MdcEquipmentFaultInfo;
+import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
+import org.jeecg.modules.mdc.entity.MdcSystemParameters;
 import org.jeecg.modules.mdc.mapper.MdcEquipmentFaultInfoMapper;
 import org.jeecg.modules.mdc.service.IEquipmentService;
 import org.jeecg.modules.mdc.service.IMdcEquipmentFaultInfoService;
@@ -12,17 +16,12 @@
 import org.jeecg.modules.mdc.vo.EquFaultRecord;
 import org.jeecg.modules.mdc.vo.TimeInterval;
 import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.Instant;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -177,6 +176,39 @@
                     }
                     map.put(key, equFaultRecords);
                 });
+            } else {
+                map.forEach((key, value1) -> {
+                    MdcEquipmentFaultInfo equFaultRecords = value1;
+                    List<MdcEquipmentRunningSection> mdcEquipmentRunningSections = mdcEquipmentRunningSectionService.listEquipmentRunningSectionRun(key, start.getTime(), end.getTime());
+                    if (mdcEquipmentRunningSections != null && !mdcEquipmentRunningSections.isEmpty()) {
+                        // 鏃堕棿淇
+                        if (mdcEquipmentRunningSections.get(0).getStartTime().before(start)) {
+                            mdcEquipmentRunningSections.get(0).setStartTime(start);
+                        }
+                        if (mdcEquipmentRunningSections.size() > 1) {
+                            if (mdcEquipmentRunningSections.get(mdcEquipmentRunningSections.size() - 1).getEndTime().after(end)) {
+                                mdcEquipmentRunningSections.get(mdcEquipmentRunningSections.size() - 1).setEndTime(end);
+                            }
+                        } else {
+                            if (mdcEquipmentRunningSections.get(0).getEndTime().after(end)) {
+                                mdcEquipmentRunningSections.get(0).setEndTime(end);
+                            }
+                        }
+                        List<MdcEquipmentRunningSection> collect = mdcEquipmentRunningSections.stream().filter(mdcEquipmentRunningSection -> mdcEquipmentRunningSection.getStatus() == 3).collect(Collectors.toList());
+
+                        if (!collect.isEmpty()) {
+                            long totalProcessingTime = 0;
+                            for (MdcEquipmentRunningSection mdcEquipmentRunningSection : collect) {
+                                totalProcessingTime += ChronoUnit.SECONDS.between(DateUtils.convertToLocalDateTime(mdcEquipmentRunningSection.getStartTime()), DateUtils.convertToLocalDateTime(mdcEquipmentRunningSection.getEndTime()));
+                            }
+                            equFaultRecords.setRemoveFaultRunLong((int) totalProcessingTime);
+                            // 璁$畻鍘婚櫎鏁呴殰鏃堕暱鐨勫埄鐢ㄧ巼
+                            BigDecimal removeFaultRate = new BigDecimal(totalProcessingTime).divide(new BigDecimal("864"), 2, RoundingMode.HALF_UP);
+                            equFaultRecords.setRemoveFaultRate(removeFaultRate);
+                        }
+                    }
+                    map.put(key, equFaultRecords);
+                });
             }
             if (!map.isEmpty()) {
                 this.saveBatch(new ArrayList<>(map.values()));

--
Gitblit v1.9.3