tangzy
2022-07-21 a98b1db4392c357304036e8b3cdd01646920300d
src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml
@@ -27,6 +27,30 @@
        GROUP BY a.BGMD, EDMD
    </select>
    <!--    <select id="selectyjck" resultType="java.util.HashMap">-->
    <!--        SELECT rs.STCD,-->
    <!--               rs.TM,-->
    <!--               isnull(rs.RZ, 0) as RZ,-->
    <!--               rsv.FSLTDZ,-->
    <!--               st.STNM,-->
    <!--               st.LGTD,-->
    <!--               rs.INQ,-->
    <!--               rs.W,-->
    <!--               rs.OTQ,-->
    <!--               st.LTTD,-->
    <!--               st.ADDVNM-->
    <!--        FROM dbo.ST_RSVR_R rs-->
    <!--                 LEFT JOIN (SELECT FSLTDZ, STCD-->
    <!--                            FROM dbo.ST_RSVRFSR_B-->
    <!--                            WHERE BGMD = #{egmd}-->
    <!--                              AND EDMD = #{edmd}-->
    <!--                              and FSLTDZ is not null) rsv ON rsv.STCD = rs.STCD-->
    <!--                 INNER JOIN sys_rsvr st ON st.STCD = rs.STCD-->
    <!--                 INNER JOIN dbo.ST_RSVRFCCH_B rst ON rst.STCD = rs.STCD-->
    <!--        WHERE rs.TM &gt;#{beginTime}-->
    <!--          AND rs.TM &lt;= #{endTime}-->
    <!--        ORDER BY rs.TM DESC-->
    <!--    </select>-->
    <select id="selectyjck" resultType="java.util.HashMap">
        SELECT rs.STCD,
               rs.TM,
