From 7722d9782d843c2f36c5a94d3a295251c025b37b Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 12 Oct 2021 10:08:44 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/river/mapper/RiverRMapper.xml |  317 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 221 insertions(+), 96 deletions(-)

diff --git a/src/main/java/org/springblade/modules/river/mapper/RiverRMapper.xml b/src/main/java/org/springblade/modules/river/mapper/RiverRMapper.xml
index 60747ac..c128e8c 100644
--- a/src/main/java/org/springblade/modules/river/mapper/RiverRMapper.xml
+++ b/src/main/java/org/springblade/modules/river/mapper/RiverRMapper.xml
@@ -20,23 +20,136 @@
     </resultMap>
 
     <!--河道自定义超警信息-->
+    <!--  <select id="selecthd" resultType="java.util.HashMap">
+          SELECT ri.STCD,
+                 ri.TM,
+                 ri.Z,
+                 ri.Q,
+                 rv.WRZ,
+                 st.STNM,
+                 st.LGTD,
+                 st.LTTD,
+                 ad.ADDVNM
+          FROM ST_RIVER_R ri
+                   LEFT JOIN ST_RVFCCH_B rv ON ri.STCD = rv.STCD
+                   LEFT JOIN ST_STBPRP_B st ON st.STCD = ri.STCD
+                   INNER JOIN ST_ADDVCD_D ad on ad.ADDVCD = st.ADDVCD
+          WHERE ri.TM &gt; #{beginTime}
+            AND ri.TM &lt;= #{endTime} and ad.ADDVNM NOT LIKE '井冈山市' AND ad.ADDVNM NOT LIKE '吉水县'
+          ORDER BY ri.Z desc
+      </select>-->
+
     <select id="selecthd" resultType="java.util.HashMap">
-        SELECT ri.STCD,
-               ri.TM,
-               ri.Z,
-               ri.Q,
+        SELECT cs.STCD,
+               cs1.TM,
+               cs1.Z,
+               cs1.Q,
+               cs2.STNM,
+               cs2.LGTD,
+               cs2.LTTD,
+               ad.ADDVNM,
+               rv.WRZ
+        FROM (
+                 SELECT A.STCD,
+                        s.ADDVCD
+                 FROM (SELECT STCD, TM, Z, Q
+                       FROM dbo.ST_RIVER_R
+                       WHERE TM &gt; #{beginTime}
+                         AND TM &lt;= #{endTime}) AS A
+                          INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                                      FROM dbo.ST_STBPRP_B
+                                      WHERE STTP = 'ZZ'
+                                         or STTP = 'ZQ') s ON A.STCD = s.STCD
+                          LEFT JOIN (SELECT ADDVCD, ADDVNM
+                                     FROM dbo.ST_ADDVCD_D
+                                     WHERE ADDVNM NOT LIKE '井冈山市'
+                                       AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
+                 GROUP BY A.STCD, s.ADDVCD
+             ) cs
+                 LEFT JOIN (SELECT STCD, TM, Z, Q
+                            FROM dbo.ST_RIVER_R
+                            WHERE TM &gt; #{beginTime}
+                              AND TM &lt;= #{endTime}) cs1 ON cs.STCD = cs1.STCD
+                 INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                             FROM dbo.ST_STBPRP_B
+                             WHERE STTP = 'ZZ'
+                                or STTP = 'ZQ') cs2 ON cs.STCD = cs2.STCD
+                 LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) rv ON rv.STCD = cs.STCD
+                 LEFT JOIN (SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D) ad ON ad.ADDVCD = cs.ADDVCD
+        GROUP BY cs.STCD,
+                 cs1.TM,
+                 cs1.Z,
+                 cs2.STNM,
+                 ad.ADDVNM,
+                 cs2.LGTD,
+                 cs2.LTTD,
+                 cs1.Q,
+                 rv.WRZ
+    </select>
+
+
+    <!--河道自定义预警测试接口-->
+    <select id="selecthdcs" resultType="java.util.HashMap">
+        SELECT cs.STCD,
+               cs1.TM,
+               cs1.Z,
+               cs1.Q,
+               cs2.STNM,
+               cs2.LGTD,
+               cs2.LTTD,
+               ad.ADDVNM,
                rv.WRZ,
