From b7c3fc85eba070a5c6625bc680ae9993d5553fae Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 12 Mar 2024 16:25:56 +0800
Subject: [PATCH] hst预测定时器启用多线程请求
---
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java | 138 ++++++++++++++++++++++++++-------------------
1 files changed, 79 insertions(+), 59 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 cdeee08..5a60f5c 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
@@ -15,6 +15,7 @@
import cn.gistack.nky.vo.HstPredictVO;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +26,7 @@
import java.util.stream.Collectors;
@Service
+@Slf4j
public class HstPredictServiceImpl extends ServiceImpl<HstPredictMapper, HstPredict> implements IHstPredictService {
@Autowired
private INkyService nkyService;
@@ -61,7 +63,8 @@
List<DataResChildrenPo> cdList = getCdList(type);
//暂时筛选出数据
// 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")
+//// 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")
+// item -> item.getRes_cd().equals("42050659003") ||item.getRes_cd().equals("42032240005")
// ).collect(Collectors.toList());
// predict(collect,type);
@@ -78,6 +81,7 @@
if (collect.size() == 0){
return;
}
+ int no = 0;
List<NewSwFuturePo> future = new ArrayList<>();
if (type.equals("1") || type.equals("2")){
@@ -85,35 +89,41 @@
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;
+ try {
+ //第一个水库
+ if (future.size() == 0 && resCd.equals("")){
+ future = hsybService.getNewFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ no = no +1;
+ log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getNewFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ no = no +1;
+ log.info("当前为第{}个水库,水库id为{}",no,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);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
}
-
- //预测数据构造请求数据
- 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")){
@@ -121,39 +131,49 @@
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;
+ try {
+ //第一个水库
+ if (future.size() == 0 && resCd.equals("")){
+ future = hsybService.getNewFuture(currentResCd);
+ //当前水库
+ resCd = currentResCd;
+ no = no +1;
+ log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+ } else if (!resCd.equals(currentResCd)) {
+ //其他水库,获取新的预测数据
+ future = hsybService.getNewFuture(currentResCd);
+ //更换为新水库
+ resCd = currentResCd;
+ no = no +1;
+ log.info("当前为第{}个水库,水库id为{}",no,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);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
}
- //预测数据构造请求数据
- 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);
- }
}
}
--
Gitblit v1.9.3