From b954d7a119eb635394bf4ff3619a9ab4b4978e48 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 09:33:34 +0800
Subject: [PATCH] sql改造首页

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 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 5ebbd1b..752ffc8 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
@@ -26,7 +26,7 @@
             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 = dsm.defense_scene_id and ds.is_deleted = 0
+        left join ja_fw_defense_scene ds on ds.id = dsm.defense_scene_id::VARCHAR and ds.is_deleted = 0
         <where>
             dsm.is_deleted = 0
             <if test="param2.name != null and param2.name != ''">
@@ -46,7 +46,7 @@
             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 = dsm.defense_scene_id and ds.is_deleted = 0
+        left join ja_fw_defense_scene ds on ds.id = dsm.defense_scene_id::VARCHAR and ds.is_deleted = 0
         where dsm.is_deleted = 0
           and dsm.id = #{id}
     </select>
@@ -72,7 +72,7 @@
         and find_in_set(ad.id, ds.area_divide_ids) > 0
         ) as device_count
         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_defense_scene ds on ds.id = dsm.defense_scene_id::VARCHAR and ds.is_deleted = 0
         <where>
             dsm.is_deleted = 0
             <if test="time != null">
@@ -102,7 +102,7 @@
             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_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
             WHERE dsm.id = #{id}
         ) ad ON CHAR_LENGTH(ad.device_ids) - CHAR_LENGTH(REPLACE(ad.device_ids, ',', '')) >= numbers.n - 1
@@ -114,7 +114,7 @@
         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 = dsm.defense_scene_id and ds.is_deleted = 0
+        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
         inner join (
                 SELECT
@@ -125,12 +125,12 @@
                     d.is_deleted = 0
                     AND d.is_enabled = 1
                     AND d.final_outbound_area IS NOT NULL
-                <if test="regionCode != null and regionCode != ''">
-                    and ( d.final_outbound_area_code like concat(#{regionCode},'%')
-                    <if test="currentDeptId != null and currentDeptId != '' ">
+        <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 = #{currentDeptId}
+                WHERE loan_to_dept_id = #{fwBaseInfo.currentDeptId}
                         AND is_deleted = 0
                         )
                     </if>
@@ -141,6 +141,10 @@
             ) dd on find_in_set(dd.id, ad.device_ids)
         <where>
             dsm.is_deleted = 0
+            <if test="time != null">
+                and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{time})
+                and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{time})
+            </if>
         </where>
     </select>
 

--
Gitblit v1.9.3