tangzy
2022-07-21 a98b1db4392c357304036e8b3cdd01646920300d
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
@@ -258,12 +258,24 @@
    <select id="selectCode" resultType="java.lang.String">
        SELECT stuff((
            SELECT ',' + CONVERT(VARCHAR (25), m.cenconding)
            FROM dbo.blade_mountain m INNER JOIN ST_STBPRP_B s ON  s.STCD=m.cenconding  GROUP BY m.cenconding   FOR XML PATH ('')),
      1,
      1,
   ''
   ) AS siteids
            FROM dbo.blade_mountain m
                     INNER JOIN ST_STBPRP_B s ON s.STCD = m.cenconding
            GROUP BY m.cenconding FOR XML PATH ('')),
          1,
          1,
       ''
       ) AS siteids
    </select>
    <!--    <select id="selectCode" resultType="java.lang.String">-->
    <!--        SELECT stuff((-->
    <!--            SELECT ',' + CONVERT(VARCHAR (25), cenconding)-->
    <!--            FROM dbo.blade_mountain FOR XML PATH ('')),-->
    <!--      1,-->
    <!--      1,-->
    <!--   ''-->
    <!--   ) AS siteids-->
    <!--    </select>-->
    <select id="Mountains" resultMap="mountainrainResultMapcInfo">
        SELECT cs.id,
@@ -303,7 +315,7 @@
            SELECT ISNULL(SUM(s.DRP), 0) AS drp2,
                   STCD
            FROM dbo.ST_PPTN_R s
            WHERE s.TM &gt; #{dateEnd3}
            WHERE s.TM &gt; #{dateEnd2}
              AND s.TM &lt;= #{times}
              AND s.STCD IN (${code})
            GROUP BY s.STCD
@@ -312,7 +324,7 @@
            SELECT ISNULL(SUM(strs.DRP), 0) AS drp3,
                   STCD
            FROM dbo.ST_PPTN_R strs
            WHERE strs.TM &gt; #{dateEnd6}
            WHERE strs.TM &gt; #{dateEnd3}
              AND strs.TM &lt;= #{times}
              AND strs.STCD IN (${code})
            GROUP BY STCD
@@ -340,6 +352,10 @@
                   gthours
            FROM blade_mountain
        ) cs ON cs.cenconding = a.STCD
                 inner JOIN (
            SELECT stcd, soilval
            FROM sys_soleval
        ) so ON so.stcd = a.STCD
    </select>
    <!--第一种预警-->
@@ -352,11 +368,11 @@
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
               isnull(a.drp1, 0) as drp1
            isnull(b.drp2,0) as drp2
            isnull(c.drp3,0) as drp3
               isnull(a.drp1, 0) as drp1,
               isnull(b.drp2, 0) as drp2,
               isnull(c.drp3, 0) as drp3
        FROM (
                 SELECT ISNULL(SUM(str.DRP), 0) AS drp1,
                 SELECT SUM(str.DRP) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd1}
