From dc6668a538e1ef545fb5437f29f1db8d03af07da Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 29 Jan 2024 10:10:01 +0800
Subject: [PATCH] 南科院预测修改

---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java |  148 ++++++++++++++++++++++++++++++------------------
 1 files changed, 92 insertions(+), 56 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 c79276c..0e6ed16 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
@@ -11,6 +11,7 @@
 import cn.gistack.nky.service.IHsybService;
 import cn.gistack.nky.service.INkyService;
 import cn.gistack.nky.service.IZtApiService;
+import cn.gistack.nky.vo.HstPredictVO;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.core.mp.support.Condition;
@@ -25,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
@@ -57,71 +58,105 @@
 		List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList());
 
 
-		if (type.equals("1")){
+		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);
-					}
+//				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")){
+		} else if (type.equals("2")) {
 			//渗流
-		}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);
-					}
+//				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);
+				}
+//				}
 			});
 		}
 		resCd = "";
 	}
 
 	@Override
-	public List<HstPredict> getFutureData(String resCd, String type) {
+	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);
+		}
 
-		List<HstPredict> list = baseMapper.getFutureData(resCd,type);
+
 		list.forEach(hstPredict -> {
-			hstPredict.setPredictList(JSON.parse(hstPredict.getPredictList().toString()));
+			if (hstPredict.getPredictList() != null) {
+				hstPredict.setPredictList(JSON.parse(hstPredict.getPredictList().toString()));
+			} else {
+				hstPredict.setPredictList("[]");
+			}
 			hstPredict.setPreWaterList(JSON.parse(hstPredict.getPreWaterList().toString()));
 		});
 
@@ -137,11 +172,12 @@
 
 		List<HstPredict> list = baseMapper.selectTodayData(entity);
 
-		if (list.size()>0){
+		if (list.size() > 0) {
 			//删除该数据,添加最新数据
-			baseMapper.deleteById(list.get(0));
-			return super.save(entity);
-		}else {
+//			baseMapper.deleteById(list.get(0));
+//			return super.save(entity);
+			return false;
+		} else {
 			return super.save(entity);
 		}
 	}
@@ -153,7 +189,7 @@
 			cdList = ztApiService.getSy();
 		} else if (type.equals("2")) {
 			//获取渗流测点
-			return null;
+			cdList = ztApiService.getSl();
 		} else if (type.equals("3") || type.equals("4") || type.equals("5")) {
 			//获取位移测点
 			cdList = ztApiService.getWy();

--
Gitblit v1.9.3