From 4e48664942bbefe70699ca43d25cbbd56ecc8daa Mon Sep 17 00:00:00 2001
From: xiebin <vip_xiaobin810@163.com>
Date: Mon, 19 Jan 2026 15:17:12 +0800
Subject: [PATCH] update-维修计划状态更新、新增定时器修改状态

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml
index c0301a4..b2c4e36 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml
@@ -3,7 +3,7 @@
 <mapper namespace="org.sxkj.fw.area.mapper.FwDefenseSceneMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="fwDefenseSceneResultMap" type="org.sxkj.fw.area.entity.FwDefenseSceneEntity">
+    <resultMap id="fwDefenseSceneResultMap" type="org.sxkj.fw.area.vo.FwDefenseSceneVO">
         <result column="id" property="id"/>
         <result column="scene_name" property="sceneName"/>
         <result column="scene_type" property="sceneType"/>
@@ -14,7 +14,6 @@
         <result column="defense_area" property="defenseArea"/>
         <result column="device_mode" property="deviceMode"/>
         <result column="area_divide_ids" property="areaDivideIds"/>
-        <result column="device_ids" property="deviceIds"/>
         <result column="area_code" property="areaCode"/>
         <result column="create_user" property="createUser"/>
         <result column="create_dept" property="createDept"/>
@@ -34,7 +33,7 @@
                 and id = #{param2.id}
             </if>
             <if test="param2.sceneName != null and param2.sceneName != ''">
-                and scene_name = #{param2.sceneName}
+                and scene_name like concat('%', #{param2.sceneName}, '%')
             </if>
             <if test="param2.sceneType != null and param2.sceneType != ''">
                 and scene_type = #{param2.sceneType}
@@ -46,7 +45,7 @@
                 and latitude = #{param2.latitude}
             </if>
             <if test="param2.defenseLeader != null and param2.defenseLeader != ''">
-                and defense_leader = #{param2.defenseLeader}
+                and defense_leader like concat('%', #{param2.defenseLeader}, '%')
             </if>
             <if test="param2.leaderPhone != null and param2.leaderPhone != ''">
                 and leader_phone = #{param2.leaderPhone}
@@ -59,9 +58,6 @@
             </if>
             <if test="param2.areaDivideIds != null and param2.areaDivideIds != ''">
                 and area_divide_ids = #{param2.areaDivideIds}
-            </if>
-            <if test="param2.deviceIds != null and param2.deviceIds != ''">
-                and device_ids = #{param2.deviceIds}
             </if>
             <if test="param2.areaCode != null and param2.areaCode != ''">
                 and area_code = #{param2.areaCode}
@@ -84,8 +80,40 @@
             <if test="param2.status != null and param2.status != ''">
                 and status = #{param2.status}
             </if>
-            <if test="param2.isDeleted != null and param2.isDeleted != ''">
-                and is_deleted = #{param2.isDeleted}
+        </where>
+    </select>
+
+    <select id="selectFwDefenseSceneList" resultMap="fwDefenseSceneResultMap">
+        select ds.* from ja_fw_defense_scene ds
+        <where>
+            ds.is_deleted = 0
+            <if test="filterSelected != null and filterSelected == 1">
+                and (
+                    not exists (
+                        select 1
+                        from ja_fw_defense_zone dz
+                        where dz.is_deleted = 0
+                          and dz.defense_scene_ids is not null
+                          and dz.defense_scene_ids != ''
+                          and find_in_set(ds.id, dz.defense_scene_ids)
+                    )
+                    <if test="zoneId != null">
+                        or exists (
+                            select 1
+                            from ja_fw_defense_zone dz
+                            where dz.is_deleted = 0
+                              and dz.id = #{zoneId}
+                              and dz.defense_scene_ids is not null
+                              and dz.defense_scene_ids != ''
+                              and find_in_set(ds.id, dz.defense_scene_ids)
+                        )
+                    </if>
+                )
+            </if>
+            <if test="areaId != null and (filterSelected == null or filterSelected != 1)">
+                and ds.area_divide_ids is not null
+                and ds.area_divide_ids != ''
+                and find_in_set(#{areaId}, replace(ds.area_divide_ids, ' ', ''))
             </if>
         </where>
     </select>

--
Gitblit v1.9.3