From f0c26b9f4a033e03dfe4710776c102440e44f9e8 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 09 Aug 2023 17:13:34 +0800
Subject: [PATCH] 1、修改hst预测请求;2、大坝预测数据接口

---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java |   66 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 10 deletions(-)

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 6c8369e..c1e8e84 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
@@ -13,6 +13,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -27,31 +29,29 @@
 
 	@Override
 	public List<List<String>> getFuture(String resCd) {
-		HsybGetFuturePo hsybGetFuturePo  = apiRequest(GET_FUTURE, resCd);
+		HsybGetFuturePo hsybGetFuturePo = apiRequest(GET_FUTURE, resCd);
 
-		if (hsybGetFuturePo != null && hsybGetFuturePo.getRespCode().equals("200")){
+		if (hsybGetFuturePo != null && hsybGetFuturePo.getRespCode().equals("200")) {
 			List<List<String>> data = hsybGetFuturePo.getData();
 
-			//过滤空值数据,过滤过去时间
-			List<List<String>> collect =
-				data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
+			List<List<String>> collect = filterPredictData(data);
 			return collect;
-		}else {
+		} else {
 			return null;
 		}
 	}
 
-	public HsybGetFuturePo apiRequest(String url, String jsonparams){
+	public HsybGetFuturePo apiRequest(String url, String jsonparams) {
 
 //		Long param = Long.parseLong(jsonparams);
-		System.out.println("请求参数:"+ jsonparams);
+		System.out.println("请求参数:" + jsonparams);
 		// 声明一个header变量
 		HttpHeaders headers = new HttpHeaders();
 		// 设置为json格式
 		MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8");
 		headers.setContentType(mediaType);
 		//设置请求头
-		headers.set("Authorization",AUTHORIZATION);
+		headers.set("Authorization", AUTHORIZATION);
 		headers.add("Accept", MediaType.APPLICATION_JSON.toString());
 
 		HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers);
@@ -60,10 +60,56 @@
 			HsybGetFuturePo hsybGetFuturePo = template.postForObject(url, httpEntity, HsybGetFuturePo.class);
 			System.out.println(hsybGetFuturePo.toString());
 			return hsybGetFuturePo;
-		}catch (Exception e){
+		} catch (Exception e) {
 			System.out.println(e);
 		}
 
 		return null;
 	}
+
+
+	/**
+	 * 对预测数据进行过滤
+	 *
+	 * @param data
+	 * @return
+	 */
+	public List<List<String>> filterPredictData(List<List<String>> data) {
+		String formatter = "yyyy-MM-dd";
+		String today = DateUtil.format(new Date(), formatter);
+
+		Long time = new Date().getTime() + 60 * 60 * 24 * 1000;
+		Date tomorrowDate = new Date(time);
+		String tomorrow = DateUtil.format(tomorrowDate, formatter);
+
+		//过滤空值数据,过滤过去时间
+		List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).collect(Collectors.toList());
+		Integer index = findIndex(collect, "/");
+
+		if (index>-1){
+			collect.get(index).set(0,tomorrow  + collect.get(index).get(0).substring(5));
+		}
+
+		for (int i = 0; i < collect.size(); i++) {
+			if (i<index && index>-1){
+				collect.get(i).set(0,today + " " + collect.get(i).get(0));
+			}else if (i>index && index>-1){
+				collect.get(i).set(0,tomorrow + " " + collect.get(i).get(0));
+			}else if ( i!= index && index == -1){
+				collect.get(i).set(0,today + " " + collect.get(i).get(0));
+			}
+		}
+		List<List<String>> filterData =  data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
+		return filterData;
+	}
+
+
+	public Integer findIndex(List<List<String>> list,String reg){
+		for (int i = 0; i < list.size(); i++) {
+			if (list.get(i).get(0).indexOf(reg)>-1){
+				return 	i;
+			}
+		}
+		return -1;
+	}
 }

--
Gitblit v1.9.3