@@ -365,7 +381,7 @@
                 GROUP BY str.STCD
             ) a
                 FULL JOIN (
            SELECT ISNULL(SUM(s.DRP), 0) AS drp2,
            SELECT SUM(s.DRP) AS drp2,
                   STCD
            FROM dbo.ST_PPTN_R s
            WHERE s.TM &gt; #{dateEnd2}
@@ -374,7 +390,7 @@
            GROUP BY s.STCD
        ) b ON a.STCD = b.STCD
                 FULL JOIN (
            SELECT ISNULL(SUM(strs.DRP), 0) AS drp3,
            SELECT SUM(strs.DRP) AS drp3,
                   STCD
            FROM dbo.ST_PPTN_R strs
            WHERE strs.TM &gt; #{dateEnd3}
@@ -382,6 +398,87 @@
              AND strs.STCD IN (${code})
            GROUP BY STCD
        ) c ON a.STCD = c.STCD
                 INNER JOIN (
            SELECT STCD,
                   st.STNM,
                   st.ADDVCD,
                   st.STLC,
                   st.LTTD,
                   st.LGTD,
                   st.RVNM,
                   st.HNNM,
                   ad.ADDVNM
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) cs ON cs.STCD = a.STCD
    </select>
    <!--土壤湿度计算-->
    <select id="selectMtwo" resultType="java.util.Map">
        SELECT ISNULL(SUM(DRP), 0) AS drp,
               STCD
        FROM dbo.ST_PPTN_R
        WHERE TM &gt; #{time3}
          AND TM &lt;= #{time}
          AND STCD IN (${code})
        GROUP BY STCD
    </select>
    <insert id="soleInster">
        insert
        sys_soleval(stcd,soilval,stime) value (
        #{stcd},
        #{soilval},
        #{stime}
        )
    </insert>
    <delete id="soildel">
        DELETE
        FROM sys_soleval
    </delete>
    <!--通过行政区编码查询站点-->
    <select id="selectAddvcd" resultType="java.util.Map">
        SELECT STCD
        FROM dbo.ST_STBPRP_B
        WHERE 1=1
        <if test="addvcd!=null and addvcd!='' and addvcd!='361000'">
            and ADDVCD = #{addvcd}
        </if>
        AND (STTP = 'PP'
        OR STTP = 'ZQ'
        OR STTP = 'ZZ')
    </select>
    <!-- 批量插入预报信息-->
    <insert id="insertYuc" parameterType="java.util.List">
        insert into sys_yucpptn
        (STCD,TM,DRP,INTV)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (
            #{item.STCD},#{item.TM},
            #{item.DRP},
            #{item.INTV}
            )
        </foreach>
    </insert>
    <!--预报雨量站预警-->
    <select id="selectYup" resultType="java.util.Map">
        SELECT cs.STCD,
               cs.STNM,
               cs.STLC,
               cs.ADDVNM,
               cs.RVNM,
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
               isnull(a.drp, 0) AS drp,
               a.INTV
        FROM (SELECT str.DRP AS drp, STCD, INTV FROM sys_yucpptn str) a
                 LEFT JOIN (
            SELECT STCD,
                   st.STNM,
@@ -395,34 +492,444 @@
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) cs ON cs.STCD = a.STCD
    </select>
    <delete id="del">
        delete
        from sys_yucpptn
    </delete>
    <!--第二种预警-->
    <select id="selectYum" resultMap="mountainrainResultMapcInfo">
        SELECT cs.id,
               cs.cenconding,
               cs.crainfall,
               isnull(cs.gohour, 0)     gohour,
               isnull(cs.gthour, 0)     gthour,
               isnull(cs.gshour, 0)     gshour,
               isnull(cs.imohour, 0)    imohour,
               isnull(cs.imthour, 0)    imthour,
               isnull(cs.imshour, 0)    imshour,
               isnull(cs.gohours, 0)    gohours,
               isnull(cs.gthours, 0)    gthours,
               a.drp1,
               cs.township,
               cs.village,
               cs.village_group,
               cs.dj,
               cs.bw,
               cs.county,
               isnull(cs.fyear, 0)   AS fyear,
               isnull(cs.tyear, 0)   AS tyear,
               isnull(cs.oyear, 0)   AS oyear,
               isnull(so.soilval, 0) AS soilval
        FROM (SELECT DRP AS drp1, STCD FROM sys_yucpptn) a
                 LEFT JOIN (
            SELECT id,
                   cenconding,
                   crainfall,
                   township,
                   village,
                   village_group,
                   dj,
                   bw,
                   county,
                   fyear,
                   tyear,
                   oyear,
                   gohour,
                   gthour,
                   gshour,
                   imohour,
                   imthour,
                   imshour,
                   gohours,
                   gthours
            FROM blade_mountain
        ) cs ON cs.cenconding = a.STCD
                 INNER JOIN (SELECT stcd, soilval FROM sys_soleval) so ON so.stcd = a.STCD
    </select>
    <!--中小河流-->
    <select id="selctsmriver" resultType="java.util.Map">
        SELECT cs1.STCD,
               cs1.TM,
               cs1.Z,
               sm.yjsw,
               sm.stname,
               sm.river,
               sm.addvnm,
               st.LGTD,
               st.LTTD,
               st.HNNM,
               cs2.minz
        FROM (
                 SELECT A.STCD,
                        MAX(A.TM) TM
                 FROM (SELECT STCD, TM FROM dbo.ST_RIVER_R where TM &gt; #{dateEnd} AND TM &lt;= #{time}) AS A
                 GROUP BY A.STCD
             ) cs
                 INNER JOIN (SELECT STCD, TM, Z FROM dbo.ST_RIVER_R where TM &gt; #{dateEnd} AND TM &lt;= #{time}) cs1
                            ON cs.STCD = cs1.STCD
                                AND cs.TM = cs1.TM
                 INNER JOIN (SELECT stcd, yjsw, stname, river, addvnm
                             FROM sys_smallriver
                             GROUP BY stcd, yjsw, stname, river, addvnm) sm ON sm.stcd = cs1.STCD
                 INNER JOIN (SELECT LGTD, LTTD, STCD,HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.STCD
                 INNER JOIN (SELECT MIN(Z) AS minz, STCD
                             FROM dbo.ST_RIVER_R
                             where TM &gt; #{begintime24} AND TM &lt;= #{time}
                             GROUP BY STCD) cs2 ON cs.STCD = cs2.STCD
    </select>
    <!--大江大河-->
    <select id="selctbgriver" resultType="java.util.Map">
        SELECT cs1.STCD,
               cs1.TM,
               cs1.Z,
               sm.yjsw,
               sm.stname,
               sm.river,
               sm.addvnm,
               st.LGTD,
               st.LTTD,
               st.HNNM,
               cs2.minz
        FROM (
                 SELECT A.STCD,
                        MAX(A.TM) TM
                 FROM (SELECT STCD, TM FROM dbo.ST_RIVER_R where TM &gt; #{dateEnd} AND TM &lt;= #{time}) AS A
                 GROUP BY A.STCD
             ) cs
                 INNER JOIN (SELECT STCD, TM, Z FROM dbo.ST_RIVER_R where TM &gt; #{dateEnd} AND TM &lt;= #{time}) cs1
                            ON cs.STCD = cs1.STCD
                                AND cs.TM = cs1.TM
                 INNER JOIN (SELECT stcd, yjsw, stname, river, addvnm
                             FROM sys_bigriver
                             GROUP BY stcd, yjsw, stname, river, addvnm) sm ON sm.stcd = cs1.STCD
                 INNER JOIN (SELECT LGTD, LTTD, STCD, HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.STCD
                 INNER JOIN (SELECT MIN(Z) AS minz, STCD
                             FROM dbo.ST_RIVER_R
                             where TM &gt; #{begintime24} AND TM &lt;= #{time}
                             GROUP BY STCD) cs2 ON cs.STCD = cs2.STCD
    </select>
    <select id="selectTu" resultType="java.util.Map">
        SELECT m.cenconding,
               m.village_group      as village,
               m.county,
               isnull(s.soilval, 0) AS soilval
        FROM blade_mountain m
                 LEFT JOIN sys_soleval s ON s.stcd = m.cenconding
        GROUP BY m.cenconding,
                 s.soilval,
                 m.village_group,
                 m.county
    </select>
    <!--山洪1小时预警-->
    <select id="MountainYi" resultMap="mountainrainResultMapcInfo">
        SELECT cs.id,
               cs.cenconding,
               cs.crainfall,
               isnull(cs.gohour, 0)     gohour,
               isnull(cs.gthour, 0)     gthour,
               isnull(cs.gshour, 0)     gshour,
               isnull(cs.imohour, 0)    imohour,
               isnull(cs.imthour, 0)    imthour,
               isnull(cs.imshour, 0)    imshour,
               isnull(cs.gohours, 0)    gohours,
               isnull(cs.gthours, 0)    gthours,
               a.drp1,
               cs.township,
               cs.village,
               cs.village_group,
               cs.dj,
               cs.bw,
               cs.county,
               isnull(cs.fyear, 0)   as fyear,
               isnull(cs.tyear, 0)   as tyear,
               isnull(cs.oyear, 0)   as oyear,
               isnull(so.soilval, 0) as soilval
        FROM (
                 SELECT ISNULL(SUM(str.DRP), 0) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd1}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 LEFT JOIN (
            SELECT id,
                   cenconding,
                   crainfall,
                   township,
                   village,
                   village_group,
                   dj,
                   bw,
                   county,
                   fyear,
                   tyear,
                   oyear,
                   gohour,
                   gthour,
                   gshour,
                   imohour,
                   imthour,
                   imshour,
                   gohours,
                   gthours
            FROM blade_mountain
        ) cs ON cs.cenconding = a.STCD
                 LEFT JOIN (
            SELECT stcd, soilval
            FROM sys_soleval
            FROM sys_soleval where datediff(day,stime, #{stime}) = 0
        ) so ON so.stcd = a.STCD
    </select>
    <!--山洪2小时预警-->
    <select id="MountainTw" resultMap="mountainrainResultMapcInfo">
        SELECT cs.id,
               cs.cenconding,
               cs.crainfall,
               isnull(cs.gohour, 0)     gohour,
               isnull(cs.gthour, 0)     gthour,
               isnull(cs.gshour, 0)     gshour,
               isnull(cs.imohour, 0)    imohour,
               isnull(cs.imthour, 0)    imthour,
               isnull(cs.imshour, 0)    imshour,
               isnull(cs.gohours, 0)    gohours,
               isnull(cs.gthours, 0)    gthours,
               a.drp1,
               cs.township,
               cs.village,
               cs.village_group,
               cs.dj,
               cs.bw,
               cs.county,
               isnull(cs.fyear, 0)   as fyear,
               isnull(cs.tyear, 0)   as tyear,
               isnull(cs.oyear, 0)   as oyear,
               isnull(so.soilval, 0) as soilval
        FROM (
                 SELECT ISNULL(SUM(str.DRP), 0) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd2}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 LEFT JOIN (
            SELECT id,
                   cenconding,
                   crainfall,
                   township,
                   village,
                   village_group,
                   dj,
                   bw,
                   county,
                   fyear,
                   tyear,
                   oyear,
                   gohour,
                   gthour,
                   gshour,
                   imohour,
                   imthour,
                   imshour,
                   gohours,
                   gthours
            FROM blade_mountain
        ) cs ON cs.cenconding = a.STCD
                 LEFT JOIN (
            SELECT stcd, soilval
            FROM sys_soleval where datediff(day,stime, #{stime}) = 0
        ) so ON so.stcd = a.STCD
    </select>
    <select id="MountainTr" resultMap="mountainrainResultMapcInfo">
        SELECT cs.id,
               cs.cenconding,
               cs.crainfall,
               isnull(cs.gohour, 0)     gohour,
               isnull(cs.gthour, 0)     gthour,
               isnull(cs.gshour, 0)     gshour,
               isnull(cs.imohour, 0)    imohour,
               isnull(cs.imthour, 0)    imthour,
               isnull(cs.imshour, 0)    imshour,
               isnull(cs.gohours, 0)    gohours,
               isnull(cs.gthours, 0)    gthours,
               a.drp1,
               cs.township,
               cs.village,
               cs.village_group,
               cs.dj,
               cs.bw,
               cs.county,
               isnull(cs.fyear, 0)   as fyear,
               isnull(cs.tyear, 0)   as tyear,
               isnull(cs.oyear, 0)   as oyear,
               isnull(so.soilval, 0) as soilval
        FROM (
                 SELECT ISNULL(SUM(str.DRP), 0) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd3}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 LEFT JOIN (
            SELECT id,
                   cenconding,
                   crainfall,
                   township,
                   village,
                   village_group,
                   dj,
                   bw,
                   county,
                   fyear,
                   tyear,
                   oyear,
                   gohour,
                   gthour,
                   gshour,
                   imohour,
                   imthour,
                   imshour,
                   gohours,
                   gthours
            FROM blade_mountain
        ) cs ON cs.cenconding = a.STCD
                 LEFT JOIN (
            SELECT stcd, soilval
            FROM sys_soleval where datediff(day,stime, #{stime}) = 0
        ) so ON so.stcd = a.STCD
    </select>
    <!--土壤湿度计算-->
    <select id="selectMtwo" resultType="java.util.Map">
        SELECT SUM
                   (DRP) AS drp,
               STCD
        FROM dbo.ST_PPTN_R
        WHERE TM &gt; #{time3}
          AND TM &lt;= #{time}
          AND STCD IN (${code})
        GROUP BY STCD
    <!--第一种预警一小时-->
    <select id="selecMoneYi" resultType="java.util.Map">
        SELECT cs.STCD,
               cs.STNM,
               cs.STLC,
               cs.ADDVNM,
               cs.RVNM,
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
               isnull(a.drp1, 0) as drp1
        FROM (
                 SELECT SUM(str.DRP) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd1}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 INNER JOIN (
            SELECT STCD,
                   st.STNM,
                   st.ADDVCD,
                   st.STLC,
                   st.LTTD,
                   st.LGTD,
                   st.RVNM,
                   st.HNNM,
                   ad.ADDVNM
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) cs ON cs.STCD = a.STCD
    </select>
    <!--第一种预警两小时-->
    <select id="selecMoneTw" resultType="java.util.Map">
        SELECT cs.STCD,
               cs.STNM,
               cs.STLC,
               cs.ADDVNM,
               cs.RVNM,
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
               isnull(a.drp1, 0) as drp1
        FROM (
                 SELECT SUM(str.DRP) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd2}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 INNER JOIN (
            SELECT STCD,
                   st.STNM,
                   st.ADDVCD,
                   st.STLC,
                   st.LTTD,
                   st.LGTD,
                   st.RVNM,
                   st.HNNM,
                   ad.ADDVNM
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) cs ON cs.STCD = a.STCD
    </select>
    <select id="selecMoneTr" resultType="java.util.Map">
        SELECT cs.STCD,
               cs.STNM,
               cs.STLC,
               cs.ADDVNM,
               cs.RVNM,
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
               isnull(a.drp1, 0) as drp1
        FROM (
                 SELECT SUM(str.DRP) AS drp1,
                        STCD
                 FROM dbo.ST_PPTN_R str
                 WHERE str.TM &gt; #{dateEnd3}
                   AND str.TM &lt;= #{times}
                   AND str.STCD IN (${code})
                 GROUP BY str.STCD
             ) a
                 INNER JOIN (
            SELECT STCD,
                   st.STNM,
                   st.ADDVCD,
                   st.STLC,
                   st.LTTD,
                   st.LGTD,
                   st.RVNM,
                   st.HNNM,
                   ad.ADDVNM
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) cs ON cs.STCD = a.STCD
    </select>
    <insert id="soleInster">
        insert
        sys_soleval(stcd,soilval) value (
        #{stcd},
        #{soilval}
        )
    </insert>
    <delete id="soildel">
        DELETE
        FROM sys_soleval
    </delete>
    <!--土壤色斑图-->
    <select id="selectS" resultType="java.util.Map">
        SELECT so.stcd,
               so.soilval,
               st.LGTD,
               st.LTTD
        FROM sys_soleval so
                 INNER JOIN dbo.ST_STBPRP_B st ON so.stcd = st.STCD
        where datediff(day,stime, #{stime}) = 0
    </select>
<!--    &lt;!&ndash;土壤湿度优化&ndash;&gt;-->
<!--    <select id="ss" resultType="java.util.Map">-->
<!--        SELECT * FROM ST_PPTN_R WHERE DATEDIFF(dd, TM , '2021-06-29 08:00:00') <= 30 AND RIGHT(CONVERT(varchar(19),TM,120),5)='00:00'-->
<!--    </select>-->
</mapper>