@@ -34,48 +58,146 @@
               rsv.FSLTDZ,
               st.STNM,
               st.LGTD,
               st.FDL,
               rs.INQ,
               rs.W,
               isnull(rs.W, 0)  as W,
               rs.OTQ,
               st.LTTD,
               st.ADDVNM
               st.ADDVNM,
               cs3.maxZ,
               cs4.minZ
        FROM dbo.ST_RSVR_R rs
                 INNER JOIN sys_rsvr st ON st.STCD = rs.STCD
                 LEFT JOIN (SELECT FSLTDZ, STCD
                            FROM dbo.ST_RSVRFSR_B
                            WHERE BGMD = #{egmd}
                              AND EDMD = #{edmd}
                              and FSLTDZ is not null) rsv ON rsv.STCD = rs.STCD
                 LEFT JOIN dbo.ST_RSVRFCCH_B rst ON rst.STCD = rs.STCD
                 LEFT JOIN (SELECT STCD, MAX(RZ) AS maxZ
                            FROM dbo.ST_RSVR_R
                            WHERE TM &gt; #{beginTime}
                              AND TM &lt;= #{endTime}
                              AND STCD IN (${code})
                            GROUP BY STCD) cs3 ON cs3.STCD = rs.STCD
                 LEFT JOIN (SELECT STCD, MIN(RZ) AS minZ
                            FROM dbo.ST_RSVR_R
                            WHERE TM &gt; #{beginTime}
                              AND TM &lt;= #{endTime}
                              AND STCD IN (${code})
                            GROUP BY STCD) cs4 ON cs4.STCD = rs.STCD
        WHERE rs.TM &gt; #{beginTime}
          AND rs.TM &lt;= #{endTime}
        ORDER BY rs.RZ DESC
    </select>
    <select id="selectyjcd" resultType="java.util.HashMap">
        SELECT rs.STCD,
               rs.TM,
               isnull(rs.RZ, 0) as RZ,
               rsv.FSLTDZ,
               st.STNM,
               st.LGTD,
               st.FDL,
               rs.INQ,
               isnull(rs.W, 0)  as W,
               rs.OTQ,
               st.LTTD,
               st.ADDVNM,
               rs.RZ            as maxZ,
               rs.RZ            as minZ
        FROM dbo.ST_RSVR_R rs
                 INNER JOIN sys_rsvr st ON st.STCD = rs.STCD
                 INNER JOIN dbo.ST_RSVRFCCH_B rst ON rst.STCD = rs.STCD
                 LEFT JOIN (SELECT FSLTDZ, STCD
                            FROM dbo.ST_RSVRFSR_B
                            WHERE BGMD = #{egmd}
                              AND EDMD = #{edmd}
                              and FSLTDZ is not null) rsv ON rsv.STCD = rs.STCD
                 LEFT JOIN dbo.ST_RSVRFCCH_B rst ON rst.STCD = rs.STCD
        WHERE rs.TM &gt;= #{beginTime}
          AND rs.TM &lt;= #{endTime}
        ORDER BY rs.TM DESC
          AND rs.STCD IN (${code})
    </select>
    <!--水库最新信息-->
    <!--    <select id="selectyjcks" resultType="java.util.HashMap">-->
    <!--        SELECT cs.STCD,-->
    <!--               cs.TM,-->
    <!--               isnull(cs1.RZ, 0)   as RZ,-->
    <!--               isnull(rsvr.RZS, 0) as RZS,-->
    <!--               cs2.STNM,-->
    <!--               cs3.INQ,-->
    <!--               cs1.W,-->
    <!--               cs3.OTQ,-->
    <!--               cs2.LGTD,-->
    <!--               cs2.LTTD,-->
    <!--               cs2.ADDVNM,-->
    <!--               rsv.FSLTDZ-->
    <!--        FROM (-->
    <!--                 SELECT A.STCD,-->
    <!--                        MAX(A.TM) TM-->
    <!--                 FROM (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R where TM &gt;#{dateEnd} AND TM &lt;=#{time}) AS A-->
    <!--                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr) s ON A.STCD = s.STCD-->
    <!--                 GROUP BY A.STCD-->
    <!--             ) cs-->
    <!--                 INNER JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R where TM &gt;#{dateEnd} AND TM &lt;=#{time}) cs1-->
    <!--                            ON cs.STCD = cs1.STCD AND cs.TM = cs1.TM-->
    <!--                 INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr) cs2 ON cs.STCD = cs2.STCD-->
    <!--                 LEFT JOIN (SELECT FSLTDZ, STCD-->
    <!--                            FROM dbo.ST_RSVRFSR_B-->
    <!--                            WHERE BGMD = #{egmd}-->
    <!--                              AND EDMD = #{edmd}-->
    <!--                              AND FSLTDZ IS NOT NULL) rsv ON rsv.STCD = cs.STCD-->
    <!--                 INNER JOIN (SELECT isnull(RZ, 0) AS RZS, STCD FROM ST_RSVR_R WHERE TM = #{tm}) rsvr-->
    <!--                           ON rsvr.STCD = cs.STCD-->
    <!--                 INNER JOIN (SELECT STCD, INQ, OTQ FROM dbo.ST_RSVR_R WHERE TM = #{timez}) cs3 ON cs.STCD = cs3.STCD-->
    <!--        GROUP BY cs.STCD,-->
    <!--                 cs.TM,-->
    <!--                 cs1.RZ,-->
    <!--                 rsvr.RZS,-->
    <!--                 cs3.INQ,-->
    <!--                 cs1.W,-->
    <!--                 cs3.OTQ,-->
    <!--                 cs2.STNM,-->
    <!--                 cs2.ADDVNM,-->
    <!--                 cs2.LGTD,-->
    <!--                 cs2.LTTD,-->
    <!--                 rsv.FSLTDZ-->
    <!--    </select> -->
    <select id="selectyjcks" resultType="java.util.HashMap">
        SELECT cs.STCD,
               cs.TM,
               isnull(cs1.RZ, 0)   as RZ,
               isnull(rsvr.RZS, 0) as RZS,
               isnull(cs1.RZ, 0)   AS RZ,
               isnull(rsvr.RZS, 0) AS RZS,
               cs2.STNM,
               cs3.INQ,
               cs1.W,
               isnull(cs1.W, 0)    as W,
               cs3.OTQ,
               cs2.LGTD,
               cs2.LTTD,
               cs2.ADDVNM,
               cs2.FDL,
               rsv.FSLTDZ
        FROM (
                 SELECT A.STCD,
                        MAX(A.TM) TM
                 FROM (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) AS A
                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr) s ON A.STCD = s.STCD
                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD, FDL FROM sys_rsvr) s ON A.STCD = s.STCD
                          LEFT JOIN (SELECT FSLTDZ, STCD
                                     FROM dbo.ST_RSVRFSR_B
                                     WHERE BGMD = #{egmd}
                                       AND EDMD = #{edmd}
                                       AND FSLTDZ IS NOT NULL) d ON d.STCD = A.STCD
                          LEFT JOIN (SELECT isnull(RZ, 0) AS RZS, STCD FROM ST_RSVR_R WHERE TM = #{tm}) z
                                    ON z.STCD = A.STCD
                          LEFT JOIN (SELECT STCD, INQ, OTQ FROM dbo.ST_RSVR_R WHERE TM = #{timez}) zz
                                    ON A.STCD = zz.STCD
                 GROUP BY A.STCD
             ) cs
                 INNER JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) cs1
                            ON cs.STCD = cs1.STCD AND cs.TM = cs1.TM
                 INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr) cs2 ON cs.STCD = cs2.STCD
                            ON cs.STCD = cs1.STCD
                                AND cs.TM = cs1.TM
                 INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD, FDL FROM sys_rsvr) cs2 ON cs.STCD = cs2.STCD
                 LEFT JOIN (SELECT FSLTDZ, STCD
                            FROM dbo.ST_RSVRFSR_B
                            WHERE BGMD = #{egmd}
@@ -95,6 +217,7 @@
                 cs2.ADDVNM,
                 cs2.LGTD,
                 cs2.LTTD,
                 cs2.FDL,
                 rsv.FSLTDZ
    </select>
@@ -107,9 +230,9 @@
    <!--水库涨幅,跌幅信息-->
    <select id="selectsk" 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
@@ -118,10 +241,10 @@
                        TM,
                        MAX(RZ) OVER ( partition BY STCD )                 maxZ,
                        MIN(RZ) OVER ( partition BY STCD )                 minZ,
                        RANK() OVER ( partition BY STCD ORDER BY RZ DESC ) maxAgeNum,
                        RANK() OVER ( partition BY STCD ORDER BY RZ )      minAgeNum
                        RANK()  OVER ( partition BY STCD ORDER BY RZ DESC ) maxAgeNum,
                        RANK()  OVER ( partition BY STCD ORDER BY RZ )      minAgeNum
                 FROM dbo.ST_RSVR_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
@@ -132,9 +255,9 @@
    <select id="selectInfo" resultType="java.util.HashMap">
        SELECT top 1 r.*,
                     rs.*,
                     st.*,
                     rsv.FSLTDZ
               rs.*,
               st.*,
               rsv.FSLTDZ
        FROM ST_RSVR_R r
                 LEFT JOIN ST_RSVRFCCH_B rs ON r.STCD = rs.STCD
                 LEFT JOIN sys_rsvr st ON st.STCD = r.STCD
@@ -191,69 +314,104 @@
    <!--水库站水位流量过程接口-->
    <select id="selectRsvrLists" resultType="java.util.HashMap">
        select * from dbo.ST_RIVER_R where STCD=#{code}
        select rs.*,rv.WRZ from dbo.ST_RIVER_R rs
        LEFT JOIN ( SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B ) rv ON rv.STCD = rs.STCD
        where rs.STCD=#{code}
        <if test="dateBegin!=null and dateBegin!=''">
            AND TM &gt;=#{dateBegin}
            AND rs.TM &gt;=#{dateBegin}
        </if>
        <if test="dateEnd!=null and dateEnd!=''">
            and TM&lt;=#{dateEnd}
            and rs.TM&lt;=#{dateEnd}
        </if>
        ORDER BY TM DESC
        ORDER BY rs.TM DESC
    </select>
    <select id="selectCode" resultType="java.lang.String">
        SELECT stuff((SELECT ',' + CONVERT(VARCHAR(25), rs.STCD)
                      FROM ST_RSVR_R r
                               INNER JOIN sys_rsvr rs ON
                          rs.STCD = r.STCD
                      WHERE r.TM &gt;= #{beginTime}
                        AND r.TM &lt;= #{endTime}
                      GROUP BY rs.STCD
                      FOR XML PATH ( '' )),
        SELECT stuff((SELECT ',' + CONVERT(VARCHAR (25), STCD)
                      FROM sys_rsvr FOR XML PATH ('')),
                     1,
                     1,
                     ''
                   ) AS stcd
    </select>
    <!--    <select id="selectCode" resultType="java.lang.String">-->
    <!--        SELECT stuff((SELECT ',' + CONVERT(VARCHAR(25), rs.STCD)-->
    <!--                      FROM  sys_rsvr rs-->
    <!--            FOR XML PATH ( '' )),-->
    <!--                     1,-->
    <!--                     1,-->
    <!--                     ''-->
    <!--                   ) AS stcd-->
    <!--    </select>-->
    <!--    <select id="sel" resultType="java.util.HashMap">-->
    <!--        SELECT cs.STCD,-->
    <!--               cs.TM,-->
    <!--               isnull(cs1.RZ, 0) as RZ,-->
    <!--               cs2.STNM,-->
    <!--               cs1.INQ,-->
    <!--               isnull(cs1.W, 0)  as W,-->
    <!--               cs1.OTQ,-->
    <!--               cs2.LGTD,-->
    <!--               cs2.LTTD,-->
    <!--               cs2.ADDVNM,-->
    <!--               rsv.FSLTDZ-->
    <!--        FROM (-->
    <!--                 SELECT A.STCD,-->
    <!--                        MAX(A.TM) TM-->
    <!--                 FROM (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) AS A-->
    <!--                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr WHERE STCD not IN (${code})) s-->
    <!--                                     ON A.STCD = s.STCD-->
    <!--                 GROUP BY A.STCD-->
    <!--             ) cs-->
    <!--                 INNER JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) cs1 ON cs.STCD = cs1.STCD-->
    <!--            AND cs.TM = cs1.TM-->
    <!--                 INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr WHERE STCD not IN (${code})) cs2-->
    <!--                            ON cs.STCD = cs2.STCD-->
    <!--                 LEFT JOIN (SELECT FSLTDZ, STCD-->
    <!--                            FROM dbo.ST_RSVRFSR_B-->
    <!--                            WHERE BGMD = #{egmd}-->
    <!--                              AND EDMD = #{edmd}-->
    <!--                              AND FSLTDZ IS NOT NULL) rsv ON rsv.STCD = cs.STCD-->
    <!--        GROUP BY cs.STCD,-->
    <!--                 cs.TM,-->
    <!--                 cs1.RZ,-->
    <!--                 cs1.INQ,-->
    <!--                 cs1.W,-->
    <!--                 cs1.OTQ,-->
    <!--                 cs2.STNM,-->
    <!--                 cs2.ADDVNM,-->
    <!--                 cs2.LGTD,-->
    <!--                 cs2.LTTD,-->
    <!--                 rsv.FSLTDZ-->
    <!--    </select> -->
    <select id="sel" resultType="java.util.HashMap">
        SELECT cs.STCD,
               cs.TM,
               isnull(cs1.RZ, 0) as RZ,
               isnull(cs1.RZ, 0) AS RZ,
               cs2.STNM,
               cs1.INQ,
               cs1.W,
               cs1.OTQ,
               isnull(cs1.W, 0)  AS W,
               cs2.LGTD,
               cs2.LTTD,
               cs2.ADDVNM,
               cs2.FDL,
               rsv.FSLTDZ
        FROM (
                 SELECT A.STCD,
                        MAX(A.TM) TM
                 FROM (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) AS A
                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr WHERE STCD not IN (${code})) s
                          INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD, FDL FROM sys_rsvr) s
                                     ON A.STCD = s.STCD
                 GROUP BY A.STCD
             ) cs
                 INNER JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) cs1 ON cs.STCD = cs1.STCD
                 LEFT JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) cs1 ON cs.STCD = cs1.STCD
            AND cs.TM = cs1.TM
                 INNER JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD FROM sys_rsvr WHERE STCD not IN (${code})) cs2
                            ON cs.STCD = cs2.STCD
                 LEFT JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD, FDL FROM sys_rsvr) cs2 ON cs.STCD = cs2.STCD
                 LEFT JOIN (SELECT FSLTDZ, STCD
                            FROM dbo.ST_RSVRFSR_B
                            WHERE BGMD = #{egmd} AND EDMD = #{edmd} AND FSLTDZ IS NOT NULL) rsv ON rsv.STCD = cs.STCD
        GROUP BY cs.STCD,
                 cs.TM,
                 cs1.RZ,
                 cs1.INQ,
                 cs1.W,
                 cs1.OTQ,
                 cs2.STNM,
                 cs2.ADDVNM,
                 cs2.LGTD,
                 cs2.LTTD,
                 rsv.FSLTDZ
                            WHERE BGMD = #{egmd}
                              AND EDMD = #{edmd}
                              AND FSLTDZ IS NOT NULL) rsv ON rsv.STCD = cs.STCD
    </select>
    <!--水库实时预警-->
