From f20611265f7d34fd4fbcdfdaff6cb9cccd0b25fc Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Fri, 21 Jun 2024 11:53:21 +0800
Subject: [PATCH] 湖北水库:施工:项目查询过滤无效修复、根据角色查询用户

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml |  337 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 209 insertions(+), 128 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
index 458f2ec..2d0ce54 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -110,8 +110,6 @@
         left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
         left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
         where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
-
-
         ) as errorNum,
         (
         SELECT COUNT(*) FROM (
@@ -231,7 +229,6 @@
         OR b."ad_code" = aab."guid" )
         )
         ) allNum
-
         FROM SJZT_MD."att_ad_base" aab
         where
         <choose>
@@ -244,21 +241,14 @@
         </choose>
         )
         )TMP
-
-
-
-
-
     </select>
 
 
 
 
     <select id="listRegionCount" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
-
         SELECT allNum,errorNum, allNum-errorNum normalNum,adName,adCode FROM
         (
-
         SELECT
         (
         SELECT COUNT(*) FROM
@@ -339,7 +329,6 @@
         or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
         )
         ) 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
@@ -347,14 +336,12 @@
         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"
         where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
-
         <if test="dam.startTime != null and dam.startTime != ''">
             AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
             AND time &lt;= #{dam.endTime}
         </if>
-
         )) errorNum,
         aab."ad_name" adName , aab."guid" adCode from SJZT_MD."att_ad_base" aab
         where
@@ -367,7 +354,6 @@
             </otherwise>
         </choose>
         )
-
     </select>
     <select id="listRegionCountOptimize" resultType="cn.gistack.sm.damSecurity.vo.DamSecurityStatistics">
         select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
@@ -385,8 +371,6 @@
             left join sjzt_md."att_ad_base" adc on (adc."guid" = adb."p_ad_code")
             left join sjzt_md."att_ad_base" addd on (addd."guid" = adc."p_ad_code")
             where res."interior_ad_guid" = aab."guid" or ada."guid" = aab."guid" or adb."guid" = aab."guid" or adc."guid" = aab."guid" or addd."guid" = aab."guid"
-
-
             ) as errorNum,
             (
             SELECT COUNT(*) FROM (
@@ -506,7 +490,6 @@
             OR b."ad_code" = aab."guid" )
             )
             ) allNum
-
             FROM SJZT_MD."att_ad_base" aab
             where
             <choose>
@@ -527,7 +510,6 @@
         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,
@@ -546,7 +528,6 @@
         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",
@@ -566,34 +547,41 @@
         case when b."ad_grad" = 1 THEN b."order_id" when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN
         d."order_id" ELSE e."order_id" END AS "province_order_id"
         FROM sjzt_md."att_res_base" a
-
-
         LEFT JOIN (
+
+
         SELECT
         distinct (dri."res_cd")
         FROM
         sjzt_dw."dim_res_info_a" dri
         LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
         where dss."rscd" is not null
+
         ) f ON a."guid" = f."res_cd"
-
-
         LEFT JOIN (
+
+
         SELECT distinct(dri."res_cd")
         from sjzt_dw."dim_res_info_a" dri
         left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
         where dss."rscd" is not null
+
         ) G on a."guid" = g."res_cd"
         LEFT JOIN (
+
         SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
         where awcb."cd" != '00'
-        ) h ON a."guid" = h."res_cd"
 
+        ) h ON a."guid" = h."res_cd"
         LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
         LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
         LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid"
         LEFT JOIN sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
         where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
+        <if test="dam.adCode != null and dam.adCode !='' ">
+            AND (c."ad_code" = #{dam.adCode} or d."ad_code" =#{dam.adCode}or e."ad_code" = #{dam.adCode})
+        </if>
+
         ) baseRes
         LEFT JOIN (
 
@@ -638,8 +626,6 @@
 
 
         ) sl ON sl."res_cd" = baseRes."guid"
-
-
         LEFT JOIN (
         SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
         WHERE 1=1
@@ -669,21 +655,15 @@
         GROUP BY DAM_ID,POINT_ID
         ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
 
-        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = "town_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
-        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+
         WHERE 1=1
         <!--这里加条件-->
-        <if test="dam.adCode != null and dam.adCode !='' ">
-            AND (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode}
-            )
-        </if>
+
 
         <if test="dam.resName != null and dam.resName !='' ">
             AND "name" LIKE CONCAT('%',#{dam.resName},'%')
         </if>
-        ) info
+        ) info order by info.errorNum desc
 
     </select>
 
@@ -821,9 +801,9 @@
 
 
     <select id="tableResCountPageOptimize" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
-
         SELECT
         info."guid" AS resCd,
+        info."res_reg_code" as resRegCode,
         info."name" AS resName,
         info."eng_scal" AS engScal,
         info."town_ad_code" AS townCode,
