1:河道水位检测值属性名称由rz改为z

2:新增河道detail查询
master
yangzhe123 2025-11-07 16:29:39 +08:00
parent 0c83299627
commit 25902eed5c
10 changed files with 88 additions and 16 deletions

View File

@ -29,4 +29,5 @@ public interface StStbprpBMapper extends BaseMapper<StStbprpB> {
where b.sttp='RR' where b.sttp='RR'
""") """)
List<StStbprpB> getRsvrStations(); List<StStbprpB> getRsvrStations();
} }

View File

@ -62,6 +62,9 @@ public class ReservoirWaterController {
@Autowired @Autowired
private StPptnRService stPptnRService; private StPptnRService stPptnRService;
@Autowired
private RiverWaterService riverWaterService;
@Post(path = "/rz", summary = "水库水位") @Post(path = "/rz", summary = "水库水位")
public R<StRsvrVo> rz(@RequestBody ReservoirWaterCommonSo reservoirWaterCommonSo) { public R<StRsvrVo> rz(@RequestBody ReservoirWaterCommonSo reservoirWaterCommonSo) {
return R.ok(reservoirWaterService.rz(reservoirWaterCommonSo)); return R.ok(reservoirWaterService.rz(reservoirWaterCommonSo));
@ -146,6 +149,13 @@ public class ReservoirWaterController {
@Get(path = "/detail", summary = "监测详细数据(下方表格)") @Get(path = "/detail", summary = "监测详细数据(下方表格)")
public R<AttRvMonitorDetailVo> detail(@Schema(name = "stcd") @RequestParam("stcd") String stcd) { public R<AttRvMonitorDetailVo> detail(@Schema(name = "stcd") @RequestParam("stcd") String stcd) {
return R.ok(reservoirWaterService.detail(stcd)); AttRvMonitorDetailVo detail;
List<String> riverStcd = riverWaterService.getRiverStcd();
if(riverStcd.contains(stcd)){
detail = riverWaterService.detail(stcd);
}else{
detail = reservoirWaterService.detail(stcd);
}
return R.ok(detail);
} }
} }

View File

@ -102,13 +102,13 @@ public class AttRvBaseVo {
* *
*/ */
@Schema(description="监测水位") @Schema(description="监测水位")
private BigDecimal rz; private BigDecimal z;
@Schema(description="警戒水位") @Schema(description="警戒水位")
private BigDecimal warnWaterLevel; private BigDecimal wrz;
@Schema(description="保证水位") @Schema(description="保证水位")
private BigDecimal promiseWaterLevel; private BigDecimal grz;
/** /**
* *

View File

@ -1,5 +1,6 @@
package com.gunshi.project.hsz.entity.vo; package com.gunshi.project.hsz.entity.vo;
import com.gunshi.project.hsz.entity.vo.StStatusVo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@ -269,8 +269,8 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
@Select(""" @Select("""
select t.stcd,t.stnm,t.lgtd as lgtd, select t.stcd,t.stnm,t.lgtd as lgtd,
t.lttd as lttd,t.sttp,t.adcd,t.rvnm,t.stlc,t.source,t.esstym,s.tm,s.z as rz,s.q,sad.adnm, t.lttd as lttd,t.sttp,t.adcd,t.rvnm,t.stlc,t.source,t.esstym,s.tm,s.z as z,s.q,sad.adnm,
srb.warn_water_level as warnWaterLevel,srb.promise_water_level as promiseWaterLevel,sprr.h1,sprr.h3,sprr.h6,sprr.h12,sprr.h24,sprr.today srb.warn_water_level as wrz,srb.promise_water_level as grz,sprr.h1,sprr.h3,sprr.h6,sprr.h12,sprr.h24,sprr.today
from public.st_stbprp_b t from public.st_stbprp_b t
left join public.st_river_r_real s on t.stcd = s.stcd left join public.st_river_r_real s on t.stcd = s.stcd
left join public.st_addvcd_d sad on t.adcd = sad.adcd left join public.st_addvcd_d sad on t.adcd = sad.adcd
@ -283,8 +283,8 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
@Select(""" @Select("""
select t.stcd,t.stnm,t.lgtd as lgtd, select t.stcd,t.stnm,t.lgtd as lgtd,
t.lttd as lttd,t.sttp,t.adcd,t.rvnm,t.stlc,t.source,t.esstym,s.tm,s.z as rz,s.q,sad.adnm, t.lttd as lttd,t.sttp,t.adcd,t.rvnm,t.stlc,t.source,t.esstym,s.tm,s.z as z,s.q,sad.adnm,
srb.warn_water_level as warnWaterLevel,srb.promise_water_level as promiseWaterLevel,sprr.h1,sprr.h3,sprr.h6,sprr.h12,sprr.h24, srb.warn_water_level as wrz,srb.promise_water_level as grz,sprr.h1,sprr.h3,sprr.h6,sprr.h12,sprr.h24,
sprr.today,arb.dead_lev as deadLev sprr.today,arb.dead_lev as deadLev
from public.st_stbprp_b t from public.st_stbprp_b t
left join public.st_river_r_real s on t.stcd = s.stcd left join public.st_river_r_real s on t.stcd = s.stcd
@ -298,4 +298,12 @@ public interface AttResBaseMapper extends BaseMapper<AttResBase> {
//TODO 站点需要更改 //TODO 站点需要更改
List<AttRvBaseVo> queryWaterListUpAndLow(); List<AttRvBaseVo> queryWaterListUpAndLow();
@Select("""
select t1.stcd from st_stbprp_b t1
join st_stbprp_b_elem t2
on t1.stcd = t2.stcd
where t2.elem = 'z'
""")
List<String> getRiverStcd();
} }

View File

@ -194,4 +194,24 @@ public interface OsmoticPressRMapper extends BaseMapper<OsmoticPressR> {
</script> </script>
""") """)
List<OsmoticPressDetailVo> detailValue(@Param("obj") OsmoticDetailQuerySo so); List<OsmoticPressDetailVo> detailValue(@Param("obj") OsmoticDetailQuerySo so);
@Select("""
<script>
SELECT st.dvcd as stationCode,r.spprwl as value, to_char(r.mstm,'YYYY-MM-DD HH24:MI:SS') as tm,st.dm as profileName FROM jcsk_sy_b st
LEFT JOIN (SELECT mpcd,MAX(mstm) tm FROM jcsk_sy_r GROUP BY mpcd) maxr ON st.mpcd = maxr.mpcd
LEFT JOIN jcsk_sy_r r ON maxr.mpcd = r.mpcd and maxr.tm = r.mstm
</script>
""")
List<OsmoticPressVo> listValue2();
@Select("""
<script>
SELECT st.mpcd,r.spqn as value, to_char(r.mstm,'YYYY-MM-DD HH24:MI:SS') as tm,st.dvcd as stationCode,st.dm as profileName FROM
jcsk_sl_b st
LEFT JOIN (SELECT mpcd,MAX(mstm) tm FROM jcsk_sl_r GROUP BY mpcd) maxr ON st.mpcd = maxr.mpcd
LEFT JOIN jcsk_sl_r r ON maxr.mpcd = r.mpcd AND maxr.tm = r.mstm
ORDER BY st.mpcd asc,r.mstm desc
</script>
""")
List<OsmoticPressVo> flowListValue2();
} }

View File

@ -3,6 +3,7 @@ package com.gunshi.project.hsz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gunshi.project.hsz.common.model.so.OsmoticDetailQuerySo; import com.gunshi.project.hsz.common.model.so.OsmoticDetailQuerySo;
import com.gunshi.project.hsz.common.model.so.OsmoticQuerySo; import com.gunshi.project.hsz.common.model.so.OsmoticQuerySo;
import com.gunshi.project.hsz.common.model.vo.OsmoticShiftListVo2;
import com.gunshi.project.hsz.entity.vo.OsmoticShiftListVo; import com.gunshi.project.hsz.entity.vo.OsmoticShiftListVo;
import com.gunshi.project.hsz.entity.vo.OsmoticShiftValueVo; import com.gunshi.project.hsz.entity.vo.OsmoticShiftValueVo;
import com.gunshi.project.hsz.model.OsmoticShiftR; import com.gunshi.project.hsz.model.OsmoticShiftR;
@ -83,4 +84,15 @@ public interface OsmoticShiftRMapper extends BaseMapper<OsmoticShiftR> {
</script> </script>
""") """)
List<OsmoticShiftValueVo> detailValue(@Param("obj") OsmoticDetailQuerySo so); List<OsmoticShiftValueVo> detailValue(@Param("obj") OsmoticDetailQuerySo so);
@Select("""
<script>
SELECT st.cd,st.cd_nm as cdNm ,r.de,r.dn,r.du,to_char(r.tm,'YYYY-MM-DD HH24:MI:SS') as tm FROM
jcsk_gnss_b st
LEFT JOIN (SELECT cd,MAX(tm) tm FROM jcsk_gnss_r GROUP BY cd) maxr ON st.cd = maxr.cd
LEFT JOIN jcsk_gnss_r r ON maxr.cd = r.cd AND maxr.tm = r.tm
ORDER BY st.cd asc,r.tm desc;
</script>
""")
List<OsmoticShiftListVo2> listValue2();
} }

View File

@ -1,12 +1,11 @@
package com.gunshi.project.hsz.mapper; package com.gunshi.project.hsz.mapper;
import com.gunshi.project.hsz.entity.vo.StStatusVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import com.gunshi.project.hsz.entity.dto.StZqrlBDto; import com.gunshi.project.hsz.entity.dto.StZqrlBDto;
import com.gunshi.project.hsz.entity.so.HomeStStbprpBSo; import com.gunshi.project.hsz.entity.so.HomeStStbprpBSo;
import com.gunshi.project.hsz.entity.vo.HomeStStbprpBVo; import com.gunshi.project.hsz.entity.vo.HomeStStbprpBVo;
import com.gunshi.project.hsz.entity.vo.StStatusVo;
import com.gunshi.project.hsz.entity.vo.StZqrlBVo; import com.gunshi.project.hsz.entity.vo.StZqrlBVo;
import java.util.List; import java.util.List;
@ -116,4 +115,14 @@ public interface StbprpBVoMapper {
</script> </script>
""") """)
List<StZqrlBVo> flowList(@Param("obj") StZqrlBDto obj); List<StZqrlBVo> flowList(@Param("obj") StZqrlBDto obj);
@Select("""
<script>
SELECT st.stcd,st.stnm,r.tm FROM st_stbprp_b st
JOIN st_rsvr_r_real r ON st.stcd = r.stcd
WHERE st.stcd in (select distinct(stcd) from st_stbprp_b_elem where elem ='z')
</script>
""")
List<StStatusVo> zList();
} }

View File

@ -56,6 +56,10 @@ public class RiverWaterService {
private StZqRMapper stZqRMapper;//水位-流量关系 private StZqRMapper stZqRMapper;//水位-流量关系
public List<String> getRiverStcd(){
return attRvBaseMapper.getRiverStcd();
}
public List<AttRvBaseVo> list() { public List<AttRvBaseVo> list() {
List<AttRvBaseVo> attRvBaseVos = attRvBaseMapper.queryWaterListUpAndLow(); List<AttRvBaseVo> attRvBaseVos = attRvBaseMapper.queryWaterListUpAndLow();

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.hsz.common.mapper.StStbprpBMapper; import com.gunshi.project.hsz.common.mapper.StStbprpBMapper;
import com.gunshi.project.hsz.common.model.StStbprpB; import com.gunshi.project.hsz.common.model.StStbprpB;
import com.gunshi.project.hsz.common.model.vo.OsmoticShiftListVo2;
import com.gunshi.project.hsz.entity.dto.StZqrlBDto; import com.gunshi.project.hsz.entity.dto.StZqrlBDto;
import com.gunshi.project.hsz.entity.so.HomeStStbprpBSo; import com.gunshi.project.hsz.entity.so.HomeStStbprpBSo;
import com.gunshi.project.hsz.entity.vo.*; import com.gunshi.project.hsz.entity.vo.*;
@ -26,7 +27,6 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration; import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -85,8 +85,11 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
List<StStatusVo> rzList = stbprpBVoMapper.rzList(); List<StStatusVo> rzList = stbprpBVoMapper.rzList();
//图像站 //图像站
List<StStatusVo> imgList = stbprpBVoMapper.imgList(); List<StStatusVo> imgList = stbprpBVoMapper.imgList();
//水库水情
List<StStatusVo> zList = stbprpBVoMapper.zList();
rainList.addAll(rzList); rainList.addAll(rzList);
rainList.addAll(imgList); rainList.addAll(imgList);
rainList.addAll(zList);
rainList.stream().collect(Collectors.toMap(obj -> obj.getStcd(), obj -> obj, (obj1, obj2) -> rainList.stream().collect(Collectors.toMap(obj -> obj.getStcd(), obj -> obj, (obj1, obj2) ->
DateUtil.convertStringToDate(obj1.getTm()).after(DateUtil.convertStringToDate(obj2.getTm())) ? obj1 : obj2 DateUtil.convertStringToDate(obj1.getTm()).after(DateUtil.convertStringToDate(obj2.getTm())) ? obj1 : obj2
)).values().stream().collect(Collectors.toList()); )).values().stream().collect(Collectors.toList());
@ -99,7 +102,7 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
} }
} }
//渗压 //渗压
List<OsmoticPressVo> pressList = pressRMapper.listValue(); List<OsmoticPressVo> pressList = pressRMapper.listValue2();
list.addAll(pressList.stream().map(o -> { list.addAll(pressList.stream().map(o -> {
StStatusVo vo = new StStatusVo(); StStatusVo vo = new StStatusVo();
vo.setStnm(o.getStationCode()); vo.setStnm(o.getStationCode());
@ -107,7 +110,7 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
return vo; return vo;
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
//渗流 //渗流
List<OsmoticPressVo> flowList = pressRMapper.flowListValue(); List<OsmoticPressVo> flowList = pressRMapper.flowListValue2();
list.addAll(flowList.stream().map(o -> { list.addAll(flowList.stream().map(o -> {
StStatusVo vo = new StStatusVo(); StStatusVo vo = new StStatusVo();
vo.setStnm(o.getStationCode()); vo.setStnm(o.getStationCode());
@ -115,10 +118,10 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
return vo; return vo;
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
//位移 //位移
List<OsmoticShiftListVo> shiftList = shiftRMapper.listValue(); List<OsmoticShiftListVo2> shiftList = shiftRMapper.listValue2();
list.addAll(shiftList.stream().map(o -> { list.addAll(shiftList.stream().map(o -> {
StStatusVo vo = new StStatusVo(); StStatusVo vo = new StStatusVo();
vo.setStnm(o.getStationCode()); vo.setStnm(o.getCdNm());
vo.setTm(o.getTm()); vo.setTm(o.getTm());
return vo; return vo;
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
@ -396,7 +399,11 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
List<StRsvrR> rsvrList = rsvrRService.lambdaQuery().ge(StRsvrR::getTm, before24).le(StRsvrR::getTm, now).orderByAsc(StRsvrR::getTm).list(); List<StRsvrR> rsvrList = rsvrRService.lambdaQuery().ge(StRsvrR::getTm, before24).le(StRsvrR::getTm, now).orderByAsc(StRsvrR::getTm).list();
//TODO 这个溢洪流量汇总的计算也需要进行公式计算 //TODO 这个溢洪流量汇总的计算也需要进行公式计算
List<RsvrComplexVo> rsvrComplexVos = stZqrlBService.calculateSpilledVolumeList(rsvrList); List<RsvrComplexVo> rsvrComplexVos = stZqrlBService.calculateSpilledVolumeList(rsvrList);
vo.setSum24(rsvrComplexVos.getLast().getTotalSv()); if(rsvrComplexVos.isEmpty()){
vo.setSum24(BigDecimal.ZERO);
}else{
vo.setSum24(rsvrComplexVos.getLast().getTotalSv());
}
return vo; return vo;
} }