From 4b4a150626f7943ee0811d7c3c718be0abe68b23 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 29 七月 2023 10:41:41 +0800
Subject: [PATCH] 6

---
 src/main/java/com/yssh/controller/WarningAnalyseController.java |   16 +++----
 src/main/java/com/yssh/mapper/QxshMapper.java                   |    6 ++
 src/main/java/com/yssh/service/WarningAnalyseService.java       |   67 +++++++++------------------------
 src/main/resources/mapper/QxshMapper.xml                        |   24 ++++++++++-
 4 files changed, 52 insertions(+), 61 deletions(-)

diff --git a/src/main/java/com/yssh/controller/WarningAnalyseController.java b/src/main/java/com/yssh/controller/WarningAnalyseController.java
index 2e76dad..095929a 100644
--- a/src/main/java/com/yssh/controller/WarningAnalyseController.java
+++ b/src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -27,15 +27,15 @@
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "鑾峰彇瀹炴椂鎶ヨ", notes = "鑾峰彇瀹炴椂鎶ヨ鍒嗘瀽鏁版嵁")
     @GetMapping("/runAlarm")
-    public Result alarmAnalyse() {
-        return Result.OK(warningService.getRunTimeAlarmAnalyse());
+    public Result alarmAnalyse(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
+        return Result.OK(warningService.getRunTimeAlarmAnalyse(null == date ? new Date() : date));
     }
 
     @ApiOperationSupport(order = 2)
     @ApiOperation(value = "鑾峰彇瀹炴椂棰勮", notes = "鑾峰彇瀹炴椂棰勮鍒嗘瀽鏁版嵁")
     @GetMapping("/runWarning")
-    public Result warningAnalyse() {
-        return Result.OK(warningService.getRunTimeWarningAnalyse());
+    public Result warningAnalyse(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
+        return Result.OK(warningService.getRunTimeWarningAnalyse(null == date ? new Date() : date));
     }
 
     @ApiOperationSupport(order = 3)
@@ -49,23 +49,21 @@
     @ApiOperation(value = "涓�鍛ㄩ璀︽姤璀︽暟閲忓彉鍖栬秼鍔�", notes = "涓�鍛ㄩ璀︽姤璀︽暟閲忓彉鍖栬秼鍔匡紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
     @GetMapping("/everydayCount")
     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));
+        return Result.OK(warningService.everydayCount(null == date ? new Date() : date));
     }
 
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "涓夊皬鏃剁洃娴嬬珯鐐规暟鎹彉鍖栬秼鍔�", notes = "杩斿洖鍊间负涓夊皬鏃剁洃娴嬬珯鐐圭洃娴嬫暟鎹紝杩斿洖鍊间负map闆嗗悎锛屽叾涓璳ey涓虹珯鐐瑰悕绉帮紝value涓簂ist闆嗗悎锛屼繚瀛樻瘡澶╃洃娴嬫暟鍊兼暟鎹�")
     @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));
+        return Result.OK(warningService.select3Hours(null == date ? new Date() : date));
     }
 
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10", notes = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10鏁伴噺鍒楄〃")
     @GetMapping("/monthTop10")
     public Result monthTop10() {
-        return Result.ok(warningService.selectMonthTop10());
+        return Result.OK(warningService.selectMonthTop10());
     }
 
     @ApiOperationSupport(order = 5)
diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java
index 443944b..18e8cb4 100644
--- a/src/main/java/com/yssh/mapper/QxshMapper.java
+++ b/src/main/java/com/yssh/mapper/QxshMapper.java
@@ -18,6 +18,10 @@
 
     public List<Qxsh> selectMonthTop10(String time);
 
+    public List<Qxsh> selectWarnByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
+
+    public List<Qxsh> selectAlarmByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
+
     public Integer countMonthForWarn(@Param("start") Integer start, @Param("end") Integer end);
 
     public Integer countMonthForAlarm(@Param("start") Integer start, @Param("end") Integer end);
@@ -26,7 +30,7 @@
 
     public List<Map<String, Object>> count7DayForAlarm(@Param("start") Integer start, @Param("end") Integer end);
 