@@ -844,6 +824,7 @@
         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",
@@ -864,30 +845,22 @@
         d."order_id" ELSE e."order_id" END AS "province_order_id"
         FROM sjzt_md."att_res_base" a
         LEFT JOIN (
-
-
         SELECT
         distinct (dri."res_cd")
         FROM
         sjzt_dw."dim_res_info_a" dri
         LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"
         where dss."rscd" is not null
-
         ) f ON a."guid" = f."res_cd"
         LEFT JOIN (
-
-
         SELECT distinct(dri."res_cd")
         from sjzt_dw."dim_res_info_a" dri
         left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
         where dss."rscd" is not null
-
         ) G on a."guid" = g."res_cd"
         LEFT JOIN (
-
         SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
         where awcb."cd" != '00'
-
         ) h ON a."guid" = h."res_cd"
         LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
         LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
@@ -897,23 +870,15 @@
         <if test="dam.adCode != null and dam.adCode !='' ">
             AND (c."ad_code" = #{dam.adCode} or d."ad_code" =#{dam.adCode}or e."ad_code" = #{dam.adCode})
         </if>
-
         ) baseRes
         LEFT JOIN (
-
-
         select res."res_cd",count(*) wyStation from(
-
             SELECT distinct("res_cd") from sjzt_md."att_wy_cd_base" awcb
             where awcb."cd" != '00'
-
         )res LEFT JOIN SJZT_MD."att_wy_cd_base" acb ON acb."res_cd" = res."res_cd"
         where acb."cd_type" = 'wy' group by res."res_cd"
-
-
         ) wy ON wy."res_cd" = baseRes."guid"
         LEFT JOIN(
-
                 select res."res_cd",count(*) syStation from(
                 SELECT
                 distinct (dri."res_cd")
@@ -923,40 +888,27 @@
                 where dss."rscd" is not null
                 )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
                 where acb."cd_type" = 'sy' group by res."res_cd"
-
         ) sy ON sy."res_cd" = baseRes."guid"
         LEFT JOIN (
-
-
         select res."res_cd",count(*) slStation from(
-
-
         SELECT distinct(dri."res_cd")
         from sjzt_dw."dim_res_info_a" dri
         left join sjzt_ods."dsm_spg_spqnmp" dss on trim(dss."rscd") = dri."oth_reg_cd"
         where dss."rscd" is not null
-
-
         )res LEFT JOIN SJZT_MD."att_cd_base" acb ON acb."res_cd" = res."res_cd"
         where acb."cd_type" = 'sl' group by res."res_cd"
-
-
         ) sl ON sl."res_cd" = baseRes."guid"
         LEFT JOIN (
         SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
         WHERE 1=1
-
         <if test="dam.startTime != null and dam.startTime != ''">
             AND time &gt;= #{dam.startTime}
         </if>
         <if test="dam.endTime != null and dam.endTime !='' ">
             AND time &lt;= #{dam.endTime}
         </if>
-
-
         GROUP BY "DAM_ID"
         ) alarm ON alarm.DAM_ID = baseRes."guid"
-
         LEFT JOIN (
         SELECT DAM_ID ,COUNT(*) errorCountNum
         FROM (
@@ -970,12 +922,7 @@
         </if>
         GROUP BY DAM_ID,POINT_ID
         ) baseCount GROUP BY DAM_ID) c1 ON c1.dam_id = baseRes."guid"
-
-
         WHERE 1=1
-        <!--这里加条件-->
-
-
         <if test="dam.resName != null and dam.resName !='' ">
             AND "name" LIKE CONCAT('%',#{dam.resName},'%')
         </if>
@@ -985,10 +932,40 @@
 
 
 
+    <select id="alarmResCountByZt" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+        SELECT
+        arb."center_long" AS longitude,
+        arb."center_lat" AS latitude,
+        arb."name" as resName,
+        sar.reservoir_number resCd,
+        abb."code" AS basCode,
+        abb."name" AS basName
+        FROM
+        (
+
+        select sar.* from YWXT.sm_alarm_record sar
+        left join ywxt.sm_alarm_rule b on (sar.alarm_rule_id = b.id)
+        where sar.create_time >= #{dam.startTime} and sar.create_time &lt;= #{dam.endTime}
+        and b.create_alarm_type not like '%缺失%'
+        and (b.type = '渗压监测' or b.type = '变形监测' or b.type = '渗流监测')
+        and (b.ALARM_LEVEL = '红色预警' or b.ALARM_LEVEL = '橙色预警')
+        ) sar
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = sar.reservoir_number
+        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" = sar.reservoir_number
+        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"
+    </select>
+
     <select id="alarmResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
         SELECT
         arb."center_long" AS longitude,
         arb."center_lat" AS latitude,
+        arb."name" as resName,
         resCd,
         abb."code" AS basCode,
         abb."name" AS basName
@@ -1648,7 +1625,8 @@
                 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})
