From 08a962d2925baa255207fdf979e6fee794f1773b Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Fri, 19 Jul 2024 12:25:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java |   98 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 95 insertions(+), 3 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
index c1b8f63..80253e7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
@@ -49,9 +49,9 @@
 	 */
 	@Override
 	public Object selectAlarmRecordPage(IPage<AlarmRecordVO> page, AlarmRecordVO alarmRecord) {
-		if (!Strings.isBlank(alarmRecord.getAdCode())){
-			alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
-		}
+//		if (!Strings.isBlank(alarmRecord.getAdCode())){
+//			alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
+//		}
 		if (null != alarmRecord.getIsExport()){
 			return baseMapper.selectAlarmRecordPage(null,alarmRecord);
 		}
@@ -182,4 +182,96 @@
 		List<StatisticAlarmRecord> list = baseMapper.statisticsPie(alarmRecordVO);
 		return list;
 	}
+
+	/**
+	 * 告警统计按告警分类-等级统计
+	 * @param alarmRecord
+	 * @return
+	 */
+	@Override
+	public Object statisticAlaByTypeAndLev(AlarmRecordVO alarmRecord) {
+		Map<String, Object> map = new HashMap<>(4);
+		List<StatisticAlarmRecord> recordList = baseMapper.statisticAlaByTypeAndLev(alarmRecord);
+		if (recordList.size()>0){
+			map.put("水情监测",setAlaStatisticListByData(recordList,"水情监测"));
+			map.put("雨情监测",setAlaStatisticListByData(recordList,"雨情监测"));
+			map.put("渗压监测",setAlaStatisticListByData(recordList,"渗压监测"));
+			map.put("渗流监测",setAlaStatisticListByData(recordList,"渗流监测"));
+			map.put("变形监测",setAlaStatisticListByData(recordList,"变形监测"));
+		}else {
+			map.put("水情监测",setAlaStatisticList());
+			map.put("雨情监测",setAlaStatisticList());
+			map.put("渗压监测",setAlaStatisticList());
+			map.put("渗流监测",setAlaStatisticList());
+			map.put("变形监测",setAlaStatisticList());
+		}
+		return map;
+	}
+
+	/**
+	 * 设置组装预警统计数据-带参数
+	 * @return
+	 */
+	private List<StatisticAlarmRecord> setAlaStatisticListByData(List<StatisticAlarmRecord> recordList, String typeName) {
+		List<StatisticAlarmRecord> list = new ArrayList<>();
+		List<String> levelList = new ArrayList<>(){{
+			add("蓝色预警");
+			add("黄色预警");
+			add("橙色预警");
+			add("红色预警");
+		}};
+		List<String> alarmLevelList = recordList.stream()
+			.filter(a -> a.getRuleName().equals(typeName))
+			.map(StatisticAlarmRecord::getAlarmLevel)
+			.distinct()
+			.collect(Collectors.toList());
+		// 先取差集
+		List<String> diffList = levelList.stream().filter(item -> !alarmLevelList.contains(item)).collect(Collectors.toList());
+		for (StatisticAlarmRecord alarmRecord : recordList) {
+			if (alarmRecord.getRuleName().equals(typeName)){
+				StatisticAlarmRecord statisticAlarmRecord = new StatisticAlarmRecord();
+				statisticAlarmRecord.setAlarmLevel(alarmRecord.getAlarmLevel());
+				statisticAlarmRecord.setNum(alarmRecord.getNum());
+				list.add(statisticAlarmRecord);
+			}
+		}
+		if (diffList.size()>0){
+			for (String level : diffList) {
+				StatisticAlarmRecord statisticAlarmRecord = new StatisticAlarmRecord();
+				statisticAlarmRecord.setAlarmLevel(level);
+				statisticAlarmRecord.setNum(0);
+				list.add(statisticAlarmRecord);
+			}
+		}
+		return list;
+	}
+
+	/**
+	 * 设置组装预警统计数据
+	 * @return
+	 */
+	private List<StatisticAlarmRecord> setAlaStatisticList() {
+		List<StatisticAlarmRecord> list = new ArrayList<>();
+		StatisticAlarmRecord statisticAlarmRecord1 = new StatisticAlarmRecord();
+		statisticAlarmRecord1.setAlarmLevel("蓝色预警");
+		statisticAlarmRecord1.setNum(0);
+
+		StatisticAlarmRecord statisticAlarmRecord2 = new StatisticAlarmRecord();
+		statisticAlarmRecord2.setAlarmLevel("黄色预警");
+		statisticAlarmRecord2.setNum(0);
+
+		StatisticAlarmRecord statisticAlarmRecord3 = new StatisticAlarmRecord();
+		statisticAlarmRecord3.setAlarmLevel("橙色预警");
+		statisticAlarmRecord3.setNum(0);
+
+		StatisticAlarmRecord statisticAlarmRecord4 = new StatisticAlarmRecord();
+		statisticAlarmRecord4.setAlarmLevel("红色预警");
+		statisticAlarmRecord4.setNum(0);
+
+		list.add(statisticAlarmRecord1);
+		list.add(statisticAlarmRecord2);
+		list.add(statisticAlarmRecord3);
+		list.add(statisticAlarmRecord4);
+		return list;
+	}
 }

--
Gitblit v1.9.3