From 078e94627c72eb6cada22a6e5478b003cff57f4c Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 31 十二月 2024 11:11:24 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java |   87 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 70 insertions(+), 17 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
index 105c0e6..30a29d3 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -5,6 +5,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.mdc.dto.EquipmentMachingDto;
+import org.jeecg.modules.mdc.dto.MdcAlarmListDto;
 import org.jeecg.modules.mdc.dto.MdcEquipmentRunningSectionDto;
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.mapper.MdcEquipmentRunningSectionMapper;
@@ -48,6 +49,9 @@
     @Resource
     private IEquipmentRunningTraceService equipmentRunningTraceService;
 
+    @Resource
+    private IMdcAlarmInfoService mdcAlarmInfoService;
+
     @Override
     public List<MdcEquipmentRunningSectionDto> logList(MdcEquipmentRunningSectionVo equipmentRunningSectionVo) {
 
@@ -59,9 +63,9 @@
         List<MdcEquipmentRunningSection> running = loadEquipmentRunningTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr());
         //鏌ヨ鎶ヨ鏁版嵁
         List<MdcEquipmentRunningSection> errs = loadEquipmentErrorTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr());
+        Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId()));
         if (!running.isEmpty()) {
             MdcEquipmentRunningSectionDto dto;
-            Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId()));
             String tableName = "";
             Boolean isTableExist = false;
             if (equip != null) {
@@ -73,7 +77,7 @@
             for (MdcEquipmentRunningSection entity : running) {
                 dto = new MdcEquipmentRunningSectionDto();
                 BeanUtils.copyProperties(entity, dto);
-                if (entity.getStatus() == 3 && StringUtils.isBlank(entity.getSequenceNumber()) && isTableExist) {
+                if (entity.getStatus() == 3 && StringUtils.isBlank(entity.getSequenceNumber()) && isTableExist && !"ZUOLAN".equals(equip.getDrivetype())) {
                     List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(tableName, entity.getStartTime(), entity.getEndTime());
                     if (esList != null && esList.size() > 1) {
                         dto.setSequenceNumber(esList.get(0).getSequencenumber());
@@ -87,21 +91,56 @@
             for (MdcEquipmentRunningSection entity : errs) {
                 dto = new MdcEquipmentRunningSectionDto();
                 BeanUtils.copyProperties(entity, dto);
-                Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet();
-                if (entity.getStatus() == 22 && set != null && !set.isEmpty()) {
-                    Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator();
-                    //鑾峰彇鎶ヨ缂栧彿鐩稿悓鐨勬姤璀︿俊鎭�
-                    while (iterator.hasNext()) {
-                        TmpEquipmentAlarm next = iterator.next();
-                        if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) {
-                            dto.setAlarmContent(next.getAlarmContent());
+                if (entity.getStatus() == 22) {
+                    if (equip != null) {
+                        List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, equip.getDrivetype()).eq(MdcAlarmInfo::getAlarmCode, entity.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0));
+                        if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) {
+                            dto.setAlarmContent(mdcAlarmInfo.get(0).getAlarmContent());
                         }
                     }
                 }
+//                Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet();
+//                if (entity.getStatus() == 22 && set != null && !set.isEmpty()) {
+//                    Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator();
+//                    //鑾峰彇鎶ヨ缂栧彿鐩稿悓鐨勬姤璀︿俊鎭�
+//                    while (iterator.hasNext()) {
+//                        TmpEquipmentAlarm next = iterator.next();
+//                        if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) {
+//                            dto.setAlarmContent(next.getAlarmContent());
+//                        }
+//                    }
+//                }
                 dtos.add(dto);
             }
         }
-        return dtos;
+
+        List<MdcEquipmentRunningSectionDto> result = new ArrayList<>();
+        //鍚堝苟鐩稿悓鐘舵�佹暟鎹�
+        for (int i = 0; i < dtos.size() - 1; i++) {
+            MdcEquipmentRunningSectionDto mdcEquipmentRunningSectionDto = dtos.get(i);
+            MdcEquipmentRunningSectionDto next = dtos.get(i + 1);
+            if (mdcEquipmentRunningSectionDto.getStatus().equals(next.getStatus()) && mdcEquipmentRunningSectionDto.getEndTime().equals(next.getStartTime())) {
+                MdcEquipmentRunningSectionDto equipmentRunningSectionDto = new MdcEquipmentRunningSectionDto();
+                BeanUtils.copyProperties(mdcEquipmentRunningSectionDto, equipmentRunningSectionDto);
+                equipmentRunningSectionDto.setEndTime(next.getEndTime());
+                equipmentRunningSectionDto.setDuration(mdcEquipmentRunningSectionDto.getDuration() + next.getDuration());
+                result.add(equipmentRunningSectionDto);
+                i++;
+            } else {
+                result.add(mdcEquipmentRunningSectionDto);
+            }
+        }
+        if (dtos.size() > 1) {
+            MdcEquipmentRunningSectionDto a = dtos.get(dtos.size() - 2);
+            MdcEquipmentRunningSectionDto b = dtos.get(dtos.size() - 1);
+            if (!a.getStatus().equals(b.getStatus()) && a.getEndTime().equals(b.getStartTime())) {
+                result.add(dtos.get(dtos.size() - 1));
+            }
+        } else if (dtos.size() == 1){
+            result.addAll(dtos);
+        }
+
+        return result;
     }
 
     /**
@@ -480,9 +519,13 @@
             //鑾峰彇running杩愯鐨勬棩蹇楄褰�
             List<MdcEquipmentRunningSection> list = this.equipmentRunningTracesLog(equipment.getEquipmentid());
             if (list != null && !list.isEmpty()) {
-                List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙�
-                this.ergodicTrim(equipList);
-                super.saveBatch(equipList);
+                try {
+                    List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙�
+                    this.ergodicTrim(equipList);
+                    super.saveBatch(equipList);
+                } catch (Exception e) {
+                    log.error("娣诲姞绋嬪簭鍙峰嚭鐜板紓甯�:", e);
+                }
             }
             //鑾峰彇鎶ヨ鐨勬棩蹇楄褰�
             List<MdcEquipmentRunningSection> errorList = this.equipmentRunningTracesErrorLog(equipment.getEquipmentid());
@@ -655,7 +698,7 @@
         //鏁村悎鍔犲伐鍜屽緟鏈烘椂闂村皬浜巒绉掔殑鏁版嵁
         erts = mergeLessMinTimeRecords(erts, null);
         List<MdcEquipmentRunningSection> running = mergeRunningTrace(erts);
-        if (running != null || !running.isEmpty()) {
+        if (running != null && !running.isEmpty()) {
             this.ergodicTrim(running);
         }
         return running;
@@ -689,6 +732,16 @@
     @Override
     public List<MdcEquipmentRunningSection> selectRunningData(String equipmentId, Date startDate, Date endDate) {
         return this.baseMapper.selectRunningData(equipmentId, startDate, endDate);
+    }
+
+    @Override
+    public List<MdcAlarmListDto> selectAlarmList(MdcAlarmAnalyzeQueryVo mdcAlarmAnalyzeQueryVo, String startDate, String endDate) {
+        return this.baseMapper.selectAlarmList(mdcAlarmAnalyzeQueryVo, startDate, endDate);
+    }
+
+    @Override
+    public List<Integer> getDataList(String equipmentId, Date date) {
+        return this.baseMapper.getDataList(equipmentId, date);
     }
 
     private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) {
@@ -915,9 +968,9 @@
                 ert.setStartTime(logList.get(i).getCollectTime());
                 ert.setEndTime(logList.get(i + 1).getCollectTime());
                 ert.setDuration(DateUtils.differentSecond(ert.getStartTime(), ert.getEndTime()));
-//                if (ert.getDuration() > 0) {
+
                 erts.add(ert);
-//                }
+
             } else {
                 long count = differentSecond / 86400;
                 if (count % 86400 > 0) {

--
Gitblit v1.9.3