From afae558d8eb1832769b6621d0d9c30103f7fdd89 Mon Sep 17 00:00:00 2001
From: DYL0109 <dn18191638832@163.com>
Date: 星期五, 18 四月 2025 16:48:43 +0800
Subject: [PATCH] Merge pull request #70 from zhitan-cloud/wt_from_develop1.0

---
 zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java |   81 +++++++++++++++++++++++++---------------
 1 files changed, 51 insertions(+), 30 deletions(-)

diff --git a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java
index 3545c7d..b416f28 100644
--- a/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java
@@ -2,11 +2,12 @@
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.zhitan.alarm.domain.JkHistoryAlarm;
 import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO;
 import com.zhitan.alarm.domain.vo.AlarmAnalysisVO;
 import com.zhitan.alarm.mapper.HistoryAlarmMapper;
-import com.zhitan.alarm.services.IAlarmAnalyisisService;
+import com.zhitan.alarm.services.IAlarmAnalysisService;
 import com.zhitan.basicdata.domain.MeterImplement;
 import com.zhitan.basicdata.domain.SysEnergy;
 import com.zhitan.basicdata.mapper.MeterImplementMapper;
@@ -17,6 +18,7 @@
 import com.zhitan.consumptionanalysis.domain.vo.ChartData;
 import com.zhitan.consumptionanalysis.domain.vo.EnergyProportion;
 import com.zhitan.model.domain.EnergyIndex;
+import com.zhitan.model.domain.ModelNode;
 import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
 import com.zhitan.model.mapper.EnergyIndexMapper;
 import com.zhitan.model.mapper.ModelNodeMapper;
@@ -32,14 +34,14 @@
 import java.util.stream.Collectors;
 
 /**
- * description todu
+ * 鎶ヨ鍒嗘瀽瀹炵幇
  *
- * @author hmj
- * @date 2024-10-26 17:34
+ * @author
+ * @date
  */
 @Service
 @AllArgsConstructor
-public class AlarmAnalyisisServiceImpl implements IAlarmAnalyisisService {
+public class AlarmAnalyisisServiceImpl implements IAlarmAnalysisService {
 
     private final ModelNodeMapper modelNodeMapper;
     
@@ -50,6 +52,13 @@
     private final EnergyIndexMapper energyIndexMapper;
     
     private final SysEnergyMapper sysEnergyMapper;
+
+    /**
+     * 鏍规嵁鑺傜偣id鑾峰彇鎶ヨ鍒嗘瀽淇℃伅
+     *
+     * @param alarmAnalysisDTO
+     * @return
+     */
     @Override
     public AlarmAnalysisVO getByNodeId(AlarmAnalysisDTO alarmAnalysisDTO) {
         AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
@@ -171,31 +180,6 @@
         return alarmAnalysisVO;
     }
 
-
-    @Override
-    public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) {
-        AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
-        final String nodeId = alarmAnalysisDTO.getNodeId();
-        final DateTime beginOfMonth = DateUtil.beginOfMonth(new Date());
-        final DateTime endOfMonth = DateUtil.endOfMonth(new Date());
-        final DateTime beginOfYear = DateUtil.beginOfYear(new Date());
-        final DateTime endOfYear = DateUtil.endOfYear(new Date());
-
-        /**
-         * 鏌ヨ鐐逛綅涓庣敤鑳藉崟鍏冧俊鎭�
-         */
-        List<ModelNodeIndexInfo> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,null);
-        List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList());
-
-        Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth);
-        Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear);
-        
-        alarmAnalysisVO.setIndexCount(indexIds.size());
-        alarmAnalysisVO.setMonthCount(monthCount);
-        alarmAnalysisVO.setYearCount(yearCount);
-        return alarmAnalysisVO;
-    }
-
     private double format2Double(double averageEnergy) {
         // 鍒涘缓DecimalFormat瀵硅薄锛岃缃繚鐣欎袱浣嶅皬鏁�
         DecimalFormat df = new DecimalFormat("#.00");
@@ -204,4 +188,41 @@
         String formattedResult = df.format(averageEnergy);
         return Double.valueOf(formattedResult);
     }
+
+    /**
+     * 鑾峰彇鎶ヨ鍒嗘瀽缁熻淇℃伅
+     * @param alarmAnalysisDTO
+     * @return
+     */
+    @Override
+    public AlarmAnalysisVO getCountInfo(AlarmAnalysisDTO alarmAnalysisDTO) {
+
+        AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
+
+        ModelNode parentNode = modelNodeMapper.selectModelNodeById(alarmAnalysisDTO.getNodeId());
+        if(ObjectUtils.isEmpty(parentNode)){
+            return alarmAnalysisVO;
+        }
+
+        // 鏌ヨ妯″瀷涓嬬殑鐐逛綅鏁版嵁
+        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.getAllModelNodeIndexByAddress(parentNode.getModelCode(), parentNode.getAddress());
+        alarmAnalysisVO.setIndexCount(nodeIndexInfoList.size());
+        if (CollectionUtils.isEmpty(nodeIndexInfoList)) {
+            return alarmAnalysisVO;
+        }
+
+        // 鑾峰彇鏈堟姤璀︽暟銆佸勾鎶ヨ鏁�
+        List<String> indexIdList = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList());
+
+        DateTime beginOfMonth = DateUtil.beginOfMonth(new Date());
+        DateTime endOfMonth = DateUtil.endOfMonth(new Date());
+        DateTime beginOfYear = DateUtil.beginOfYear(new Date());
+        DateTime endOfYear = DateUtil.endOfYear(new Date());
+        Integer monthCount = historyAlarmMapper.selectCountByTime(beginOfMonth,endOfMonth, indexIdList);
+        Integer yearCount = historyAlarmMapper.selectCountByTime(beginOfYear,endOfYear, indexIdList);
+
+        alarmAnalysisVO.setMonthCount(monthCount);
+        alarmAnalysisVO.setYearCount(yearCount);
+        return alarmAnalysisVO;
+    }
 }

--
Gitblit v1.9.3