From 9e57c59ef51e3baf6999eb8936ac27c1774d416f Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 30 Jan 2026 19:55:18 +0800
Subject: [PATCH] 设备出库+入库+场景管理优化
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml
index 3e5e20b..571b201 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml
@@ -62,4 +62,26 @@
SELECT * FROM ja_fw_defense_scene_manage ${ew.customSqlSegment}
</select>
+ <select id="selectDeviceId" parameterType="java.lang.Long" resultType="java.lang.Long">
+ <!-- 步骤1: 根据输入的ja_fw_defense_scene_manage.id获取对应的defense_scene_id -->
+ <!-- 步骤2: 通过defense_scene_id获取ja_fw_defense_scene中的area_divide_ids -->
+ <!-- 步骤3: 根据area_divide_ids获取所有ja_fw_area_divide记录的device_ids -->
+ <!-- 步骤4: 解析逗号分隔的device_ids并返回所有设备ID -->
+ SELECT DISTINCT CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(ad.device_ids, ',', numbers.n), ',', -1) AS UNSIGNED) AS device_id
+ FROM (
+ SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
+ UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
+ UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15
+ ) numbers
+ INNER JOIN (
+ SELECT
+ ad.device_ids
+ FROM ja_fw_defense_scene_manage dsm
+ LEFT JOIN ja_fw_defense_scene ds ON ds.id = dsm.defense_scene_id AND ds.is_deleted = 0
+ LEFT JOIN ja_fw_area_divide ad ON FIND_IN_SET(ad.id, ds.area_divide_ids) > 0 AND ad.is_deleted = 0
+ WHERE dsm.id = #{id} AND dsm.is_deleted = 0
+ ) ad ON CHAR_LENGTH(ad.device_ids) - CHAR_LENGTH(REPLACE(ad.device_ids, ',', '')) >= numbers.n - 1
+ WHERE ad.device_ids IS NOT NULL AND ad.device_ids != ''
+ </select>
+
</mapper>
--
Gitblit v1.9.3