guoshilong
2023-12-28 6b8971db2990a8bcb4c67ba0d07df2368a00a45e
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -4,85 +4,95 @@
    <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 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.adCode != null and dam.adCode != '' ">
            and aab."guid" = #{dam.adCode}
        </if>
    </select>
    <select id="listRegionCount" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
@@ -144,7 +154,8 @@
        '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 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"
@@ -154,7 +165,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 +176,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 +196,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 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,
        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,12 +216,14 @@
        )
    </select>
    <select id="tableResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
        SELECT
        info."guid" AS resCd,
        info."name" AS resName,
        info."eng_scal" AS engScal,
        info."res_reg_code" AS resRegCode,
        info."town_ad_code" AS townCode,
        info."town_ad_name" AS townName,
        info."county_ad_code" AS countyCode,
@@ -216,35 +232,50 @@
        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",
        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"
        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"
@@ -253,20 +284,30 @@
        ) 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" )
        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")
        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" )
        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 (
@@ -274,7 +315,7 @@
        WHERE 1=1
        <if test="dam.startTime != null and dam.startTime != ''">
            AND DATE_FORMAT(time,'%Y-%m-%d')  &gt;= #{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}
@@ -290,7 +331,7 @@
        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 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}
@@ -305,7 +346,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 !='' ">
@@ -318,21 +360,22 @@
    <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 +387,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,29 +421,33 @@
        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 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}
@@ -395,21 +455,21 @@
        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 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>
        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 +478,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 +488,2800 @@
        ) info
    </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,
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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>
        GROUP BY "res_cd"
        )
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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>
        GROUP BY "res_cd"
        )
        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
        "res_cd",
        COUNT(*) slStation
        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()
        group by b."guid"
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
        <if test=" adCode!= null and adCode !='' ">
            AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
        </if>
        GROUP BY "res_cd"
        )
        )
        ) 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
        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
        <if test="status ==2">
            AND b."guid" 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 b."guid" 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
        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()
        <if test="status == 2">
            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),''
            )
            )
        </if>
        <if test="status == 3">
            AND b."guid" 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>
        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="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
        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
        <if test="status == 2">
            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),'')
            )
        </if>
        <if test="status == 3">
            and b."guid" 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 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>
                        <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 (province."ad_code" = #{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode}  or town."ad_code" = #{dam.adCode})
        <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>
        <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 (province."ad_code" =#{vo.adCode} or city."ad_code" = #{vo.adCode} or county."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime != null and vo.startTime != ''">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d')  &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime != null and vo.endTime !='' ">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d') &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 (province."ad_code" =#{vo.adCode} or city."ad_code" = #{vo.adCode} or county."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime != null and vo.startTime != ''">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d')  &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime != null and vo.endTime !='' ">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d') &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>
        ORDER BY NAG.TIME DESC
    </select>
    <select id="levelMonitorPie" resultType="cn.gistack.sm.damSecurity.vo.LevelPo">
    </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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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
    </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
            "res_cd",
            COUNT(*) slStation
            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()
            group by b."guid"
            ) temp
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
            <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>
            GROUP BY "res_cd"
            ) 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
        "res_cd",
        COUNT(*) slStation
        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()
        group by b."guid"
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
        <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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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
        "res_cd",
        COUNT(*) slStation
        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()
        group by b."guid"
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
        <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>
        GROUP BY "res_cd"
        ) 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
    </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 "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
            ) temp
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
            GROUP BY "res_cd"
            ) 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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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
    </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.countyCode as adCode,
        r.countyName as adName,
        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
    </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 "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
            ) temp
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
            GROUP BY "res_cd"
                ) 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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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
    </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
            "res_cd",
            COUNT(*) slStation
            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()
            group by b."guid"
            ) temp
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
            <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>
            GROUP BY "res_cd"
            ) 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
        "res_cd",
        COUNT(*) slStation
        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()
        group by b."guid"
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
        <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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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
        "res_cd",
        COUNT(*) slStation
        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()
        group by b."guid"
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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"
        <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>
        GROUP BY "res_cd"
        ) 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
    </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 "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
            ) temp
            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
            GROUP BY "res_cd"
            ) 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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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.countyCode as adCode,
        r.countyName as adName,
        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 "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
        ) temp
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."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=" 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>
        GROUP BY "res_cd"
        ) 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
    </select>
</mapper>