From 07fe1bb1ef9bf716567c3287ecd7c4859b6ccb1d Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 18 六月 2023 21:07:53 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java |    3 +++
 src/main/resources/mapping/WarningDetailMapper.xml                 |    9 +++++++++
 src/main/java/com/yssh/dao/WarningDetailMapper.java                |    2 ++
 src/main/java/com/yssh/entity/Report.java                          |   13 ++++++-------
 4 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/yssh/dao/WarningDetailMapper.java b/src/main/java/com/yssh/dao/WarningDetailMapper.java
index 53c4f64..b9ecfc7 100644
--- a/src/main/java/com/yssh/dao/WarningDetailMapper.java
+++ b/src/main/java/com/yssh/dao/WarningDetailMapper.java
@@ -26,4 +26,6 @@
 	List<WarningDetail> selectByTimeForYj(@Param("startTime") String startTime, @Param("endTime") String endTime);
 
 	List<WarningDetail> selectByTimeForBj(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	Double getLastYearVal(@Param("id") long id);
 }
diff --git a/src/main/java/com/yssh/entity/Report.java b/src/main/java/com/yssh/entity/Report.java
index 0208e3b..a567a72 100644
--- a/src/main/java/com/yssh/entity/Report.java
+++ b/src/main/java/com/yssh/entity/Report.java
@@ -22,7 +22,7 @@
     private double val;
 
     @ApiModelProperty(value = "鍘诲勾鏁板��")
-    private double lastVal;
+    private Double lastVal;
 
     @ApiModelProperty(value = "鏃堕棿")
     private String time;
@@ -48,12 +48,11 @@
     public Report() {
     }
 
-    public Report(String name, double lon, double lat, double val, double lastVal, String time, double speed, String dir, double maxVal, double dis, String maxDir, int isSame) {
+    public Report(String name, double lon, double lat, double val, String time, double speed, String dir, double maxVal, double dis, String maxDir, int isSame) {
         this.name = name;
         this.lon = lon;
         this.lat = lat;
         this.val = val;
-        this.lastVal = lastVal;
         this.time = time;
         this.speed = speed;
         this.dir = dir;
@@ -85,9 +84,9 @@
         double speed2 = CalculateUtils.getWindSpeed(suMax.getV(), suMax.getU());
         double direction2 = CalculateUtils.getWindDirection(suMax.getV(), suMax.getU());
         String maxDir = CalculateUtils.getDir(angle);
-        int isSame = (Math.abs(direction1 - direction2) < 30 && Math.abs(speed1 - speed2) < 0.5) ? 1 : 0;
+        int isSame = (Math.abs(direction1 - direction2) <= 45 && Math.abs(speed1 - speed2) <= 0.5) ? 1 : 0;
 
-        return new Report(wd.getLocationName(), c1.getX(), c1.getY(), wd.getValue(), lastVal, time,
+        return new Report(wd.getLocationName(), c1.getX(), c1.getY(), wd.getValue(), time,
                 speed1, dir, maxVal, dis1, maxDir, isSame);
     }
 
@@ -123,11 +122,11 @@
         this.val = val;
     }
 
-    public double getLastVal() {
+    public Double getLastVal() {
         return lastVal;
     }
 
-    public void setLastVal(double lastVal) {
+    public void setLastVal(Double lastVal) {
         this.lastVal = lastVal;
     }
 
diff --git a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
index 9ea96e4..51c7c17 100644
--- a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
+++ b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -385,6 +385,7 @@
             //list.add(new WarningVo(wd.getLocationName(), wd.getSuYuanId(), 0.0, 0.0, wd.getValue(), time));
 
             DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(wd.getTableName(), wd.getSuYuanId());
+            Double lastVal = warningDetailMapper.getLastYearVal(wd.getId());
 
             int rows = suYuanMapper.isTableExists(wd.getTableName());
             DistanceSuYuan suMax = null;
@@ -397,6 +398,8 @@
             }
 
             Report report = Report.calcReport(wd, suYuan, suMax);
+            report.setLastVal(lastVal);
+
             list.add(report);
         }
 
diff --git a/src/main/resources/mapping/WarningDetailMapper.xml b/src/main/resources/mapping/WarningDetailMapper.xml
index 8d6b42b..7d40ff9 100644
--- a/src/main/resources/mapping/WarningDetailMapper.xml
+++ b/src/main/resources/mapping/WarningDetailMapper.xml
@@ -85,6 +85,15 @@
 			and value >= (select jcbj from rs)
 		order by value;
 	</select>
+
+	<select id="getLastYearVal" resultType="java.lang.Double">
+		with rs as (
+			select su_yuan_id "id", date_sub(create_time, interval 1 year) "time"
+			from warning_detail where id = ${id})
+		select format(value, 2) "val"
+		from warning_detail
+		where su_yuan_id = (select id from rs) and create_time = (select time from rs);
+	</select>
     
     <insert id="batchInsert">
     	INSERT INTO warning_detail (table_name, su_yuan_id, location_name, type, create_time, value)VALUES

--
Gitblit v1.9.3