From 7130d28d70a63767975c9c59e10cc555511976ce Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 16 九月 2023 16:21:06 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml |   51 +++++++++++++++++++++++++--------------------------
 1 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
index ebe4f66..b35e1dc 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
@@ -128,27 +128,28 @@
     </delete>
 
     <select id="selectListAllByCommand" resultMap="ArdAlarmRadarResult">
-        SELECT T
-                   .*
-        FROM (
-                 SELECT aar.ID,
-                        aar.target_id,
-                        aar.NAME,
-                        aar.alarm_type,
-                        aar.alarm_time,
-                        aar.longitude,
-                        aar.latitude,
-                        ROW_NUMBER() OVER ( PARTITION BY aar.NAME ORDER BY aar.alarm_time DESC ) AS rn, COUNT(CASE WHEN aar.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aar.NAME ) AS COUNT,
-		COUNT ( aar.alarm_time ) OVER ( PARTITION BY aar.NAME ) AS total
-                 FROM
-                     ard_alarm_radar aar
-                 WHERE
-                     aar.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
-                   AND aar.alarm_type = #{alarmType}
-                 ORDER BY
-                     aar.alarm_time DESC
-             ) T
-        WHERE T.rn = 1
+                select aaar.ID,
+               aaar.target_id,
+               aaar.NAME,
+               aaar.alarm_type,
+               aaar.alarm_time,
+               aaar.longitude,
+               aaar.latitude,
+               r.COUNT,
+               r.total  from
+            (SELECT
+                 aar.NAME,
+                 max(aar.create_time) as create_time1,
+                 count(case when aar.view_time is null THEN 1  END) as count,
+	             count(aar.id) as total
+             FROM
+                 ard_alarm_radar aar
+             WHERE
+                 aar.create_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+               AND aar.alarm_type = #{alarmType}
+             GROUP BY aar.NAME
+            ) r
+                INNER JOIN ard_alarm_radar aaar ON r.create_time1 = aaar.create_time
     </select>
     <select id="selectCountByAlarmTime" resultType="Integer">
         SELECT COUNT(DISTINCT aar.name)
@@ -158,11 +159,9 @@
           and aar.view_time is null
     </select>
     <select id="getCameraByRadar" resultType="String">
-        select ac.id
-        from ard_equip_radar aer
-                 INNER JOIN ard_towers at
-        on aer.tower_id= at.id
-            INNER JOIN ard_cameras ac on aer.tower_id=ac.tower_id
+        select ac.id from ard_equip_radar aer
+        INNER JOIN ard_towers at on aer.tower_id= at.id
+        INNER JOIN ard_cameras ac on aer.tower_id=ac.tower_id
     </select>
     <select id="getArdAlarmRadarWithGuide" resultMap="ArdAlarmRadarResult">
         select *

--
Gitblit v1.9.3