-               st.STNM,
-               st.LGTD,
-               st.LTTD,
-               ad.ADDVNM
-        FROM ST_RIVER_R ri
-                 LEFT JOIN ST_RVFCCH_B rv ON ri.STCD = rv.STCD
-                 LEFT JOIN ST_STBPRP_B st ON st.STCD = ri.STCD
-                 INNER JOIN ST_ADDVCD_D ad on ad.ADDVCD = st.ADDVCD
-        WHERE ri.TM &gt; #{beginTime}
-          AND ri.TM &lt;= #{endTime} and ad.ADDVNM NOT LIKE '井冈山市' AND ad.ADDVNM NOT LIKE '吉水县'
-        ORDER BY ri.Z desc
+               cs3.maxZ,
+               cs4.minZ
+        FROM (
+                 SELECT A.STCD,
+                        s.ADDVCD
+                 FROM (SELECT STCD, TM, Z, Q
+                       FROM dbo.ST_RIVER_R
+                       WHERE TM &gt; #{beginTime}
+                         AND TM &lt;= #{endTime}) AS A
+                          INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                                      FROM dbo.ST_STBPRP_B
+                                      WHERE STTP = 'ZZ'
+                                         OR STTP = 'ZQ') s ON A.STCD = s.STCD
+                          LEFT JOIN (SELECT ADDVCD, ADDVNM
+                                     FROM dbo.ST_ADDVCD_D
+                                     WHERE ADDVNM NOT LIKE '井冈山市'
+                                       AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
+                 GROUP BY A.STCD,
+                          s.ADDVCD
+             ) cs
+                 LEFT JOIN (SELECT STCD, TM, Z, Q
+                            FROM dbo.ST_RIVER_R
+                            WHERE TM &gt; #{beginTime}
+                              AND TM &lt;= #{endTime}) cs1 ON cs.STCD = cs1.STCD
+                 INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                             FROM dbo.ST_STBPRP_B
+                             WHERE STTP = 'ZZ'
+                                OR STTP = 'ZQ') cs2 ON cs.STCD = cs2.STCD
+                 LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) rv ON rv.STCD = cs.STCD
+                 LEFT JOIN (SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D) ad ON ad.ADDVCD = cs.ADDVCD
+                 INNER JOIN (SELECT STCD, MAX(Z) AS maxZ
+                             FROM dbo.ST_RIVER_R
+                             WHERE TM &gt; #{beginTime}
+                               AND TM &lt;= #{endTime}
+                             GROUP BY STCD) cs3 ON cs3.STCD = cs.STCD
+                 INNER JOIN (SELECT STCD, MIN(Z) AS minZ
+                             FROM dbo.ST_RIVER_R
+                             WHERE TM &gt; #{beginTime}
+                               AND TM &lt;= #{endTime}
+                             GROUP BY STCD) cs4 ON cs4.STCD = cs.STCD
+        GROUP BY cs.STCD,
+                 cs1.TM,
+                 cs1.Z,
+                 cs2.STNM,
+                 ad.ADDVNM,
+                 cs2.LGTD,
+                 cs2.LTTD,
+                 cs1.Q,
+                 rv.WRZ,
+                 cs3.maxZ,
+                 cs4.minZ ORDER BY cs1.Z desc
     </select>
 
     <!--河道最新超警信息-->
@@ -49,25 +162,34 @@
                cs2.LGTD,
                cs2.LTTD,
                ad.ADDVNM,
