From 0d3e5cefe51ab44f28097839405c1a4c31466650 Mon Sep 17 00:00:00 2001
From: lius <Lius2225@163.com>
Date: 星期四, 07 九月 2023 14:40:49 +0800
Subject: [PATCH] 报警分析走势

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java |   72 +++++++++++++++++++++++++++++++++--
 1 files changed, 67 insertions(+), 5 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java
index 5c4e534..5631976 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java
@@ -1,21 +1,20 @@
 package org.jeecg.modules.mdc.service.impl;
 
-import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto;
+import org.jeecg.modules.mdc.dto.MdcAlarmDto;
+import org.jeecg.modules.mdc.dto.MdcAlarmTrendDto;
 import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
 import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService;
 import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService;
 import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
+import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.logging.Handler;
 
 /**
  * @author: LiuS
@@ -31,7 +30,7 @@
     private IMdcEquipmentService mdcEquipmentService;
 
     @Override
-    public List<MdcAlarmAnalyzeDto> alarmList(String userId, DayUtilizationRateContrastQueryVo vo) {
+    public List<MdcAlarmAnalyzeDto> alarmList(String userId, MdcAlarmAnalyzeQueryVo vo) {
         List<MdcAlarmAnalyzeDto> result = new ArrayList<>();
         List<String> equipmentIds = new ArrayList<>();
         if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
@@ -86,4 +85,67 @@
         }
         return result;
     }
+
+
+    @Override
+    public MdcAlarmTrendDto alarmTrend(String userId, MdcAlarmAnalyzeQueryVo vo) {
+        MdcAlarmTrendDto result = new MdcAlarmTrendDto();
+        List<String> equipmentIds = new ArrayList<>();
+        if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
+            if ("2".equals(vo.getTypeTree())) {
+                // 閮ㄩ棬灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
+            } else {
+                // 浜х嚎灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
+            }
+        } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
+            // 鍗曞彴璁惧淇℃伅
+            vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
+        } else {
+            // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+            if ("2".equals(vo.getTypeTree())) {
+                // 閮ㄩ棬灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
+            } else {
+                // 浜х嚎灞傜骇
+                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
+            }
+        }
+        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+            vo.setEquipmentIdList(equipmentIds);
+        }
+        if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) {
+            result.setEquipmentList(vo.getEquipmentIdList());
+            List<MdcAlarmDto> equipmentCountList = new ArrayList<>();
+            String startDate = DateUtils.format(DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00";
+            String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00";
+            for (String equipmentId : result.getEquipmentList()) {
+                MdcAlarmDto mdcAlarmDto = new MdcAlarmDto();
+                mdcAlarmDto.setKey(equipmentId);
+                Integer count = mdcEquipmentRunningSectionService.findAlarmCount(equipmentId, startDate, endDate, vo.getAlarmCode());
+                mdcAlarmDto.setCount(count);
+                equipmentCountList.add(mdcAlarmDto);
+            }
+            result.setEquipmentCountList(equipmentCountList);
+        }
+
+        Date start = DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE);
+        Date end = DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE);
+        List<String> dateList = DateUtils.getDatesStringLists(start, end);
+        result.setDateList(dateList);
+        List<String> datesStringList = DateUtils.getDatesStringList(start, end);
+        List<MdcAlarmDto> dateCountList = new ArrayList<>();
+        for (String date : datesStringList) {
+            MdcAlarmDto mdcAlarmDto = new MdcAlarmDto();
+            mdcAlarmDto.setKey(DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE), DateUtils.STR_MMDD));
+            String startDate = DateUtils.format(DateUtils.toDate(date, DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00";
+            String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(date, DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00";
+            Integer count = mdcEquipmentRunningSectionService.findAlarmCountByDate(startDate, endDate, vo);
+            mdcAlarmDto.setCount(count);
+            dateCountList.add(mdcAlarmDto);
+        }
+        result.setDateCountList(dateCountList);
+        return result;
+    }
 }

--
Gitblit v1.9.3