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

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml |  256 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 180 insertions(+), 76 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..fba93fa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -527,7 +527,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 +545,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 +564,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 +643,6 @@
 
 
         ) sl ON sl."res_cd" = baseRes."guid"
-
-
         LEFT JOIN (
         SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET
         WHERE 1=1
@@ -669,21 +672,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>
 
@@ -824,6 +821,7 @@
 
         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 +842,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",
@@ -989,6 +988,7 @@
         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 +1648,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 +1745,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 +1863,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 +1920,6 @@
                 #{item}
             </foreach>
         </if>
-        ORDER BY NAG.TIME DESC
 
     </select>
 
@@ -4139,54 +4138,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 +4148,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 +4305,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 +4454,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 +4586,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