From ba12d5d8e844146c334223ef5939a51c8e5d76ca Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 29 Jan 2026 20:18:26 +0800
Subject: [PATCH] 反无-权限控制
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml | 89 ++++++++++++++++++++++++++++++++------------
1 files changed, 65 insertions(+), 24 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 bed35c8..ebf9d42 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
@@ -38,6 +38,7 @@
dar.*,
d.device_name,
d.status deviceStatus,
+ t.out_target,
/* 1=已关注,0=未关注 */
EXISTS (
SELECT
@@ -53,8 +54,38 @@
ja_fw_drone_alarm_record dar
left join
ja_fw_device d on dar.device_id = d.id
+ /* 关联出库去向表,看设备去了哪里 */
+ LEFT JOIN (
+ SELECT
+ device_id,
+ out_target,
+ ROW_NUMBER() OVER (
+ PARTITION BY
+ device_id
+ ORDER BY
+ create_time DESC
+ ) AS rn
+ FROM
+ ja_fw_device_track
+ WHERE
+ out_target IS NOT NULL
+ ) t
+ ON d.id = t.device_id AND t.rn = 1
<where>
- dar.is_deleted = 0
+ dar.is_deleted = 0
+ and d.track_status = 1
+ <if test="param2.regionName != null and param2.regionName != ''">
+ and (t.out_target = #{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>
@@ -117,21 +148,13 @@
<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 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.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>
@@ -161,16 +184,34 @@
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
- <if test="deptList != null and deptList.size > 0">
- and (create_dept in
- <foreach collection="deptList" item="deptId" open="(" separator="," close=")">
- #{deptId}
- </foreach>
+ ja_fw_drone_alarm_record dar
+ left join
+ ja_fw_device d on dar.device_id = d.id
+ /* 关联出库去向表,看设备去了哪里 */
+ LEFT JOIN (
+ SELECT
+ device_id,
+ out_target,
+ ROW_NUMBER() OVER (
+ PARTITION BY
+ device_id
+ ORDER BY
+ create_time DESC
+ ) AS rn
+ FROM
+ ja_fw_device_track
+ WHERE
+ out_target IS NOT NULL
+ ) t
+ ON d.id = t.device_id AND t.rn = 1
+ WHERE dar.is_deleted = 0
+ AND d.track_status = 1
+ AND d.is_deleted = 0
+ <if test="regionName != null and regionName != ''">
+ and (t.out_target = #{regionName}
<!-- 或者设备是共享给当前部门的 -->
<if test="currentDeptId != null and currentDeptId != '' ">
- or device_id in (
+ or dar.device_id in (
SELECT device_id FROM ja_fw_device_per_share
WHERE loan_to_dept_id = #{currentDeptId}
AND is_deleted = 0
--
Gitblit v1.9.3