diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java b/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java index ddc0a08..5376ee6 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java @@ -79,7 +79,7 @@ public class ForecastUseparam extends GenericPageParams implements Serializable /** * 参数描述 */ - @TableField(value="param_remarks") + @TableField(value="param_desc") @Schema(description="参数描述") @Size(max = 255,message = "参数描述最大长度要小于 255") private String paramDesc; diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java index 86b3bd1..4975232 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java @@ -14,8 +14,8 @@ import com.gunshi.project.xyt.grb.RainGrib2Layer; import com.gunshi.project.xyt.mapper.ForecastResultsMapper; import com.gunshi.project.xyt.model.AttResBase; import com.gunshi.project.xyt.model.ForecastPa; -import com.gunshi.project.xyt.model.ForecastTask; import com.gunshi.project.xyt.model.ForecastResults; +import com.gunshi.project.xyt.model.ForecastTask; import com.gunshi.project.xyt.model.ForecastU; import com.gunshi.project.xyt.model.ForecastUseparam; import com.gunshi.project.xyt.model.StPptnR; @@ -145,7 +145,7 @@ public class ForecastResultsService extends ServiceImpl paramList = forecastUseparamService.list(); + List paramList = forecastUseparamService.list(new QueryWrapper().isNotNull("param_code").isNotNull("param_value")); List uList = forecastUService.list(); if (CollectionUtils.isEmpty(paramList) || CollectionUtils.isEmpty(uList) || CollectionUtils.isEmpty(pptnRAllList)) { return voList; @@ -181,6 +181,9 @@ public class ForecastResultsService extends ServiceImpl()); // 泄流量 List stZqrlBList = stZqrlBService.list(new QueryWrapper().eq("stcd", "716153201")); + // 水位历史数据 + List rsvrRRealList = stRsvrRService.list(new QueryWrapper().eq("stcd", "716153201").ge("tm", startTime).le("tm", endTime)); + List resultList = reorganizeRsvrRData(rsvrRRealList, dt); List periods = splitByDay8To8(startTime, endTime); for (Date[] period : periods) { // 根据每段时间的开始时间,如果在08点前,则采用前一天的pa值计算 @@ -195,10 +198,10 @@ public class ForecastResultsService extends ServiceImpl filterList = pptnRAllList.stream().filter(e -> e.getTm().compareTo(period[0]) >= 0).filter(e -> e.getTm().compareTo(period[1]) <= 0).collect(Collectors.toList()); // 从第二条数据开始 - for (int i = 1; i <= filterList.size(); i++) { + for (int i = 1; i < filterList.size(); i++) { + StPptnR stPptnRLast = filterList.get(i - 1); StPptnR stPptnR = filterList.get(i); String drp = stPptnR.getDrp(); - StPptnR stPptnRLast = filterList.get(i - 1); // 两条数据的小时差 double diffHours = dateHourDifference(stPptnRLast.getTm(), stPptnR.getTm()); // 两条数据间需要增补几条 @@ -209,13 +212,12 @@ public class ForecastResultsService extends ServiceImpl rsvrRRealList = stRsvrRService.list(new QueryWrapper().eq("stcd", "716153201").ge("tm", period[0]).le("tm", period[1])); - rsvrRRealList = reorganizeRsvrRData(rsvrRRealList, dt); // 预测执行 List forecastVoList = RrainfallForecast.getData(sdf.format(period[0]), forecastPa.getK().doubleValue(), forecastPa.getPa0().doubleValue(), Wm, forecastPa.getPt0().doubleValue(), H1, dt, forecastPa.getPa().doubleValue(), PList, u, "716153201"); if (CollectionUtils.isNotEmpty(forecastVoList)) { + // 筛选同时段的真实水位数据 + List realRsvrList = resultList.stream().filter(item -> item.getTm().compareTo(period[0]) >=0 && item.getTm().compareTo(period[1]) <=0).collect(Collectors.toList()); forecastVoList = forecastVoList.subList(0, PList.length); for (int j = 0; j < forecastVoList.size(); j++) { FloodAlgorithemVo floodAlgorithemVo = forecastVoList.get(j); @@ -226,8 +228,8 @@ public class ForecastResultsService extends ServiceImpl paramList = forecastUseparamService.list(); + List paramList = forecastUseparamService.list(new QueryWrapper().isNotNull("param_code").isNotNull("param_value")); List kList = forecastKService.list(); // 获取最新pa ForecastPa forecastPaLast = forecastPaService.getOne(new QueryWrapper().orderBy(true, false, "tm").last("limit 1"));