+
+        AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{dam.adCode},'%')
         <if test="dam.startTime != null and dam.startTime != ''">
             AND time &gt;= #{dam.startTime}
         </if>
@@ -1744,14 +1722,13 @@
         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})
+            AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{vo.adCode},'%')
         </if>
-
         <if test="vo.startTime != null and vo.startTime != ''">
-            AND NAG.time &gt;= #{dam.startTime}
+            AND NAG.time &gt;= #{vo.startTime}
         </if>
         <if test="vo.endTime != null and vo.endTime !='' ">
-            AND NAG.time &lt;= #{dam.endTime}
+            AND NAG.time &lt;= #{vo.endTime}
         </if>
 
         <if test="vo.level != null and vo.level !='' ">
@@ -1863,7 +1840,7 @@
         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})
+            AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{vo.adCode},'%')
         </if>
 
         <if test="vo.startTime != null and vo.startTime != ''">
@@ -1920,7 +1897,6 @@
                 #{item}
             </foreach>
         </if>
-        ORDER BY NAG.TIME DESC
 
     </select>
 
@@ -4139,54 +4115,6 @@
 
 
     <select id="damResInfoCountSy" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
-<!--        SELECT-->
-<!--            base.total,-->
-<!--            base.errorNum,-->
-<!--            (base.total-base.errorNum) as normalNum,-->
-<!--            base.typeName,-->
-<!--            base.type FROM (-->
-<!--                SELECT-->
-<!--                COUNT(*) total,-->
-<!--                '渗压' AS typeName ,-->
-<!--                '1' AS type,-->
-<!--                (SELECT COUNT(*) FROM-->
-<!--                (-->
-<!--                SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp-->
-<!--                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"-->
-<!--                WHERE-->
-<!--                TYPE = 1-->
-<!--                AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()-->
-<!--                <if test=" adCode!= null and adCode !='' ">-->
-<!--                    AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})-->
-<!--                </if>-->
-<!--                GROUP BY DAM_ID-->
-<!--                )-->
-<!--                ) errorNum-->
-<!--                FROM-->
-<!--                (-->
-<!--                SELECT-->
-<!--                distinct (dri."res_cd")-->
-<!--                FROM-->
-<!--                sjzt_dw."dim_res_info_a" dri-->
-<!--                LEFT JOIN sjzt_ods."dsm_spg_spprmp" dss ON dri."oth_reg_cd" = dss."rscd"-->
-<!--                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = dri."res_cd"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"-->
-<!--                LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"-->
-
-<!--                where dss."rscd" is not null-->
-<!--                <if test=" adCode!= null and adCode !='' ">-->
-<!--                    AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})-->
-<!--                </if>-->
-<!--                )-->
-<!--        )base-->
-
-
 
         SELECT '1' as type,'渗压' as typeName, SUM(TMP.allNum) total,sum(TMP.errorNum) errorNum,sum(normalNum) normalNum FROM (
         select "ad_code","ad_name",allNum,errorNum,allNum-errorNum normalNum from (
@@ -4197,7 +4125,7 @@
         FROM ywxt.NKY_ALARM_GET NAG
         where
                         TYPE = 1
-                        AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+                        AND time>= CURDATE()
         group by NAG.dam_id
         ) NAG
         left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
@@ -4354,7 +4282,7 @@
         select max(NAG.dam_id) dam_id
         FROM ywxt.NKY_ALARM_GET NAG
         where TYPE = 2
-        AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        AND time>= CURDATE()
         group by NAG.dam_id
         ) NAG
         left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
@@ -4503,7 +4431,7 @@
         select max(NAG.dam_id) dam_id
         FROM ywxt.NKY_ALARM_GET NAG
         where         (TYPE = 3 or type = 4 or type = 5)
-        AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+        AND time>= CURDATE()
         group by NAG.dam_id
         ) NAG
         left join sjzt_md."att_res_base" res on (res."guid" = NAG.dam_id)
@@ -4635,6 +4563,159 @@
         )
         )TMP
     </select>