-               rv.WRZ
+               rv.WRZ,
+               z.Z as Zc
         FROM (
                  SELECT A.STCD,
                         MAX(A.TM) TM,
                         s.ADDVCD
-                 FROM (SELECT STCD, TM, Z,Q FROM dbo.ST_RIVER_R) AS A
-                          LEFT JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD FROM dbo.ST_STBPRP_B) s ON A.STCD = s.STCD
+                 FROM (SELECT STCD, TM, Z, Q FROM dbo.ST_RIVER_R) AS A
+                          INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                                      FROM dbo.ST_STBPRP_B
+                                      WHERE STTP = 'ZZ'
+                                         or STTP = 'ZQ') s ON A.STCD = s.STCD
                           INNER JOIN (SELECT ADDVCD, ADDVNM
                                       FROM dbo.ST_ADDVCD_D
-                                      WHERE ADDVNM NOT LIKE '井冈山市' AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
+                                      WHERE ADDVNM NOT LIKE '井冈山市'
+                                        AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
                  WHERE A.TM &gt; #{dateBegin24}
                    AND A.TM &lt;= #{time}
                  GROUP BY A.STCD, s.ADDVCD
              ) cs
-                 LEFT JOIN (SELECT STCD, TM, Z,Q FROM dbo.ST_RIVER_R) cs1 ON cs.STCD = cs1.STCD
+                 LEFT JOIN (SELECT STCD, TM, Z, Q FROM dbo.ST_RIVER_R) cs1 ON cs.STCD = cs1.STCD
             AND cs.TM = cs1.TM
-                 LEFT JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD FROM dbo.ST_STBPRP_B) cs2 ON cs.STCD = cs2.STCD
+                 INNER JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD, STTP
+                             FROM dbo.ST_STBPRP_B
+                             WHERE STTP = 'ZZ'
+                                or STTP = 'ZQ') cs2 ON cs.STCD = cs2.STCD
                  LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) rv ON rv.STCD = cs.STCD
                  INNER JOIN (SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D) ad ON ad.ADDVCD = cs.ADDVCD
+                 INNER JOIN ( SELECT Z,STCD FROM ST_RIVER_R WHERE TM = '2021-09-11 08:00:00' ) z ON z.STCD= cs.STCD
         GROUP BY cs.STCD,
                  cs.TM,
                  cs1.Z,
@@ -76,7 +198,8 @@
                  cs2.LGTD,
                  cs2.LTTD,
                  cs1.Q,
-                 rv.WRZ
+                 rv.WRZ,
+                 z.Z
     </select>
     <!--河道最新超警信息-->
     <select id="sel" resultType="java.util.HashMap">
@@ -93,14 +216,15 @@
                  SELECT A.STCD,
                         MAX(A.TM) TM,
                         s.ADDVCD
-                 FROM (SELECT STCD, TM, Z,Q FROM dbo.ST_RIVER_R WHERE STCD='62407800') AS A
+                 FROM (SELECT STCD, TM, Z, Q FROM dbo.ST_RIVER_R WHERE STCD = '62407800') AS A
                           LEFT JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD FROM dbo.ST_STBPRP_B) s ON A.STCD = s.STCD
                           INNER JOIN (SELECT ADDVCD, ADDVNM
                                       FROM dbo.ST_ADDVCD_D
-                                      WHERE ADDVNM NOT LIKE '井冈山市' AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
+                                      WHERE ADDVNM NOT LIKE '井冈山市'
+                                        AND ADDVNM NOT LIKE '吉水县') c ON c.ADDVCD = s.ADDVCD
                  GROUP BY A.STCD, s.ADDVCD
              ) cs
-                 LEFT JOIN (SELECT STCD, TM, Z,Q FROM dbo.ST_RIVER_R) cs1 ON cs.STCD = cs1.STCD
+                 LEFT JOIN (SELECT STCD, TM, Z, Q FROM dbo.ST_RIVER_R) cs1 ON cs.STCD = cs1.STCD
             AND cs.TM = cs1.TM
                  LEFT JOIN (SELECT STCD, STNM, LTTD, LGTD, ADDVCD FROM dbo.ST_STBPRP_B) cs2 ON cs.STCD = cs2.STCD
                  LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) rv ON rv.STCD = cs.STCD
@@ -118,14 +242,17 @@
 
 
     <select id="selectZ" resultType="java.util.HashMap">
