From a98b1db4392c357304036e8b3cdd01646920300d Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Thu, 21 Jul 2022 15:41:23 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml |  153 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 146 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
index e266341..b8b5db1 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
@@ -2,12 +2,30 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.modules.mountainrain.mapper.BigriverMapper">
 
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="Forecast" type="org.springblade.modules.mountainrain.vo.BigriverVO">
+        <result column="stcd" property="stcd"/>
+        <result column="ftime" property="ftime"/>
+        <result column="ytime" property="ytime"/>
+        <result column="ybsw" property="ybsw"/>
+        <result column="yq" property="yq"/>
+        <result column="river" property="river"/>
+        <result column="stname" property="stname"/>
+        <result column="yjsw" property="yjsw"/>
+        <result column="addvnm" property="addvnm"/>
+        <result column="fbsw" property="fbsw"/>
+        <result column="fbll" property="fbll"/>
+        <result column="qzsw" property="qzsw"/>
+        <result column="qztime" property="qztime"/>
+        <result column="qzll" property="qzll"/>
+    </resultMap>
     <!--大江大河-->
     <select id="selctbgriver" resultType="java.util.Map">
-        SELECT cs1.stcd as STCD,
+        SELECT cs1.stcd  as STCD,
                cs1.ftime,
                cs1.ytime,
-               cs1.yuz as Z,
+               cs1.yuz   as Z,
                cs1.yjsw,
                cs1.stname,
                cs1.qzsw,
@@ -16,7 +34,7 @@
                cs1.qztime,
                cs1.drp,
                cs1.qzll,
-               cs1. fbsw,
+               cs1.fbsw,
                cs1.fbll,
                cs1.dbi,
                ad.ADDVNM as addvnm,
@@ -30,15 +48,136 @@
                  FROM (SELECT stcd, ftime FROM sys_Yucbig) AS A
                  GROUP BY A.stcd
              ) cs
-                 INNER JOIN (SELECT stcd, stname, ftime, ytime, yuz, yjsw, river,qzsw,yq,drptime,qztime,drp,qzll,fbsw,fbll,dbi FROM sys_Yucbig) cs1
-                            ON cs.stcd = cs1.stcd and cs.ftime=cs1.ftime
-                 INNER JOIN (SELECT LGTD, LTTD, STCD,ADDVCD,HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
+                 INNER JOIN (SELECT stcd,
+                                    stname,
+                                    ftime,
+                                    ytime,
+                                    yuz,
+                                    yjsw,
+                                    river,
+                                    qzsw,
+                                    yq,
+                                    drptime,
+                                    qztime,
+                                    drp,
+                                    qzll,
+                                    fbsw,
+                                    fbll,
+                                    dbi
+                             FROM sys_Yucbig) cs1
+                            ON cs.stcd = cs1.stcd and cs.ftime = cs1.ftime
+                 INNER JOIN (SELECT LGTD, LTTD, STCD, ADDVCD, HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
                  INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
     </select>
 
     <select id="selectINfo" resultType="java.lang.String">
         SELECT STCD
         from dbo.ST_STBPRP_B
-        where STNM =#{stnm}
+        where STNM = #{stnm}
+    </select>
+
+    <select id="selectYb" resultMap="Forecast">
+        SELECT A.STCD                               AS stcd,
+               CONVERT(VARCHAR (100), A.IYMDH, 120) AS ftime,
+               CONVERT(VARCHAR (100), A.YMDH, 120)  AS ytime,
+               ISNULL(A.Z, 0)                       AS ybsw,
+               ISNULL(A.Q, 0)                       AS yq,
+               B.river,
+               B.stname,
+               B.yjsw,
+               B.addvnm
+        FROM (SELECT STCD, IYMDH, YMDH, Z, Q FROM dbo.ST_FORECAST_F WHERE YMDH = #{time} AND STCD IN (${code})) A
+                 LEFT JOIN (SELECT stcd, river, stname, yjsw, addvnm
+                            FROM sys_bigriver
+                            GROUP BY stcd, river, stname, yjsw, addvnm) B ON A.STCD = B.stcd order by A.IYMDH desc
+    </select>
+
+    <select id="selectCode" resultType="java.lang.String">
+        SELECT stuff((
+            SELECT ',' + CONVERT(VARCHAR (25), stcd)
+            FROM sys_bigriver
+            GROUP BY stcd
+            FOR XML PATH ('')),
+		1,
+		1,
+	''
+	) AS siteids
+    </select>
+
+    <!--    <select id="selecF" resultType="java.util.Map">-->
+    <!--        SELECT ISNULL(Z, 0) as Z,-->
+    <!--               ISNULL(Q, 0) as Q-->
+    <!--        FROM dbo.ST_RIVER_R-->
+    <!--        WHERE STCD = #{stcd}-->
+    <!--          AND TM = #{times}-->
+    <!--    </select>-->
+
+    <select id="selecF" resultType="java.util.Map">
+        SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
+               A.minZ                               AS qzsw,
+               ISNULL(B.Q, 0)                       AS qzll,
+               ISNULL(C.Z, 0)                       as fbsw,
+               ISNULL(C.Q, 0)                       as fbll
+        FROM (
+                 SELECT DISTINCT s.STCD,
+                                 isnull(s.minZ, 0) AS                               minZ,
+                                 MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
+                 FROM (
+                          SELECT STCD,
+                                 TM,
+                                 MIN(Z) OVER ( partition BY STCD ) minZ,
+                                 RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
+                          FROM dbo.ST_RIVER_R
+                          WHERE TM &gt;= #{beginTime}
+                            AND TM &lt;= #{endTime}
+                            AND STCD = #{stcd}
+                      ) s
+             ) A
+                 LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{stcd}) B ON A.minTM = B.TM
+            AND B.STCD = A.STCD
+                 LEFT JOIN (
+            SELECT STCD,
+                   ISNULL(Z, 0) AS Z,
+                   ISNULL(Q, 0) AS Q
+            FROM dbo.ST_RIVER_R
+            WHERE STCD = #{stcd}
+              AND TM = #{times}
+        ) C ON C.STCD = A.STCD
+    </select>
+
+    <select id="selectStation" resultType="java.util.Map">
+    <foreach collection="list" item="item" open="" close="" separator="union ALL" index="index">
+        SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
+        A.minZ                               AS qzsw,
+        ISNULL(B.Q, 0)                       AS qzll,
+        ISNULL(C.Z, 0)                       as fbsw,
+        ISNULL(C.Q, 0)                       as fbll,
+        A.STCD
+        FROM (
+        SELECT DISTINCT s.STCD,
+        isnull(s.minZ, 0) AS                               minZ,
+        MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
+        FROM (
+        SELECT STCD,
+        TM,
+        MIN(Z) OVER ( partition BY STCD ) minZ,
+        RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
+        FROM dbo.ST_RIVER_R
+        WHERE TM &gt;= #{item.beginTime}
+        AND TM &lt;= #{item.endTime}
+        AND STCD =#{item.stcd}
+        ) s
+        ) A
+        LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{item.stcd}) B ON A.minTM = B.TM
+        AND B.STCD = A.STCD
+        LEFT JOIN (
+        SELECT STCD,
+        ISNULL(Z, 0) AS Z,
+        ISNULL(Q, 0) AS Q
+        FROM dbo.ST_RIVER_R
+        WHERE STCD =#{item.stcd}
+        AND TM =#{item.times}
+        ) C ON C.STCD = A.STCD
+    </foreach>
     </select>
 </mapper>

--
Gitblit v1.9.3