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