From b2077819a5a9c067cb50eedac9b84f6ca86197df Mon Sep 17 00:00:00 2001 From: yangzhe123 <2824096059@qq.com> Date: Wed, 3 Sep 2025 14:13:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=B3=E9=81=93=E6=B0=B4=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hsz/controller/RiverWaterController.java | 14 ++++-- .../hsz/entity/vo/AttRiverNowDataVo.java | 34 ++++++++++++++ .../project/hsz/entity/vo/AttRvBaseVo.java | 37 ++++++++++++++++ .../hsz/service/RainBasinDivisionService.java | 3 ++ .../hsz/service/RiverWaterService.java | 44 ++++++++++++++++--- 5 files changed, 121 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/gunshi/project/hsz/entity/vo/AttRiverNowDataVo.java diff --git a/src/main/java/com/gunshi/project/hsz/controller/RiverWaterController.java b/src/main/java/com/gunshi/project/hsz/controller/RiverWaterController.java index b3c743d..d38f3c7 100644 --- a/src/main/java/com/gunshi/project/hsz/controller/RiverWaterController.java +++ b/src/main/java/com/gunshi/project/hsz/controller/RiverWaterController.java @@ -4,6 +4,7 @@ import com.gunshi.core.annotation.Get; import com.gunshi.core.annotation.Post; import com.gunshi.core.result.R; import com.gunshi.project.hsz.entity.so.DataQueryCommonSo; +import com.gunshi.project.hsz.entity.vo.AttRiverNowDataVo; import com.gunshi.project.hsz.entity.vo.AttRvBaseVo; import com.gunshi.project.hsz.entity.vo.AttRvMonitorDetailVo; import com.gunshi.project.hsz.entity.vo.AttRvMonitorVo; @@ -35,9 +36,9 @@ public class RiverWaterController { @Autowired private RiverWaterService riverWaterService; - @Post(path = "/list", summary = "河道水情列表") - public R> list() { - return R.ok(riverWaterService.list()); + @Get(path = "/list", summary = "河道水情列表") + public R> list(@RequestParam("stcd") String stcd) { + return R.ok(riverWaterService.list(stcd)); } @Get(path = "/zqrl", summary = "水位流量关系") @@ -46,7 +47,7 @@ public class RiverWaterController { } - @Post(path = "/monitor/data", summary = "监测数据") + @Post(path = "/monitor/data", summary = "监测数据(上方表格)") public R> monitorData(@RequestBody @Validated DataQueryCommonSo dataQueryCommonSo) { return R.ok(riverWaterService.monitorData(dataQueryCommonSo)); } @@ -56,5 +57,10 @@ public class RiverWaterController { return R.ok(riverWaterService.detail(stcd)); } + @Get(path = "/nowData",summary = "实时监测") + public R nowData(@RequestParam("stcd") String stcd) { + return R.ok(riverWaterService.nowData(stcd)); + } + } diff --git a/src/main/java/com/gunshi/project/hsz/entity/vo/AttRiverNowDataVo.java b/src/main/java/com/gunshi/project/hsz/entity/vo/AttRiverNowDataVo.java new file mode 100644 index 0000000..a30f35c --- /dev/null +++ b/src/main/java/com/gunshi/project/hsz/entity/vo/AttRiverNowDataVo.java @@ -0,0 +1,34 @@ +package com.gunshi.project.hsz.entity.vo; + + +import com.gunshi.project.hsz.model.StPptnRReal; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class AttRiverNowDataVo extends StPptnRReal { + + @Schema(description = "水位上报时间") + private Date waterTm; + + @Schema(description = "监测水位") + private BigDecimal waterVal; + + + @Schema(description = "警戒水位") + private BigDecimal waterAlarm; + + @Schema(description = "监测水位差值") + private BigDecimal waterAlarmGap; + + @Schema(description = "保证水位") + private BigDecimal waterPromise; + + @Schema(description = "保证水位差值") + private BigDecimal waterPromiseGap; + + +} diff --git a/src/main/java/com/gunshi/project/hsz/entity/vo/AttRvBaseVo.java b/src/main/java/com/gunshi/project/hsz/entity/vo/AttRvBaseVo.java index bff3117..b1ade0a 100644 --- a/src/main/java/com/gunshi/project/hsz/entity/vo/AttRvBaseVo.java +++ b/src/main/java/com/gunshi/project/hsz/entity/vo/AttRvBaseVo.java @@ -124,4 +124,41 @@ public class AttRvBaseVo { @Schema(description = "建站日期") private String esstym; + + /** + * 小时雨量 + */ + @Schema(description="小时雨量") + private BigDecimal h1; + + /** + * 3小时雨量 + */ + @Schema(description="3小时雨量") + private BigDecimal h3; + + /** + * 6小时雨量 + */ + @Schema(description="6小时雨量") + private BigDecimal h6; + + /** + * 12小时雨量 + */ + @Schema(description="12小时雨量") + private BigDecimal h12; + + + /** + * 24小时雨量 + */ + @Schema(description="24小时雨量") + private BigDecimal h24; + + /** + * 今日雨量 + */ + @Schema(description="今日雨量") + private BigDecimal today; } diff --git a/src/main/java/com/gunshi/project/hsz/service/RainBasinDivisionService.java b/src/main/java/com/gunshi/project/hsz/service/RainBasinDivisionService.java index 830803c..9b4be9c 100644 --- a/src/main/java/com/gunshi/project/hsz/service/RainBasinDivisionService.java +++ b/src/main/java/com/gunshi/project/hsz/service/RainBasinDivisionService.java @@ -490,4 +490,7 @@ public class RainBasinDivisionService { .orElse(BigDecimal.ZERO); } + public StPptnRReal queryStPptnRealByStcd(String stcd) { + return realRainMapper.queryPptnByStcd(stcd); + } } diff --git a/src/main/java/com/gunshi/project/hsz/service/RiverWaterService.java b/src/main/java/com/gunshi/project/hsz/service/RiverWaterService.java index 104b6ca..b4da7a9 100644 --- a/src/main/java/com/gunshi/project/hsz/service/RiverWaterService.java +++ b/src/main/java/com/gunshi/project/hsz/service/RiverWaterService.java @@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gunshi.project.hsz.entity.so.DataQueryCommonSo; -import com.gunshi.project.hsz.entity.vo.AttRvBaseVo; -import com.gunshi.project.hsz.entity.vo.AttRvMonitorDetailVo; -import com.gunshi.project.hsz.entity.vo.AttRvMonitorVo; -import com.gunshi.project.hsz.entity.vo.StPptnDetailsVo; +import com.gunshi.project.hsz.entity.vo.*; import com.gunshi.project.hsz.mapper.AttResBaseMapper; import com.gunshi.project.hsz.mapper.StZqrlBMapper; -import com.gunshi.project.hsz.model.StZqrlB; +import com.gunshi.project.hsz.model.*; import com.gunshi.project.hsz.util.DataHandleUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -45,8 +42,14 @@ public class RiverWaterService { @Resource private RainBasinDivisionService rainBasinDivisionService; - public List list() { - List attRvBaseVos = attRvBaseMapper.queryWaterList(); + @Resource + private AlarmSetService alarmSetService; + + @Resource + private StRiverRRealService stRiverRRealService; + + public List list(String stcd) { + List attRvBaseVos = attRvBaseMapper.queryWaterListByStcd(stcd); if(CollectionUtils.isEmpty(attRvBaseVos)){ return attRvBaseVos; } @@ -160,4 +163,31 @@ public class RiverWaterService { return new BigDecimal(0); } + public AttRiverNowDataVo nowData(String stcd) { + AttRiverNowDataVo vo = new AttRiverNowDataVo(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AlarmSet::getStcd,stcd); + AlarmSet alarmSet = alarmSetService.getBaseMapper().selectOne(queryWrapper);//查询该站点的警告水位配置信息 + if(alarmSet == null){ + vo.setWaterAlarm(BigDecimal.ZERO); + vo.setWaterPromise(BigDecimal.ZERO); + }else{ + vo.setWaterAlarm(alarmSet.getWarnWaterLevel()); + vo.setWaterPromise(alarmSet.getPromiseWaterLevel()); + } + + StPptnRReal stPptnRReal = rainBasinDivisionService.queryStPptnRealByStcd(stcd);//查询该站点的实时降雨 + BeanUtils.copyProperties(stPptnRReal,vo); + + //查询该站点实时水位 + StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd); + if(stRiverRReal == null){ + throw new IllegalArgumentException("未查询到该站点实时水位信息,请检查"); + } + BigDecimal z = stRiverRReal.getZ() == null ? BigDecimal.ZERO : stRiverRReal.getZ(); + vo.setWaterVal(z); + vo.setWaterAlarmGap(z.subtract(vo.getWaterAlarm())); + vo.setWaterPromise(z.subtract(vo.getWaterPromise())); + return vo; + } }