136 lines
5.0 KiB
Java
136 lines
5.0 KiB
Java
package com.gunshi.project.xyt.mapper;
|
|
|
|
import com.gunshi.project.xyt.entity.vo.ForeRainVo;
|
|
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 > #{stm}::timestamp and t1.tm <= #{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 > #{startTime} and t1.tm <= #{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 > #{startTime} and t2.tm <= #{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);
|
|
|
|
@Select("""
|
|
<script>
|
|
select t1.stcd,
|
|
t1.stnm,
|
|
t1.lgtd,
|
|
t1.lttd
|
|
from st_stbprp_b t1
|
|
where t1.stcd in (select distinct(stcd) from st_stbprp_b_elem where elem ='drp')
|
|
</script>
|
|
""")
|
|
List<ForeRainVo> querySttpList();
|
|
}
|