洪水预报优化
parent
ce3c087038
commit
19b2086904
|
|
@ -148,6 +148,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
List<StPptnR> pptnRAllList = new ArrayList<>();
|
List<StPptnR> pptnRAllList = new ArrayList<>();
|
||||||
List<StPptnR> pptnRFutureList = new ArrayList<>();
|
List<StPptnR> pptnRFutureList = new ArrayList<>();
|
||||||
QueryWrapper<StPptnR> qwExisted = new QueryWrapper<>();
|
QueryWrapper<StPptnR> qwExisted = new QueryWrapper<>();
|
||||||
|
Boolean isHaveFuturePPtn = true;
|
||||||
// 如果结束时间在当前时间之前,降雨序列从历史降雨表获取
|
// 如果结束时间在当前时间之前,降雨序列从历史降雨表获取
|
||||||
if (endTime.compareTo(nowHourTime) <= 0) {
|
if (endTime.compareTo(nowHourTime) <= 0) {
|
||||||
qwExisted = new QueryWrapper<StPptnR>().eq("stcd", attResBase.getStcd()).ge("tm", startTime).le("tm", endTime).orderBy(true, true, "tm");
|
qwExisted = new QueryWrapper<StPptnR>().eq("stcd", attResBase.getStcd()).ge("tm", startTime).le("tm", endTime).orderBy(true, true, "tm");
|
||||||
|
|
@ -157,6 +158,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
// 获取预报数据
|
// 获取预报数据
|
||||||
pptnRFutureList = getForecastDrpData(nowHourTime, attResBase.getStcd());
|
pptnRFutureList = getForecastDrpData(nowHourTime, attResBase.getStcd());
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
|
isHaveFuturePPtn = false;
|
||||||
log.error("该时间无预报数据");
|
log.error("该时间无预报数据");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -229,7 +231,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
List<StPptnR> filterList = pptnRAllList.stream().filter(e -> e.getTm().compareTo(period[0]) >= 0).filter(e -> e.getTm().compareTo(period[1]) <= 0).collect(Collectors.toList());
|
List<StPptnR> filterList = pptnRAllList.stream().filter(e -> e.getTm().compareTo(period[0]) >= 0).filter(e -> e.getTm().compareTo(period[1]) <= 0).collect(Collectors.toList());
|
||||||
Map<String, List<StPptnR>> retMap = new HashMap<>();
|
Map<String, List<StPptnR>> retMap = new HashMap<>();
|
||||||
if (CollectionUtils.isNotEmpty(filterList)) {
|
if (CollectionUtils.isNotEmpty(filterList)) {
|
||||||
retMap = reorganizePptnRData(filterList, dt, period[0], period[1]);
|
retMap = reorganizePptnRData(filterList, dt, period[0], period[1], nowHourTime, isHaveFuturePPtn);
|
||||||
}
|
}
|
||||||
if(ObjectUtils.isEmpty(retMap.get("listForForecast"))){
|
if(ObjectUtils.isEmpty(retMap.get("listForForecast"))){
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -415,10 +417,14 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
* @description: 根据△T来整编雨量数据
|
* @description: 根据△T来整编雨量数据
|
||||||
* @param filterList
|
* @param filterList
|
||||||
* @param dt
|
* @param dt
|
||||||
|
* @param startTm
|
||||||
|
* @param endTm
|
||||||
|
* @param nowHourTime
|
||||||
|
* @param isHaveFuturePPtn
|
||||||
* @return: java.util.List<com.gunshi.project.xyt.model.StPptnR>
|
* @return: java.util.List<com.gunshi.project.xyt.model.StPptnR>
|
||||||
* @auther: cxw
|
* @auther: cxw
|
||||||
*/
|
*/
|
||||||
private Map<String, List<StPptnR>> reorganizePptnRData(List<StPptnR> filterList, double dt, Date startTm, Date endTm) {
|
private Map<String, List<StPptnR>> reorganizePptnRData(List<StPptnR> filterList, double dt, Date startTm, Date endTm, Date nowHourTime, Boolean isHaveFuturePPtn) {
|
||||||
// 只保留整小时的数据
|
// 只保留整小时的数据
|
||||||
filterList = filterList.stream().filter(entity -> {
|
filterList = filterList.stream().filter(entity -> {
|
||||||
Date date = entity.getTm();
|
Date date = entity.getTm();
|
||||||
|
|
@ -437,7 +443,7 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
calendar.setTime(startTm);
|
calendar.setTime(startTm);
|
||||||
Date dataTm = calendar.getTime();
|
Date dataTm = calendar.getTime();
|
||||||
// 使用时间一直往后加时间
|
// 使用时间一直往后加时间
|
||||||
while (dataTm.compareTo(endTm) < 0) {
|
while (dataTm.compareTo(endTm) < 0 && dataTm.compareTo(nowHourTime) <= 0 && !isHaveFuturePPtn) {
|
||||||
// 时间加1小时,得到应该拆数据的时间,后面往前推
|
// 时间加1小时,得到应该拆数据的时间,后面往前推
|
||||||
calendar.add(Calendar.HOUR_OF_DAY, 1);
|
calendar.add(Calendar.HOUR_OF_DAY, 1);
|
||||||
String shareDrp = "";// 应该分的drp
|
String shareDrp = "";// 应该分的drp
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue