From 733ca7545a278fe9ea6fa0be906cf28e3f036c60 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 29 Jan 2024 15:13:26 +0800
Subject: [PATCH] 南科院预测修改,大坝专题汛限水位返回

---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java              |    3 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java               |    8 +
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java                |    7 +
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java         |  182 ++++++++++++++++++++++++++++++++++-----------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml |    1 
 5 files changed, 151 insertions(+), 50 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 0e6ed16..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
@@ -49,7 +49,7 @@
 		});
 	}
 
-	private String resCd = "";
+//	private String resCd = "";
 
 	@Override
 	public void predictData(String type) {
@@ -57,15 +57,122 @@
 		//暂时筛选出这两个水库的数据
 		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 (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);
+//				}
+////				}
+//			});
+
+
+
+//		}
+//		resCd = "";
+	}
+
+	private void predict(List<DataResChildrenPo> collect, String type) {
+		String resCd = "";
+		//无数据直接返回
+		if (collect.size() == 0){
+			return;
+		}
+		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 -> {
@@ -80,41 +187,28 @@
 					//循环预测请求
 					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")){
+
+			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;
 				}
-//				}
-			});
 
-
-		} 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 -> {
@@ -135,10 +229,8 @@
 					HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
 					nkyService.hstPredict(arimaPredictReqPoZ);
 				}
-//				}
-			});
+			}
 		}
-		resCd = "";
 	}
 
 	@Override
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
index fad7ab4..9500fd4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -5,6 +5,7 @@
 import cn.gistack.nky.resultpojo.HsybGetFuturePo;
 import cn.gistack.nky.service.IHsybService;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -19,6 +20,7 @@
 
 @Service
 @AllArgsConstructor
+@Slf4j
 public class HsybServiceImpl implements IHsybService {
 
 	private static String ONLINE = "http://10.42.7.148:50001";
@@ -56,8 +58,8 @@
 			url = ONLINE + url;
 		}
 
-//		Long param = Long.parseLong(jsonparams);
-		System.out.println("请求参数:" + jsonparams);
+
+		log.info("预测水位请求参数:" + jsonparams);
 		// 声明一个header变量
 		HttpHeaders headers = new HttpHeaders();
 		// 设置为json格式
@@ -71,7 +73,7 @@
 		RestTemplate template = new RestTemplate();
 		try {
 			HsybGetFuturePo hsybGetFuturePo = template.postForObject(url, httpEntity, HsybGetFuturePo.class);
-			System.out.println(hsybGetFuturePo.toString());
+			log.info("预测水位返回结果:" + hsybGetFuturePo.toString());
 			return hsybGetFuturePo;
 		} catch (Exception e) {
 			System.out.println(e);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
index cd3c198..4b43aa8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
@@ -10,6 +10,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -25,6 +26,7 @@
  */
 @Service
 @AllArgsConstructor
+@Slf4j
 public class NkyServiceImpl implements INkyService {
 
 
@@ -128,10 +130,11 @@
 		headers.add("Accept", MediaType.APPLICATION_JSON.toString());
 
 		HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers);
-		System.out.println("请求参数:"+ jsonparams);
+		log.info("请求地址:"+ url);
+		log.info("请求参数:"+ jsonparams);
 		RestTemplate template = new RestTemplate();
 		String resultStr = template.postForObject(url, httpEntity, String.class);
-		System.out.println(resultStr);
+		log.info("请求结果:"+ resultStr);
 		JSONObject jsonObject = JSONObject.parseObject(resultStr);
 		return jsonObject;
 	}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
index 20c4104..b50814f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
@@ -7,6 +7,7 @@
 import cn.gistack.nky.resultpojo.ZtResultPo;
 import cn.gistack.nky.service.IZtApiService;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -27,6 +28,7 @@
  * @DATE: 2023/7/28 17:16
  */
 @Service
+@Slf4j
 public class ZtApiServiceImpl implements IZtApiService {
 
 	//本地测试
@@ -110,6 +112,7 @@
 		HttpEntity<String> httpEntity = new HttpEntity(null, headers);
 
 		RestTemplate template = new RestTemplate();
+		log.info("请求的url为:{}", url);
 		ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
 		if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
 			List<DataResChildrenPo> children = new ArrayList<>();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml
index 8cb763f..b4197c6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml
@@ -92,6 +92,7 @@
             MAX(res_reg_code) res_reg_code,
             MAX(res_name) res_name,
             MAX(rz) rz,
+            MAX(tb_flse_lim_stag) tb_flse_lim_stag,
             MAX(tb_weir_top_elevation) tb_weir_top_elevation,
             MAX(tb_norm_pool_stag) tb_norm_pool_stag,
             MAX(tb_control_z) tb_control_z,

--
Gitblit v1.9.3