From 58cb215b67a5bf50fba0d63969f40711fc23135c Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 21 七月 2023 15:31:59 +0800
Subject: [PATCH] 1

---
 src/main/resources/mapper/SuYuanMapper.xml                |    2 
 src/main/java/com/yssh/entity/WarningDetail.java          |    8 +++
 src/main/java/com/yssh/mapper/QxshMapper.java             |    4 ++
 src/main/java/com/yssh/service/WarningAnalyseService.java |   55 +++++++++++++++++++++++++--
 src/main/resources/mapper/QxshMapper.xml                  |   14 +++++++
 5 files changed, 76 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/yssh/entity/WarningDetail.java b/src/main/java/com/yssh/entity/WarningDetail.java
index 2383fde..d29f704 100644
--- a/src/main/java/com/yssh/entity/WarningDetail.java
+++ b/src/main/java/com/yssh/entity/WarningDetail.java
@@ -27,19 +27,25 @@
 	}
 
 	private static final long serialVersionUID = 1610250573910282005L;
+
 	@ApiModelProperty(value = "涓婚敭")
 	private Long id;
+
 	@ApiModelProperty(value = "婧簮鏁版嵁琛ㄥ悕")
 	private String tableName;
+
 	@ApiModelProperty(value = "婧簮鏁版嵁缂栧彿")
 	private String suYuanId;
+
 	@ApiModelProperty(value = "鐐逛綅鍚嶇О")
 	private String locationName;
-	;
+
 	@ApiModelProperty(value = "鏃堕棿")
 	private Date createTime;
+
 	@ApiModelProperty(value = "绫诲瀷")
 	private Integer type;
+
 	@ApiModelProperty(value = "鏁板��")
 	private Double value;
 
diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java
index ef5329c..d7e9677 100644
--- a/src/main/java/com/yssh/mapper/QxshMapper.java
+++ b/src/main/java/com/yssh/mapper/QxshMapper.java
@@ -18,4 +18,8 @@
     public List<Qxsh> selectMonthTop10(String time);
 
     public List<Qxsh> select3Hours(@Param("times") List<String> times);
+
+    public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
+
+    public Double selectLastYearVal(@Param("time") Integer time, @Param("name") String name);
 }
diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java
index df01c61..6e8c441 100644
--- a/src/main/java/com/yssh/service/WarningAnalyseService.java
+++ b/src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -353,7 +353,56 @@
         return map;
     }
 
-    public List<Report> getAlarmAndWarnByTime(Date begin, Date end) {
+    public List<Report> getAlarmAndWarnByTime(Date beginDate, Date endDate) {
+        String strStart = DateUtils.getYyyyMmDdHh(beginDate);
+        String strEnd = DateUtils.getYyyyMmDdHh(endDate);
+        Integer start = Integer.parseInt(strStart);
+        Integer end = Integer.parseInt(strEnd);
+
+        List<Qxsh> rsList = qxshMapper.selectByBeginAndEnd(start, end);
+        if (null == rsList || rsList.isEmpty()) return null;
+
+        Hashtable<String, Boolean> dict = getExistTabDict(rsList);
+        List<Report> list = new ArrayList<>();
+        for (Qxsh qxsh : rsList) {
+            String tab = "su_yuan_" + qxsh.getTime();
+            if (!dict.get(tab)) continue;
+
+            MonitorPointPosition point = commonService.select3dCheckPointByName(qxsh.getName());
+            String suYuanId = point.getId().substring(0, point.getId().lastIndexOf("_") + 1) + "0";
+            Double lastVal = qxshMapper.selectLastYearVal(Integer.parseInt(qxsh.getTime()) - 1000000, qxsh.getName());
+
+            WarningDetail wd = new WarningDetail(0L, tab, suYuanId, qxsh.getName(), null, 0, qxsh.getValue());
+            DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(tab, suYuanId);
+            List<String> ids3d = CalculateUtils.aloneCrosswiseExtend(point, 50);
+            DistanceSuYuan suMax = suYuanMapper.getSuYuan500Max(tab, ids3d);
+            suMax.setAddr(getAddr(suMax.getId()));
+
+            Report report = Report.calcReport(wd, suYuan, suMax);
+            report.setLastVal(lastVal);
+
+            list.add(report);
+        }
+
+        return list;
+    }
+
+    private Hashtable<String, Boolean> getExistTabDict(List<Qxsh> rsList) {
+        Hashtable<String, Boolean> dict = new Hashtable<>();
+        for (Qxsh qxsh : rsList) {
+            String tab = "su_yuan_" + qxsh.getTime();
+            if (dict.containsKey(tab)) {
+                continue;
+            }
+
+            Boolean b = suYuanMapper.isTableExists(tab) > 0;
+            dict.put(tab, b);
+        }
+
+        return dict;
+    }
+
+    public List<Report> getAlarmAndWarnByTime2(Date begin, Date end) {
         String startTime = DateUtils.getYyyyMmDdHhMmSs(begin);
         String endTime = DateUtils.getYyyyMmDdHhMmSs(end);
 
@@ -367,9 +416,6 @@
         Hashtable<String, Boolean> dict = new Hashtable<>();
         List<Report> list = new ArrayList<>();
         for (WarningDetail wd : rs) {
-            //String time = ymdh.format(wd.getCreateTime());
-            //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());
 
@@ -382,7 +428,6 @@
             } else {
                 suMax = suYuan;
             }*/
-
             if (dict.containsKey(wd.getTableName())) {
                 if (!dict.get(wd.getTableName())) continue;
             } else {
diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml
index b07e71e..3585815 100644
--- a/src/main/resources/mapper/QxshMapper.xml
+++ b/src/main/resources/mapper/QxshMapper.xml
@@ -28,4 +28,18 @@
             </foreach>
         order by name, time;
     </select>
+
+    <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh">
+        select id, name, format(value, 2) "value", time
+        from yssh_qxsh
+        where time between #{start} and #{end}
+            and value > (select jcbj from alert_config limit 1) and name like 'AI-%'
+        order by time, name;
+    </select>
+
+    <select id="selectLastYearVal" resultType="java.lang.Double">
+         select format(value, 2) "value"
+         from yssh_qxsh
+         where name = #{name} and time = #{time}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/SuYuanMapper.xml b/src/main/resources/mapper/SuYuanMapper.xml
index df67e57..b751ee2 100644
--- a/src/main/resources/mapper/SuYuanMapper.xml
+++ b/src/main/resources/mapper/SuYuanMapper.xml
@@ -165,7 +165,7 @@
     </select>
 
 	<select id="selectSuYuan700ById" resultType="com.yssh.entity.SuYuan700">
-		select * from suyuan_700
+		select * from suyuan_70_70
 		where su_yuan_id = #{id} and create_time = #{time}
 		limit 1;
 	</select>

--
Gitblit v1.9.3