From 11106d9e169c919f8ceedf5621c7ac59f195ca7f Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 07 Apr 2026 19:26:07 +0800
Subject: [PATCH] opt: 人大金仓数据库改造

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml |   43 ++++++++++++++++++++++---------------------
 1 files changed, 22 insertions(+), 21 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 477565a..fd8cec2 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
@@ -116,31 +116,32 @@
         dsm.*,
         ds.scene_name as defense_scene_name
         from ja_fw_defense_scene_manage dsm
-        left join ja_fw_defense_scene ds on ds.id::VARCHAR = dsm.defense_scene_id::VARCHAR and ds.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
+        left join ja_fw_defense_scene ds on ds.id::text = dsm.defense_scene_id::text and ds.is_deleted = 0
+        left join ja_fw_area_divide ad on ad.id::text = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')) and ad.is_deleted = 0
         inner join (
-                SELECT
-                    d.id
-                FROM
-                    ja_fw_device d
-                WHERE
-                    d.is_deleted = 0
-                    AND d.is_enabled = 1
-                    AND d.final_outbound_area IS NOT NULL
+        SELECT
+        d.id
+        FROM
+        ja_fw_device d
+        WHERE
+        d.is_deleted = 0
+        AND d.is_enabled = 1
+        AND d.final_outbound_area IS NOT NULL
         <if test="fwBaseInfo.regionCode != null and fwBaseInfo.regionCode != ''">
             and ( d.final_outbound_area_code like concat(#{fwBaseInfo.regionCode},'%')
             <if test="fwBaseInfo.currentDeptId != null and fwBaseInfo.currentDeptId != '' ">
-                        or d.id in (
-                        SELECT device_id FROM ja_fw_device_per_share
-                WHERE loan_to_dept_id = #{fwBaseInfo.currentDeptId}
-                        AND is_deleted = 0
-                        )
-                    </if>
-                    )
-                </if>
-                GROUP BY
-                d.id
-            ) dd ON dd.id::text = ANY(string_to_array(replace(ad.device_ids, ' ', ''), ','))
+                or d.id in (
+                SELECT device_id FROM ja_fw_device_per_share
+                WHERE
+                loan_to_dept_id = #{fwBaseInfo.currentDeptId}::bigint
+                AND is_deleted = 0
+                )
+            </if>
+            )
+        </if>
+        GROUP BY
+        d.id
+        ) dd ON dd.id::text = ANY(string_to_array(replace(ad.device_ids, ' ', ''), ','))
         <where>
             dsm.is_deleted = 0
             <if test="time != null">

--
Gitblit v1.9.3