From 5e972eb9928c39b5abbdfd35e2a0aeff40876e7d Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 07 May 2024 17:23:16 +0800
Subject: [PATCH] 修改不成功问题

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml | 4643 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 4,469 insertions(+), 174 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
index e45bb51..fba93fa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -4,82 +4,252 @@
 
     <select id="getSingleRegionCount" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
         SELECT allNum,errorNum,AllNum-errorNum normalNum,aab."ad_name" adName,aab."guid" adCode FROM
-            (
-                SELECT
-                    (
-                        SELECT count(*) FROM
-                            (
-                                SELECT
-                                    a."guid",
-                                    a."name",
-                                    a."eng_scal",
-                                    case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
-                                    case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
-                                    case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
-                                    case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
-                                    case when b."ad_grad" = 3 THEN b."ad_name"when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
-                                    case when b."ad_grad" = 3 THEN b."order_id"when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
-                                    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 "city_ad_code",
-                                    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 "city_ad_name",
-                                    case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id"ELSE d."order_id" END AS "city_order_id",
-                                    case when b."ad_grad" = 1 THEN b."ad_code"when c."ad_grad" = 1 THEN c."ad_code"when d."ad_grad" = 1 THEN d."ad_code"ELSE e."ad_code" END AS "province_ad_code",
-                                    case when b."ad_grad" = 1 THEN b."ad_name"when c."ad_grad" = 1 THEN c."ad_name"when d."ad_grad" = 1 THEN d."ad_name"ELSE e."ad_name" END AS "province_ad_name",
-                                    case when b."ad_grad" = 1 THEN b."order_id"when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN d."order_id"ELSE e."order_id" END AS "province_order_id"
-                                FROM sjzt_md."att_res_base" a
-                                         LEFT JOIN (
-                                             SELECT "res_cd", "sys_resource"FROM
-                                                        (SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
-                                                         UNION
-                                                         SELECT  b."guid" as "res_cd", 'sy' as "sys_resource" FROM  sjzt_ods."dsm_spg_spprmp" a  LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
-                                         LEFT JOIN (
-                                             SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource" FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
-                                         LEFT JOIN (
-                                             SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd",  'wy' as "sys_resource" FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a  LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
-                                         LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
-                                where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
-                            ) baseRes
-                                LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = baseRes."town_ad_code"
-                                LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
-                                LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
-                                LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
-                                where 1=1
-                        <if test="dam.adCode != null and dam.adCode != '' ">
-                            AND (aab."ad_code" =#{dam.adCode}  or aa."ad_code" = #{dam.adCode} or ab."ad_code" = #{dam.adCode} or ac."ad_code" = #{dam.adCode})
-                        </if>
-                        ) AllNum,
-                    (
-                        SELECT COUNT(*)
-                        FROM (SELECT distinct DAM_ID FROM NKY_ALARM_GET NAG
-                                        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
-                                        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
-                                        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
-                                        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
-                                         LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
-                        WHERE 1=1
-                            <if test="dam.adCode != null and dam.adCode != '' ">
-                                and (aab."ad_code" =#{dam.adCode}  or aa."ad_code" = #{dam.adCode} or ab."ad_code" = #{dam.adCode} or ac."ad_code" = #{dam.adCode})
-                            </if>
+        (
+        SELECT
+        (
+        SELECT count(*) FROM
+        (
+        SELECT
+        a."guid",
+        a."name",
+        a."eng_scal",
+        case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
+        case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
+        case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
+        case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
+        case when b."ad_grad" = 3 THEN b."ad_name"when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
+        case when b."ad_grad" = 3 THEN b."order_id"when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
+        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
+        "city_ad_code",
+        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
+        "city_ad_name",
+        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id"ELSE d."order_id" END AS
+        "city_order_id",
+        case when b."ad_grad" = 1 THEN b."ad_code"when c."ad_grad" = 1 THEN c."ad_code"when d."ad_grad" = 1 THEN
+        d."ad_code"ELSE e."ad_code" END AS "province_ad_code",
+        case when b."ad_grad" = 1 THEN b."ad_name"when c."ad_grad" = 1 THEN c."ad_name"when d."ad_grad" = 1 THEN
+        d."ad_name"ELSE e."ad_name" END AS "province_ad_name",
+        case when b."ad_grad" = 1 THEN b."order_id"when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN
+        d."order_id"ELSE e."order_id" END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+        LEFT JOIN (
+        SELECT "res_cd", "sys_resource"FROM
+        (SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN
+        SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+        UNION
+        SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN
+        SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
+        LEFT JOIN (
+        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource" FROM
+        sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid")
+        WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
+        LEFT JOIN (
+        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM (SELECT
+        "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b
+        on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not
+        null) h ON a."guid" = h."res_cd"
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = baseRes."town_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+        where 1=1
+        <if test="dam.adCode != null and dam.adCode != '' ">
+            AND (aab."ad_code" =#{dam.adCode} or aa."ad_code" = #{dam.adCode} or ab."ad_code" = #{dam.adCode} or
+            ac."ad_code" = #{dam.adCode})
+        </if>
+        ) AllNum,
+        (
+        SELECT COUNT(*)
+        FROM (SELECT distinct DAM_ID FROM NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+        WHERE 1=1
+        <if test="dam.adCode != null and dam.adCode != '' ">
+            and (aab."ad_code" =#{dam.adCode} or aa."ad_code" = #{dam.adCode} or ab."ad_code" = #{dam.adCode} or
+            ac."ad_code" = #{dam.adCode})
+        </if>
 
-                            <if test="dam.startTime != null and dam.startTime != ''">
-                                AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
-                            </if>
-                            <if test="dam.endTime != null and dam.endTime !='' ">
-                                AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
-                            </if>
-
-                        )) errorNum
-            ),SJZT_MD."att_ad_base" aab
-            where 1=1
+        <if test="dam.startTime != null and dam.startTime != ''">
+            AND time &gt;= #{dam.startTime}
+        </if>
+        <if test="dam.endTime != null and dam.endTime !='' ">
+            AND time &lt;= #{dam.endTime}
+        </if>
+        )) errorNum
+        ),SJZT_MD."att_ad_base" aab
+        where 1=1
         <if test="dam.adCode != null and dam.adCode != '' ">
             and aab."guid" = #{dam.adCode}
         </if>
 
 
     </select>
+    <select id="getSingleRegionCountOptimize" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
+        SELECT SUM(TMP.allNum) allNum,sum(TMP.errorNum) errorNum,sum(normalNum) normalNum FROM (
+        select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
+        select "ad_code","ad_name",
+        (
+        select count(*) from  (
+        select max(NAG.dam_id) dam_id
+        FROM ywxt.NKY_ALARM_GET NAG
+        where time &gt;= #{dam.startTime} AND time &lt;= #{dam.endTime}
+        group by NAG.dam_id
+        ) NAG
+        left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
+        left join sjzt_md."att_ad_base" ada on (ada."guid" = res."interior_ad_guid")
+        left join sjzt_md."att_ad_base" adb on (adb."guid" = ada."p_ad_code")
+        left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
+        left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
+        where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
 
+
+        ) as errorNum,
+        (
+        SELECT COUNT(*) FROM (
+        SELECT a."guid",a."name",a."eng_scal",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_code"
+        ELSE NULL
+        END AS "town_ad_code",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_name"
+        ELSE NULL
+        END AS "town_ad_name",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."order_id"
+        ELSE NULL
+        END AS "town_order_id",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 3 THEN
+        c."ad_code"
+        END AS "county_ad_code",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 3 THEN
+        C."ad_name"
+        END AS "county_ad_name",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 3 THEN
+        C."order_id"
+        END AS "county_order_id",
+        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 "city_ad_code",
+        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 "city_ad_name",
+        CASE
+        WHEN b."ad_grad" = 2 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 2 THEN
+        c."order_id"
+        ELSE d."order_id"
+        END AS "city_order_id",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_code"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_code"
+        ELSE e."ad_code"
+        END AS "province_ad_code",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_name"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_name"
+        ELSE e."ad_name"
+        END AS "province_ad_name",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 1 THEN
+        c."order_id"
+        WHEN d."ad_grad" = 1 THEN
+        d."order_id"
+        ELSE e."order_id"
+        END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+        LEFT JOIN (
+        SELECT DISTINCT (dri."res_cd")
+        FROM sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss
+        ON dri."oth_reg_cd" = dss."rscd"
+        WHERE dss."rscd" is NOT NULL
+        ) f ON a."guid" = f."res_cd"
+        LEFT JOIN (
+        SELECT distinct(dri."res_cd")
+        FROM sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spqnmp" dss ON trim(dss."rscd") = dri."oth_reg_cd"
+        WHERE dss."rscd" is NOT NULL
+        ) G ON a."guid" = g."res_cd"
+        LEFT JOIN (
+        SELECT distinct("res_cd")
+        FROM sjzt_md."att_wy_cd_base" awcb
+        WHERE awcb."cd" != '00'
+        ) h ON a."guid" = h."res_cd"
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        WHERE
+        (
+        f."res_cd" is NOT null
+        OR g."res_cd" is NOT null
+        OR h."res_cd" is NOT null
+        )
+        AND (d."ad_code" = aab."guid"
+        OR c."ad_code" = aab."guid"
+        OR b."ad_code" = aab."guid" )
+        )
+        ) allNum
+
+        FROM SJZT_MD."att_ad_base" aab
+        where
+        <choose>
+            <when test="dam.adCode != null and dam.adCode !='' ">
+                "p_ad_code" = #{dam.adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+        )TMP
+
+
+
+
+
+    </select>
 
 
 
@@ -140,12 +310,6 @@
         LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
         UNION
         SELECT
-        b."guid" as "res_cd",
-        'sy' as "sys_resource"
-        FROM
-        sjzt_ods."dsm_spg_spprmp" a
-        LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
-        LEFT JOIN (SELECT
         "res_cd",
         "sys_resource"
         FROM
@@ -154,7 +318,8 @@
         'sl' as "sys_resource"
         FROM
         sjzt_ods."dsm_spg_spqnmp" a
-        LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
+        LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null)
+        G on a."guid" = g."res_cd"
         LEFT JOIN (SELECT
         "res_cd",
         "sys_resource"
@@ -164,12 +329,14 @@
         'wy' as "sys_resource"
         FROM
         (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a
-        LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
+        LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by
+        b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
         LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
-        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)  and (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null) and (d."ad_code" = aab."guid"
+        or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
         )
         ) allNum,
 
@@ -182,14 +349,14 @@
         where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
 
         <if test="dam.startTime != null and dam.startTime != ''">
-            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
+            AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
-            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
+            AND time &lt;= #{dam.endTime}
         </if>
 
         )) errorNum,
-        aab."ad_name" adName , aab."guid" adCode  from SJZT_MD."att_ad_base" aab
+        aab."ad_name" adName , aab."guid" adCode from SJZT_MD."att_ad_base" aab
         where
         <choose>
             <when test="dam.adCode != null and dam.adCode !='' ">
@@ -202,6 +369,158 @@
         )
 
     </select>
+    <select id="listRegionCountOptimize" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
+        select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
+            select "ad_code","ad_name",
+            (
+            select count(*) from  (
+            select max(NAG.dam_id) dam_id
+            FROM ywxt.NKY_ALARM_GET NAG
+            where time &gt;= #{dam.startTime} AND time &lt;= #{dam.endTime}
+            group by NAG.dam_id
+            ) NAG
+            left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
+            left join sjzt_md."att_ad_base" ada on (ada."guid" = res."interior_ad_guid")
+            left join sjzt_md."att_ad_base" adb on (adb."guid" = ada."p_ad_code")
+            left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
+            left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
+            where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
+
+
+            ) as errorNum,
+            (
+            SELECT COUNT(*) FROM (
+            SELECT a."guid",a."name",a."eng_scal",
+            CASE
+            WHEN b."ad_grad" = 4 THEN
+            b."ad_code"
+            ELSE NULL
+            END AS "town_ad_code",
+            CASE
+            WHEN b."ad_grad" = 4 THEN
+            b."ad_name"
+            ELSE NULL
+            END AS "town_ad_name",
+            CASE
+            WHEN b."ad_grad" = 4 THEN
+            b."order_id"
+            ELSE NULL
+            END AS "town_order_id",
+            CASE
+            WHEN b."ad_grad" = 3 THEN
+            b."ad_code"
+            WHEN c."ad_grad" = 3 THEN
+            c."ad_code"
+            END AS "county_ad_code",
+            CASE
+            WHEN b."ad_grad" = 3 THEN
+            b."ad_name"
+            WHEN c."ad_grad" = 3 THEN
+            C."ad_name"
+            END AS "county_ad_name",
+            CASE
+            WHEN b."ad_grad" = 3 THEN
+            b."order_id"
+            WHEN c."ad_grad" = 3 THEN
+            C."order_id"
+            END AS "county_order_id",
+            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 "city_ad_code",
+            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 "city_ad_name",
+            CASE
+            WHEN b."ad_grad" = 2 THEN
+            b."order_id"
+            WHEN c."ad_grad" = 2 THEN
+            c."order_id"
+            ELSE d."order_id"
+            END AS "city_order_id",
+            CASE
+            WHEN b."ad_grad" = 1 THEN
+            b."ad_code"
+            WHEN c."ad_grad" = 1 THEN
+            c."ad_code"
+            WHEN d."ad_grad" = 1 THEN
+            d."ad_code"
+            ELSE e."ad_code"
+            END AS "province_ad_code",
+            CASE
+            WHEN b."ad_grad" = 1 THEN
+            b."ad_name"
+            WHEN c."ad_grad" = 1 THEN
+            c."ad_name"
+            WHEN d."ad_grad" = 1 THEN
+            d."ad_name"
+            ELSE e."ad_name"
+            END AS "province_ad_name",
+            CASE
+            WHEN b."ad_grad" = 1 THEN
+            b."order_id"
+            WHEN c."ad_grad" = 1 THEN
+            c."order_id"
+            WHEN d."ad_grad" = 1 THEN
+            d."order_id"
+            ELSE e."order_id"
+            END AS "province_order_id"
+            FROM sjzt_md."att_res_base" a
+            LEFT JOIN (
+            SELECT DISTINCT (dri."res_cd")
+            FROM sjzt_dw."dim_res_info_a" dri
+            LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss
+            ON dri."oth_reg_cd" = dss."rscd"
+            WHERE dss."rscd" is NOT NULL
+            ) f ON a."guid" = f."res_cd"
+            LEFT JOIN (
+            SELECT distinct(dri."res_cd")
+            FROM sjzt_dw."dim_res_info_a" dri
+            LEFT JOIN sjzt_ods."dsm_spg_spqnmp" dss ON trim(dss."rscd") = dri."oth_reg_cd"
+            WHERE dss."rscd" is NOT NULL
+            ) G ON a."guid" = g."res_cd"
+            LEFT JOIN (
+            SELECT distinct("res_cd")
+            FROM sjzt_md."att_wy_cd_base" awcb
+            WHERE awcb."cd" != '00'
+            ) h ON a."guid" = h."res_cd"
+            LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+            WHERE
+            (
+            f."res_cd" is NOT null
+            OR g."res_cd" is NOT null
+            OR h."res_cd" is NOT null
+            )
+            AND (d."ad_code" = aab."guid"
+            OR c."ad_code" = aab."guid"
+            OR b."ad_code" = aab."guid" )
+            )
+            ) allNum
+
+            FROM SJZT_MD."att_ad_base" aab
+            where
+            <choose>
+                <when test="dam.adCode != null and dam.adCode !='' ">
+                    "p_ad_code" = #{dam.adCode}
+                </when>
+                <otherwise>
+                    "ad_grad" = 2
+                </otherwise>
+            </choose>
+        )
+    </select>
+
+
     <select id="tableResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
 
         SELECT
@@ -216,10 +535,11 @@
         info."city_ad_name" AS cityName,
         (info.wy+info.sy+info.sl) AS total,
         (info.wy+info.sy+info.sl-info.errorCountNum) AS normalNum,
-        info.errorNum  AS errorNum
+        info.errorNum AS errorNum
         FROM
         (
-        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0) sl,ifnull(alarm.errorNum,0) errorNum, ifnull(c1.errorCountNum,0) errorCountNum FROM
+        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0)
+        sl,ifnull(alarm.errorNum,0) errorNum, ifnull(c1.errorCountNum,0) errorCountNum FROM
         (
         SELECT
         a."guid",
@@ -231,53 +551,107 @@
         case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
         case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
         case when b."ad_grad" = 3 THEN b."order_id" when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
-        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 "city_ad_code",
-        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 "city_ad_name",
-        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS "city_order_id",
-        case when b."ad_grad" = 1 THEN b."ad_code"  when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
-        case when b."ad_grad" = 1 THEN b."ad_name"  when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
-        case when b."ad_grad" = 1 THEN b."order_id"  when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN d."order_id" ELSE e."order_id" END AS "province_order_id"
+        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
+        "city_ad_code",
+        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
+        "city_ad_name",
+        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS
+        "city_order_id",
+        case when b."ad_grad" = 1 THEN b."ad_code" when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN
+        d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
+        case when b."ad_grad" = 1 THEN b."ad_name" when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN
+        d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
+        case when b."ad_grad" = 1 THEN b."order_id" when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN
+        d."order_id" ELSE e."order_id" END AS "province_order_id"
         FROM sjzt_md."att_res_base" a
         LEFT JOIN (
-        SELECT "res_cd","sys_resource" FROM (SELECT b."guid" as "res_cd",'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
-        UNION
-        SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        where dss."rscd" is not null
+
+        ) f ON a."guid" = f."res_cd"
         LEFT JOIN (
-        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource"  FROM sjzt_ods."dsm_spg_spqnmp" a   LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
-        LEFT JOIN (SELECT  "res_cd", "sys_resource" FROM  (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a  LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        where dss."rscd" is not null
+
+        ) G on a."guid" = g."res_cd"
+        LEFT JOIN (
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        where awcb."cd" != '00'
+
+        ) h ON a."guid" = h."res_cd"
         LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
         where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
+        <if test="dam.adCode != null and dam.adCode !='' ">
+            AND (c."ad_code" = #{dam.adCode} or d."ad_code" =#{dam.adCode}or e."ad_code" = #{dam.adCode})
+        </if>
+
         ) baseRes
         LEFT JOIN (
-        SELECT "res_cd",COUNT(*) wyStation
-        FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
-        FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
-        GROUP BY "res_cd"
+
+
+        select res."res_cd",count(*) wyStation from(
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        where awcb."cd" != '00'
+
+        )res LEFT JOIN SJZT_MD."att_wy_cd_base" acb ON acb."res_cd" = res."res_cd"
+        where acb."cd_type" = 'wy' group by res."res_cd"
+
+
         ) wy ON wy."res_cd" = baseRes."guid"
         LEFT JOIN(
-        SELECT "res_cd", COUNT(*) syStation
-        FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
-        FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
-        GROUP BY "res_cd"
+
+        select res."res_cd",count(*) syStation from(
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        where dss."rscd" is not null
+        )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
+        where acb."cd_type" = 'sy' group by res."res_cd"
+
         ) sy ON sy."res_cd" = baseRes."guid"
         LEFT JOIN (
-        SELECT "res_cd",COUNT(*) slStation
-        FROM  ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
-        FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
-        GROUP BY "res_cd"
+
+
+        select res."res_cd",count(*) slStation from(
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        where dss."rscd" is not null
+
+
+        )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
+        where acb."cd_type" = 'sl' group by res."res_cd"
+
+
         ) sl ON sl."res_cd" = baseRes."guid"
         LEFT JOIN (
         SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
         WHERE 1=1
 
         <if test="dam.startTime != null and dam.startTime != ''">
-            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
+            AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
-            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
+            AND time &lt;= #{dam.endTime}
         </if>
 
 
@@ -290,49 +664,45 @@
         SELECT DAM_ID, COUNT(*) FROM YWXT.NKY_ALARM_GET
         WHERE 1=1
         <if test="dam.startTime != null and dam.startTime != ''">
-            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
+            AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
-            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
+            AND time &lt;= #{dam.endTime}
         </if>
         GROUP BY DAM_ID,POINT_ID
         ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
 
-        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = "town_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
         WHERE 1=1
         <!--这里加条件-->
-        <if test="dam.adCode != null and dam.adCode !='' ">
-            AND  (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode} )
-        </if>
+
 
         <if test="dam.resName != null and dam.resName !='' ">
             AND "name" LIKE CONCAT('%',#{dam.resName},'%')
         </if>
-        ) info
+        ) info order by info.errorNum desc
 
     </select>
 
     <select id="tableResCountPage" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
 
         SELECT
-               info."guid" AS resCd,
-               info."name" AS resName,
-               info."eng_scal" AS engScal,
-               info."town_ad_code" AS townCode,
-               info."town_ad_name" AS townName,
-               info."county_ad_code" AS countyCode,
-               info."county_ad_name" AS countyName ,
-               info."city_ad_code" AS cityCode,
-               info."city_ad_name" AS cityName,
-                (info.wy+info.sy+info.sl) AS total,
-               (info.wy+info.sy+info.sl-info.errorCountNum) AS normalNum,
-               info.errorNum  AS errorNum
+        info."guid" AS resCd,
+        info."name" AS resName,
+        info."eng_scal" AS engScal,
+        info."town_ad_code" AS townCode,
+        info."town_ad_name" AS townName,
+        info."county_ad_code" AS countyCode,
+        info."county_ad_name" AS countyName ,
+        info."city_ad_code" AS cityCode,
+        info."city_ad_name" AS cityName,
+        (info.wy+info.sy+info.sl) AS total,
+        (info.wy+info.sy+info.sl-info.errorCountNum) AS normalNum,
+        info.errorNum AS errorNum
         FROM
         (
-        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0) sl,ifnull(alarm.errorNum,0) errorNum, ifnull(c1.errorCountNum,0) errorCountNum FROM
+        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0)
+        sl,ifnull(alarm.errorNum,0) errorNum, ifnull(c1.errorCountNum,0) errorCountNum FROM
         (
         SELECT
         a."guid",
@@ -344,20 +714,33 @@
         case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
         case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
         case when b."ad_grad" = 3 THEN b."order_id" when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
-        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 "city_ad_code",
-        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 "city_ad_name",
-        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS "city_order_id",
-        case when b."ad_grad" = 1 THEN b."ad_code"  when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
-        case when b."ad_grad" = 1 THEN b."ad_name"  when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
-        case when b."ad_grad" = 1 THEN b."order_id"  when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN d."order_id" ELSE e."order_id" END AS "province_order_id"
+        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
+        "city_ad_code",
+        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
+        "city_ad_name",
+        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS
+        "city_order_id",
+        case when b."ad_grad" = 1 THEN b."ad_code" when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN
+        d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
+        case when b."ad_grad" = 1 THEN b."ad_name" when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN
+        d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
+        case when b."ad_grad" = 1 THEN b."order_id" when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN
+        d."order_id" ELSE e."order_id" END AS "province_order_id"
         FROM sjzt_md."att_res_base" a
         LEFT JOIN (
-        SELECT "res_cd","sys_resource" FROM (SELECT b."guid" as "res_cd",'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+        SELECT "res_cd","sys_resource" FROM (SELECT b."guid" as "res_cd",'sy' as "sys_resource" FROM
+        sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
         UNION
-        SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
+        SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN
+        SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
         LEFT JOIN (
-        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource"  FROM sjzt_ods."dsm_spg_spqnmp" a   LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
-        LEFT JOIN (SELECT  "res_cd", "sys_resource" FROM  (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a  LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
+        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource" FROM
+        sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid")
+        WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
+        LEFT JOIN (SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM
+        (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN
+        SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid")
+        WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
         LEFT JOIN sjzt_md."att_ad_base" b ON a."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"
@@ -365,51 +748,55 @@
         where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
         ) baseRes
         LEFT JOIN (
-            SELECT "res_cd",COUNT(*) wyStation
-            FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
-            FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
-            GROUP BY "res_cd"
+        SELECT "res_cd",COUNT(*) wyStation
+        FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
+        FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN
+        SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid"
+        WHERE b."guid" is not null)
+        GROUP BY "res_cd"
         ) wy ON wy."res_cd" = baseRes."guid"
         LEFT JOIN(
-            SELECT "res_cd", COUNT(*) syStation
-            FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
-            FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
-            GROUP BY "res_cd"
+        SELECT "res_cd", COUNT(*) syStation
+        FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
+        FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+        WHERE b."guid" is not null)
+        GROUP BY "res_cd"
         ) sy ON sy."res_cd" = baseRes."guid"
         LEFT JOIN (
-            SELECT "res_cd",COUNT(*) slStation
-            FROM  ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
-            FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
-            GROUP BY "res_cd"
+        SELECT "res_cd",COUNT(*) slStation
+        FROM ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
+        FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" WHERE
+        b."guid" is not null group by b."guid" )
+        GROUP BY "res_cd"
         ) sl ON sl."res_cd" = baseRes."guid"
         LEFT JOIN (
-            SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
-            WHERE 1=1
+        SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
+        WHERE 1=1
 
         <if test="dam.startTime != null and dam.startTime != ''">
-            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
+            AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
-            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
+            AND time &lt;= #{dam.endTime}
         </if>
 
 
         GROUP BY "DAM_ID"
-            ) alarm ON alarm.DAM_ID = baseRes."guid"
+        ) alarm ON alarm.DAM_ID = baseRes."guid"
 
         LEFT JOIN (
-            SELECT DAM_ID ,COUNT(*) errorCountNum
-            FROM (
-                SELECT DAM_ID, COUNT(*) FROM YWXT.NKY_ALARM_GET
-                    WHERE 1=1
+        SELECT DAM_ID ,COUNT(*) errorCountNum
+        FROM (
+        SELECT DAM_ID, COUNT(*) FROM YWXT.NKY_ALARM_GET
+        WHERE 1=1
         <if test="dam.startTime != null and dam.startTime != ''">
-            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{dam.startTime}
+            AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
-            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
+            AND time &lt;= #{dam.endTime}
         </if>
         GROUP BY DAM_ID,POINT_ID
-                ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
+        ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
 
         LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = "town_ad_code"
         LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
@@ -418,7 +805,8 @@
         WHERE 1=1
         <!--这里加条件-->
         <if test="dam.adCode != null and dam.adCode !='' ">
-            AND  (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode} )
+            AND (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode}
+            )
         </if>
 
         <if test="dam.resName != null and dam.resName !='' ">
@@ -427,23 +815,3930 @@
         ) info
 
     </select>
+
+
+    <select id="tableResCountPageOptimize" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+
+        SELECT
+        info."guid" AS resCd,
+        info."res_reg_code" as resRegCode,
+        info."name" AS resName,
+        info."eng_scal" AS engScal,
+        info."town_ad_code" AS townCode,
+        info."town_ad_name" AS townName,
+        info."county_ad_code" AS countyCode,
+        info."county_ad_name" AS countyName ,
+        info."city_ad_code" AS cityCode,
+        info."city_ad_name" AS cityName,
+        (info.wy+info.sy+info.sl) AS total,
+        (info.wy+info.sy+info.sl-info.errorCountNum) AS normalNum,
+        info.errorNum AS errorNum
+        FROM
+        (
+        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0)
+        sl,ifnull(alarm.errorNum,0) errorNum, ifnull(c1.errorCountNum,0) errorCountNum FROM
+        (
+        SELECT
+        a."guid",
+        a."name",
+        a."eng_scal",
+        a."res_reg_code",
+        case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
+        case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
+        case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
+        case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
+        case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
+        case when b."ad_grad" = 3 THEN b."order_id" when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
+        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
+        "city_ad_code",
+        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
+        "city_ad_name",
+        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS
+        "city_order_id",
+        case when b."ad_grad" = 1 THEN b."ad_code" when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN
+        d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
+        case when b."ad_grad" = 1 THEN b."ad_name" when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN
+        d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
+        case when b."ad_grad" = 1 THEN b."order_id" when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN
+        d."order_id" ELSE e."order_id" END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+        LEFT JOIN (
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        where dss."rscd" is not null
+
+        ) f ON a."guid" = f."res_cd"
+        LEFT JOIN (
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        where dss."rscd" is not null
+
+        ) G on a."guid" = g."res_cd"
+        LEFT JOIN (
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        where awcb."cd" != '00'
+
+        ) h ON a."guid" = h."res_cd"
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
+        <if test="dam.adCode != null and dam.adCode !='' ">
+            AND (c."ad_code" = #{dam.adCode} or d."ad_code" =#{dam.adCode}or e."ad_code" = #{dam.adCode})
+        </if>
+
+        ) baseRes
+        LEFT JOIN (
+
+
+        select res."res_cd",count(*) wyStation from(
+
+            SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+            where awcb."cd" != '00'
+
+        )res LEFT JOIN SJZT_MD."att_wy_cd_base" acb ON acb."res_cd" = res."res_cd"
+        where acb."cd_type" = 'wy' group by res."res_cd"
+
+
+        ) wy ON wy."res_cd" = baseRes."guid"
+        LEFT JOIN(
+
+                select res."res_cd",count(*) syStation from(
+                SELECT
+                distinct (dri."res_cd")
+                FROM
+                sjzt_dw."dim_res_info_a" dri
+                LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+                where dss."rscd" is not null
+                )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
+                where acb."cd_type" = 'sy' group by res."res_cd"
+
+        ) sy ON sy."res_cd" = baseRes."guid"
+        LEFT JOIN (
+
+
+        select res."res_cd",count(*) slStation from(
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        where dss."rscd" is not null
+
+
+        )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
+        where acb."cd_type" = 'sl' group by res."res_cd"
+
+
+        ) sl ON sl."res_cd" = baseRes."guid"
+        LEFT JOIN (
+        SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
+        WHERE 1=1
+
+        <if test="dam.startTime != null and dam.startTime != ''">
+            AND time &gt;= #{dam.startTime}
+        </if>
+        <if test="dam.endTime != null and dam.endTime !='' ">
+            AND time &lt;= #{dam.endTime}
+        </if>
+
+
+        GROUP BY "DAM_ID"
+        ) alarm ON alarm.DAM_ID = baseRes."guid"
+
+        LEFT JOIN (
+        SELECT DAM_ID ,COUNT(*) errorCountNum
+        FROM (
+        SELECT DAM_ID, COUNT(*) FROM YWXT.NKY_ALARM_GET
+        WHERE 1=1
+        <if test="dam.startTime != null and dam.startTime != ''">
+            AND time &gt;= #{dam.startTime}
+        </if>
+        <if test="dam.endTime != null and dam.endTime !='' ">
+            AND time &lt;= #{dam.endTime}
+        </if>
+        GROUP BY DAM_ID,POINT_ID
+        ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
+
+
+        WHERE 1=1
+        <!--这里加条件-->
+
+
+        <if test="dam.resName != null and dam.resName !='' ">
+            AND "name" LIKE CONCAT('%',#{dam.resName},'%')
+        </if>
+        ) info order by info.errorNum desc
+    </select>
+
+
+
+
     <select id="alarmResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
         SELECT
-               arb."center_long" AS longitude,
-               arb."center_lat" AS latitude,
-               resCd
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude,
+        arb."name" as resName,
+        resCd,
+        abb."code" AS basCode,
+        abb."name" AS basName
         FROM
+        (
+        SELECT NAG.dam_id resCd,count(*) FROM YWXT.NKY_ALARM_GET NAG GROUP BY NAG.dam_id
+        ) baseAlarm
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseAlarm.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = baseAlarm.resCd
+        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
+        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+
+        WHERE 1=1
+        <if test="dam.adCode != null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" =
+            #{dam.adCode})
+        </if>
+        <if test="basCodes != null and basCodes !='' ">
+            AND(
+            abb."code" in
+            <foreach collection="basCodes.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            or pabb."code" in
+            <foreach collection="basCodes.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+    </select>
+
+    <select id="damResInfoCount" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
+        SELECT
+        base.total AS total,
+        base.errorNum AS errorNum,
+        (base.total - base.errorNum) AS normalNum,
+        base.type AS type,
+        base.typeName AS typeName
+        FROM
+        (
+        SELECT * FROM
+        (
+        -- 位移水库数
+        SELECT
+        COUNT(*) total,
+        '位移' AS typeName,
+        '3' AS type,
+        (SELECT COUNT(*)FROM
+        (
+        SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE
+        (TYPE = 3 or type = 4 or type = 5) AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        GROUP BY DAM_ID
+        )
+        ) errorNum
+        FROM
+        (
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+        )
+        UNION ALL
+
+
+        -- 渗压水库数
+        SELECT
+        COUNT(*) total,
+        '渗压' AS typeName ,
+        '1' AS type,
+        (SELECT COUNT(*) FROM
+        (
+        SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE
+        TYPE = 1
+        AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        GROUP BY DAM_ID
+        )
+        ) errorNum
+        FROM
+        (
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+        )
+        UNION ALL
+
+
+        -- 渗流水库数
+        SELECT
+        COUNT(*) total,
+        '渗流' AS typeName,
+        '2' AS type,
+        (
+        SELECT COUNT(*) FROM
+        (
+        SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE
+        TYPE = 2
+        AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        GROUP BY DAM_ID
+        )
+        ) errorNum
+        FROM
+        (
+
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" adCode!= null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+
+        )
+        )
+        ) base
+
+    </select>
+
+    <select id="getResErrorList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+
+        SELECT
+        DISTINCT
+        arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE
+        DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test="dam.type != null and dam.type != '' and dam.type == 1">
+            AND NAG.TYPE = #{dam.type}
+        </if>
+        <if test="dam.type != null and dam.type != '' and dam.type == 2">
+            AND NAG.TYPE = #{dam.type}
+        </if>
+        <if test="dam.type != null and dam.type !='' and dam.type == 3">
+            AND (NAG.TYPE = '3' or NAG.TYPE = '4' or NAG.TYPE = '5')
+        </if>
+        <if test="adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+    </select>
+
+    <select id="getResWyNormalList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM (
+        SELECT
+        b."guid" as "res_cd",
+        'wy' as "sys_resource"
+        FROM (
+        SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code"
+        ) a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid"
+        WHERE
+        b."guid" IS NOT NULL
+        and b."guid" NOT IN (
+        ifnull(
+        (
+        SELECT wm_concat(temp.resCd) FROM(
+        SELECT DISTINCT arb."guid" AS resCd
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE
+        DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        AND (NAG.TYPE = 3 OR NAG.TYPE = 4 OR NAG.TYPE = 5)
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        ) temp),'')
+        )
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+    </select>
+
+    <select id="getResSyNormalList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM(
+        SELECT
+        b."guid" as "res_cd",
+        'sy' as "sys_resource"
+        FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+        WHERE b."guid" IS NOT NULL
+        AND b."guid" NOT IN (
+        ifnull(
+        (
+        SELECT wm_concat(temp.resCd)
+        FROM (
+        SELECT DISTINCT arb."guid" AS resCd
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE NAG.TYPE = 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        ) temp),'')
+        )
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+    </select>
+
+    <select id="getResSlNormalList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM (
+
+        SELECT
+        b."guid" as "res_cd",
+        'sl' as "sys_resource"
+        FROM sjzt_ods."dsm_spg_spqn" a
+        LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+        WHERE
+        b."guid" IS NOT NULL
+        AND a."mstm" &gt;=now()-30 and a."mstm"&lt;= now()
+        AND b."guid" NOT IN (
+        ifnull(
+        (SELECT wm_concat(temp.resCd) FROM
+        (
+        SELECT DISTINCT arb."guid" AS resCd
+
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE NAG.TYPE = 2 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+        ) temp),''
+        )
+        )
+        group by b."guid" ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+    </select>
+
+
+    <select id="getSyList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM(
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        where dss."rscd" is not null
+
+        <if test="status ==2">
+            AND dri."res_cd" NOT IN (
+            ifnull(
             (
-                SELECT NAG.dam_id resCd,count(*)  FROM YWXT.NKY_ALARM_GET NAG GROUP BY NAG.dam_id
-            ) baseAlarm
-                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseAlarm.resCd
+            SELECT wm_concat(temp.resCd)
+            FROM (
+            SELECT DISTINCT arb."guid" AS resCd
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE NAG.TYPE = 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),'')
+            )
+        </if>
+
+        <if test="status == 3">
+            AND dri."res_cd" IN (
+            ifnull(
+            (
+            SELECT wm_concat(temp.resCd)
+            FROM (
+            SELECT DISTINCT arb."guid" AS resCd
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE NAG.TYPE = 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),'')
+            )
+        </if>
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+    </select>
+
+    <select id="getSlList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM (
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        where dss."rscd" is not null
+
+        <if test="status == 2">
+            AND dri."res_cd" NOT IN (
+            ifnull(
+            (SELECT wm_concat(temp.resCd) FROM
+            (
+            SELECT DISTINCT arb."guid" AS resCd
+
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE NAG.TYPE = 2 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),''
+            )
+            )
+        </if>
+
+        <if test="status == 3">
+            AND dri."res_cd" IN (
+            ifnull(
+            (SELECT wm_concat(temp.resCd) FROM
+            (
+            SELECT DISTINCT arb."guid" AS resCd
+
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE NAG.TYPE = 2 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),''
+            )
+            )
+        </if>
+
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+    </select>
+
+    <select id="getWyList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        DISTINCT arb."guid" AS resCd,
+        arb."name" AS resName,
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude
+        FROM (
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        where awcb."cd" != '00'
+
+        <if test="status == 2">
+
+            and awcb."res_cd" NOT IN (
+            ifnull(
+            (
+            SELECT wm_concat(temp.resCd) FROM(
+            SELECT DISTINCT arb."guid" AS resCd
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE
+            DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            AND (NAG.TYPE = 3 OR NAG.TYPE = 4 OR NAG.TYPE = 5)
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),'')
+            )
+
+        </if>
+        <if test="status == 3">
+
+            and awcb."res_cd" IN (
+            ifnull(
+            (
+            SELECT wm_concat(temp.resCd) FROM(
+            SELECT DISTINCT arb."guid" AS resCd
+            FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE
+            DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            AND (NAG.TYPE = 3 OR NAG.TYPE = 4 OR NAG.TYPE = 5)
+            <if test=" adCode != null and adCode !='' ">
+                AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+            </if>
+            ) temp),'')
+            )
+
+        </if>
+
+
+        ) baseRes
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseRes."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1=1
+        <if test=" adCode != null and adCode !='' ">
+            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+        </if>
+
+
+    </select>
+    <select id="listRegionCountMonitor" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
+        SELECT errorNum,adName,adCode FROM(
+            SELECT(
+                SELECT COUNT(*)FROM (
+                    SELECT distinct DAM_ID FROM NKY_ALARM_GET NAG
+                        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+                        left join SJZT_MD."att_ad_base" b on arb."interior_ad_guid" = b."ad_code"
+                        left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+                        left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+
+                        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
+                        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
+                        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+                        where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        <if test="dam.startTime != null and dam.startTime != ''">
+            AND time &gt;= #{dam.startTime}
+        </if>
+        <if test="dam.endTime != null and dam.endTime !='' ">
+            AND time &lt;= #{dam.endTime}
+        </if>
+
+                        <if test="dam.engScal != null and dam.engScal !='' ">
+                            AND arb."eng_scal" = #{dam.engScal}
+                        </if>
+
+                          <if test="dam.type != null and dam.type != '' and dam.type != 3">
+                            AND NAG.type = #{dam.type}
+                        </if>
+                        <if test="dam.type != null and dam.type != '' and dam.type == 3">
+                            AND (NAG.type = 3 or NAG.type = 4 or NAG.type = 5)
+                        </if>
+
+                        <if test="dam.label != null and dam.label != '' ">
+                            AND( 1=1
+                            <foreach collection="dam.label.split(',')" item="item" open="" separator="" close="" index="index">
+                                OR  #{item}  in (arb."label")
+                            </foreach>
+                            )
+                        </if>
+
+                        <if test="dam.basGuid != null and dam.basGuid !='' ">
+                            AND(
+                            abb."code" in
+                            <foreach collection="dam.basGuid.split(',')" item="item" index="index" open="(" separator="," close=")">
+                                #{item}
+                            </foreach>
+                            or pabb."code" in
+                            <foreach collection="dam.basGuid.split(',')" item="item" index="index" open="(" separator="," close=")">
+                                #{item}
+                            </foreach>
+                            )
+                        </if>
+                    )
+            ) errorNum,
+        aab."ad_name" adName , aab."guid" adCode from SJZT_MD."att_ad_base" aab
+        where
+        <choose>
+            <when test="dam.adCode != null and dam.adCode !='' ">
+                "p_ad_code" = #{dam.adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+
+    </select>
+
+
+    <select id="getRegionList" resultType="cn.gistack.sm.damSecurity.vo.DamMonitor">
+        SELECT aab."ad_name" adName , aab."guid" adCode from SJZT_MD."att_ad_base" aab where
+        <choose>
+            <when test="dam.adCode != null and dam.adCode !='' ">
+                "p_ad_code" = #{dam.adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+    </select>
+    <select id="getLevelList" resultType="cn.gistack.sm.damSecurity.vo.LevelPo">
+        SELECT COUNT(*) AS num ,level FROM NKY_ALARM_GET NAG
+                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+                left join SJZT_MD."att_ad_base" town on arb."interior_ad_guid" = town."ad_code"
+                left join SJZT_MD."att_ad_base" county on town."p_ad_code" = county."ad_code"
+                left join SJZT_MD."att_ad_base" city on county."p_ad_code" = city."ad_code"
+                left join SJZT_MD."att_ad_base" province on city."p_ad_code" = province."ad_code"
+                LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
+
+                LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
+                LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+        where 1=1 and NAG.level != 5
+
+        AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{dam.adCode},'%')
+        <if test="dam.startTime != null and dam.startTime != ''">
+            AND time &gt;= #{dam.startTime}
+        </if>
+        <if test="dam.endTime != null and dam.endTime !='' ">
+            AND time &lt;= #{dam.endTime}
+        </if>
+
+        <if test="dam.engScal != null and dam.engScal !='' ">
+            AND arb."eng_scal" = #{dam.engScal}
+        </if>
+
+        <if test="dam.type != null and dam.type != '' and dam.type != 3">
+            AND NAG.type = #{dam.type}
+        </if>
+        <if test="dam.type != null and dam.type != '' and dam.type == 3">
+            AND (NAG.type = 3 or NAG.type = 4 or NAG.type = 5)
+        </if>
+
+        <if test="dam.labels != null and dam.labels != '' ">
+            AND( 1!=1
+            <foreach collection="dam.labels.split(',')" item="item" open="" separator="" close="" index="index">
+                OR  #{item}  in (arb."label")
+            </foreach>
+            )
+        </if>
+
+        <if test="dam.basGuids != null and dam.basGuids !='' ">
+            AND(
+            abb."code" in
+            <foreach collection="dam.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            or pabb."code" in
+            <foreach collection="dam.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+
+        GROUP BY LEVEL ORDER BY level ASC
+
+    </select>
+
+
+
+    <select id="pageMonitor" resultType="cn.gistack.nky.vo.AlarmGetVO">
+        SELECT
+        NAG.ID,
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE,
+        (
+        CASE
+        WHEN NAG.TYPE=1 THEN '渗压'
+        WHEN NAG.TYPE=2 THEN '渗流'
+        WHEN (NAG.TYPE=3 OR NAG.TYPE=4 OR NAG.TYPE=5) THEN '位移'
+        END) AS typeName,
+        NAG.TIME,
+        NAG.VALUE,
+        NAG."DESC",
+        NAG.CREATE_TIME,
+        NAG.TASK_CATEGORY,
+        NAG.LEVEL,
+        NAG.BAOJINGZHI,
+        NAG.ORIGIN_ID,
+        NAG.FORWARD,
+        NAG."REVERSE",
+        NAG.RATIO,
+        NAG.STATUS,
+        province."guid" as provinceCode,
+        province."ad_name" as provinceName,
+        city."guid" as cityCode,
+        city."ad_name" as cityName,
+        county."guid" as countyCode,
+        county."ad_name" as countyName,
+
+        arb."name" as reservoirName,
+        acb."cd_nm" as cdName
+
+        FROM NKY_ALARM_GET NAG
+
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+
+        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
+
+        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
+        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+        LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = NAG.DAM_ID AND NAG.POINT_ID = acb."cd"
+        WHERE 1=1 and level != 5
+        <if test=" vo.adCode != null and vo.adCode !='' ">
+            AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{vo.adCode},'%')
+        </if>
+        <if test="vo.startTime != null and vo.startTime != ''">
+            AND NAG.time &gt;= #{vo.startTime}
+        </if>
+        <if test="vo.endTime != null and vo.endTime !='' ">
+            AND NAG.time &lt;= #{vo.endTime}
+        </if>
+
+        <if test="vo.level != null and vo.level !='' ">
+            AND NAG.level = #{vo.level}
+        </if>
+
+        <if test="vo.status != null and vo.status !='' ">
+            AND NAG.status = #{vo.status}
+        </if>
+
+        <if test="vo.type != null and vo.type !='' and vo.type == 1 ">
+            AND NAG.type = #{vo.type}
+        </if>
+
+        <if test="vo.type != null and vo.type !='' and vo.type == 2">
+            AND NAG.type = #{vo.type}
+        </if>
+
+        <if test="vo.type != null and vo.type !='' and vo.type == 3">
+            AND (NAG.type = '3' or NAG.type = '4' or NAG.type = '5')
+        </if>
+
+        <if test="vo.pointId != null and vo.pointId !='' ">
+            AND NAG.POINT_id = #{vo.pointId}
+        </if>
+
+        <if test="vo.basGuids != null and vo.basGuids !='' ">
+            AND(
+            abb."code" in
+            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            or pabb."code" in
+            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+
+        <if test="vo.labels != null and vo.labels != '' ">
+            AND( 1!=1
+            <foreach collection="vo.labels.split(',')" item="item" open="" separator="" close="" index="index">
+                OR  #{item}  in (arb."label")
+            </foreach>
+            )
+        </if>
+
+        <if test="vo.engScal != null and vo.engScal !='' ">
+            AND arb."eng_scal" = #{vo.engScal}
+        </if>
+
+        <if test="vo.resCds != null and vo.resCds != ''">
+            AND NAG.dam_id in
+            <foreach collection="vo.resCds.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY NAG.TIME DESC
+
+    </select>
+    <select id="pageMonitorWy" resultType="cn.gistack.nky.vo.AlarmGetVO">
+
+        SELECT
+        NAG.ID,
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE,
+        (
+        CASE
+        WHEN NAG.TYPE=1 THEN '渗压'
+        WHEN NAG.TYPE=2 THEN '渗流'
+        WHEN (NAG.TYPE=3 OR NAG.TYPE=4 OR NAG.TYPE=5) THEN '位移'
+        END) AS typeName,
+        NAG.TIME,
+        NAG.VALUE,
+        NAG."DESC",
+        NAG.CREATE_TIME,
+        NAG.TASK_CATEGORY,
+        NAG.LEVEL,
+        NAG.BAOJINGZHI,
+        NAG.ORIGIN_ID,
+        NAG.FORWARD,
+        NAG."REVERSE",
+        NAG.RATIO,
+        NAG.STATUS,
+        province."guid" as provinceCode,
+        province."ad_name" as provinceName,
+        city."guid" as cityCode,
+        city."ad_name" as cityName,
+        county."guid" as countyCode,
+        county."ad_name" as countyName,
+
+        arb."name" as reservoirName,
+        awcb."cd_nm" as cdName
+
+        FROM NKY_ALARM_GET NAG
+
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+
+        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
+
+        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
+        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
+        LEFT JOIN SJZT_MD."att_wy_cd_base" awcb ON awcb."res_cd" = NAG.DAM_ID AND NAG.POINT_ID = awcb."cd"
+        WHERE 1=1 and level != 5
+        <if test=" vo.adCode != null and vo.adCode !='' ">
+            AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{vo.adCode},'%')
+        </if>
+
+        <if test="vo.startTime != null and vo.startTime != ''">
+            AND NAG.time  &gt;= #{vo.startTime}
+        </if>
+
+        <if test="vo.endTime != null and vo.endTime !='' ">
+            AND NAG.time &lt;= #{vo.endTime}
+        </if>
+
+        <if test="vo.level != null and vo.level !='' ">
+            AND NAG.level = #{vo.level}
+        </if>
+
+        <if test="vo.status != null and vo.status !='' ">
+            AND NAG.status = #{vo.status}
+        </if>
+        <if test="vo.type != null and vo.type !='' and vo.type == 3">
+            AND (NAG.type = '3' or NAG.type = '4' or NAG.type = '5')
+        </if>
+
+        <if test="vo.pointId != null and vo.pointId !='' ">
+            AND NAG.POINT_id = #{vo.pointId}
+        </if>
+
+        <if test="vo.basGuids != null and vo.basGuids !='' ">
+            AND(
+            abb."code" in
+            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            or pabb."code" in
+            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+
+        <if test="vo.labels != null and vo.labels != '' ">
+            AND( 1!=1
+            <foreach collection="vo.labels.split(',')" item="item" open="" separator="" close="" index="index">
+                OR  #{item}  in (arb."label")
+            </foreach>
+            )
+        </if>
+
+        <if test="vo.engScal != null and vo.engScal !='' ">
+            AND arb."eng_scal" = #{vo.engScal}
+        </if>
+
+        <if test="vo.resCds != null and vo.resCds != ''">
+            AND NAG.dam_id in
+            <foreach collection="vo.resCds.split(',')" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+    </select>
+
+
+
+    <select id="getDamSyRegion" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+
+    <if test="dam.adCode == '420000000000'">
+        SELECT
+        tmp.*,
+        'sy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.provinceName as adName,
+        r.provinceCode as adCode,
+        count(*) as total,
+        '1' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.provinceName,r.provinceCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+    </if>
+
+    SELECT
+        tmp.*,
+        'sy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+    UNION ALL
+
+    SELECT
+        tmp.*,
+        'sy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+    UNION ALL
+
+    SELECT
+    tmp.*,
+    'sy' as type,
+    parent."p_ad_code" pAdCode,
+    parent."p_ad_name" pAdName
+    FROM(
+    SELECT
+    r.townName as adName,
+    r.townCode as adCode,
+    count(*) as total,
+    '4' AS adGrad
+    FROM (
+    SELECT
+    resList."res_cd",
+    case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+    case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+    case when town."ad_grad" = 3 THEN town."ad_code"
+    when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+    case when town."ad_grad" = 3 THEN town."ad_name"
+    when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+    case when town."ad_grad" = 2 THEN town."ad_code"
+    when county."ad_grad" = 2 THEN county."ad_code"
+    ELSE city."ad_code" END AS cityCode,
+    case when town."ad_grad" = 2 THEN town."ad_name"
+    when county."ad_grad" = 2 THEN county."ad_name"
+    ELSE city."ad_name" END AS cityName,
+    case when town."ad_grad" = 1 THEN town."ad_code"
+    when county."ad_grad" = 1 THEN county."ad_code"
+    when city."ad_grad" = 1 THEN city."ad_code"
+    ELSE province."ad_code" END AS provinceCode,
+    case when town."ad_grad" = 1 THEN town."ad_name"
+    when county."ad_grad" = 1 THEN county."ad_name"
+    when city."ad_grad" = 1 THEN city."ad_name"
+    ELSE province."ad_name" END AS provinceName
+    FROM(
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+    ) resList
+    LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+    LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+    LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+    LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+    LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+    group by r.townName, r.townCode)TMP
+    LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+
+    </select>
+    <select id="getDamSlRegion" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            'sl' as type,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList."res_cd",
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+
+            SELECT distinct(dri."res_cd")
+            from sjzt_dw."dim_res_info_a" dri
+            left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            where dss."rscd" is not null
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
+        </if>
+
+        SELECT
+        tmp.*,
+        'sl' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        'sl' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        'sl' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+    </select>
+
+    <select id="getDamWyRegion" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            'wy' as type,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList."res_cd",
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+
+            SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            where awcb."cd" != '00'
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
+        </if>
+
+        SELECT
+        tmp.*,
+        'wy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        'wy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        'wy' as type,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList."res_cd",
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+    </select>
+
+
+
+    <select id="getErrorDamRegion" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList.resCd,
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+            SELECT DAM_ID as resCd FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+            <if test="dam.type =='sy' ">
+                AND NAG.type = '1'
+            </if>
+            <if test="dam.type =='sl' ">
+                AND NAG.type = '2'
+            </if>
+            <if test="dam.type =='wy' ">
+                AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+            </if>
+
+            GROUP BY DAM_ID
+
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
+        </if>
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+
+        SELECT DAM_ID as resCd FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT DAM_ID as resCd FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT DAM_ID as resCd FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+
+
+    </select>
+    <select id="getDamSyRegionNormal" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList.resCd,
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+            SELECT normalList."res_cd" as resCd FROM (
+                SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+            SELECT
+            distinct (dri."res_cd")
+            FROM
+            sjzt_dw."dim_res_info_a" dri
+            LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+            where dss."rscd" is not null
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+
+
+
+                ) allList LEFT JOIN
+
+                (
+                SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
                 LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
                 LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
                 LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
                 LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
-        WHERE 1=1
-        <if test="dam.adCode != null and dam.adCode !='' ">
-            AND  (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+                WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+                <if test=" dam.adCode!= null and dam.adCode !='' ">
+                    AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+                </if>
+                <if test="dam.type =='sy' ">
+                    AND NAG.type = '1'
+                </if>
+                <if test="dam.type =='sl' ">
+                    AND NAG.type = '2'
+                </if>
+                <if test="dam.type =='wy' ">
+                    AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+                </if>
+
+                GROUP BY DAM_ID,arb."name"
+
+
+                    ) errorList ON allList."res_cd" = errorList.resCd
+                )normalList where normalList."name" is null
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
         </if>
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT
+        distinct (dri."res_cd")
+        FROM
+        sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
     </select>
+    <select id="getDamSlRegionNormal" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList.resCd,
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+            SELECT normalList."res_cd" as resCd FROM (
+            SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+            SELECT distinct(dri."res_cd")
+            from sjzt_dw."dim_res_info_a" dri
+            left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            where dss."rscd" is not null
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+
+
+
+            ) allList LEFT JOIN
+
+            (
+            SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+            <if test="dam.type =='sy' ">
+                AND NAG.type = '1'
+            </if>
+            <if test="dam.type =='sl' ">
+                AND NAG.type = '2'
+            </if>
+            <if test="dam.type =='wy' ">
+                AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+            </if>
+
+            GROUP BY DAM_ID,arb."name"
+
+
+            ) errorList ON allList."res_cd" = errorList.resCd
+            )normalList where normalList."name" is null
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
+        </if>
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct(dri."res_cd")
+        from sjzt_dw."dim_res_info_a" dri
+        left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where dss."rscd" is not null
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+
+
+
+
+
+
+    </select>
+    <select id="getDamWyRegionNormal" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRegion">
+
+        <if test="dam.adCode == '420000000000'">
+            SELECT
+            tmp.*,
+            parent."p_ad_code" pAdCode,
+            parent."p_ad_name" pAdName
+            FROM(
+            SELECT
+            r.provinceName as adName,
+            r.provinceCode as adCode,
+            count(*) as total,
+            '1' AS adGrad
+            FROM (
+            SELECT
+            resList.resCd,
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+            when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+            when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+            when county."ad_grad" = 2 THEN county."ad_code"
+            ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+            when county."ad_grad" = 2 THEN county."ad_name"
+            ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+            when county."ad_grad" = 1 THEN county."ad_code"
+            when city."ad_grad" = 1 THEN city."ad_code"
+            ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+            when county."ad_grad" = 1 THEN county."ad_name"
+            when city."ad_grad" = 1 THEN city."ad_name"
+            ELSE province."ad_name" END AS provinceName
+            FROM(
+
+            SELECT normalList."res_cd" as resCd FROM (
+            SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+            SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            where awcb."cd" != '00'
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+
+
+
+            ) allList LEFT JOIN
+
+            (
+            SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+            WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+            <if test=" dam.adCode!= null and dam.adCode !='' ">
+                AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+            </if>
+            <if test="dam.type =='sy' ">
+                AND NAG.type = '1'
+            </if>
+            <if test="dam.type =='sl' ">
+                AND NAG.type = '2'
+            </if>
+            <if test="dam.type =='wy' ">
+                AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+            </if>
+
+            GROUP BY DAM_ID,arb."name"
+
+
+            ) errorList ON allList."res_cd" = errorList.resCd
+            )normalList where normalList."name" is null
+
+            ) resList
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+            LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+            group by r.provinceName,r.provinceCode)TMP
+            LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+            UNION ALL
+        </if>
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.cityName as adName,
+        r.cityCode as adCode,
+        count(*) as total,
+        '2' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+
+
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.cityName,r.cityCode)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.countyName as adName,
+        r.countyCode as adCode,
+        count(*) as total,
+        '3' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.countyCode,r.countyName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+        UNION ALL
+
+        SELECT
+        tmp.*,
+        parent."p_ad_code" pAdCode,
+        parent."p_ad_name" pAdName
+        FROM(
+        SELECT
+        r.townName as adName,
+        r.townCode as adCode,
+        count(*) as total,
+        '4' AS adGrad
+        FROM (
+        SELECT
+        resList.resCd,
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+        case when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+        case when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END AS cityCode,
+        case when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END AS cityName,
+        case when town."ad_grad" = 1 THEN town."ad_code"
+        when county."ad_grad" = 1 THEN county."ad_code"
+        when city."ad_grad" = 1 THEN city."ad_code"
+        ELSE province."ad_code" END AS provinceCode,
+        case when town."ad_grad" = 1 THEN town."ad_name"
+        when county."ad_grad" = 1 THEN county."ad_name"
+        when city."ad_grad" = 1 THEN city."ad_name"
+        ELSE province."ad_name" END AS provinceName
+        FROM(
+
+        SELECT normalList."res_cd" as resCd FROM (
+        SELECT allList."res_cd",errorList."name" FROM (
+
+
+
+
+        SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = awcb."res_cd"
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        where awcb."cd" != '00'
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+
+
+
+        ) allList LEFT JOIN
+
+        (
+        SELECT DAM_ID as resCd,arb."name" FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.dam_id
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+        WHERE 1= 1 AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        <if test=" dam.adCode!= null and dam.adCode !='' ">
+            AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
+        </if>
+        <if test="dam.type =='sy' ">
+            AND NAG.type = '1'
+        </if>
+        <if test="dam.type =='sl' ">
+            AND NAG.type = '2'
+        </if>
+        <if test="dam.type =='wy' ">
+            AND (NAG.type = '3'  or NAG.type ='4' or NAG.type ='5' )
+        </if>
+
+        GROUP BY DAM_ID,arb."name"
+
+
+        ) errorList ON allList."res_cd" = errorList.resCd
+        )normalList where normalList."name" is null
+        ) resList
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = resList.resCd
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code" )r
+        group by r.townCode,r.townName)TMP
+        LEFT JOIN SJZT_MD."att_ad_base" parent ON parent."guid" = tmp.adCode
+
+
+
+    </select>
+
+
+
+
+    <select id="damResInfoCountSy" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
+
+        SELECT '1' as type,'渗压' as typeName, SUM(TMP.allNum) total,sum(TMP.errorNum) errorNum,sum(normalNum) normalNum FROM (
+        select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
+        select "ad_code","ad_name",
+        (
+        select count(*) from  (
+        select max(NAG.dam_id) dam_id
+        FROM ywxt.NKY_ALARM_GET NAG
+        where
+                        TYPE = 1
+                        AND time>= CURDATE()
+        group by NAG.dam_id
+        ) NAG
+        left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
+        left join sjzt_md."att_ad_base" ada on (ada."guid" = res."interior_ad_guid")
+        left join sjzt_md."att_ad_base" adb on (adb."guid" = ada."p_ad_code")
+        left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
+        left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
+        where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
+
+        ) as errorNum,
+        (
+        SELECT COUNT(*) FROM (
+        SELECT a."guid",a."name",a."eng_scal",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_code"
+        ELSE NULL
+        END AS "town_ad_code",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_name"
+        ELSE NULL
+        END AS "town_ad_name",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."order_id"
+        ELSE NULL
+        END AS "town_order_id",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 3 THEN
+        c."ad_code"
+        END AS "county_ad_code",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 3 THEN
+        C."ad_name"
+        END AS "county_ad_name",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 3 THEN
+        C."order_id"
+        END AS "county_order_id",
+        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 "city_ad_code",
+        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 "city_ad_name",
+        CASE
+        WHEN b."ad_grad" = 2 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 2 THEN
+        c."order_id"
+        ELSE d."order_id"
+        END AS "city_order_id",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_code"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_code"
+        ELSE e."ad_code"
+        END AS "province_ad_code",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_name"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_name"
+        ELSE e."ad_name"
+        END AS "province_ad_name",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 1 THEN
+        c."order_id"
+        WHEN d."ad_grad" = 1 THEN
+        d."order_id"
+        ELSE e."order_id"
+        END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+
+        LEFT JOIN (
+        SELECT DISTINCT (dri."res_cd")
+        FROM sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss
+        ON dri."oth_reg_cd" = dss."rscd"
+        WHERE dss."rscd" is NOT NULL
+        ) f ON a."guid" = f."res_cd"
+
+
+
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        WHERE
+        (
+        f."res_cd" is NOT null
+        )
+        AND (d."ad_code" = aab."guid"
+        OR c."ad_code" = aab."guid"
+        OR b."ad_code" = aab."guid" )
+        )
+        ) allNum
+
+        FROM SJZT_MD."att_ad_base" aab
+        where
+        <choose>
+            <when test="adCode != null and adCode !='' ">
+                "p_ad_code" = #{adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+        )TMP
+
+
+
+
+
+
+
+
+
+
+
+
+
+    </select>
+    <select id="damResInfoCountSl" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
+
+        SELECT  '2' as type,'渗流' as typeName, SUM(TMP.allNum) total,sum(TMP.errorNum) errorNum,sum(normalNum) normalNum FROM (
+        select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
+        select "ad_code","ad_name",
+        (
+        select count(*) from  (
+        select max(NAG.dam_id) dam_id
+        FROM ywxt.NKY_ALARM_GET NAG
+        where TYPE = 2
+        AND time>= CURDATE()
+        group by NAG.dam_id
+        ) NAG
+        left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
+        left join sjzt_md."att_ad_base" ada on (ada."guid" = res."interior_ad_guid")
+        left join sjzt_md."att_ad_base" adb on (adb."guid" = ada."p_ad_code")
+        left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
+        left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
+        where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
+
+
+        ) as errorNum,
+        (
+        SELECT COUNT(*) FROM (
+        SELECT a."guid",a."name",a."eng_scal",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_code"
+        ELSE NULL
+        END AS "town_ad_code",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_name"
+        ELSE NULL
+        END AS "town_ad_name",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."order_id"
+        ELSE NULL
+        END AS "town_order_id",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 3 THEN
+        c."ad_code"
+        END AS "county_ad_code",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 3 THEN
+        C."ad_name"
+        END AS "county_ad_name",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 3 THEN
+        C."order_id"
+        END AS "county_order_id",
+        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 "city_ad_code",
+        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 "city_ad_name",
+        CASE
+        WHEN b."ad_grad" = 2 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 2 THEN
+        c."order_id"
+        ELSE d."order_id"
+        END AS "city_order_id",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_code"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_code"
+        ELSE e."ad_code"
+        END AS "province_ad_code",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_name"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_name"
+        ELSE e."ad_name"
+        END AS "province_ad_name",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 1 THEN
+        c."order_id"
+        WHEN d."ad_grad" = 1 THEN
+        d."order_id"
+        ELSE e."order_id"
+        END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+
+
+
+        LEFT JOIN (
+        SELECT distinct(dri."res_cd")
+        FROM sjzt_dw."dim_res_info_a" dri
+        LEFT JOIN sjzt_ods."dsm_spg_spqnmp" dss ON trim(dss."rscd") = dri."oth_reg_cd"
+        WHERE dss."rscd" is NOT NULL
+        ) G ON a."guid" = g."res_cd"
+
+
+
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        WHERE
+        (
+         g."res_cd" is NOT null
+        )
+        AND (d."ad_code" = aab."guid"
+        OR c."ad_code" = aab."guid"
+        OR b."ad_code" = aab."guid" )
+        )
+        ) allNum
+
+        FROM SJZT_MD."att_ad_base" aab
+        where
+        <choose>
+            <when test="adCode != null and adCode !='' ">
+                "p_ad_code" = #{adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+        )TMP
+
+
+    </select>
+    <select id="damResInfoCountWy" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
+
+
+        SELECT  '3' as type,'位移' as typeName, SUM(TMP.allNum) total,sum(TMP.errorNum) errorNum,sum(normalNum) normalNum FROM (
+        select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
+        select "ad_code","ad_name",
+        (
+        select count(*) from  (
+        select max(NAG.dam_id) dam_id
+        FROM ywxt.NKY_ALARM_GET NAG
+        where         (TYPE = 3 or type = 4 or type = 5)
+        AND time>= CURDATE()
+        group by NAG.dam_id
+        ) NAG
+        left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
+        left join sjzt_md."att_ad_base" ada on (ada."guid" = res."interior_ad_guid")
+        left join sjzt_md."att_ad_base" adb on (adb."guid" = ada."p_ad_code")
+        left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
+        left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
+        where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
+
+
+        ) as errorNum,
+        (
+        SELECT COUNT(*) FROM (
+        SELECT a."guid",a."name",a."eng_scal",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_code"
+        ELSE NULL
+        END AS "town_ad_code",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."ad_name"
+        ELSE NULL
+        END AS "town_ad_name",
+        CASE
+        WHEN b."ad_grad" = 4 THEN
+        b."order_id"
+        ELSE NULL
+        END AS "town_order_id",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 3 THEN
+        c."ad_code"
+        END AS "county_ad_code",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 3 THEN
+        C."ad_name"
+        END AS "county_ad_name",
+        CASE
+        WHEN b."ad_grad" = 3 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 3 THEN
+        C."order_id"
+        END AS "county_order_id",
+        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 "city_ad_code",
+        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 "city_ad_name",
+        CASE
+        WHEN b."ad_grad" = 2 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 2 THEN
+        c."order_id"
+        ELSE d."order_id"
+        END AS "city_order_id",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_code"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_code"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_code"
+        ELSE e."ad_code"
+        END AS "province_ad_code",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."ad_name"
+        WHEN c."ad_grad" = 1 THEN
+        c."ad_name"
+        WHEN d."ad_grad" = 1 THEN
+        d."ad_name"
+        ELSE e."ad_name"
+        END AS "province_ad_name",
+        CASE
+        WHEN b."ad_grad" = 1 THEN
+        b."order_id"
+        WHEN c."ad_grad" = 1 THEN
+        c."order_id"
+        WHEN d."ad_grad" = 1 THEN
+        d."order_id"
+        ELSE e."order_id"
+        END AS "province_order_id"
+        FROM sjzt_md."att_res_base" a
+
+
+        LEFT JOIN (
+        SELECT distinct("res_cd")
+        FROM sjzt_md."att_wy_cd_base" awcb
+        WHERE awcb."cd" != '00'
+        ) h ON a."guid" = h."res_cd"
+
+        LEFT JOIN sjzt_md."att_ad_base" b ON a."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 sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
+        WHERE
+        (
+        h."res_cd" is NOT null
+        )
+        AND (d."ad_code" = aab."guid"
+        OR c."ad_code" = aab."guid"
+        OR b."ad_code" = aab."guid" )
+        )
+        ) allNum
+
+        FROM SJZT_MD."att_ad_base" aab
+        where
+        <choose>
+            <when test="adCode != null and adCode !='' ">
+                "p_ad_code" = #{adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+        )TMP
+    </select>
+    <select id="getLatestResRecord" resultType="cn.gistack.nky.vo.AlarmGetVO">
+        SELECT
+            NAG.DAM_ID,
+            NAG.POINT_ID,
+            NAG.TYPE,
+            NAG.TIME,
+            NAG.VALUE,
+            NAG."DESC",
+            NAG.CREATE_TIME,
+            NAG.TASK_CATEGORY,
+            NAG.LEVEL,
+            NAG.BAOJINGZHI,
+            NAG.ORIGIN_ID,
+            NAG.FORWARD,
+            NAG."REVERSE",
+            NAG.RATIO,
+
+            ARB."name" reservoirName,
+            acb."cd_nm" cdName,
+
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case
+                when town."ad_grad" = 3 THEN town."ad_code"
+                when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
+            case
+                when town."ad_grad" = 3 THEN town."ad_name"
+                when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
+            case
+                when town."ad_grad" = 2 THEN town."ad_code"
+                when county."ad_grad" = 2 THEN county."ad_code"
+                ELSE city."ad_code" END                                    AS cityCode,
+            case
+                when town."ad_grad" = 2 THEN town."ad_name"
+                when county."ad_grad" = 2 THEN county."ad_name"
+                ELSE city."ad_name" END                                    AS cityName
+
+        FROM YWXT.NKY_ALARM_GET NAG
+                 right JOIN (
+            SELECT
+                NAG.DAM_ID,
+                NAG.POINT_ID,
+                MAX(NAG.TIME)TIME,
+		        NAG.TYPE
+            FROM YWXT.NKY_ALARM_GET NAG
+                LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = nag.dam_id
+
+            WHERE
+                 dam_id = #{alarmGet.damId}
+                and type = #{alarmGet.type}
+            GROUP BY
+                NAG.DAM_ID,
+                NAG.POINT_ID,
+                NAG.TYPE
+
+        )TMP ON (
+                    TMP.DAM_ID = NAG.DAM_ID
+                AND TMP.POINT_ID = NAG.POINT_ID
+                AND TMP.TYPE = NAG.TYPE
+                AND TMP.TIME = NAG.TIME
+            )
+                 LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = NAG.DAM_ID
+
+                 LEFT JOIN SJZT_MD."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" county ON county."ad_code" = town."p_ad_code"
+                 LEFT JOIN SJZT_MD."att_ad_base" city ON city."ad_code" = county."p_ad_code"
+
+                 LEFT JOIN SJZT_MD."att_cd_base" acb on
+                     acb."res_cd" = #{alarmGet.damId}
+                    and acb."cd" = nag.point_id
+                    <if test="alarmGet.type == 1">
+                        and acb."cd_type" = 'sy'
+                    </if>
+                    <if test="alarmGet.type == 2">
+                        and acb."cd_type" = 'sl'
+                    </if>
+        ORDER BY POINT_ID
+    </select>
+    <select id="getLatestResRecordWy" resultType="cn.gistack.nky.vo.AlarmGetVO">
+        SELECT
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE,
+        NAG.TIME,
+        NAG.VALUE,
+        NAG."DESC",
+        NAG.CREATE_TIME,
+        NAG.TASK_CATEGORY,
+        NAG.LEVEL,
+        NAG.BAOJINGZHI,
+        NAG.ORIGIN_ID,
+        NAG.FORWARD,
+        NAG."REVERSE",
+        NAG.RATIO,
+
+        ARB."name" reservoirName,
+        acb."cd_nm" cdName,
+
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case
+        when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
+        case
+        when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
+        case
+        when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END                                    AS cityCode,
+        case
+        when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END                                    AS cityName
+
+        FROM YWXT.NKY_ALARM_GET NAG
+        right JOIN (
+        SELECT
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        MAX(NAG.TIME)TIME,
+        MAX(NAG.CREATE_TIME) CREATE_TIME,
+        NAG.TYPE
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = nag.dam_id
+
+        WHERE
+         dam_id = #{alarmGet.damId}
+        and (type = '3' or type = '4' or type = '5')
+        GROUP BY
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE
+
+        )TMP ON (
+        TMP.DAM_ID = NAG.DAM_ID
+        AND TMP.POINT_ID = NAG.POINT_ID
+        AND TMP.TYPE = NAG.TYPE
+        AND TMP.TIME = NAG.TIME
+        AND TMP.CREATE_TIME = NAG.CREATE_TIME
+        )
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = NAG.DAM_ID
+
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."ad_code" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."ad_code" = county."p_ad_code"
+
+        LEFT JOIN SJZT_MD."att_wy_cd_base" acb on
+        acb."res_cd" = #{alarmGet.damId}
+        and acb."cd" = nag.point_id
+            and acb."cd_type" = 'wy'
+        ORDER BY POINT_ID
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.3