首页-预警

master
yangzhe123 2025-09-02 17:30:05 +08:00
parent 91d34a227f
commit f3c475e6f7
3 changed files with 33 additions and 29 deletions

View File

@ -41,6 +41,9 @@ public class StRiverRReal implements Serializable {
@NotNull(message = "stcd不能为空") @NotNull(message = "stcd不能为空")
private String stcd; private String stcd;
@TableField(exist = false)
private String stnm;
/** /**
* tm * tm
*/ */

View File

@ -9,10 +9,7 @@ import com.gunshi.db.dto.DateTimeRangeSo;
import com.gunshi.project.hsz.entity.vo.*; import com.gunshi.project.hsz.entity.vo.*;
import com.gunshi.project.hsz.mapper.AttResBaseMapper; import com.gunshi.project.hsz.mapper.AttResBaseMapper;
import com.gunshi.project.hsz.mapper.StQxWarnRMapper; import com.gunshi.project.hsz.mapper.StQxWarnRMapper;
import com.gunshi.project.hsz.model.AlarmSet; import com.gunshi.project.hsz.model.*;
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 jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
@ -61,6 +58,9 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
@Resource @Resource
private AlarmSetService alarmSetService; private AlarmSetService alarmSetService;
@Resource
private StRiverRRealService stRiverRRealService;
public HomeWarnVo homeWarn(DateTimeRangeSo dateTimeRangeSo) { public HomeWarnVo homeWarn(DateTimeRangeSo dateTimeRangeSo) {
HomeWarnVo vo = new HomeWarnVo(); HomeWarnVo vo = new HomeWarnVo();
@ -113,8 +113,9 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
} }
private void setUpAndDownOverRvUp(String stcd,HomeWarnVo vo){ private void setUpAndDownOverRvUp(String stcd,HomeWarnVo vo){
StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd); //StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd);
if(stRsvrRReal != null){ StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
if(stRiverRReal != null){
AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd); AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd);
//警告水位 //警告水位
BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel(); BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel();
@ -123,13 +124,10 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
if(alarmSet == null){ if(alarmSet == null){
vo.setOverRvUp("告警设置未配置,请检查"); vo.setOverRvUp("告警设置未配置,请检查");
}else{ }else{
BigDecimal rz = new BigDecimal(stRsvrRReal.getRz()); BigDecimal rz = stRiverRReal.getZ();
if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){ if(rz.compareTo(warnWaterLevel) >=0){
BigDecimal gap = rz.subtract(warnWaterLevel); BigDecimal gap = rz.subtract(warnWaterLevel);
vo.setOverRvUp("超警戒(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); 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{ }else{
BigDecimal gap = rz.subtract(warnWaterLevel); BigDecimal gap = rz.subtract(warnWaterLevel);
vo.setOverRvUp("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); vo.setOverRvUp("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m");
@ -141,8 +139,8 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
} }
private void setUpAndDownOverRvDown(String stcd,HomeWarnVo vo){ private void setUpAndDownOverRvDown(String stcd,HomeWarnVo vo){
StRsvrRReal stRsvrRReal = stRsvrRRealService.getBaseMapper().queryRzByStcd(stcd); StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
if(stRsvrRReal != null){ if(stRiverRReal != null){
AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd); AlarmSet alarmSet = alarmSetService.getBaseMapper().queryByStcd(stcd);
//警告水位 //警告水位
BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel(); BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel();
@ -151,13 +149,10 @@ public class StQxWarnRService extends ServiceImpl<StQxWarnRMapper, StQxWarnR> {
if(alarmSet == null){ if(alarmSet == null){
vo.setOverRvDown("告警设置未配置,请检查"); vo.setOverRvDown("告警设置未配置,请检查");
}else{ }else{
BigDecimal rz = new BigDecimal(stRsvrRReal.getRz()); BigDecimal rz = stRiverRReal.getZ();
if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){ if(rz.compareTo(warnWaterLevel) >=0){
BigDecimal gap = rz.subtract(warnWaterLevel); BigDecimal gap = rz.subtract(warnWaterLevel);
vo.setOverRvDown("超警戒(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); 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{ }else{
BigDecimal gap = rz.subtract(warnWaterLevel); BigDecimal gap = rz.subtract(warnWaterLevel);
vo.setOverRvDown("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m"); vo.setOverRvDown("正常(" +gap.setScale(2, RoundingMode.HALF_UP)+")m");

View File

@ -8,8 +8,10 @@ import com.gunshi.project.hsz.mapper.AlarmSetMapper;
import com.gunshi.project.hsz.mapper.AttResBaseMapper; import com.gunshi.project.hsz.mapper.AttResBaseMapper;
import com.gunshi.project.hsz.mapper.StRsvrRRealMapper; import com.gunshi.project.hsz.mapper.StRsvrRRealMapper;
import com.gunshi.project.hsz.model.AlarmSet; import com.gunshi.project.hsz.model.AlarmSet;
import com.gunshi.project.hsz.model.StRiverRReal;
import com.gunshi.project.hsz.model.StRsvrRReal; import com.gunshi.project.hsz.model.StRsvrRReal;
import com.gunshi.project.hsz.model.WaterAlarm; import com.gunshi.project.hsz.model.WaterAlarm;
import com.gunshi.project.hsz.service.StRiverRRealService;
import com.gunshi.project.hsz.service.WaterAlarmService; import com.gunshi.project.hsz.service.WaterAlarmService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -46,6 +48,9 @@ public class AlarmTask {
@Autowired @Autowired
private WaterAlarmService waterAlarmService; private WaterAlarmService waterAlarmService;
@Autowired
private StRiverRRealService stRiverRRealService;
// @Async // @Async
// @Scheduled(fixedRate = 5, timeUnit = TimeUnit.MINUTES) // @Scheduled(fixedRate = 5, timeUnit = TimeUnit.MINUTES)
public void updateAlarmSet(){ public void updateAlarmSet(){
@ -112,8 +117,9 @@ public class AlarmTask {
} }
private void saveRiverData(String stcd){ private void saveRiverData(String stcd){
StRsvrRReal stRsvrRReal = stRsvrRRealMapper.queryRzByStcd(stcd); //StRsvrRReal stRsvrRReal = stRsvrRRealMapper.queryRzByStcd(stcd);
if(stRsvrRReal != null){ StRiverRReal stRiverRReal = stRiverRRealService.getBaseMapper().queryQByStcd(stcd);
if(stRiverRReal != null){
AlarmSet alarmSet = alarmSetMapper.queryByStcd(stcd); AlarmSet alarmSet = alarmSetMapper.queryByStcd(stcd);
//警告水位 //警告水位
BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel(); BigDecimal warnWaterLevel = alarmSet.getWarnWaterLevel();
@ -122,16 +128,16 @@ public class AlarmTask {
if(alarmSet == null){ if(alarmSet == null){
return; return;
}else{ }else{
BigDecimal rz = new BigDecimal(stRsvrRReal.getRz()); BigDecimal rz =stRiverRReal.getZ();
if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){ if(rz.compareTo(warnWaterLevel) >=0 && rz.compareTo(promiseWaterLevel) <0){
BigDecimal gap = rz.subtract(warnWaterLevel); BigDecimal gap = rz.subtract(warnWaterLevel);
//河道超警戒 //河道超警戒
Integer level = AlarmTypeEnum.RIVER_OVER_WARNING.getLevel(); Integer level = AlarmTypeEnum.RIVER_OVER_WARNING.getLevel();
WaterAlarm waterAlarm = new WaterAlarm(); WaterAlarm waterAlarm = new WaterAlarm();
waterAlarm.setStcd(stRsvrRReal.getStcd()); waterAlarm.setStcd(stRiverRReal.getStcd());
waterAlarm.setStnm(stRsvrRReal.getStnm()); waterAlarm.setStnm(stRiverRReal.getStnm());
waterAlarm.setAlarmTime(stRsvrRReal.getTm().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); waterAlarm.setAlarmTime(stRiverRReal.getTm().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
waterAlarm.setCurValue(new BigDecimal(stRsvrRReal.getRz())); waterAlarm.setCurValue(stRiverRReal.getZ());
waterAlarm.setAlarmValue(warnWaterLevel); waterAlarm.setAlarmValue(warnWaterLevel);
waterAlarm.setOverValue(gap); waterAlarm.setOverValue(gap);
waterAlarm.setAlarmType(level); waterAlarm.setAlarmType(level);
@ -141,10 +147,10 @@ public class AlarmTask {
//河道超保证 //河道超保证
Integer level = AlarmTypeEnum.RIVER_OVER_GUARANTEE.getLevel(); Integer level = AlarmTypeEnum.RIVER_OVER_GUARANTEE.getLevel();
WaterAlarm waterAlarm = new WaterAlarm(); WaterAlarm waterAlarm = new WaterAlarm();
waterAlarm.setStcd(stRsvrRReal.getStcd()); waterAlarm.setStcd(stRiverRReal.getStcd());
waterAlarm.setStnm(stRsvrRReal.getStnm()); waterAlarm.setStnm(stRiverRReal.getStnm());
waterAlarm.setAlarmTime(stRsvrRReal.getTm().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); waterAlarm.setAlarmTime(stRiverRReal.getTm().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
waterAlarm.setCurValue(new BigDecimal(stRsvrRReal.getRz())); waterAlarm.setCurValue(stRiverRReal.getZ());
waterAlarm.setAlarmValue(promiseWaterLevel); waterAlarm.setAlarmValue(promiseWaterLevel);
waterAlarm.setOverValue(gap); waterAlarm.setOverValue(gap);
waterAlarm.setAlarmType(level); waterAlarm.setAlarmType(level);