水情告警

master
yangzhe123 2025-11-05 14:10:32 +08:00
parent 72343a2907
commit afe18d25b0
5 changed files with 17 additions and 12 deletions

View File

@ -11,12 +11,12 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication @SpringBootApplication
@EnableScheduling @EnableScheduling
@MapperScan({ @MapperScan({
"com.gunshi.project.tsg.datasync.mapper", "com.gunshi.project.hsz.datasync.mapper",
"com.gunshi.project.tsg.datasync.mapper.jcsk", "com.gunshi.project.hsz.datasync.mapper.jcsk",
"com.gunshi.project.tsg.datasync.rsvrWaterLevel", "com.gunshi.project.hsz.datasync.rsvrWaterLevel",
"com.gunshi.project.tsg.datasync.rainfall", "com.gunshi.project.hsz.datasync.rainfall",
"com.gunshi.project.tsg.datasync.gate", "com.gunshi.project.hsz.datasync.gate",
"com.gunshi.project.tsg.datasync.riverWaterLevel", "com.gunshi.project.hsz.datasync.riverWaterLevel",
}) })
public class Main { public class Main {

View File

@ -37,14 +37,14 @@ public class RiverWaterLevelService implements SyncTableRService<JcskStRsvrR, Ri
@Scheduled(cron = "0 */5 * * * ?") @Scheduled(cron = "0 */5 * * * ?")
@Override @Override
public int syncData() { public int syncData() {
// 获取所有水库水位要素的站点 //从水库表中获取所有的站点信息(比如 黑石咀,檀树岗水库)
List<StStbprpBElem> stbprps = stbprpMapper.selectByElem("z"); List<StStbprpBElem> stbprps = stbprpMapper.selectByElem("z");
int cnt = 0; int cnt = 0;
for (StStbprpBElem StStbprpBElem : stbprps) { for (StStbprpBElem StStbprpBElem : stbprps) {
RiverWaterLevel targetParams = new RiverWaterLevel(); RiverWaterLevel targetParams = new RiverWaterLevel();
targetParams.setStcd(StStbprpBElem.getStcd()); targetParams.setStcd(StStbprpBElem.getStcd());
//获取该站点在水库表中最新的那一条数据
RiverWaterLevel latestTarget = getLatestTargetEntity(targetParams); RiverWaterLevel latestTarget = getLatestTargetEntity(targetParams);
List<JcskStRsvrR> sourceEntityList = getSourceEntityListByLatestTargetEntity(latestTarget); List<JcskStRsvrR> sourceEntityList = getSourceEntityListByLatestTargetEntity(latestTarget);
cnt += saveToTarget(sourceEntityList); cnt += saveToTarget(sourceEntityList);
@ -75,6 +75,7 @@ public class RiverWaterLevelService implements SyncTableRService<JcskStRsvrR, Ri
@Override @Override
public List<JcskStRsvrR> getSourceEntityListByLatestTargetEntity(@NonNull RiverWaterLevel targetEntity) { public List<JcskStRsvrR> getSourceEntityListByLatestTargetEntity(@NonNull RiverWaterLevel targetEntity) {
//去荆楚水库中查询出,时间大于水库中最新那一条时间的记录
String stcd = targetEntity.getStcd(); String stcd = targetEntity.getStcd();
LocalDateTime tm = targetEntity.getTm(); LocalDateTime tm = targetEntity.getTm();
return sourceMapper.selectList( return sourceMapper.selectList(
@ -86,6 +87,7 @@ public class RiverWaterLevelService implements SyncTableRService<JcskStRsvrR, Ri
@Override @Override
public int saveToTarget(List<JcskStRsvrR> sourceEntityList) { public int saveToTarget(List<JcskStRsvrR> sourceEntityList) {
//将查询出的数据保存至目标水库表中
int count = 0; int count = 0;
for (JcskStRsvrR sourceEntity : sourceEntityList) { for (JcskStRsvrR sourceEntity : sourceEntityList) {
String stcd = sourceEntity.getStcd(); String stcd = sourceEntity.getStcd();

View File

@ -66,16 +66,16 @@ public class WaterAlarmController {
@Operation(summary = "根据年份进行统计柱形图") @Operation(summary = "根据年份进行统计柱形图")
@GetMapping("/count12") @GetMapping("/count12")
public List<WaterAlarmCount> count12(@RequestParam(value = "year") Integer year){ public R<List<WaterAlarmCount>> count12(@RequestParam(value = "year") Integer year){
List<WaterAlarmCount> counts = service.count12(year); List<WaterAlarmCount> counts = service.count12(year);
return counts; return R.ok(counts);
} }
@Operation(summary = "根据年份进行统计圆饼图") @Operation(summary = "根据年份进行统计圆饼图")
@GetMapping("/countTypeByYear") @GetMapping("/countTypeByYear")
public List<WaterAlarmTypeCount> countTypeByYear(@RequestParam(value = "year") Integer year){ public R<List<WaterAlarmTypeCount>> countTypeByYear(@RequestParam(value = "year") Integer year){
List<WaterAlarmTypeCount> res = service.countTypeByYear(year); List<WaterAlarmTypeCount> res = service.countTypeByYear(year);
return res; return R.ok(res);
} }
} }

View File

@ -42,6 +42,7 @@ public class WaterAlarmService extends ServiceImpl<WaterAlarmMapper, WaterAlarm>
if(pageSo.getTimeRangeSo() != null){ if(pageSo.getTimeRangeSo() != null){
queryWrapper.between(WaterAlarm::getAlarmTime,pageSo.getTimeRangeSo().getStart(),pageSo.getTimeRangeSo().getEnd()); queryWrapper.between(WaterAlarm::getAlarmTime,pageSo.getTimeRangeSo().getStart(),pageSo.getTimeRangeSo().getEnd());
} }
queryWrapper.orderByDesc(WaterAlarm::getAlarmTime);
Page<WaterAlarm> waterAlarmPage = this.baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper); Page<WaterAlarm> waterAlarmPage = this.baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper);
return waterAlarmPage; return waterAlarmPage;
} }

View File

@ -128,7 +128,9 @@ public class AlarmTask {
if(stRiverRReal != null){ if(stRiverRReal != null){
//该站点,真实河道水位的最新数据的时间
Instant newDateInstant = stRiverRReal.getTm().toInstant(); Instant newDateInstant = stRiverRReal.getTm().toInstant();
//告警表中,该站点的最新数据的时间
Instant curDateInstant = waterAlarmNew.getAlarmTime().toInstant(); Instant curDateInstant = waterAlarmNew.getAlarmTime().toInstant();
if(newDateInstant.compareTo(curDateInstant) <= 0){ if(newDateInstant.compareTo(curDateInstant) <= 0){
//如果要插入数据的时间与当前告警表中数据相同,则直接跳过本条数据 //如果要插入数据的时间与当前告警表中数据相同,则直接跳过本条数据