@@ -290,4 +448,54 @@
                 LEFT JOIN (SELECT STCD, NORMZ, DSFLZ FROM ST_RSVRFCCH_B WHERE NORMZ IS NOT NULL) cs4
                           ON cs.STCD = cs4.STCD
    </select>
    <select id="selectskshi" resultType="java.util.HashMap">
        SELECT D.*,
        isnull(rsvr.RZS, 0) AS RZS
        FROM (
        SELECT cs.STCD,
        cs.TM,
        isnull(cs.RZ, 0) AS RZ,
        cs.INQ,
        cs.OTQ,
        cs2.STNM,
        isnull(cs.W, 0) AS W,
        cs2.LGTD,
        cs2.LTTD,
        cs2.ADDVNM,
        cs2.FDL,
        rsv.FSLTDZ
        FROM (
        SELECT
        STCD,
        TM,
        RZ,
        INQ,
        W,
        OTQ
        FROM
        dbo.ST_RSVR_R
        WHERE
        TM &gt;=#{beginTime}
        AND TM&lt;=#{endTime}
        AND STCD IN (${code})
        ) cs
        LEFT JOIN (SELECT STCD, TM, RZ, INQ, W, OTQ FROM dbo.ST_RSVR_R) cs1 ON cs.STCD = cs1.STCD
        AND cs.TM = cs1.TM
        LEFT JOIN (SELECT STCD, STNM, ADDVNM, LTTD, LGTD, FDL FROM sys_rsvr) cs2 ON cs.STCD = cs2.STCD
        LEFT JOIN (SELECT FSLTDZ, STCD
        FROM dbo.ST_RSVRFSR_B
        WHERE BGMD = #{egmd}
        AND EDMD = #{edmd}
        AND FSLTDZ IS NOT NULL) rsv ON rsv.STCD = cs.STCD
        ) D
        LEFT JOIN (
        SELECT isnull(RZ, 0) AS RZS,
        STCD
        FROM ST_RSVR_R
        WHERE TM = #{tm}
        AND STCD IN (${code})
        ) rsvr ON rsvr.STCD = D.STCD
    </select>
</mapper>