From 1bfbc52da47b22f00a1c1f5f670c30f70d999873 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 02 Feb 2026 18:18:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml |   89 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
index 3e0c91d..114d281 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
@@ -35,22 +35,50 @@
 
     <select id="selectFwDroneAlarmRecordPage" resultType="org.sxkj.fw.record.vo.FwDroneAlarmRecordVO">
         select
-        dar.*,
-        d.device_name,
-        d.status deviceStatus
+            dar.*,
+            d.device_name,
+            d.status deviceStatus,
+            d.final_outbound_area,
+            /* 1=已关注,0=未关注 */
+            EXISTS (
+                SELECT
+                    1
+                FROM
+                    ja_fw_alarm_favorite f
+                WHERE
+                    f.alarm_record_id = dar.id
+                AND  f.user_id = #{param2.currentUserId}   -- MyBatis 参数
+                AND  f.is_deleted = 0
+                ) AS favorited
         from
-        ja_fw_drone_alarm_record dar
-        left join ja_fw_device d on dar.device_id = d.id
+            ja_fw_drone_alarm_record dar
+        left join
+            ja_fw_device d on dar.device_id = d.id
         <where>
-            dar.is_deleted = 0
+                dar.is_deleted = 0
+                and d.is_enabled = 1
+            <if test="param2.regionName != null and param2.regionName != ''">
+                and (d.final_outbound_area = #{param2.regionName}
+                <!-- 或者设备是共享给当前部门的 -->
+                <if test="param2.currentDeptId != null and param2.currentDeptId != '' ">
+                    or dar.device_id in (
+                    SELECT device_id FROM ja_fw_device_per_share
+                    WHERE loan_to_dept_id = #{param2.currentDeptId}
+                    AND is_deleted = 0
+                    )
+                </if>
+                )
+            </if>
             <if test="param2.deviceId != null and param2.deviceId != ''">
                 and dar.device_id = #{param2.deviceId}
             </if>
             <if test="param2.droneName != null and param2.droneName != ''">
-                and dar.drone_name like CONCAT('%', #{param2.droneName}, '%')
+                and (
+                dar.drone_name like CONCAT('%', #{param2.droneName}, '%')
             </if>
             <if test="param2.droneSerialNo != null and param2.droneSerialNo != ''">
-                and dar.drone_serial_no = #{param2.droneSerialNo}
+                or dar.drone_serial_no like CONCAT('%', #{param2.droneSerialNo}, '%')
+                )
             </if>
             <if test="param2.droneType != null and param2.droneType != ''">
                 and dar.drone_type = #{param2.droneType}
@@ -103,19 +131,60 @@
             <if test="param2.areaName != null and param2.areaName != ''">
                 and dar.area_name like CONCAT('%', #{param2.areaName}, '%')
             </if>
+            <!-- <if test="param2.deptList != null and param2.deptList.size > 0"> -->
+            <!--     and (dar.create_dept in -->
+            <!--     <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")"> -->
+            <!--         #{deptId} -->
+            <!--     </foreach> -->
+            <!--     ) -->
+            <!-- </if>  -->
         </where>
+                order by favorited desc
     </select>
 
 
     <select id="exportFwDroneAlarmRecord" resultType="org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel">
-        SELECT * FROM ja_fw_drone_alarm_record ${ew.customSqlSegment}
+        select
+        dar.*,
+        d.device_name,
+        d.status deviceStatus
+        from
+        ja_fw_drone_alarm_record dar
+        left join ja_fw_device d on dar.device_id = d.id
+        <where>
+            dar.is_deleted = 0
+            <if test="ids != null and ids.size() > 0">
+                and dar.id in
+                <foreach item="item" collection="ids" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
     </select>
 
     <select id="alarmTypeStatistics" resultType="org.sxkj.fw.cockpit.vo.AlarmStatisticsVO">
         SELECT
         COUNT(CASE WHEN alarm_type = 1 THEN 1 END) AS realTimeAlarmCount,
         COUNT(CASE WHEN alarm_type = 2 THEN 2 END) AS historyAlarmCount
-        FROM ja_fw_drone_alarm_record WHERE is_deleted = 0
+        FROM
+            ja_fw_drone_alarm_record  dar
+        left join
+            ja_fw_device d on dar.device_id = d.id
+        WHERE dar.is_deleted = 0
+            AND d.is_deleted = 0
+            and d.is_enabled = 1
+        <if test="regionName != null and regionName != ''">
+            and (d.final_outbound_area = #{regionName}
+            <!-- 或者设备是共享给当前部门的 -->
+            <if test="currentDeptId != null and currentDeptId != '' ">
+                or dar.device_id in (
+                SELECT device_id FROM ja_fw_device_per_share
+                WHERE loan_to_dept_id = #{currentDeptId}
+                AND is_deleted = 0
+                )
+            </if>
+            )
+        </if>
     </select>
 
 </mapper>

--
Gitblit v1.9.3