-    public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
+    public List<Qxsh> select3Hours(@Param("start") Integer start, @Param("end") Integer end);
 
     public Qxsh selectByTimeAndName(@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 408fd2c..6c5422e 100644
--- a/src/main/java/com/yssh/service/WarningAnalyseService.java
+++ b/src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -51,7 +51,7 @@
 
     @Async("threadPoolTaskExecutor")
     public void insertWarningDetails(List<WarningDetail> warning) throws Exception {
-        //鎻掑叆鏁版嵁
+        // 鎻掑叆鏁版嵁
         List<List<WarningDetail>> list = Lists.partition(warning, AsyncService.BATCH_INSERT_NUMBER);
         CountDownLatch countDownLatch = new CountDownLatch(list.size());
         for (List<WarningDetail> corpReserveList : list) {
@@ -60,30 +60,15 @@
         countDownLatch.await();
     }
 
-    public List<WarningVo> getRunTimeAlarmAnalyse() {
-        List<WarningVo> result = new ArrayList<>();
-        Date nowDate = DateUtils.getNowDate();
-        //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
-        //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-        //if (StringUtils.isNull(dictRecord)) {
-        //	nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
-        //}
-        //List<WarningDetail> list = alarmAnalyseOperation(nowDate);
+    /**
+     * 鑾峰彇瀹炴椂鎶ヨ
+     */
+    public List<Qxsh> getRunTimeAlarmAnalyse(Date endDate) {
+        Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate));
+        Date startDate = DateUtils.getAPeriodOfTime(endDate, -5, Calendar.HOUR_OF_DAY);
+        Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
 
-        List<WarningDetail> list = new ArrayList<>();
-        Calendar calendar = getCalendar(nowDate);
-        for (int i = 0; i < 8; i++) {
-            calendar.add(Calendar.HOUR, -1);
-            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), false);
-            if (null != rs && rs.size() > 0) {
-                list.addAll(rs);
-            }
-        }
-        list.forEach(s -> {
-            String time = DateUtils.getYyyyMmDdHh(s.getCreateTime());
-            result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
-        });
-        return result;
+        return qxshMapper.selectAlarmByBeginAndEnd(start, end);
     }
 
     private Calendar getCalendar(Date nowDate) {
@@ -94,30 +79,15 @@
         return calendar;
     }
 
-    public List<WarningVo> getRunTimeWarningAnalyse() {
-        List<WarningVo> result = new ArrayList<>();
-        Date nowDate = DateUtils.getNowDate();
-        //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate);
-        //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time));
-        //if (StringUtils.isNull(dictRecord)) {
-        //	nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY);
-        //}
-        //List<WarningDetail> list = warningAnalyseOperation(nowDate);
+    /**
+     * 鑾峰彇瀹炴椂棰勮
+     */
+    public List<Qxsh> getRunTimeWarningAnalyse(Date endDate) {
+        Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate));
+        Date startDate = DateUtils.getAPeriodOfTime(endDate, -5, Calendar.HOUR_OF_DAY);
+        Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
 
-        List<WarningDetail> list = new ArrayList<>();
-        Calendar calendar = getCalendar(nowDate);
-        for (int i = 0; i < 8; i++) {
-            calendar.add(Calendar.HOUR, -1);
-            List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), true);
-            if (null != rs && rs.size() > 0) {
-                list.addAll(rs);
-            }
-        }
-        list.forEach(s -> {
-            String time = DateUtils.getYyyyMmDdHh(s.getCreateTime());
-            result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time));
-        });
-        return result;
+        return qxshMapper.selectWarnByBeginAndEnd(start, end);
     }
 
     private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) {
@@ -145,6 +115,7 @@
         return result;
     }
 
+    // 宸插簾寮� *
     public void warningOperationStorage(Date date) {
         List<WarningDetail> allData = new ArrayList<>();
         List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false);
@@ -213,7 +184,7 @@
         Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
 
         //  List<String> times = DateUtils.get3Hours();
-        List<Qxsh> list = qxshMapper.selectByBeginAndEnd(start, end);
+        List<Qxsh> list = qxshMapper.select3Hours(start, end);
         if (null == list || list.isEmpty()) {
             return null;
         }
diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml
index d785b67..8d73f5b 100644
--- a/src/main/resources/mapper/QxshMapper.xml
+++ b/src/main/resources/mapper/QxshMapper.xml
@@ -19,6 +19,22 @@
         limit 10;
     </select>
 
+    <select id="selectWarnByBeginAndEnd" 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 name like 'AI-%'
+            and value > (select jcyj from alert_config limit 1) and value &lt;= (select jcbj from alert_config limit 1)
+        order by time desc, name;
+    </select>
+
+    <select id="selectAlarmByBeginAndEnd" 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 name like 'AI-%'
+            and value > (select jcbj from alert_config limit 1)
+        order by time desc, name;
+    </select>
+
     <select id="countMonthForWarn" resultType="java.lang.Integer">
         select count(*)
         from yssh_qxsh
@@ -29,7 +45,8 @@
     <select id="countMonthForAlarm" resultType="java.lang.Integer">
         select count(*)
         from yssh_qxsh
-        where time between #{start} and #{end} and name like 'AI-%' and value > (select jcbj from alert_config limit 1);
+        where time between #{start} and #{end} and name like 'AI-%'
+            and value > (select jcbj from alert_config limit 1);
     </select>
 
     <select id="count7DayForWarn" resultType="java.util.Map">
@@ -46,12 +63,13 @@
         with rs as (
             select left(time, 8) "createTime"
             from yssh_qxsh
-            where time between #{start} and #{end} and name like 'AI-%' and value > (select jcbj from alert_config limit 1)
+            where time between #{start} and #{end} and name like 'AI-%'
+                and value > (select jcbj from alert_config limit 1)
         )
         select createTime, count(*) "num" from rs group by createTime order by createTime;
     </select>
 
-    <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh">
+    <select id="select3Hours" resultType="com.yssh.entity.Qxsh">
         select id, name, lon, lat, format(value, 2) "value", time
         from yssh_qxsh
         where time between #{start} and #{end}

--
Gitblit v1.9.3