+    <select id="getLatestResRecord" resultType="cn.gistack.nky.vo.AlarmGetVO">
+        SELECT
+            NAG.DAM_ID,
+            NAG.POINT_ID,
+            NAG.TYPE,
+            NAG.TIME,
+            NAG.VALUE,
+            NAG."DESC",
+            NAG.CREATE_TIME,
+            NAG.TASK_CATEGORY,
+            NAG.LEVEL,
+            NAG.BAOJINGZHI,
+            NAG.ORIGIN_ID,
+            NAG.FORWARD,
+            NAG."REVERSE",
+            NAG.RATIO,
+
+            ARB."name" reservoirName,
+            acb."cd_nm" cdName,
+
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case
+                when town."ad_grad" = 3 THEN town."ad_code"
+                when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
+            case
+                when town."ad_grad" = 3 THEN town."ad_name"
+                when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
+            case
+                when town."ad_grad" = 2 THEN town."ad_code"
+                when county."ad_grad" = 2 THEN county."ad_code"
+                ELSE city."ad_code" END                                    AS cityCode,
+            case
+                when town."ad_grad" = 2 THEN town."ad_name"
+                when county."ad_grad" = 2 THEN county."ad_name"
+                ELSE city."ad_name" END                                    AS cityName
+
+        FROM YWXT.NKY_ALARM_GET NAG
+                 right JOIN (
+            SELECT
+                NAG.DAM_ID,
+                NAG.POINT_ID,
+                MAX(NAG.TIME)TIME,
+		        NAG.TYPE
+            FROM YWXT.NKY_ALARM_GET NAG
+                LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = nag.dam_id
+
+            WHERE
+                 dam_id = #{alarmGet.damId}
+                and type = #{alarmGet.type}
+            GROUP BY
+                NAG.DAM_ID,
+                NAG.POINT_ID,
+                NAG.TYPE
+
+        )TMP ON (
+                    TMP.DAM_ID = NAG.DAM_ID
+                AND TMP.POINT_ID = NAG.POINT_ID
+                AND TMP.TYPE = NAG.TYPE
+                AND TMP.TIME = NAG.TIME
+            )
+                 LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = NAG.DAM_ID
+
+                 LEFT JOIN SJZT_MD."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" county ON county."ad_code" = town."p_ad_code"
+                 LEFT JOIN SJZT_MD."att_ad_base" city ON city."ad_code" = county."p_ad_code"
+
+                 LEFT JOIN SJZT_MD."att_cd_base" acb on
+                     acb."res_cd" = #{alarmGet.damId}
+                    and acb."cd" = nag.point_id
+                    <if test="alarmGet.type == 1">
+                        and acb."cd_type" = 'sy'
+                    </if>
+                    <if test="alarmGet.type == 2">
+                        and acb."cd_type" = 'sl'
+                    </if>
+        ORDER BY POINT_ID
+    </select>
+    <select id="getLatestResRecordWy" resultType="cn.gistack.nky.vo.AlarmGetVO">
+        SELECT
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE,
+        NAG.TIME,
+        NAG.VALUE,
+        NAG."DESC",
+        NAG.CREATE_TIME,
+        NAG.TASK_CATEGORY,
+        NAG.LEVEL,
+        NAG.BAOJINGZHI,
+        NAG.ORIGIN_ID,
+        NAG.FORWARD,
+        NAG."REVERSE",
+        NAG.RATIO,
+
+        ARB."name" reservoirName,
+        acb."cd_nm" cdName,
+
+        case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+        case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+        case
+        when town."ad_grad" = 3 THEN town."ad_code"
+        when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
+        case
+        when town."ad_grad" = 3 THEN town."ad_name"
+        when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
+        case
+        when town."ad_grad" = 2 THEN town."ad_code"
+        when county."ad_grad" = 2 THEN county."ad_code"
+        ELSE city."ad_code" END                                    AS cityCode,
+        case
+        when town."ad_grad" = 2 THEN town."ad_name"
+        when county."ad_grad" = 2 THEN county."ad_name"
+        ELSE city."ad_name" END                                    AS cityName
+
+        FROM YWXT.NKY_ALARM_GET NAG
+        right JOIN (
+        SELECT
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        MAX(NAG.TIME)TIME,
+        MAX(NAG.CREATE_TIME) CREATE_TIME,
+        NAG.TYPE
+        FROM YWXT.NKY_ALARM_GET NAG
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = nag.dam_id
+
+        WHERE
+         dam_id = #{alarmGet.damId}
+        and (type = '3' or type = '4' or type = '5')
+        GROUP BY
+        NAG.DAM_ID,
+        NAG.POINT_ID,
+        NAG.TYPE
+
+        )TMP ON (
+        TMP.DAM_ID = NAG.DAM_ID
+        AND TMP.POINT_ID = NAG.POINT_ID
+        AND TMP.TYPE = NAG.TYPE
+        AND TMP.TIME = NAG.TIME
+        AND TMP.CREATE_TIME = NAG.CREATE_TIME
+        )
+        LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = NAG.DAM_ID
+
+        LEFT JOIN SJZT_MD."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" county ON county."ad_code" = town."p_ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" city ON city."ad_code" = county."p_ad_code"
+
+        LEFT JOIN SJZT_MD."att_wy_cd_base" acb on
+        acb."res_cd" = #{alarmGet.damId}
+        and acb."cd" = nag.point_id
+            and acb."cd_type" = 'wy'
+        ORDER BY POINT_ID
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.3