From ea5be111f899db0af7356bbee88c07161875cc54 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期一, 16 六月 2025 19:12:46 +0800 Subject: [PATCH] 领导层首页-实时告警信息 --- src/main/java/com/whyc/service/LeaderHomeService.java | 525 +++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapper/PwrdevAlarmMapper.xml | 10 src/main/java/com/whyc/mapper/DevalarmDataMapper.java | 4 src/main/java/com/whyc/service/BattalarmDataService.java | 5 src/main/resources/mapper/BattalarmDataMapper.xml | 12 + src/main/java/com/whyc/mapper/BattalarmDataMapper.java | 3 src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java | 3 src/main/java/com/whyc/service/DevalarmDataService.java | 5 src/main/java/com/whyc/dto/AlarmDto.java | 62 +++++ src/main/resources/mapper/DevalarmDataMapper.xml | 11 + src/main/java/com/whyc/service/PwrdevAlarmService.java | 5 11 files changed, 643 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/whyc/dto/AlarmDto.java b/src/main/java/com/whyc/dto/AlarmDto.java new file mode 100644 index 0000000..00590ef --- /dev/null +++ b/src/main/java/com/whyc/dto/AlarmDto.java @@ -0,0 +1,62 @@ +package com.whyc.dto; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * 鍛婅淇℃伅鐨勭粺璁″瓧娈�,渚夸簬涓夌绫诲瀷鍛婅淇℃伅鐨勭粺涓�缁熻 + */ +@Data +@ToString +public class AlarmDto { + + private Integer stationId; + + private String stationName; + + private Integer powerId; + + private String powerName; + + private Integer devId; + + private String devName; + + private Integer battGroupId; + + private String battGroupName; + + @ApiModelProperty("鍛婅灞炰簬鍝璁惧.1-鐢垫簮,2-璁惧,3-鐢垫睜") + private String type; + + @ApiModelProperty("鍗曚綋缂栧彿") + private Integer monNum; + + @ApiModelProperty("鍗曚綋缂栧彿闆嗗悎,澶氫釜鍗曚綋缂栧彿鐢�,闅斿紑") + private String monNumStr; + + @ApiModelProperty("鍛婅id,鍏朵腑鐢垫睜鍛婅涓唬琛╝lm_signal_id") + private int almId; + + @ApiModelProperty("鍛婅鍚嶇О") + private String almName; + + @ApiModelProperty("鍛婅鍊�") + private Float almValue; + + @ApiModelProperty("鏁存祦鍣ㄥ悕鍚堝苟") + private String rectifierName; + + @ApiModelProperty("鐢垫睜鍛婅鐨勫憡璀d瀛楁,淇濈暀") + private Integer almIdOrigin; + + private Integer almLevel; + private Date almStartTime; + + + +} diff --git a/src/main/java/com/whyc/mapper/BattalarmDataMapper.java b/src/main/java/com/whyc/mapper/BattalarmDataMapper.java index e7bbdc3..02ae734 100644 --- a/src/main/java/com/whyc/mapper/BattalarmDataMapper.java +++ b/src/main/java/com/whyc/mapper/BattalarmDataMapper.java @@ -1,5 +1,6 @@ package com.whyc.mapper; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.pojo.db_alarm.BattalarmData; import com.whyc.pojo.web_site.AlarmInspection; @@ -12,4 +13,6 @@ List<AlarmInspection> getListGreatThan(Long battAlarmId); + List<AlarmDto> getListByUserId(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DevalarmDataMapper.java b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java index e444652..a205ecd 100644 --- a/src/main/java/com/whyc/mapper/DevalarmDataMapper.java +++ b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java @@ -1,5 +1,6 @@ package com.whyc.mapper; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.pojo.db_alarm.BattalarmData; import com.whyc.pojo.db_alarm.DevalarmData; @@ -12,4 +13,7 @@ List<DevalarmData> getDevAlmReal(AlmDto almDto); List<AlarmInspection> getListGreatThan(Long devAlarmId); + + List<AlarmDto> getListByUserId(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java b/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java index 2c8353b..32331e4 100644 --- a/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java +++ b/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java @@ -1,5 +1,6 @@ package com.whyc.mapper; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarm; import com.whyc.pojo.web_site.AlarmInspection; @@ -12,4 +13,6 @@ List<AlarmInspection> getListGreatThan(Long id); + List<AlarmDto> getListByUserId(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattalarmDataService.java b/src/main/java/com/whyc/service/BattalarmDataService.java index 598df7a..98bd97f 100644 --- a/src/main/java/com/whyc/service/BattalarmDataService.java +++ b/src/main/java/com/whyc/service/BattalarmDataService.java @@ -8,6 +8,7 @@ import com.whyc.constant.BattAlarmIdEnum; import com.whyc.constant.BattSingalIdEnum; import com.whyc.constant.DevAlarmEnum; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.dto.Response; import com.whyc.mapper.BattalarmDataMapper; @@ -73,6 +74,10 @@ return listGreatThan; } + public List<AlarmDto> getListByUserId(Integer userId) { + return mapper.getListByUserId(userId); + } + public List<Long> getNumListInDB(List<Long> battAlarmNumList) { QueryWrapper<BattalarmData> query = Wrappers.query(); query.select("num"); diff --git a/src/main/java/com/whyc/service/DevalarmDataService.java b/src/main/java/com/whyc/service/DevalarmDataService.java index 430861d..79a88c5 100644 --- a/src/main/java/com/whyc/service/DevalarmDataService.java +++ b/src/main/java/com/whyc/service/DevalarmDataService.java @@ -8,6 +8,7 @@ import com.whyc.constant.BattAlarmIdEnum; import com.whyc.constant.BattSingalIdEnum; import com.whyc.constant.DevAlarmEnum; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.dto.Response; import com.whyc.mapper.DevalarmDataMapper; @@ -79,4 +80,8 @@ query.in("num",devAlarmNumList); return mapper.selectList(query).stream().map(DevalarmData::getNum).collect(Collectors.toList()); } + + public List<AlarmDto> getListByUserId(Integer userId) { + return mapper.getListByUserId(userId); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/LeaderHomeService.java b/src/main/java/com/whyc/service/LeaderHomeService.java index 55ad958..2648e42 100644 --- a/src/main/java/com/whyc/service/LeaderHomeService.java +++ b/src/main/java/com/whyc/service/LeaderHomeService.java @@ -1,7 +1,10 @@ package com.whyc.service; import com.sun.org.glassfish.gmbal.NameValue; +import com.whyc.constant.BattSingalIdEnum; import com.whyc.constant.Capperformance; +import com.whyc.constant.DevAlarmEnum; +import com.whyc.constant.PowerAlarmEnum; import com.whyc.dto.*; import com.whyc.factory.BattCapFactory; import com.whyc.factory.ThreadPoolExecutorFactory; @@ -91,18 +94,536 @@ //deviceInfoStatistics(userId, map); latch.countDown(); }); - //TODO 瀹炴椂鍛婅淇℃伅缁熻 + /** + * 瀹炴椂鍛婅淇℃伅缁熻 * 閫昏緫鏇存柊: + * 鐢垫睜閲岄潰鐨勫崟浣�(鍗曚綋1,鍗曚綋2..)鍗曢」,鍙互鍚堝苟. 鐢垫簮閲岄潰鐨勬暣娴佸櫒(鏁存祦鍣�1,鏁存祦鍣�2..)鍛婅鍗曢」鍙互鍚堝苟 + * 鍚堝苟鍚庢椂闂撮噰鐢ㄦ渶鍏堜骇鐢熸姤璀︾殑閭d釜鏃堕棿 */ poolExecutor.execute(() -> { - //alarmRealtimeStatistics(userId, map); + alarmRealtimeStatistics(userId, map); latch.countDown(); }); return response; } + private void alarmRealtimeStatistics(Integer userId, Map<String, Object> map) { + //鐢垫睜鍛婅淇℃伅缁熻 + List<AlarmDto> battAlarmListNew = new ArrayList<>(); + List<AlarmDto> battAlarmList = battAlarmService.getListByUserId(userId); + //鍚堝苟鍗曚綋鍛婅鐨勫憡璀︿俊鎭�,瀵笰larmDto涓瑼lmId 鍦�17~28涔嬮棿鐨勮繘琛屽悎骞�. + Map<String, List<AlarmDto>> mergeMap = battAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 17 && alarm.getAlmId() <= 28) + .collect(Collectors.groupingBy(temp -> temp.getBattGroupId()+"_"+temp.getAlmId())); + mergeMap.forEach((almId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鍗曚綋缂栧彿杩涜鍚堝苟. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊崟浣撶紪鍙锋帓搴� + mergeList.sort(Comparator.comparing(AlarmDto::getMonNum)); + alarmDto.setMonNumStr(mergeList.stream() + .map(AlarmDto::getMonNum) + .map(String::valueOf) + .collect(Collectors.joining(","))); + alarmDto.setMonNum(null); + battAlarmListNew.add(alarmDto); + }); + + List<AlarmDto> battAlarmListOther = battAlarmList.stream().filter(alarm -> alarm.getAlmId() < 17).collect(Collectors.toList()); + battAlarmListNew.addAll(battAlarmListOther); + //瀵瑰憡璀﹀悕绉拌祴鍊� + battAlarmListNew.forEach(alarmDto -> { + alarmDto.setAlmName(BattSingalIdEnum.getValue(alarmDto.getAlmId())); + }); + + //璁惧鍛婅淇℃伅缁熻 + List<AlarmDto> devAlarmList = devAlarmService.getListByUserId(userId); + //瀵瑰憡璀﹀悕绉拌祴鍊� + devAlarmList.forEach(alarmDto -> { + alarmDto.setAlmName(DevAlarmEnum.getValue(alarmDto.getAlmId())); + }); + + //鐢垫簮鍛婅淇℃伅缁熻 + List<AlarmDto> powerAlarmListNew = new ArrayList<>(); + List<AlarmDto> powerAlarmList = powerAlarmService.getListByUserId(userId); + //鏁存祦鍣ㄦ�绘晠闅滃悎骞� + //ALARM_3300001(3300001,"鏁存祦鍣�1鎬绘晠闅滃憡璀�"), + // ALARM_3300002(3300002,"鏁存祦鍣�2鎬绘晠闅滃憡璀�"), + // ALARM_3300003(3300003,"鏁存祦鍣�3鎬绘晠闅滃憡璀�"), + // ALARM_3300004(3300004,"鏁存祦鍣�4鎬绘晠闅滃憡璀�"), + // ALARM_3300005(3300005,"鏁存祦鍣�5鎬绘晠闅滃憡璀�"), + // ALARM_3300006(3300006,"鏁存祦鍣�6鎬绘晠闅滃憡璀�"), + // ALARM_3300007(3300007,"鏁存祦鍣�7鎬绘晠闅滃憡璀�"), + // ALARM_3300008(3300008,"鏁存祦鍣�8鎬绘晠闅滃憡璀�"), + // ALARM_3300009(3300009,"鏁存祦鍣�9鎬绘晠闅滃憡璀�"), + // ALARM_3300010(3300010,"鏁存祦鍣�10鎬绘晠闅滃憡璀�"), + // ALARM_3300011(3300011,"鏁存祦鍣�11鎬绘晠闅滃憡璀�"), + // ALARM_3300012(3300012,"鏁存祦鍣�12鎬绘晠闅滃憡璀�"), + // ALARM_3300013(3300013,"鏁存祦鍣�13鎬绘晠闅滃憡璀�"), + // ALARM_3300014(3300014,"鏁存祦鍣�14鎬绘晠闅滃憡璀�"), + // ALARM_3300015(3300015,"鏁存祦鍣�15鎬绘晠闅滃憡璀�"), + // ALARM_3300016(3300016,"鏁存祦鍣�16鎬绘晠闅滃憡璀�"), + Map<Integer, List<AlarmDto>> powerMergeMap = powerAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 3300001 && alarm.getAlmId() <= 3300016) + .collect(Collectors.groupingBy(AlarmDto::getPowerId)); + powerMergeMap.forEach((powerId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鏁存祦鍣ㄧ紪鍙疯繘琛屽悎骞�,鍚堝苟鍒皉ectifierName. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊憡璀d鎺掑簭 + mergeList.sort(Comparator.comparing(AlarmDto::getAlmId)); + StringBuilder rectifierNameSb = new StringBuilder(); + rectifierNameSb.append("鏁存祦鍣�"); + for (int i = 0; i < list.size(); i++) { + int almId = list.get(i).getAlmId(); + switch (almId){ + case 3300001: + rectifierNameSb.append("1,"); + break; + case 3300002: + rectifierNameSb.append("2,"); + break; + case 3300003: + rectifierNameSb.append("3,"); + break; + case 3300004: + rectifierNameSb.append("4,"); + break; + case 3300005: + rectifierNameSb.append("5,"); + break; + case 3300006: + rectifierNameSb.append("6,"); + break; + case 3300007: + rectifierNameSb.append("7,"); + break; + case 3300008: + rectifierNameSb.append("8,"); + break; + case 3300009: + rectifierNameSb.append("9,"); + break; + case 3300010: + rectifierNameSb.append("10,"); + break; + case 3300011: + rectifierNameSb.append("11,"); + break; + case 3300012: + rectifierNameSb.append("12,"); + break; + case 3300013: + rectifierNameSb.append("13,"); + break; + case 3300014: + rectifierNameSb.append("14,"); + break; + case 3300015: + rectifierNameSb.append("15,"); + break; + case 3300016: + rectifierNameSb.append("16,"); + break; + + } + } + //鏈�鍚庝竴涓�,鍘绘帀 + rectifierNameSb.deleteCharAt(rectifierNameSb.length()-1); + rectifierNameSb.append("鎬绘晠闅滃憡璀�"); + alarmDto.setRectifierName(rectifierNameSb.toString()); + powerAlarmListNew.add(alarmDto); + }); + + //鏁存祦鍣ㄨ繃鍘嬪悎骞� + //ALARM_3300017(3300017,"鏁存祦鍣�1杩囧帇鍛婅"), + // ALARM_3300018(3300018,"鏁存祦鍣�2杩囧帇鍛婅"), + // ALARM_3300019(3300019,"鏁存祦鍣�3杩囧帇鍛婅"), + // ALARM_3300020(3300020,"鏁存祦鍣�4杩囧帇鍛婅"), + // ALARM_3300021(3300021,"鏁存祦鍣�5杩囧帇鍛婅"), + // ALARM_3300022(3300022,"鏁存祦鍣�6杩囧帇鍛婅"), + // ALARM_3300023(3300023,"鏁存祦鍣�7杩囧帇鍛婅"), + // ALARM_3300024(3300024,"鏁存祦鍣�8杩囧帇鍛婅"), + // ALARM_3300025(3300025,"鏁存祦鍣�9杩囧帇鍛婅"), + // ALARM_3300026(3300026,"鏁存祦鍣�10杩囧帇鍛婅"), + // ALARM_3300027(3300027,"鏁存祦鍣�11杩囧帇鍛婅"), + // ALARM_3300028(3300028,"鏁存祦鍣�12杩囧帇鍛婅"), + // ALARM_3300029(3300029,"鏁存祦鍣�13杩囧帇鍛婅"), + // ALARM_3300030(3300030,"鏁存祦鍣�14杩囧帇鍛婅"), + // ALARM_3300031(3300031,"鏁存祦鍣�15杩囧帇鍛婅"), + // ALARM_3300032(3300032,"鏁存祦鍣�16杩囧帇鍛婅"), + Map<Integer, List<AlarmDto>> powerOverVolMergeMap = powerAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 3300017 && alarm.getAlmId() <= 3300032) + .collect(Collectors.groupingBy(AlarmDto::getPowerId)); + powerOverVolMergeMap.forEach((powerId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鏁存祦鍣ㄧ紪鍙疯繘琛屽悎骞�,鍚堝苟鍒皉ectifierName. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊憡璀d鎺掑簭 + mergeList.sort(Comparator.comparing(AlarmDto::getAlmId)); + StringBuilder rectifierNameSb = new StringBuilder(); + rectifierNameSb.append("鏁存祦鍣�"); + for (int i = 0; i < list.size(); i++) { + int almId = list.get(i).getAlmId(); + switch (almId){ + case 3300017: + rectifierNameSb.append("1,"); + break; + case 3300018: + rectifierNameSb.append("2,"); + break; + case 3300019: + rectifierNameSb.append("3,"); + break; + case 3300020: + rectifierNameSb.append("4,"); + break; + case 3300021: + rectifierNameSb.append("5,"); + break; + case 3300022: + rectifierNameSb.append("6,"); + break; + case 3300023: + rectifierNameSb.append("7,"); + break; + case 3300024: + rectifierNameSb.append("8,"); + break; + case 3300025: + rectifierNameSb.append("9,"); + break; + case 3300026: + rectifierNameSb.append("10,"); + break; + case 3300027: + rectifierNameSb.append("11,"); + break; + case 3300028: + rectifierNameSb.append("12,"); + break; + case 3300029: + rectifierNameSb.append("13,"); + break; + case 3300030: + rectifierNameSb.append("14,"); + break; + case 3300031: + rectifierNameSb.append("15,"); + break; + case 3300032: + rectifierNameSb.append("16,"); + break; + } + } + //鏈�鍚庝竴涓�,鍘绘帀 + rectifierNameSb.deleteCharAt(rectifierNameSb.length()-1); + rectifierNameSb.append("杩囧帇鍛婅"); + alarmDto.setRectifierName(rectifierNameSb.toString()); + powerAlarmListNew.add(alarmDto); + }); + //鏁存祦鍣ㄦ瑺鍘嬪悎骞� + //ALARM_3300033(3300033,"鏁存祦鍣�1娆犲帇鍛婅"), + // ALARM_3300034(3300034,"鏁存祦鍣�2娆犲帇鍛婅"), + // ALARM_3300035(3300035,"鏁存祦鍣�3娆犲帇鍛婅"), + // ALARM_3300036(3300036,"鏁存祦鍣�4娆犲帇鍛婅"), + // ALARM_3300037(3300037,"鏁存祦鍣�5娆犲帇鍛婅"), + // ALARM_3300038(3300038,"鏁存祦鍣�6娆犲帇鍛婅"), + // ALARM_3300039(3300039,"鏁存祦鍣�7娆犲帇鍛婅"), + // ALARM_3300040(3300040,"鏁存祦鍣�8娆犲帇鍛婅"), + // ALARM_3300041(3300041,"鏁存祦鍣�9娆犲帇鍛婅"), + // ALARM_3300042(3300042,"鏁存祦鍣�10娆犲帇鍛婅"), + // ALARM_3300043(3300043,"鏁存祦鍣�11娆犲帇鍛婅"), + // ALARM_3300044(3300044,"鏁存祦鍣�12娆犲帇鍛婅"), + // ALARM_3300045(3300045,"鏁存祦鍣�13娆犲帇鍛婅"), + // ALARM_3300046(3300046,"鏁存祦鍣�14娆犲帇鍛婅"), + // ALARM_3300047(3300047,"鏁存祦鍣�15娆犲帇鍛婅"), + // ALARM_3300048(3300048,"鏁存祦鍣�16娆犲帇鍛婅"), + Map<Integer, List<AlarmDto>> powerBellowVolMergeMap = powerAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 3300033 && alarm.getAlmId() <= 3300048) + .collect(Collectors.groupingBy(AlarmDto::getPowerId)); + powerBellowVolMergeMap.forEach((powerId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鏁存祦鍣ㄧ紪鍙疯繘琛屽悎骞�,鍚堝苟鍒皉ectifierName. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊憡璀d鎺掑簭 + mergeList.sort(Comparator.comparing(AlarmDto::getAlmId)); + StringBuilder rectifierNameSb = new StringBuilder(); + rectifierNameSb.append("鏁存祦鍣�"); + for (int i = 0; i < list.size(); i++) { + int almId = list.get(i).getAlmId(); + switch (almId){ + case 3300033: + rectifierNameSb.append("1,"); + break; + case 3300034: + rectifierNameSb.append("2,"); + break; + case 3300035: + rectifierNameSb.append("3,"); + break; + case 3300036: + rectifierNameSb.append("4,"); + break; + case 3300037: + rectifierNameSb.append("5,"); + break; + case 3300038: + rectifierNameSb.append("6,"); + break; + case 3300039: + rectifierNameSb.append("7,"); + break; + case 3300040: + rectifierNameSb.append("8,"); + break; + case 3300041: + rectifierNameSb.append("9,"); + break; + case 3300042: + rectifierNameSb.append("10,"); + break; + case 3300043: + rectifierNameSb.append("11,"); + break; + case 3300044: + rectifierNameSb.append("12,"); + break; + case 3300045: + rectifierNameSb.append("13,"); + break; + case 3300046: + rectifierNameSb.append("14,"); + break; + case 3300047: + rectifierNameSb.append("15,"); + break; + case 3300048: + rectifierNameSb.append("16,"); + break; + } + } + //鏈�鍚庝竴涓�,鍘绘帀 + rectifierNameSb.deleteCharAt(rectifierNameSb.length()-1); + rectifierNameSb.append("娆犲帇鍛婅"); + alarmDto.setRectifierName(rectifierNameSb.toString()); + powerAlarmListNew.add(alarmDto); + }); + + //鏁存祦鍣ㄨ繃娴佸憡璀﹀悎骞� + //ALARM_3300049(3300049,"鏁存祦鍣�1杩囨祦鍛婅"), + // ALARM_3300050(3300050,"鏁存祦鍣�2杩囨祦鍛婅"), + // ALARM_3300051(3300051,"鏁存祦鍣�3杩囨祦鍛婅"), + // ALARM_3300052(3300052,"鏁存祦鍣�4杩囨祦鍛婅"), + // ALARM_3300053(3300053,"鏁存祦鍣�5杩囨祦鍛婅"), + // ALARM_3300054(3300054,"鏁存祦鍣�6杩囨祦鍛婅"), + // ALARM_3300055(3300055,"鏁存祦鍣�7杩囨祦鍛婅"), + // ALARM_3300056(3300056,"鏁存祦鍣�8杩囨祦鍛婅"), + // ALARM_3300057(3300057,"鏁存祦鍣�9杩囨祦鍛婅"), + // ALARM_3300058(3300058,"鏁存祦鍣�10杩囨祦鍛婅"), + // ALARM_3300059(3300059,"鏁存祦鍣�11杩囨祦鍛婅"), + // ALARM_3300060(3300060,"鏁存祦鍣�12杩囨祦鍛婅"), + // ALARM_3300061(3300061,"鏁存祦鍣�13杩囨祦鍛婅"), + // ALARM_3300062(3300062,"鏁存祦鍣�14杩囨祦鍛婅"), + // ALARM_3300063(3300063,"鏁存祦鍣�15杩囨祦鍛婅"), + // ALARM_3300064(3300064,"鏁存祦鍣�16杩囨祦鍛婅"), + Map<Integer, List<AlarmDto>> powerOverCurrentMergeMap = powerAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 3300049 && alarm.getAlmId() <= 3300064) + .collect(Collectors.groupingBy(AlarmDto::getPowerId)); + powerOverCurrentMergeMap.forEach((powerId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鏁存祦鍣ㄧ紪鍙疯繘琛屽悎骞�,鍚堝苟鍒皉ectifierName. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊憡璀d鎺掑簭 + mergeList.sort(Comparator.comparing(AlarmDto::getAlmId)); + StringBuilder rectifierNameSb = new StringBuilder(); + rectifierNameSb.append("鏁存祦鍣�"); + for (int i = 0; i < list.size(); i++) { + int almId = list.get(i).getAlmId(); + switch (almId){ + case 3300049: + rectifierNameSb.append("1,"); + break; + case 3300050: + rectifierNameSb.append("2,"); + break; + case 3300051: + rectifierNameSb.append("3,"); + break; + case 3300052: + rectifierNameSb.append("4,"); + break; + case 3300053: + rectifierNameSb.append("5,"); + break; + case 3300054: + rectifierNameSb.append("6,"); + break; + case 3300055: + rectifierNameSb.append("7,"); + break; + case 3300056: + rectifierNameSb.append("8,"); + break; + case 3300057: + rectifierNameSb.append("9,"); + break; + case 3300058: + rectifierNameSb.append("10,"); + break; + case 3300059: + rectifierNameSb.append("11,"); + break; + case 3300060: + rectifierNameSb.append("12,"); + break; + case 3300061: + rectifierNameSb.append("13,"); + break; + case 3300062: + rectifierNameSb.append("14,"); + break; + case 3300063: + rectifierNameSb.append("15,"); + break; + case 3300064: + rectifierNameSb.append("16,"); + break; + } + } + //鏈�鍚庝竴涓�,鍘绘帀 + rectifierNameSb.deleteCharAt(rectifierNameSb.length()-1); + rectifierNameSb.append("杩囨祦鍛婅"); + alarmDto.setRectifierName(rectifierNameSb.toString()); + powerAlarmListNew.add(alarmDto); + }); + + //鏁存祦鍣ㄤ氦娴佸紓甯稿憡璀﹀悎骞� + //ALARM_3300065(3300065,"鏁存祦鍣�1浜ゆ祦寮傚父鍛婅"), + // ALARM_3300066(3300066,"鏁存祦鍣�2浜ゆ祦寮傚父鍛婅"), + // ALARM_3300067(3300067,"鏁存祦鍣�3浜ゆ祦寮傚父鍛婅"), + // ALARM_3300068(3300068,"鏁存祦鍣�4浜ゆ祦寮傚父鍛婅"), + // ALARM_3300069(3300069,"鏁存祦鍣�5浜ゆ祦寮傚父鍛婅"), + // ALARM_3300070(3300070,"鏁存祦鍣�6浜ゆ祦寮傚父鍛婅"), + // ALARM_3300071(3300071,"鏁存祦鍣�7浜ゆ祦寮傚父鍛婅"), + // ALARM_3300072(3300072,"鏁存祦鍣�8浜ゆ祦寮傚父鍛婅"), + // ALARM_3300073(3300073,"鏁存祦鍣�9浜ゆ祦寮傚父鍛婅"), + // ALARM_3300074(3300074,"鏁存祦鍣�10浜ゆ祦寮傚父鍛婅"), + // ALARM_3300075(3300075,"鏁存祦鍣�11浜ゆ祦寮傚父鍛婅"), + // ALARM_3300076(3300076,"鏁存祦鍣�12浜ゆ祦寮傚父鍛婅"), + // ALARM_3300077(3300077,"鏁存祦鍣�13浜ゆ祦寮傚父鍛婅"), + // ALARM_3300078(3300078,"鏁存祦鍣�14浜ゆ祦寮傚父鍛婅"), + // ALARM_3300079(3300079,"鏁存祦鍣�15浜ゆ祦寮傚父鍛婅"), + // ALARM_3300080(3300080,"鏁存祦鍣�16浜ゆ祦寮傚父鍛婅"), + Map<Integer, List<AlarmDto>> powerACMergeMap = powerAlarmList.stream() + .filter(alarm -> alarm.getAlmId() >= 3300065 && alarm.getAlmId() <= 3300080) + .collect(Collectors.groupingBy(AlarmDto::getPowerId)); + powerACMergeMap.forEach((powerId, list) -> { + //瀵筶ist鍐呯殑瀛楁 鏁存祦鍣ㄧ紪鍙疯繘琛屽悎骞�,鍚堝苟鍒皉ectifierName. 鏃堕棿鍙栨渶灏忕殑 + List<AlarmDto> mergeList = list.stream() + .sorted(Comparator.comparing(AlarmDto::getAlmStartTime)) + .collect(Collectors.toList()); + AlarmDto alarmDto = mergeList.get(0); + //鎸夊憡璀d鎺掑簭 + mergeList.sort(Comparator.comparing(AlarmDto::getAlmId)); + StringBuilder rectifierNameSb = new StringBuilder(); + rectifierNameSb.append("鏁存祦鍣�"); + for (int i = 0; i < list.size(); i++) { + int almId = list.get(i).getAlmId(); + switch (almId){ + case 3300065: + rectifierNameSb.append("1,"); + break; + case 3300066: + rectifierNameSb.append("2,"); + break; + case 3300067: + rectifierNameSb.append("3,"); + break; + case 3300068: + rectifierNameSb.append("4,"); + break; + case 3300069: + rectifierNameSb.append("5,"); + break; + case 3300070: + rectifierNameSb.append("6,"); + break; + case 3300071: + rectifierNameSb.append("7,"); + break; + case 3300072: + rectifierNameSb.append("8,"); + break; + case 3300073: + rectifierNameSb.append("9,"); + break; + case 3300074: + rectifierNameSb.append("10,"); + break; + case 3300075: + rectifierNameSb.append("11,"); + break; + case 3300076: + rectifierNameSb.append("12,"); + break; + case 3300077: + rectifierNameSb.append("13,"); + break; + case 3300078: + rectifierNameSb.append("14,"); + break; + case 3300079: + rectifierNameSb.append("15,"); + break; + case 3300080: + rectifierNameSb.append("16,"); + break; + } + } + //鏈�鍚庝竴涓�,鍘绘帀 + rectifierNameSb.deleteCharAt(rectifierNameSb.length()-1); + rectifierNameSb.append("浜ゆ祦寮傚父鍛婅"); + alarmDto.setRectifierName(rectifierNameSb.toString()); + powerAlarmListNew.add(alarmDto); + }); + + //杩囨护鎺変骇鐢熷悎骞剁殑鍛婅 + List<AlarmDto> powerAlarmListOther = powerAlarmList.stream().filter(alarm -> alarm.getAlmId() < 3300001 || alarm.getAlmId() > 3300080).collect(Collectors.toList()); + powerAlarmListNew.addAll(powerAlarmListOther); + //瀵瑰憡璀﹀悕绉拌祴鍊� + powerAlarmListNew.forEach(alarmDto -> { + alarmDto.setAlmName(PowerAlarmEnum.getValue(alarmDto.getAlmId())); + }); + //瀵瑰瓨鍦≧ectifierName鐨勫厓绱�,灏唕ectifierName瀛楁璧嬪�肩粰almName瀛楁 + powerAlarmListNew.forEach(alarmDto -> { + if(alarmDto.getRectifierName() != null){ + alarmDto.setAlmName(alarmDto.getRectifierName()); + } + }); + + + //鏁村悎鎵�鏈夌殑鍛婅 + powerAlarmListNew.addAll(devAlarmList); + powerAlarmListNew.addAll(battAlarmListNew); + + //鎸夌収鏃堕棿杩涜鍊掑簭 + powerAlarmListNew.sort(Comparator.comparing(AlarmDto::getAlmStartTime).reversed()); + map.put("alarmList",powerAlarmListNew); + } + private void testDataInfoStatistics(Integer userId, Map<String, Object> map) { List<BatttestdataInf> testInfList = battTestDataInfService.getListByUserId(userId); diff --git a/src/main/java/com/whyc/service/PwrdevAlarmService.java b/src/main/java/com/whyc/service/PwrdevAlarmService.java index ef3d881..3c2eac4 100644 --- a/src/main/java/com/whyc/service/PwrdevAlarmService.java +++ b/src/main/java/com/whyc/service/PwrdevAlarmService.java @@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo; import com.whyc.constant.DevAlarmEnum; import com.whyc.constant.PowerAlarmEnum; +import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.dto.Response; import com.whyc.mapper.PwrdevAlarmMapper; @@ -79,4 +80,8 @@ query.in("num",powerAlarmNumList); return mapper.selectList(query).stream().map(PwrdevAlarm::getNum).collect(Collectors.toList()); } + + public List<AlarmDto> getListByUserId(Integer userId) { + return mapper.getListByUserId(userId); + } } \ No newline at end of file diff --git a/src/main/resources/mapper/BattalarmDataMapper.xml b/src/main/resources/mapper/BattalarmDataMapper.xml index b9c18af..425591b 100644 --- a/src/main/resources/mapper/BattalarmDataMapper.xml +++ b/src/main/resources/mapper/BattalarmDataMapper.xml @@ -51,4 +51,16 @@ and bi.station_id=si.station_id and bd.num>#{id} </select> + <select id="getListByUserId" resultType="com.whyc.dto.AlarmDto"> + select bd.mon_num,bd.alm_signal_id as alm_id,bd.alm_id as alm_id_origin,bd.alm_level,bd.alm_start_time, + bd.num as alm_num,bi.battgroup_id,bi.battgroup_name,bi.dev_id,bi.dev_name,si.station_id,si.station_name from db_alarm.tb_battalarm_data bd,db_station.tb_batt_inf bi,db_station.tb_station_inf si + where bd.battgroup_id=bi.battgroup_id + and bi.station_id=si.station_id + and bd.battgroup_id in( + select distinct battgroup_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi + where bu.baoji_group_id = bp.baoji_group_id + and bp.station_id = bi.station_id + and bu.uid = #{userId} + ) + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DevalarmDataMapper.xml b/src/main/resources/mapper/DevalarmDataMapper.xml index 45a79b9..ee0b724 100644 --- a/src/main/resources/mapper/DevalarmDataMapper.xml +++ b/src/main/resources/mapper/DevalarmDataMapper.xml @@ -49,4 +49,15 @@ and bi.station_id=si.station_id and dd.num>#{id} </select> + <select id="getListByUserId" resultType="com.whyc.dto.AlarmDto"> + select distinct dd.*,dd.num as alm_num,bi.dev_id,bi.dev_name,si.station_id,si.station_name from db_alarm.tb_devalarm_data dd,db_station.tb_batt_inf bi,db_station.tb_station_inf si + where dd.dev_id=bi.dev_id + and bi.station_id=si.station_id + and dd.dev_id in ( + select distinct dev_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi + where bu.baoji_group_id = bp.baoji_group_id + and bp.station_id = bi.station_id + and bu.uid = #{userId} + ) + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/PwrdevAlarmMapper.xml b/src/main/resources/mapper/PwrdevAlarmMapper.xml index 20e0be4..ac14f51 100644 --- a/src/main/resources/mapper/PwrdevAlarmMapper.xml +++ b/src/main/resources/mapper/PwrdevAlarmMapper.xml @@ -50,4 +50,14 @@ and pi.station_id=si.station_id and pa.num>#{id} </select> + <select id="getListByUserId" resultType="com.whyc.dto.AlarmDto"> + select pa.*,pa.num as alm_num,pi.power_name,pi.power_id,si.station_id,si.station_name from db_pwrdev_alarm.tb_pwrdev_alarm pa,db_station.tb_power_inf pi,db_station.tb_station_inf si + where pa.power_id=pi.power_id + and pi.station_id=si.station_id + and pa.power_id in ( + select distinct power_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp + where bu.baoji_group_id = bp.baoji_group_id + and bu.uid = #{userId} + ) + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1