From 06719b88733bf217ad4042a02469f704dcaaafd8 Mon Sep 17 00:00:00 2001 From: chenxiwang <1520264117@qq.com> Date: Mon, 19 Aug 2024 13:23:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=AA=E6=B0=B4=E9=A2=84=E6=8A=A5=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ForecastProjectController.java | 2 ++ .../project/xyt/entity/vo/ForecastResultVo.java | 6 ++++++ .../project/xyt/model/ForecastResults.java | 6 ++++++ .../xyt/service/ForecastProjectService.java | 1 + .../xyt/service/ForecastResultsService.java | 16 ++++++++++++++++ 5 files changed, 31 insertions(+) diff --git a/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java b/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java index b4cbdb3..80aec2c 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java @@ -81,6 +81,7 @@ public class ForecastProjectController { public R> list(@RequestBody @Validated ForecastProject forecastProject) { QueryWrapper wrapper = new QueryWrapper() .like(ObjectUtils.isNotNull(forecastProject.getName()), "name", forecastProject.getName()) + .like(ObjectUtils.isNotNull(forecastProject.getType()), "type", forecastProject.getType()) .ge(ObjectUtils.isNotNull(forecastProject.getStartTm()), "forecast_tm", forecastProject.getStartTm()) .le(ObjectUtils.isNotNull(forecastProject.getEndTm()), "forecast_tm", forecastProject.getEndTm()); if(StringUtils.isNotBlank(forecastProject.getOrderField())){ @@ -94,6 +95,7 @@ public class ForecastProjectController { public R> page(@RequestBody @Validated ForecastProject forecastProject) { QueryWrapper wrapper = new QueryWrapper() .like(ObjectUtils.isNotNull(forecastProject.getName()), "name", forecastProject.getName()) + .like(ObjectUtils.isNotNull(forecastProject.getType()), "type", forecastProject.getType()) .ge(ObjectUtils.isNotNull(forecastProject.getStartTm()), "forecast_tm", forecastProject.getStartTm()) .le(ObjectUtils.isNotNull(forecastProject.getEndTm()), "forecast_tm", forecastProject.getEndTm()); if(StringUtils.isNotBlank(forecastProject.getOrderField())){ diff --git a/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java b/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java index 2624c4a..4c4aab7 100644 --- a/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java +++ b/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java @@ -82,6 +82,12 @@ public class ForecastResultVo { @Schema(description="主汛期防洪限制水位") private BigDecimal flLowLimLev; + /** + * 当前堰顶高度预警值 + */ + @Schema(description="当前堰顶高度预警值") + private BigDecimal currentYdgdyjz; + /** * 土壤含水量 */ diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java b/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java index 09837f9..2e5e5b9 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java @@ -141,6 +141,12 @@ public class ForecastResults extends GenericPageParams implements Serializable { @Schema(description="主汛期防洪限制水位") private BigDecimal flLowLimLev; + /** + * 当前堰顶高度预警值 + */ + @Schema(description="当前堰顶高度预警值") + private BigDecimal currentYdgdyjz; + /** * 土壤含水量 */ diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java index 35bdc9c..7f1f851 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java @@ -57,6 +57,7 @@ public class ForecastProjectService extends ServiceImpl realRsvrList = resultList.stream().filter(item -> item.getTm().compareTo(period[0]) >= 0 && item.getTm().compareTo(period[1]) <= 0).collect(Collectors.toList()); Map realRsvrMap = realRsvrList.stream().collect(Collectors.toMap(rsvr -> sdfMinute.format(rsvr.getTm()), StRsvrR::getRz)); forecastVoList = forecastVoList.subList(0, PList.length); + // 去除预测出来的最后一条与第二次实际的相同时间的数据 + if(voList.size() > 0 && voList.get(voList.size() - 1).getTm().equals(forecastVoList.get(0).getDateStr())){ + voList.remove(voList.size() - 1); + } for (int j = 0; j < forecastVoList.size(); j++) { FloodAlgorithemVo floodAlgorithemVo = forecastVoList.get(j); String dateStr = floodAlgorithemVo.getDateStr(); @@ -268,6 +273,7 @@ public class ForecastResultsService extends ServiceImpl reorganizeRsvrRData(List rsvrRRealList, double dt) { + // 只保留整小时的数据 + rsvrRRealList = rsvrRRealList.stream().filter(entity -> { + Date date = entity.getTm(); + return date.getMinutes() == 0 && date.getSeconds() == 0; + }).collect(Collectors.toList()); // 每次加0小时30分钟,根据dt设置,此时dt=0.5小时 int totalMinutes = (int) Math.round(dt * 60); // 计算小时数 @@ -382,6 +393,11 @@ public class ForecastResultsService extends ServiceImpl> reorganizePptnRData(List filterList, double dt, Date startTm, Date endTm) { + // 只保留整小时的数据 + filterList = filterList.stream().filter(entity -> { + Date date = entity.getTm(); + return date.getMinutes() == 0 && date.getSeconds() == 0; + }).collect(Collectors.toList()); Map> retMap = new HashMap<>(); Map tmDrpMap = filterList.stream().collect(Collectors.toMap(pptnR -> sdfMinute.format(pptnR.getTm()), StPptnR::getDrp)); List listForForecast = new ArrayList<>();// 传给预测程序使用,缺失的数据为0