From a4d06f653442ecb91cc48f7ffb4042d6db8d8745 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 22 Feb 2024 18:34:16 +0800
Subject: [PATCH] 新预测水位接口
---
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java | 184 ++++++++++++++++++++++++---------------------
1 files changed, 98 insertions(+), 86 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
index 5979ff0..65473b3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
@@ -7,6 +7,7 @@
import cn.gistack.nky.requestpojo.PredictWatersPo;
import cn.gistack.nky.requestpojo.QueryReqPo;
import cn.gistack.nky.resultpojo.DataResChildrenPo;
+import cn.gistack.nky.resultpojo.NewSwFuturePo;
import cn.gistack.nky.service.IHstPredictService;
import cn.gistack.nky.service.IHsybService;
import cn.gistack.nky.service.INkyService;
@@ -36,7 +37,11 @@
@Override
public void getData(String type) {
List<DataResChildrenPo> cdList = getCdList(type);
- List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList());
+ List<DataResChildrenPo> collect = cdList.stream().filter(
+// item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")
+ item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42130350046")|| item.getRes_cd().equals("42092250024")|| item.getRes_cd().equals("42022250039")|| item.getRes_cd().equals("42132150292")
+
+ ).collect(Collectors.toList());
collect.forEach(dataResChildrenPo -> {
//循环请求预测结果
QueryReqPo queryReqPo = new QueryReqPo(dataResChildrenPo, type);
@@ -54,97 +59,104 @@
@Override
public void predictData(String type) {
List<DataResChildrenPo> cdList = getCdList(type);
- //暂时筛选出这两个水库的数据
- List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList());
+ //暂时筛选出数据
+ List<DataResChildrenPo> collect = cdList.stream().filter(
+ item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42130350046")|| item.getRes_cd().equals("42092250024")|| item.getRes_cd().equals("42022250039")|| item.getRes_cd().equals("42132150292")
+ ).collect(Collectors.toList());
- predict(collect,type);
+// predict(collect,type);
+
+ newPredict(collect,type);
-//
-// if (type.equals("1")) {
-// //渗压
-// collect.forEach(dataResChildrenPo -> {
-// //所有水库请求预报数据
-//// if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
-// //请求预报水位
-// List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
-// resCd = dataResChildrenPo.getRes_cd();
-// if (future != null && future.size() > 0) {
-// List<PredictWatersPo> po = new ArrayList<>();
-// future.forEach(item -> {
-// PredictWatersPo predictWatersPo = new PredictWatersPo();
-// //设置时间
-// predictWatersPo.setTime(item.get(0));
-// //设置预测水位
-// predictWatersPo.setValue(Double.parseDouble(item.get(2)));
-// po.add(predictWatersPo);
-// });
-// HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
-// //循环预测请求
-// nkyService.hstPredict(arimaPredictReqPo);
-// }
-//// }
-// });
-// } else if (type.equals("2")) {
-// //渗流
-// collect.forEach(dataResChildrenPo -> {
-// //所有水库请求预报数据
-//// if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
-// //请求预报水位
-// List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
-// resCd = dataResChildrenPo.getRes_cd();
-// if (future != null && future.size() > 0) {
-// List<PredictWatersPo> po = new ArrayList<>();
-// future.forEach(item -> {
-// PredictWatersPo predictWatersPo = new PredictWatersPo();
-// //设置时间
-// predictWatersPo.setTime(item.get(0));
-// //设置预测水位
-// predictWatersPo.setValue(Double.parseDouble(item.get(2)));
-// po.add(predictWatersPo);
-// });
-// HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
-// //循环预测请求
-// nkyService.hstPredict(arimaPredictReqPo);
-// }
-//// }
-// });
-//
-//
-// } else if (type.equals("3") || type.equals("4") || type.equals("5")) {
-// collect.forEach(dataResChildrenPo -> {
-// //所有水库请求预报数据
-//// if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
-// //请求预报水位
-// List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
-// resCd = dataResChildrenPo.getRes_cd();
-// if (future != null && future.size() > 0) {
-// List<PredictWatersPo> po = new ArrayList<>();
-// future.forEach(item -> {
-// PredictWatersPo predictWatersPo = new PredictWatersPo();
-// //设置时间
-// predictWatersPo.setTime(item.get(0));
-// //设置预测水位
-// predictWatersPo.setValue(Double.parseDouble(item.get(2)));
-// po.add(predictWatersPo);
-// });
-// //循环预测请求(位移一起请求减少请求次数)
-// HstPredictReqPo arimaPredictReqPoX = new HstPredictReqPo(dataResChildrenPo, "3", po);
-// nkyService.hstPredict(arimaPredictReqPoX);
-//
-// HstPredictReqPo arimaPredictReqPoY = new HstPredictReqPo(dataResChildrenPo, "4", po);
-// nkyService.hstPredict(arimaPredictReqPoY);
-//
-// HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
-// nkyService.hstPredict(arimaPredictReqPoZ);
-// }
-//// }
-// });
+ }
+
+ private void newPredict(List<DataResChildrenPo> collect, String type) {
+
+ String resCd = "";
+ //无数据直接返回
+ if (collect.size() == 0){
+ return;
+ }
+ List<NewSwFuturePo> future = new ArrayList<>();
+ if (type.equals("1") || type.equals("2")){
+
+ for (int i = 0; i < collect.size(); i++) {
+ DataResChildrenPo dataResChildrenPo = collect.get(i);
+ String currentResCd = dataResChildrenPo.getRes_cd();
+
+ //第一个水库
+ if (future.size() == 0 && resCd.equals("")){
+ future = hsybService.getNewFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getNewFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ }
+
+ //预测数据构造请求数据
+ if (future != null && future.size() > 0) {
+ List<PredictWatersPo> po = new ArrayList<>();
+ future.forEach(item -> {
+ PredictWatersPo predictWatersPo = new PredictWatersPo();
+ //设置时间
+ predictWatersPo.setTime(item.getTime());
+ //设置预测水位
+ predictWatersPo.setValue(Double.parseDouble(item.getSw()));
+ po.add(predictWatersPo);
+ });
+ HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
+ //循环预测请求
+ nkyService.hstPredict(arimaPredictReqPo);
+ }
+ }
+ }else if (type.equals("3") || type.equals("4") || type.equals("5")){
-// }
-// resCd = "";
+ for (int i = 0; i < collect.size(); i++) {
+ DataResChildrenPo dataResChildrenPo = collect.get(i);
+ String currentResCd = dataResChildrenPo.getRes_cd();
+
+ //第一个水库
+ if (future.size() == 0 && resCd.equals("")){
+ future = hsybService.getNewFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getNewFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ }
+
+ //预测数据构造请求数据
+ if (future != null && future.size() > 0) {
+ List<PredictWatersPo> po = new ArrayList<>();
+ future.forEach(item -> {
+ PredictWatersPo predictWatersPo = new PredictWatersPo();
+ //设置时间
+ predictWatersPo.setTime(item.getTime());
+ //设置预测水位
+ predictWatersPo.setValue(Double.parseDouble(item.getSw()));
+ po.add(predictWatersPo);
+ });
+ //循环预测请求(位移一起请求减少请求次数)
+ HstPredictReqPo arimaPredictReqPoX = new HstPredictReqPo(dataResChildrenPo, "3", po);
+ nkyService.hstPredict(arimaPredictReqPoX);
+
+ HstPredictReqPo arimaPredictReqPoY = new HstPredictReqPo(dataResChildrenPo, "4", po);
+ nkyService.hstPredict(arimaPredictReqPoY);
+
+ HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
+ nkyService.hstPredict(arimaPredictReqPoZ);
+ }
+ }
+ }
+
}
private void predict(List<DataResChildrenPo> collect, String type) {
--
Gitblit v1.9.3