From c8b03d3da4e29fc3fb9a42ca157738256c331a00 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 13 Mar 2024 13:55:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml |  240 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 231 insertions(+), 9 deletions(-)

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 530295a..10e149c 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
@@ -6,21 +6,31 @@
     <select id="selectAlarmRecordPage" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
         select
         sar.*,
-        sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,
-        arb."name" as reservoirName,aab."ad_name" as areaName
+        sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,
+        a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
+        case when b."ad_grad" = 4 THEN b."ad_name"
+            ELSE NULL END AS townName,
+        case when b."ad_grad" = 3 THEN b."ad_name"
+            when c."ad_grad" = 3 THEN C."ad_name"
+            END AS countyName,
+        case when b."ad_grad" = 2 THEN b."ad_name"
+            when c."ad_grad" = 2 THEN c."ad_name"
+            ELSE d."ad_name" END AS cityName
         from YWXT.sm_alarm_record sar
         left join YWXT.sm_alarm_rule sar1 on sar.alarm_rule_id = sar1.id and sar1.is_deleted = 0
-        left join SJZT_MD."att_res_base" arb on arb."guid" = sar.reservoir_number
-        left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+        left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number
+        left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
+        LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
         where sar.is_deleted = 0
-        <if test="alarmRecord.alarmSurveyStationName!=null and alarmRecord.alarmSurveyStationName!=''">
-            and alarm_survey_station_name like concat(concat('%',#{alarmRecord.alarmSurveyStationName}),'%')
-        </if>
         <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
-            and sar.reservoir_name like concat(concat('%',#{alarmRecord.reservoirName}),'%')
+            and a."name" like concat('%',#{alarmRecord.reservoirName},'%')
         </if>
         <if test="alarmRecord.type!=null and alarmRecord.type!=''">
-            and sar1.type = #{alarmRecord.type}
+            and
+            <foreach collection="alarmRecord.type.split(',')" index="index" item="item" open="(" separator="or " close=")">
+                sar1.type = #{item}
+            </foreach>
         </if>
         <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
             and sar1.alarm_rule_type = #{alarmRecord.alarmRuleType}
@@ -28,6 +38,218 @@
         <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
             and sar1.create_alarm_type = #{alarmRecord.createAlarmType}
         </if>
+        <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+            and sar1.rule_name = #{alarmRecord.ruleName}
+        </if>
+        <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+            and sar.create_time >= #{alarmRecord.startTime}
+        </if>
+        <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+            and sar.create_time &lt;= #{alarmRecord.endTime}
+        </if>
+        <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''">
+            and  a."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
+        </if>
+        order by sar.id desc
+    </select>
+
+    <select id="getVODetail" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
+        select
+            sar.*,
+            sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,
+            a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
+            case when b."ad_grad" = 4 THEN b."ad_name"
+                 ELSE NULL END AS townName,
+            case when b."ad_grad" = 3 THEN b."ad_name"
+                 when c."ad_grad" = 3 THEN C."ad_name"
+                END AS countyName,
+            case when b."ad_grad" = 2 THEN b."ad_name"
+                 when c."ad_grad" = 2 THEN c."ad_name"
+                 ELSE d."ad_name" END AS cityName
+        from YWXT.sm_alarm_record sar
+                 left join YWXT.sm_alarm_rule sar1 on sar.alarm_rule_id = sar1.id and sar1.is_deleted = 0
+                 left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number
+                 left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
+        where sar.is_deleted = 0 and sar.id = #{id}
+    </select>
+
+    <!--按行政区code 查询下级行政区-->
+    <select id="getAdNameList" resultType="java.lang.String">
+        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
+            <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",
+            e.rule_name,
+            case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS townName,
+            case when b."ad_grad" = 3 THEN b."ad_name"
+                when c."ad_grad" = 3 THEN c."ad_name" END AS countyName,
+            case when b."ad_grad" = 3 THEN b."ad_code"
+                when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode,
+            case when b."ad_grad" = 2 THEN b."ad_code"
+                when c."ad_grad" = 2 THEN c."ad_code"
+                ELSE d."ad_code" END AS cityCode,
+            case when b."ad_grad" = 2 THEN b."ad_name"
+                when c."ad_grad" = 2 THEN c."ad_name"
+                ELSE d."ad_name" END AS cityName
+            from YWXT.sm_alarm_record sar
+            left join SJZT_MD."att_res_base" arb on arb."guid" = sar.reservoir_number
+            left join SJZT_MD."att_ad_base" b ON arb."interior_ad_guid" = b."guid"
+            left join SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
+            left join SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
+            left join YWXT.sm_alarm_rule e on e.id = sar.alarm_rule_id
+            where sar.is_deleted = 0
+            <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''">
+                and arb."name" like concat('%',#{alarmRecord.reservoirName},'%')
+            </if>
+            <if test="alarmRecord.type!=null and alarmRecord.type!=''">
+                and e.type = #{alarmRecord.type}
+            </if>
+            <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
+                and e.alarm_rule_type = #{alarmRecord.alarmRuleType}
+            </if>
+            <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
+                and e.create_alarm_type = #{alarmRecord.createAlarmType}
+            </if>
+            <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+                and e.rule_name = #{alarmRecord.ruleName}
+            </if>
+            <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+                and sar.create_time >= #{alarmRecord.startTime}
+            </if>
+            <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+                and sar.create_time &lt;= #{alarmRecord.endTime}
+            </if>
+            <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''">
+                and arb."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
+            </if>
+        ) f
+        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>
+
+    <!--查询告警统计数据-按三大类-->
+    <select id="statisticAlarmRecordByType" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord">
+        select
+        a.dict_value as ruleName,
+        case when ifnull(b.type,0)='0' then 0 else b.num end as num
+        from
+        (
+        select dict_value from YWXT.blade_dict_biz where code = 'ALARM_TYPE' and dict_key!= '-1' and is_deleted = 0
+        ) a left join
+        (
+        select type,count(*) num
+        from YWXT.sm_alarm_record sar
+        left join YWXT.sm_alarm_rule e on e.id = sar.alarm_rule_id
+        left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number
+        left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+        where sar.is_deleted = 0
+        <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+            and sar.create_time >= #{alarmRecord.startTime}
+        </if>
+        <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+            and sar.create_time &lt;= #{alarmRecord.endTime}
+        </if>
+        <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''">
+            and  a."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
+        </if>
+        group by type
+        ) b on a.dict_value = b.type
+    </select>
+
+    <!--  查询大坝安全告警统计数据  -->
+    <select id="statisticAlarmRecordByAlarmRuleType" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord">
+        select
+            case
+                when alarm_rule_type='渗压监测告警' then '告警数量'
+                when alarm_rule_type='渗压监测预警' then '预警数量'
+                when alarm_rule_type='变形监测告警' then '告警数量'
+                when alarm_rule_type='变形监测预警' then '预警数量'
+                when alarm_rule_type='渗流监测告警' then '告警数量'
+                when alarm_rule_type='渗流监测预警' then '预警数量'
+            else alarm_rule_type
+            end as ruleName,
+        sum(
+        (
+        select count(*) from YWXT.sm_alarm_record cha
+        left join SJZT_MD."att_res_base" a on a."guid" = cha.reservoir_number
+        left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+        where a.id = cha.alarm_rule_id
+        and cha.is_deleted = 0
+        <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''">
+            and cha.create_time >= #{alarmRecord.startTime}
+        </if>
+        <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''">
+            and cha.create_time &lt;= #{alarmRecord.endTime}
+        </if>
+        <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''">
+            and  a."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%')
+        </if>
+        )
+        ) as num
+        from  YWXT.sm_alarm_rule a
+        <where>
+            <if test="alarmRecord.type!=null and alarmRecord.type!=''">
+                and type = #{alarmRecord.type}
+            </if>
+        </where>
+        group by alarm_rule_type
+    </select>
+
+    <!--查询符合条件的告警类型-->
+    <select id="listAlarmRule" resultType="cn.gistack.alerts.alarmRule.entity.AlarmRule">
+        select * from YWXT.sm_alarm_rule where is_deleted = 0
+        <if test="alarmRecord.type!=null and alarmRecord.type!=''">
+            and type = #{alarmRecord.type}
+        </if>
+        <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''">
+            and alarm_rule_type = #{alarmRecord.alarmRuleType}
+        </if>
+        <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''">
+            and create_alarm_type = #{alarmRecord.createAlarmType}
+        </if>
+        <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''">
+            and rule_name = #{alarmRecord.ruleName}
+        </if>
     </select>
 
 </mapper>

--
Gitblit v1.9.3