From 3c096d3cfd56a23e6794f30ccd150bfe19aa4ae8 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 11 Aug 2023 14:27:25 +0800
Subject: [PATCH] arima预测和hst预测更新最新数据;对预报水位去重

---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java |   13 ++----
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.xml               |   18 +++++++++
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.java              |    3 +
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java         |   11 ++++-
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java            |    2 +
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml             |   16 ++++++++
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java   |   16 +++-----
 7 files changed, 58 insertions(+), 21 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java
index 65bc24a..8059cd7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java
@@ -8,4 +8,6 @@
 
 public interface ArimaPredictMapper  extends BaseMapper<ArimaPredict>{
     List<ArimaPredict> getFutureData(@Param("resCd") String resCd,@Param("type") String type);
+
+    List<ArimaPredict> selectTodayData(@Param("entity") ArimaPredict entity);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml
index 71002b7..f65e615 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml
@@ -20,4 +20,20 @@
             AND (type = '3' or type = '4' or type = '5')
         </if>
     </select>
+    <select id="selectTodayData" resultType="cn.gistack.nky.entity.ArimaPredict">
+        SELECT  * FROM NKY_ARIMA_PREDICT
+        WHERE 1=1
+        <if test="entity.createTime != null ">
+            AND   DATE_FORMAT(create_time,'%Y-%m-%d')>= DATE_FORMAT(#{entity.createTime},'%Y-%m-%d')
+        </if>
+        <if test="entity.damId != null and entity.damId != ''">
+            AND DAM_ID = #{entity.damId}
+        </if>
+        <if test="entity.pointId != null and entity.pointId !=''">
+            AND POINT_ID = #{entity.pointId}
+        </if>
+        <if test="entity.type != null and entity.type !='' ">
+            AND type = #{entity.type}
+        </if>
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.java
index d658085..c03596e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.java
@@ -2,9 +2,12 @@
 
 import cn.gistack.nky.entity.HstPredict;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface HstPredictMapper extends BaseMapper<HstPredict> {
     List<HstPredict> getFutureData(String resCd, String type);
+
+	List<HstPredict> selectTodayData(@Param("entity") HstPredict entity);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.xml
index 8039f6d..d189d27 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/HstPredictMapper.xml
@@ -18,4 +18,22 @@
             AND (type = '3' or type = '4' or type = '5')
         </if>
     </select>
+
+
+    <select id="selectTodayData" resultType="cn.gistack.nky.entity.HstPredict">
+        SELECT  * FROM NKY_HST_PREDICT
+        WHERE 1= 1
+        <if test="entity.createTime != null ">
+            AND   DATE_FORMAT(create_time,'%Y-%m-%d')>= DATE_FORMAT(#{entity.createTime},'%Y-%m-%d')
+        </if>
+        <if test="entity.damId != null and entity.damId != ''">
+            AND DAM_ID = #{entity.damId}
+        </if>
+        <if test="entity.pointId != null and entity.pointId !=''">
+            AND POINT_ID = #{entity.pointId}
+        </if>
+        <if test="entity.type != null and entity.type !='' ">
+            AND type = #{entity.type}
+        </if>
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java
index 380b448..d4fed4d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java
@@ -85,17 +85,12 @@
 			return false;
 		}
 
-		//遍历表中当前水库,当前测点,当前类型的数据,检查是否有重复数据
-		ArimaPredict params = new ArimaPredict();
-		params.setDamId(entity.getDamId());
-		params.setPointId(entity.getPointId());
-		params.setType(entity.getType());
-		params.setCreateTime(entity.getCreateTime());
-
-		List<ArimaPredict> list = list(Condition.getQueryWrapper(params));
+		List<ArimaPredict> list = baseMapper.selectTodayData(entity);
 
 		if (list.size()>0){
-			return false;
+			//删除该数据,添加最新数据
+			baseMapper.deleteById(list.get(0));
+			return super.save(entity);
 		}else {
 			return super.save(entity);
 		}
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 d829011..c79276c 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
@@ -135,17 +135,13 @@
 			return false;
 		}
 
-		HstPredict params = new HstPredict();
-		params.setDamId(entity.getDamId());
-		params.setPointId(entity.getPointId());
-		params.setType(entity.getType());
-		params.setCreateTime(entity.getCreateTime());
+		List<HstPredict> list = baseMapper.selectTodayData(entity);
 
-		List<HstPredict> list = list(Condition.getQueryWrapper(params));
-
-		if (list.size() > 0) {
-			return false;
-		} else {
+		if (list.size()>0){
+			//删除该数据,添加最新数据
+			baseMapper.deleteById(list.get(0));
+			return super.save(entity);
+		}else {
 			return super.save(entity);
 		}
 	}
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 97e9eb7..61aa3de 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
@@ -86,6 +86,7 @@
 		List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).collect(Collectors.toList());
 		Integer index = findIndex(collect, "/");
 
+		//对0点时间添加日期
 		if (index>-1){
 			collect.get(index).set(0,tomorrow  + collect.get(index).get(0).substring(5));
 		}
@@ -99,13 +100,19 @@
 				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());
 
+		//筛选出未来时间
+		List<List<String>> filterData =  collect.stream().filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
+
+		//截取掉时间部分
 		filterData.forEach(e->{
 			e.set(0,e.get(0).split(" ")[0]);
 		});
 
-		return filterData;
+		//去除重复数据
+		List<List<String>> collect1 = filterData.stream().distinct().collect(Collectors.toList());
+
+		return collect1;
 	}
 
 	public Integer findIndex(List<List<String>> list,String reg){

--
Gitblit v1.9.3