From f0ad850a7a962dcf53c6c88e31de4bc2b1e20457 Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Tue, 13 Jan 2026 15:18:16 +0800
Subject: [PATCH] 设备和区域场景list 过滤时增加id返回已绑定的子数据
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml | 40 +++++++++++++++++++++++++++++++++-------
1 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
index 5185494..779463f 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -82,13 +82,39 @@
<where>
is_deleted = 0
<if test="isAreaSelect != null and isAreaSelect == 1">
- and not exists (
- select 1
- from ja_fw_area_divide ad
- where ad.is_deleted = 0
- and ad.device_ids is not null
- and ad.device_ids != ''
- and find_in_set(ja_fw_device.id, ad.device_ids)
+ and (
+ <choose>
+ <when test="areaId != null">
+ exists (
+ select 1
+ from ja_fw_area_divide ad
+ where ad.is_deleted = 0
+ and ad.id = #{areaId}
+ and ad.device_ids is not null
+ and ad.device_ids != ''
+ and find_in_set(ja_fw_device.id, ad.device_ids)
+ )
+ or not exists (
+ select 1
+ from ja_fw_area_divide ad
+ where ad.is_deleted = 0
+ and ad.device_ids is not null
+ and ad.device_ids != ''
+ and find_in_set(ja_fw_device.id, ad.device_ids)
+ and ad.id != #{areaId}
+ )
+ </when>
+ <otherwise>
+ not exists (
+ select 1
+ from ja_fw_area_divide ad
+ where ad.is_deleted = 0
+ and ad.device_ids is not null
+ and ad.device_ids != ''
+ and find_in_set(ja_fw_device.id, ad.device_ids)
+ )
+ </otherwise>
+ </choose>
)
</if>
</where>
--
Gitblit v1.9.3