-        SELECT Z FROM ST_RIVER_R WHERE STCD=#{stcd} AND TM=#{ti}
+        SELECT Z
+        FROM ST_RIVER_R
+        WHERE STCD = #{stcd}
+          AND TM = #{ti}
     </select>
     <!--河道涨幅,跌幅信息-->
     <select id="selecthds" resultType="java.util.HashMap">
         SELECT DISTINCT s.STCD,
-                        isnull(s.maxZ,0) as maxZ,
+                        isnull(s.maxZ, 0) as                               maxZ,
                         MAX(CASE s.maxAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) maxTM,
-                        isnull(s.minZ,0) as minZ,
+                        isnull(s.minZ, 0) as                               minZ,
                         MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM,
                         st.STNM,
                         ad.ADDVNM
@@ -137,83 +264,81 @@
                         RANK() OVER ( partition BY STCD ORDER BY Z DESC ) maxAgeNum,
                         RANK() OVER ( partition BY STCD ORDER BY Z )      minAgeNum
                  FROM dbo.ST_RIVER_R
-                 WHERE TM &gt;= #{beginTime}
+                 WHERE TM &gt; #{beginTime}
                    AND TM &lt;= #{endTime}
              ) s
                  INNER JOIN dbo.ST_STBPRP_B st ON st.STCD = s.STCD
-                 INNER JOIN (SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D  WHERE ADDVNM NOT LIKE '井冈山市' AND ADDVNM NOT LIKE '吉水县') ad ON ad.ADDVCD = st.ADDVCD
+                 INNER JOIN (SELECT ADDVCD, ADDVNM
+                             FROM dbo.ST_ADDVCD_D
+                             WHERE ADDVNM NOT LIKE '井冈山市'
+                               AND ADDVNM NOT LIKE '吉水县') ad ON ad.ADDVCD = st.ADDVCD
     </select>
 
-   <!--河道基本站信息-->
+    <!--河道基本站信息-->
     <select id="selectP" resultType="java.util.HashMap">
-        SELECT STCD FROM sys_stbprp
+        SELECT STCD
+        FROM sys_stbprp
     </select>
 
     <select id="selecthdyj" resultType="java.util.HashMap">
