From e2fda8f4f705f6636fcf51e4c11a78a2b1f5f3b5 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 07 Mar 2024 13:54:00 +0800
Subject: [PATCH] 雨水情告警增加行政区划过滤

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java            |    7 +++++++
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java |    5 +++++
 skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java            |    2 ++
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml             |   38 ++++++++++++++++++++++++++++++++++++--
 4 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
index 32ffb4f..7803da3 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/vo/AlarmRecordVO.java
@@ -85,4 +85,6 @@
 	 * adCode
 	 */
 	private String adCode;
+
+	private String adLevel;
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
index 95f1d93..f88142f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
@@ -59,6 +59,13 @@
 	List<String> getAdNameList(@Param("adCode") String adCode);
 
 	/**
+	 * 按行政区code行政区
+	 * @param adCode
+	 * @return
+	 */
+	List<String> getAdNameListByAdCode(@Param("adCode") String adCode);
+
+	/**
 	 * 查询符合条件的告警类型
 	 * @param alarmRecord
 	 * @return
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
index d029059..fc36c3f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
@@ -80,9 +80,28 @@
         select "ad_name" from SJZT_MD."att_ad_base" where "p_ad_code" = #{adCode} order by "guid"
     </select>
 
+    <!--按行政区code行政区-->
+    <select id="getAdNameListByAdCode" resultType="java.lang.String">
+        select "ad_name" from SJZT_MD."att_ad_base" where "ad_code" = #{adCode} order by "guid"
+    </select>
+
     <!--查询告警统计数据-->
     <select id="statisticAlarmRecord" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord">
-        select cityName as adName,rule_name as ruleName,count(*) num from (
+        select
+            <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 1 ">
+                cityName as adName,
+            </if>
+            <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 2 ">
+                countyName as adName,
+            </if>
+            <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 3 ">
+                townName as adName,
+            </if>
+            <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 4 ">
+                townName as adName,
+            </if>
+
+            rule_name as ruleName,count(*) num from (
             select
             sar.id,sar.alarm_rule_id,sar.create_time,sar.reservoir_number,
             arb."name",
@@ -130,7 +149,22 @@
                 and arb."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
             </if>
         ) f
-        group by cityName,rule_name
+        group by
+        <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 1 ">
+            cityName,
+        </if>
+        <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 2 ">
+            countyName,
+        </if>
+        <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 3 ">
+            townName,
+        </if>
+        <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 4 ">
+            townName,
+        </if>
+
+
+            rule_name
     </select>
 
     <!--查询告警统计数据-按三大类-->
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 da919a1..b20e36f 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
@@ -98,6 +98,11 @@
 		}
 		// 查询所有的市级行政区
 		List<String> adNameList = baseMapper.getAdNameList(alarmRecord.getAdCode());
+
+		if (alarmRecord.getAdLevel().equals("4")) {
+			adNameList = baseMapper.getAdNameListByAdCode(alarmRecord.getAdCode());
+		}
+
 		// 查询符合条件的告警类型
 		List<AlarmRule> alarmRuleList = baseMapper.listAlarmRule(alarmRecord);
 		// 查询统计数据

--
Gitblit v1.9.3