From b6cee9a13f14770f2dff405736d226de31a7c30c Mon Sep 17 00:00:00 2001 From: yangzhe123 <2824096059@qq.com> Date: Fri, 29 Aug 2025 09:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5-=E7=BB=BC=E5=90=88=E7=9B=91?= =?UTF-8?q?=E8=A7=86-=E9=A2=84=E8=AD=A6=EF=BC=882=E4=B8=AA=E6=96=B0?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E7=BC=96=E5=8F=B7=E5=BE=85=E5=AE=9A=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/hsz/entity/vo/HomeWarnVo.java | 7 ++ .../project/hsz/mapper/StRsvrRRealMapper.java | 3 + .../project/hsz/service/StQxWarnRService.java | 72 +++++++++++++++++++ .../resources/mapper/StRsvrRRealMapper.xml | 11 +++ 4 files changed, 93 insertions(+) diff --git a/src/main/java/com/gunshi/project/hsz/entity/vo/HomeWarnVo.java b/src/main/java/com/gunshi/project/hsz/entity/vo/HomeWarnVo.java index 5d25008..74ccee6 100644 --- a/src/main/java/com/gunshi/project/hsz/entity/vo/HomeWarnVo.java +++ b/src/main/java/com/gunshi/project/hsz/entity/vo/HomeWarnVo.java @@ -30,6 +30,13 @@ public class HomeWarnVo { @Schema(description="渗流告警") private List flowWarn; + @Schema(description = "超河道警告 上游") + private String overRvUp; + + @Schema(description = "超河道警告 下游") + private String overRvDown; + + @Schema(description="AI告警个数") private Long aiWarnCount; } diff --git a/src/main/java/com/gunshi/project/hsz/mapper/StRsvrRRealMapper.java b/src/main/java/com/gunshi/project/hsz/mapper/StRsvrRRealMapper.java index a045dac..747ea55 100644 --- a/src/main/java/com/gunshi/project/hsz/mapper/StRsvrRRealMapper.java +++ b/src/main/java/com/gunshi/project/hsz/mapper/StRsvrRRealMapper.java @@ -3,6 +3,7 @@ package com.gunshi.project.hsz.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gunshi.project.hsz.model.StRsvrRReal; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 描述: 水库水位实时数据表 @@ -12,4 +13,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface StRsvrRRealMapper extends BaseMapper { + StRsvrRReal queryRzByStcd(@Param("stcd") String stcd); + } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/hsz/service/StQxWarnRService.java b/src/main/java/com/gunshi/project/hsz/service/StQxWarnRService.java index af14fa7..4317fe8 100644 --- a/src/main/java/com/gunshi/project/hsz/service/StQxWarnRService.java +++ b/src/main/java/com/gunshi/project/hsz/service/StQxWarnRService.java @@ -9,8 +9,10 @@ import com.gunshi.db.dto.DateTimeRangeSo; import com.gunshi.project.hsz.entity.vo.*; import com.gunshi.project.hsz.mapper.AttResBaseMapper; import com.gunshi.project.hsz.mapper.StQxWarnRMapper; +import com.gunshi.project.hsz.model.AlarmSet; import com.gunshi.project.hsz.model.StImgWarnR; import com.gunshi.project.hsz.model.StQxWarnR; +import com.gunshi.project.hsz.model.StRsvrRReal; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; @@ -53,6 +55,12 @@ public class StQxWarnRService extends ServiceImpl { @Resource private AttResBaseMapper attResBaseMapper; + @Resource + private StRsvrRRealService stRsvrRRealService; + + @Resource + private AlarmSetService alarmSetService; + public HomeWarnVo homeWarn(DateTimeRangeSo dateTimeRangeSo) { HomeWarnVo vo = new HomeWarnVo(); @@ -93,9 +101,73 @@ public class StQxWarnRService extends ServiceImpl { Long aiWarnCount = imgWarnRService.lambdaQuery() .ge(StImgWarnR::getTm, dateTimeRangeSo.getStart()).lt(StImgWarnR::getTm, dateTimeRangeSo.getEnd()).count(); vo.setAiWarnCount(aiWarnCount); + + //TODO 超河道上游 + String upperStcd = "123";//固定的站点编码 + setUpAndDownOverRvUp(upperStcd,vo); + + //TODO 超河道下游 + String lowerStcd = "61610700";//固定的站点编码 + setUpAndDownOverRvDown(lowerStcd,vo); return vo; } + private void setUpAndDownOverRvUp(String stcd,HomeWarnVo vo){ + StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd); + if(stRsvrRReal != null){ + AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd); + //警告水位 + BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel(); + //保证水位 + BigDecimal promiseWaterLevel = alarmSet.getPromiseWaterLevel(); + if(alarmSet == null){ + vo.setOverRvUp("告警设置未配置,请检查"); + }else{ + BigDecimal rz = new BigDecimal(stRsvrRReal.getRz()); + if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){ + BigDecimal gap = rz.subtract(warnWaterLevel); + vo.setOverRvUp("超警戒(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + }else if(rz.compareTo(promiseWaterLevel) >=0){ + BigDecimal gap = rz.subtract(promiseWaterLevel); + vo.setOverRvUp("超保证(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + }else{ + BigDecimal gap = rz.subtract(warnWaterLevel); + vo.setOverRvUp("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + } + } + }else{ + vo.setOverRvUp("暂无水库水位数据"); + } + } + + private void setUpAndDownOverRvDown(String stcd,HomeWarnVo vo){ + StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd); + if(stRsvrRReal != null){ + AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd); + //警告水位 + BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel(); + //保证水位 + BigDecimal promiseWaterLevel = alarmSet.getPromiseWaterLevel(); + if(alarmSet == null){ + vo.setOverRvDown("告警设置未配置,请检查"); + }else{ + BigDecimal rz = new BigDecimal(stRsvrRReal.getRz()); + if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){ + BigDecimal gap = rz.subtract(warnWaterLevel); + vo.setOverRvDown("超警戒(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + }else if(rz.compareTo(promiseWaterLevel) >=0){ + BigDecimal gap = rz.subtract(promiseWaterLevel); + vo.setOverRvDown("超保证(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + }else{ + BigDecimal gap = rz.subtract(warnWaterLevel); + vo.setOverRvDown("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); + } + } + }else{ + vo.setOverRvDown("暂无水库水位数据"); + } + } + private List queryQxWarn() { List list = new ArrayList<>(); ApiVo apiVo = new ApiVo(); diff --git a/src/main/resources/mapper/StRsvrRRealMapper.xml b/src/main/resources/mapper/StRsvrRRealMapper.xml index 913946a..791a5d3 100644 --- a/src/main/resources/mapper/StRsvrRRealMapper.xml +++ b/src/main/resources/mapper/StRsvrRRealMapper.xml @@ -2,4 +2,15 @@ + + +