From d5aef2e06c79541ed003af44e621df7c57fcf2e7 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Mon, 29 Jan 2024 16:02:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java | 271 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 181 insertions(+), 90 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 e57dc68..5979ff0 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
@@ -26,11 +26,11 @@
@Service
public class HstPredictServiceImpl extends ServiceImpl<HstPredictMapper, HstPredict> implements IHstPredictService {
@Autowired
- private INkyService nkyService;
+ private INkyService nkyService;
@Autowired
- private IZtApiService ztApiService;
+ private IZtApiService ztApiService;
@Autowired
- private IHsybService hsybService;
+ private IHsybService hsybService;
@Override
@@ -49,7 +49,7 @@
});
}
- private String resCd = "";
+// private String resCd = "";
@Override
public void predictData(String type) {
@@ -57,105 +57,196 @@
//暂时筛选出这两个水库的数据
List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList());
+ predict(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);
- }
- }
- });
+
+//
+// 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);
+// }
+//// }
+// });
- }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);
+// }
+// resCd = "";
+ }
- 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) {
+ String resCd = "";
+ //无数据直接返回
+ if (collect.size() == 0){
+ return;
}
- resCd = "";
+ List<List<String>> 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.getFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ }
+
+ //预测数据构造请求数据
+ 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")){
+
+ 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.getFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ }
+
+ //预测数据构造请求数据
+ 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);
+ }
+ }
+ }
}
@Override
public List<HstPredictVO> getFutureData(String resCd, String type) {
List<HstPredictVO> list = new ArrayList<>();
- if (type.equals("3")){
- list = baseMapper.getFutureDataWy(resCd,type);
- }else {
- list = baseMapper.getFutureData(resCd,type);
+ if (type.equals("3")) {
+ list = baseMapper.getFutureDataWy(resCd, type);
+ } else {
+ list = baseMapper.getFutureData(resCd, type);
}
list.forEach(hstPredict -> {
- if (hstPredict.getPredictList() != null){
+ if (hstPredict.getPredictList() != null) {
hstPredict.setPredictList(JSON.parse(hstPredict.getPredictList().toString()));
- }else {
+ } else {
hstPredict.setPredictList("[]");
}
hstPredict.setPreWaterList(JSON.parse(hstPredict.getPreWaterList().toString()));
@@ -173,12 +264,12 @@
List<HstPredict> list = baseMapper.selectTodayData(entity);
- if (list.size()>0){
+ if (list.size() > 0) {
//删除该数据,添加最新数据
// baseMapper.deleteById(list.get(0));
// return super.save(entity);
- return false;
- }else {
+ return false;
+ } else {
return super.save(entity);
}
}
--
Gitblit v1.9.3