-        SELECT
-        cs.STCD id,
-        cs.TM,
-        cs1.Z,
-        cs2.LTTD,
-        cs2.LGTD,
-        cs2.STNM,
-        cs2.RVNM,
-        cs2.STLC,
-        ad.ADDVNM,
-        ISNULL(cs3.WRZ,0) AS WRZ,
-        ISNULL(cs4.ty,0) AS ty,
-        ISNULL(cs4.oy,0) AS oy,
-        ISNULL(cs4.toy,0) AS toy,
-        ISNULL(cs4.fy,0) AS fy
-        FROM
-        (
-        SELECT
-        A.STCD,
-        MAX ( A.TM ) TM,
-        s.ADDVCD
-        FROM
-        ( SELECT STCD, TM, Z FROM ST_RIVER_R WHERE TM &gt;=#{dateEnd} AND TM&lt;=#{times} ) AS A
-        INNER JOIN (
-        SELECT
-        STCD,
-        STNM,
-        LTTD,
-        LGTD,
-        ADDVCD,
-        RVNM,
-        STLC
-        FROM
-        dbo.ST_STBPRP_B
-        WHERE
-        STTP = 'ZZ'
-        OR STTP = 'ZQ'
-        ) s ON A.STCD = s.STCD
-        LEFT JOIN ( SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B ) rv ON A.STCD = rv.STCD
-        LEFT JOIN ( SELECT stcd,fy,oy,ty,toy FROM swz_chazhi WHERE ty IS NOT NULL ) c ON A.STCD= c.stcd
-        INNER JOIN ( SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D WHERE ADDVNM NOT LIKE '井冈山市' AND ADDVNM NOT LIKE '吉水县' ) d ON d.ADDVCD = s.ADDVCD
-        GROUP BY
-        A.STCD,
-        s.ADDVCD
-        ) cs
-        INNER JOIN ( SELECT STCD, TM, Z FROM ST_RIVER_R WHERE TM &gt;=#{dateEnd} AND TM&lt;=#{times} ) cs1 ON cs.STCD = cs1.STCD
-        AND cs.TM = cs1.TM
-        INNER JOIN (
-        SELECT
-        STCD,
-        STNM,
-        LTTD,
-        LGTD,
-        ADDVCD,
-        RVNM,
-        STLC
-        FROM
-        dbo.ST_STBPRP_B
-        WHERE
-        STTP = 'ZZ'
-        OR STTP = 'ZQ'
+        SELECT cs.STCD               id,
+               cs.TM,
+               cs1.Z,
+               cs2.LTTD,
+               cs2.LGTD,
+               cs2.STNM,
+               cs2.RVNM,
+               cs2.STLC,
+               ad.ADDVNM,
+               ISNULL(cs3.WRZ, 0) AS WRZ,
+               ISNULL(cs4.ty, 0)  AS ty,
+               ISNULL(cs4.oy, 0)  AS oy,
+               ISNULL(cs4.toy, 0) AS toy,
+               ISNULL(cs4.fy, 0)  AS fy
+        FROM (
+                 SELECT A.STCD,
+                        MAX(A.TM) TM,
+                        s.ADDVCD
+                 FROM (SELECT STCD, TM, Z FROM ST_RIVER_R WHERE TM &gt;= #{dateEnd} AND TM &lt;= #{times}) AS A
+                          INNER JOIN (
+                     SELECT STCD,
+                            STNM,
+                            LTTD,
+                            LGTD,
+                            ADDVCD,
+                            RVNM,
+                            STLC
+                     FROM dbo.ST_STBPRP_B
+                     WHERE STTP = 'ZZ'
+                        OR STTP = 'ZQ'
+                 ) s ON A.STCD = s.STCD
+                          LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) rv ON A.STCD = rv.STCD
+                          LEFT JOIN (SELECT stcd, fy, oy, ty, toy FROM swz_chazhi WHERE ty IS NOT NULL) c
+                                    ON A.STCD = c.stcd
+                          INNER JOIN (SELECT ADDVCD, ADDVNM
+                                      FROM dbo.ST_ADDVCD_D
+                                      WHERE ADDVNM NOT LIKE '井冈山市'
+                                        AND ADDVNM NOT LIKE '吉水县') d ON d.ADDVCD = s.ADDVCD
+                 GROUP BY A.STCD,
+                          s.ADDVCD
+             ) cs
+                 INNER JOIN (SELECT STCD, TM, Z FROM ST_RIVER_R WHERE TM &gt;= #{dateEnd} AND TM &lt;= #{times}) cs1
+                            ON cs.STCD = cs1.STCD
+                                AND cs.TM = cs1.TM
+                 INNER JOIN (
+            SELECT STCD,
+                   STNM,
+                   LTTD,
+                   LGTD,
+                   ADDVCD,
+                   RVNM,
+                   STLC
+            FROM dbo.ST_STBPRP_B
+            WHERE STTP = 'ZZ'
+               OR STTP = 'ZQ'
         ) cs2 ON cs.STCD = cs2.STCD
-        LEFT JOIN ( SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B ) cs3 ON cs.STCD = cs3.STCD
-        INNER JOIN ( SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D ) ad ON ad.ADDVCD = cs.ADDVCD
-        LEFT JOIN (SELECT stcd,fy,oy,ty,toy FROM swz_chazhi WHERE ty IS NOT NULL ) cs4 ON cs.STCD= cs4.stcd
+                 LEFT JOIN (SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B) cs3 ON cs.STCD = cs3.STCD
+                 INNER JOIN (SELECT ADDVCD, ADDVNM FROM dbo.ST_ADDVCD_D) ad ON ad.ADDVCD = cs.ADDVCD
+                 LEFT JOIN (SELECT stcd, fy, oy, ty, toy FROM swz_chazhi WHERE ty IS NOT NULL) cs4 ON cs.STCD = cs4.stcd
     </select>
 </mapper>

--
Gitblit v1.9.3