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 |  245 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 189 insertions(+), 56 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 26107fc..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>
@@ -818,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,
@@ -841,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",
@@ -861,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"
@@ -894,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")
@@ -920,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 (
@@ -967,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>
@@ -982,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
@@ -1645,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>
@@ -1741,9 +1722,8 @@
         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;= #{vo.startTime}
         </if>
@@ -1860,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 != ''">
@@ -4583,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