From d61a1d81e8dcaf8d0c8e0bd02e8914021aacb468 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 29 七月 2023 09:26:15 +0800
Subject: [PATCH] 3

---
 src/main/java/com/yssh/controller/WarningAnalyseController.java |    8 ++++----
 src/main/java/com/yssh/mapper/QxshMapper.java                   |    8 ++++----
 src/main/java/com/yssh/service/WarningAnalyseService.java       |   14 ++++++++++++--
 src/main/resources/mapper/QxshMapper.xml                        |   22 ++++++++++++++--------
 4 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/yssh/controller/WarningAnalyseController.java b/src/main/java/com/yssh/controller/WarningAnalyseController.java
index b16c089..b165874 100644
--- a/src/main/java/com/yssh/controller/WarningAnalyseController.java
+++ b/src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -60,10 +60,11 @@
     }
 
     @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "姣忔棩棰勮銆佹姤璀︽暟閲忓彉鍖栬秼鍔�", notes = "涓�鍛ㄦ瘡鏃ラ璀︺�佹姤璀︽暟閲忕粺璁★紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
+    @ApiOperation(value = "姣忔棩棰勮鎶ヨ鏁伴噺鍙樺寲瓒嬪娍", notes = "涓�鍛ㄦ瘡鏃ラ璀︺�佹姤璀︽暟閲忕粺璁★紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
     @GetMapping("/everydayCount")
-    public Result everydayCount() {
-        return Result.OK(warningService.countEverydayAlarmAndWarning());
+    public Result everydayCount(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
+        Date endDate = null == date ? new Date() : date;
+        return Result.OK(warningService.everydayCount(endDate));
     }
 
     @ApiOperationSupport(order = 4)
@@ -71,7 +72,6 @@
     @GetMapping("/locationDataChange")
     public Result locationDataChange(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
         Date endDate = null == date ? new Date() : date;
-
         return Result.OK(warningService.select3Hours(endDate));
     }
 
diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java
index 692569e..e8628c6 100644
--- a/src/main/java/com/yssh/mapper/QxshMapper.java
+++ b/src/main/java/com/yssh/mapper/QxshMapper.java
@@ -17,11 +17,11 @@
 
     public List<Qxsh> selectMonthTop10(String time);
 
-    public List<Qxsh> select3Hours(@Param("times") List<String> times);
-
-    public Double selectLastYearVal(@Param("time") Integer time, @Param("name") String name);
+    public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
 
     public Qxsh selectByTimeAndName(@Param("time") Integer time, @Param("name") String name);
 
-    public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
+    public List<Qxsh> selectForReport(@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 02f36e8..d42c589 100644
--- a/src/main/java/com/yssh/service/WarningAnalyseService.java
+++ b/src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -194,7 +194,17 @@
         return result;
     }
 
-    public Map<String, List<Map<String, Object>>> countEverydayAlarmAndWarning() {
+    /**
+     * 姣忔棩棰勮銆佹姤璀︽暟閲忓彉鍖栬秼鍔�
+     */
+    public Map<String, List<Map<String, Object>>> everydayCount(Date endDate) {
+        Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate));
+        Date startDate = DateUtils.getAPeriodOfTime(endDate, -6, Calendar.DATE);
+        Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
+
+
+
+
         Map<String, List<Map<String, Object>>> result = new HashMap<>();
 
         Map<String, Object> param = new HashMap<String, Object>();
@@ -370,7 +380,7 @@
         Integer start = Integer.parseInt(strStart);
         Integer end = Integer.parseInt(strEnd);
 
-        List<Qxsh> rsList = qxshMapper.selectByBeginAndEnd(start, end);
+        List<Qxsh> rsList = qxshMapper.selectForReport(start, end);
         if (null == rsList || rsList.isEmpty()) return null;
 
         Hashtable<String, Boolean> dict = getExistTabDict(rsList);
diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml
index 15e26ab..93e3a28 100644
--- a/src/main/resources/mapper/QxshMapper.xml
+++ b/src/main/resources/mapper/QxshMapper.xml
@@ -10,26 +10,32 @@
 
     <select id="selectMonthTop10" resultType="com.yssh.entity.Qxsh">
         with rs as (
-            select id, name, format(value, 2) "value", time
+            select id, name, lon, lat, format(value, 2) "value", time
             from yssh_qxsh
             where time like #{time} and name like 'AI-%'
         )
-        select id, name, value, time from rs
+        select id, name, lon, lat, value, time from rs
         order by value desc
         limit 10;
     </select>
 
-    <select id="select3Hours" resultType="com.yssh.entity.Qxsh">
+    <select id="count7DayForWarn" resultType="com.yssh.entity.Qxsh">
         select id, name, format(value, 2) "value", time
         from yssh_qxsh
-        where name like 'AI-%' and time in
-            <foreach collection="times" item="time" open="(" separator="," close=")">
-                #{time}
-            </foreach>
-        order by name, time;
+        where time between #{start} and #{end}
+            and value > (select jcyj from alert_config limit 1) and name like 'AI-%'
+        order by time, name;
     </select>
 
     <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh">
+        select id, name, lon, lat, format(value, 2) "value", time
+        from yssh_qxsh
+        where time between #{start} and #{end}
+            and value > (select jcyj from alert_config limit 1) and name like 'AI-%'
+        order by time, name;
+    </select>
+
+    <select id="selectForReport" resultType="com.yssh.entity.Qxsh">
         select id, name, format(value, 2) "value", time
         from yssh_qxsh
         where time between #{start} and #{end}

--
Gitblit v1.9.3