From fb85b1053475a90d902f1dcfd1f1c24b368eabac Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 17 八月 2023 14:58:21 +0800
Subject: [PATCH] 增加一件调度获取附近车人相机

---
 ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml |   60 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
index 1d5a538..6819e98 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.alarm.radarAlarm.mapper.ArdAlarmRadarMapper">
+<mapper namespace="com.ruoyi.alarm.radar.mapper.ArdAlarmRadarMapper">
     <resultMap type="ArdAlarmRadar" id="ArdAlarmRadarResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
@@ -44,6 +44,12 @@
             <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
             <if test="alarmType != null  and alarmType != ''">and alarm_type = #{alarmType}</if>
             <if test="deptId != null ">and dept_id = #{deptId}</if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
         </where>
         order by alarm_time desc
     </select>
@@ -122,33 +128,35 @@
     </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)
         FROM ard_alarm_radar aar
         WHERE aar.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
           and aar.alarm_type = #{alarmType}
+          and aar.view_time is null
     </select>
     <select id="getCameraByRadar" resultType="String">
         select ac.id
@@ -174,4 +182,12 @@
           and alarm_type =#{ardAlarmRadar.alarmType}
           and name = #{ardAlarmRadar.name}
     </select>
+    <update id="updateViewTimeByCondition" parameterType="String">
+        update ard_alarm_radar
+        set view_time=#{viewTime}
+        where name = #{name}
+          and alarm_type=#{alarmType}
+          and alarm_time&lt;=#{alarmTime}
+          and view_time is null
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3