gunshi-project-ss/src/main/java/com/gunshi/project/xyt/mapper/RealRainMapper.java

123 lines
4.5 KiB
Java
Raw Normal View History

2024-07-08 14:47:19 +08:00
package com.gunshi.project.xyt.mapper;
import com.gunshi.project.xyt.entity.vo.RealRainListVo;
import com.gunshi.project.xyt.entity.vo.StPptnVo;
import com.gunshi.project.xyt.model.StPptnRD;
import com.gunshi.project.xyt.model.StPptnRReal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Date;
import java.util.List;
@Mapper
public interface RealRainMapper {
@Select("""
<script>
with m1 as (select t1.stcd,
t1.sttp,
s1.adcd,
t1.stlc,
s1.adnm,
t1.stnm,
t3.res_code,
t3.res_name,
t1.lgtd,
t1.lttd
from st_stbprp_b t1
left join att_res_base t3 on t3.stcd = t1.stcd
left join st_addvcd_d s1 on s1.adcd = t1.adcd
left join st_stbprp_b_elem s2 on s2.stcd = t1.stcd
where s2.elem = 'drp' ),
m2 as (select t1.stcd, sum(t1.drp) drp
from public.st_pptn_r t1
WHERE t1.tm &gt; #{stm}::timestamp and t1.tm &lt;= #{etm}::timestamp
GROUP BY t1.stcd)
select m1.stcd,
m1.sttp,
m1.stnm,
m1.stlc,
m2.drp,
m1.adcd,
m1.adnm,
m1.res_code,
m1.res_name,
m1.lgtd,
m1.lttd
from m1
left join m2 on m1.stcd = m2.stcd
</script>
""")
List<RealRainListVo> getRealRainList(@Param("stm") String stm, @Param("etm") String etm);
@Select("""
<script>
select date_trunc('hour', t.tm) as time,sum(t.drp) as sumDrp from
(select t1.stcd,t1.tm + INTERVAL '1' HOUR AS tm,t1.drp
from public.st_pptn_r t1
WHERE t1.tm &gt; #{startTime} and t1.tm &lt;= #{endTime}
and to_char(t1.tm,'MI') != '00' and t1.stcd = #{stcd}
union all select t2.stcd,t2.tm,t2.drp
from public.st_pptn_r t2
WHERE t2.tm &gt; #{startTime} and t2.tm &lt;= #{endTime}
and to_char(t2.tm,'MI') = '00' and t2.stcd = #{stcd}) t
GROUP BY date_trunc('hour', t.tm)
ORDER BY date_trunc('hour', t.tm) DESC
</script>
""")
List<StPptnVo> queryStPptnPerHourByStcdAndStartTimeAndEndTime(@Param("stcd") String stcd, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
@Select("""
<script>
SELECT * FROM public.st_pptn_r_d
WHERE stcd=#{stcd} and tm=#{tm} and year=#{year}
</script>
""")
StPptnRD getStPptnRD(@Param("stcd") String stcd, @Param("tm") Date tm, @Param("year") Integer year);
@Select("""
<script>
SELECT *
FROM public.st_pptn_r_d
WHERE stcd = #{stcd}
AND year = #{year}
AND (drp, tm) = (
SELECT MAX(drp), MAX(tm)
FROM public.st_pptn_r_d
WHERE stcd = #{stcd}
AND year = #{year}
AND drp = (
SELECT MAX(drp)
FROM public.st_pptn_r_d
WHERE stcd = #{stcd}
AND year = #{year}
)
);
</script>
""")
StPptnRD getMaxOfYear(@Param("stcd") String stcd, @Param("year") Integer year);
@Select("""
<script>
SELECT count(*) FROM public.st_pptn_r_d
WHERE stcd= #{stcd}
AND year = #{year}
AND drp > 0
</script>
""")
Long getRainOfDayInYear(@Param("stcd") String stcd, @Param("year") Integer year);
@Select("""
<script>
SELECT * FROM "public".st_pptn_r_real
WHERE stcd = #{stcd}
ORDER BY tm DESC
limit 1
</script>
""")
StPptnRReal queryPptnByStcd(@Param("stcd") String stcd);
}