From 0512f7d4a538ceb6e9d710e04d489ee6a44c984e Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Thu, 19 Sep 2024 17:04:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=B4=E4=BD=8D=E5=91=8A=E8=AD=A6=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyt/mapper/MessageCenterMapper.java | 19 +++++ .../gunshi/project/xyt/model/AttResBase.java | 4 +- .../project/xyt/model/MessageCenter.java | 7 ++ .../xyt/service/InspectTaskDetailService.java | 4 +- .../xyt/service/MessageCenterService.java | 81 +++++++++++++++++++ .../gunshi/project/xyt/timetask/DataTask.java | 40 ++------- 6 files changed, 119 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/mapper/MessageCenterMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/MessageCenterMapper.java index 652dd16..a4970e4 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/MessageCenterMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/MessageCenterMapper.java @@ -3,6 +3,10 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gunshi.project.xyt.model.MessageCenter; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 描述: 消息中心 @@ -12,4 +16,19 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MessageCenterMapper extends BaseMapper { + @Select(""" + + """) + List queryUserIds(); + + @Select(""" + + """) + List queryTodayMes(@Param("date") String date,@Param("type") Integer type); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/AttResBase.java b/src/main/java/com/gunshi/project/xyt/model/AttResBase.java index 6e33a71..41fc579 100644 --- a/src/main/java/com/gunshi/project/xyt/model/AttResBase.java +++ b/src/main/java/com/gunshi/project/xyt/model/AttResBase.java @@ -356,7 +356,7 @@ public class AttResBase implements Serializable { @TableField(value="cal_flood_lev") @Schema(description="校核洪水位") // @Size(max = 0,message = "校核洪水位最大长度要小于 0") - private String calFloodLev; + private BigDecimal calFloodLev; /** * 设计洪水位 @@ -364,7 +364,7 @@ public class AttResBase implements Serializable { @TableField(value="des_flood_lev") @Schema(description="设计洪水位") // @Size(max = 0,message = "设计洪水位最大长度要小于 0") - private String desFloodLev; + private BigDecimal desFloodLev; /** * 坝顶高程 diff --git a/src/main/java/com/gunshi/project/xyt/model/MessageCenter.java b/src/main/java/com/gunshi/project/xyt/model/MessageCenter.java index 97e1692..cee2cc8 100644 --- a/src/main/java/com/gunshi/project/xyt/model/MessageCenter.java +++ b/src/main/java/com/gunshi/project/xyt/model/MessageCenter.java @@ -93,4 +93,11 @@ public class MessageCenter implements Serializable { @Schema(description="是否已读(0否 1是)") private Integer status; + /** + * 类型(1超校核 2超设计 3超汛限) + */ + @TableField(value="type") + @Schema(description="类型(1超校核 2超设计 3超汛限)") + private Integer type; + } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/InspectTaskDetailService.java b/src/main/java/com/gunshi/project/xyt/service/InspectTaskDetailService.java index 09e67b2..084e149 100644 --- a/src/main/java/com/gunshi/project/xyt/service/InspectTaskDetailService.java +++ b/src/main/java/com/gunshi/project/xyt/service/InspectTaskDetailService.java @@ -77,7 +77,7 @@ public class InspectTaskDetailService extends ServiceImpl { + @Autowired + private AttResBaseMapper resBaseMapper; public void insertMessage(List messageCenters){ for(MessageCenter messageCenter : messageCenters){ @@ -55,6 +67,75 @@ public class MessageCenterService extends ServiceImpl rlist) { + AttResBase attResBase = resBaseMapper.selectById("42120250085"); + String stcd = attResBase.getStcd(); + Optional first = rlist.stream().filter(o -> o.getStcd().equals(stcd)).findFirst(); + if(first.isPresent()){ + BigDecimal rz = new BigDecimal(first.get().getRz()); + MessageCenter center =new MessageCenter(); + center.setPublishUserId(1L); + center.setPublishUserName("admin"); + center.setTitle("水位告警"); + String content = "系统检测到小玉潭水库水位"; + //校核水位 + BigDecimal calFloodLev = attResBase.getCalFloodLev(); + if(calFloodLev.compareTo(rz) > 0){ + center.setType(1); + content = content + "超校核"+ calFloodLev.subtract(rz) +"m"; + center.setContent(content); + addRzMessage(center,1); + return; + } + //设计水位 + BigDecimal desFloodLev = attResBase.getDesFloodLev(); + if(desFloodLev.compareTo(rz) > 0){ + center.setType(2); + content = content + "超设计"+ desFloodLev.subtract(rz) +"m"; + center.setContent(content); + addRzMessage(center,2); + return; + } + //汛限水位 + BigDecimal flLowLimLev = attResBase.getFlLowLimLev(); + if(flLowLimLev.compareTo(rz) > 0){ + center.setType(3); + content = content + "超汛限"+ flLowLimLev.subtract(rz) +"m"; + center.setContent(content); + addRzMessage(center,3); + } + + } + + } + + private void addRzMessage(MessageCenter center, Integer type) { + String date = DateUtil.convertDateToString(new Date()); + List list = this.baseMapper.queryTodayMes(date,type); + //如果当日不存在该类型的水位告警,则直接新增 + if(CollectionUtils.isEmpty(list)){ + rzMesHandle(center); + }else{ + this.removeBatchByIds(list); + rzMesHandle(center); + } + } + + private void rzMesHandle(MessageCenter center){ + //查找接收角色关联的人员 + List ids = this.baseMapper.queryUserIds(); + List mesList = ids.stream().map(o -> { + MessageCenter mes = new MessageCenter(); + BeanUtils.copyProperties(center, mes); + mes.setReceiveUserId(o); + return mes; + }).collect(Collectors.toList()); + this.insertMessage(mesList); + } + + } diff --git a/src/main/java/com/gunshi/project/xyt/timetask/DataTask.java b/src/main/java/com/gunshi/project/xyt/timetask/DataTask.java index b37ee8d..911d70e 100644 --- a/src/main/java/com/gunshi/project/xyt/timetask/DataTask.java +++ b/src/main/java/com/gunshi/project/xyt/timetask/DataTask.java @@ -11,33 +11,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.gunshi.project.xyt.entity.SkSyncData; import com.gunshi.project.xyt.entity.SkSyncResp; import com.gunshi.project.xyt.entity.SyncDataReq; -import com.gunshi.project.xyt.model.StImgR; -import com.gunshi.project.xyt.model.StImgRReal; -import com.gunshi.project.xyt.model.StPptnR; -import com.gunshi.project.xyt.model.StPptnRD; -import com.gunshi.project.xyt.model.StPptnRH; -import com.gunshi.project.xyt.model.StPptnRReal; -import com.gunshi.project.xyt.model.StRsvrR; -import com.gunshi.project.xyt.model.StRsvrRReal; -import com.gunshi.project.xyt.model.StStbprpB; -import com.gunshi.project.xyt.service.StImgRRealService; -import com.gunshi.project.xyt.service.StImgRService; -import com.gunshi.project.xyt.service.StPptnRDService; -import com.gunshi.project.xyt.service.StPptnRHService; -import com.gunshi.project.xyt.service.StPptnRRealService; -import com.gunshi.project.xyt.service.StPptnRService; -import com.gunshi.project.xyt.service.StRsvrRRealService; -import com.gunshi.project.xyt.service.StRsvrRService; -import com.gunshi.project.xyt.service.StStbprpBService; +import com.gunshi.project.xyt.model.*; +import com.gunshi.project.xyt.service.*; import com.gunshi.project.xyt.util.OkHttpUtil; -import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; -import okhttp3.FormBody; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; +import okhttp3.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; @@ -49,13 +27,7 @@ import ru.olegcherednik.jackson_utils.JacksonUtils; import java.io.IOException; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Comparator; -import java.util.Date; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -142,6 +114,9 @@ public class DataTask { @Autowired private StImgRService stImgRService; + @Autowired + private MessageCenterService messageCenterService; + /** * @description: 定时获取水库雨情数据(实时) @@ -561,6 +536,7 @@ public class DataTask { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("stcd", stRsvrRReal.getStcd()); stRsvrRRealService.saveOrUpdate(stRsvrRReal, updateWrapper); + messageCenterService.rzWarnMes(rlist); } } }