From 63b484f3fceb54cf545b3c8b722a6f0fceae1689 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 10:54:08 +0800
Subject: [PATCH] sql改造其他模块改造

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml |    8 ++++----
 1 files changed, 4 insertions(+), 4 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 752ffc8..ee28d77 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
@@ -69,7 +69,7 @@
         ), 0)
         from ja_fw_area_divide ad
         where ad.is_deleted = 0
-        and find_in_set(ad.id, ds.area_divide_ids) > 0
+        and ad.id = ANY(string_to_array(ds.area_divide_ids, ',')::bigint[])
         ) as device_count
         from ja_fw_defense_scene_manage dsm
         left join ja_fw_defense_scene ds on ds.id = dsm.defense_scene_id::VARCHAR and ds.is_deleted = 0
@@ -103,7 +103,7 @@
                 ad.device_ids
             FROM ja_fw_defense_scene_manage dsm
             LEFT JOIN ja_fw_defense_scene ds ON ds.id = dsm.defense_scene_id::VARCHAR 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
+            LEFT JOIN ja_fw_area_divide ad ON ad.id = ANY(string_to_array(ds.area_divide_ids, ',')::bigint[]) AND ad.is_deleted = 0
             WHERE dsm.id = #{id}
         ) 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 != ''
@@ -115,7 +115,7 @@
         ds.scene_name as defense_scene_name
         from ja_fw_defense_scene_manage dsm
         left join ja_fw_defense_scene ds on ds.id = dsm.defense_scene_id::VARCHAR 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
+        left join ja_fw_area_divide ad on ad.id = ANY(string_to_array(ds.area_divide_ids, ',')::bigint[]) and ad.is_deleted = 0
         inner join (
                 SELECT
                     d.id
@@ -138,7 +138,7 @@
                 </if>
                 GROUP BY
                 d.id
-            ) dd on find_in_set(dd.id, ad.device_ids)
+            ) dd on dd.id = ANY(string_to_array(replace(ad.device_ids, ' ', ''), ',')::bigint[])
         <where>
             dsm.is_deleted = 0
             <if test="time != null">

--
Gitblit v1.9.3