From 2b8f91e31b512c2868dc5cc26edf5d5d1167c557 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 06 三月 2025 10:04:35 +0800
Subject: [PATCH] Merge branch 'master' of http://118.89.139.230:10101/r/fg_v2.0

---
 src/main/java/com/whyc/service/BattalarmDataService.java |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattalarmDataService.java b/src/main/java/com/whyc/service/BattalarmDataService.java
index 16a5e82..84811e9 100644
--- a/src/main/java/com/whyc/service/BattalarmDataService.java
+++ b/src/main/java/com/whyc/service/BattalarmDataService.java
@@ -22,6 +22,7 @@
 import com.whyc.util.ActionUtil;
 import com.whyc.util.MessageUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -43,6 +44,9 @@
     @Autowired
     private SubTablePageInfoService subService;
 
+    @Autowired
+    @Lazy
+    private StationInfService stationInfService;
 
     //鏌ヨ鎵�鏈夌殑鍛婅
     public Response getAll() {
@@ -916,6 +920,167 @@
 
     }
 
+    /**
+     * 杩欓噷闈㈢殑灞傜骇姣攇etByLevel鐨勫眰绾ц澶氫竴涓眰绾�,StationnName5,閫氳繃Map<String,levelMap>
+     * @param userId
+     * @return 杩斿洖鐨勭粨鏋勭ず渚嬩负:
+     * {
+     *     "1鍙风嚎": {
+     *         "level1":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level2":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level3":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level4":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         }
+     *     },
+     *     "2鍙风嚎": {
+     *         "level1":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level2":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level3":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         },
+     *         "level4":{
+     *             battAlarmCount: 0,
+     *             deviceAlarmCount: 0,
+     *             powerAlarmCount: 0
+     *         }
+     *     }
+     *
+     * 姝ラ:
+     * 1) 鏌ヨ鎵�鏈夌殑鍖哄幙
+     * 2) 鑾峰彇鍖呭惈鍛婅绾у埆,鍖哄幙鐨勭數姹犲垪琛�
+     * 3) 鏍规嵁鍖哄幙鍒嗙粍
+     *
+     * }
+     */
+    public Response getByLevelAndStationName5(int userId) {
+        //杩斿洖鐨勭粨鏋滅粨鏋勫垵濮嬪寲
+        Map<String,Map<String,AlarmCountDTO>> subwayLineLevelMap = new LinkedHashMap<>();
+        //鏌ヨ鎵�鏈夌殑鍖哄幙
+        List<String> stationName5List = (List<String>) stationInfService.searchAllStationName5(userId,null,null).getData();
+        List<BattalarmData> battAlarmListAll = getLevelListByUserId(userId);
+        List<DevalarmData> deviceAlarmListAll = devalarmDataMapper.getLevelListByUserId(userId);
+        List<PwrdevAlarm> powerAlarmListAll = pwrdevAlarmMapper.getLevelListByUserId(userId);
+
+        for (String stationName5 : stationName5List) {
+
+            Map<String,AlarmCountDTO> levelMap = new HashMap<>();
+            AlarmCountDTO alarmCount1 = new AlarmCountDTO();
+            AlarmCountDTO alarmCount2 = new AlarmCountDTO();
+            AlarmCountDTO alarmCount3 = new AlarmCountDTO();
+            AlarmCountDTO alarmCount4 = new AlarmCountDTO();
+
+            //鐢垫睜
+            List<BattalarmData> battAlarmList = battAlarmListAll.stream().filter(battalarmData -> battalarmData.getStationName5().equals(stationName5)).collect(Collectors.toList());
+            int battAlarmCountLevel1 = 0;
+            int battAlarmCountLevel2 = 0;
+            int battAlarmCountLevel3 = 0;
+            int battAlarmCountLevel4 = 0;
+            for (BattalarmData battalarmData : battAlarmList) {
+                Integer almLevel = battalarmData.getAlmLevel();
+                if(almLevel == 1){
+                    battAlarmCountLevel1++;
+                }
+                else if(almLevel == 2){
+                    battAlarmCountLevel2++;
+                }
+                else if(almLevel == 3){
+                    battAlarmCountLevel3++;
+                }
+                else if(almLevel == 4){
+                    battAlarmCountLevel4++;
+                }
+            }
+            alarmCount1.setBattAlarmCount(battAlarmCountLevel1);
+            alarmCount2.setBattAlarmCount(battAlarmCountLevel2);
+            alarmCount3.setBattAlarmCount(battAlarmCountLevel3);
+            alarmCount4.setBattAlarmCount(battAlarmCountLevel4);
+            //璁惧
+            List<DevalarmData> deviceAlarmList = deviceAlarmListAll.stream().filter(devalarmData -> devalarmData.getStationName5().equals(stationName5)).collect(Collectors.toList());
+            int deviceAlarmCountLevel1 = 0;
+            int deviceAlarmCountLevel2 = 0;
+            int deviceAlarmCountLevel3 = 0;
+            int deviceAlarmCountLevel4 = 0;
+            for (DevalarmData deviceAlarmData : deviceAlarmList) {
+                Integer almLevel = deviceAlarmData.getAlmLevel();
+                if(almLevel == 1){
+                    deviceAlarmCountLevel1++;
+                }
+                else if(almLevel == 2){
+                    deviceAlarmCountLevel2++;
+                }
+                else if(almLevel == 3){
+                    deviceAlarmCountLevel3++;
+                }
+                else if(almLevel == 4){
+                    deviceAlarmCountLevel4++;
+                }
+            }
+            alarmCount1.setDeviceAlarmCount(deviceAlarmCountLevel1);
+            alarmCount2.setDeviceAlarmCount(deviceAlarmCountLevel2);
+            alarmCount3.setDeviceAlarmCount(deviceAlarmCountLevel3);
+            alarmCount4.setDeviceAlarmCount(deviceAlarmCountLevel4);
+            //鐢垫簮
+            List<PwrdevAlarm> powerAlarmList = powerAlarmListAll.stream().filter(pwrdevAlarm -> pwrdevAlarm.getStationName5().equals(stationName5)).collect(Collectors.toList());
+            int powerAlarmCountLevel1 = 0;
+            int powerAlarmCountLevel2 = 0;
+            int powerAlarmCountLevel3 = 0;
+            int powerAlarmCountLevel4 = 0;
+            for (PwrdevAlarm powerAlarmData : powerAlarmList) {
+                Integer almLevel = powerAlarmData.getAlmLevel();
+                if(almLevel == 1){
+                    powerAlarmCountLevel1++;
+                }
+                else if(almLevel == 2){
+                    powerAlarmCountLevel2++;
+                }
+                else if(almLevel == 3){
+                    powerAlarmCountLevel3++;
+                }
+                else if(almLevel == 4){
+                    powerAlarmCountLevel4++;
+                }
+            }
+            alarmCount1.setPowerAlarmCount(powerAlarmCountLevel1);
+            alarmCount2.setPowerAlarmCount(powerAlarmCountLevel2);
+            alarmCount3.setPowerAlarmCount(powerAlarmCountLevel3);
+            alarmCount4.setPowerAlarmCount(powerAlarmCountLevel4);
+
+            levelMap.put("level1",alarmCount1);
+            levelMap.put("level2",alarmCount2);
+            levelMap.put("level3",alarmCount3);
+            levelMap.put("level4",alarmCount4);
+            subwayLineLevelMap.put(stationName5,levelMap);
+
+        }
+        return new Response().set(1,subwayLineLevelMap);
+
+    }
+
     private List<BattalarmData> getLevelListByUserId(int userId) {
         return mapper.getLevelListByUserId(userId);
     }

--
Gitblit v1.9.1