吉安感知网项目-后端
rain
2026-01-30 291512d150c44fbb2b993903237d27ae6c4277e7
区域场景优化
16 files modified
1 files added
239 ■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwAreaDivideController.java 10 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneController.java 9 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneManageController.java 32 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.java 4 ●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.xml 15 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.java 22 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml 38 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml 8 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/param/FwDefenseSceneManagePageParam.java 42 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwAreaDivideService.java 2 ●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwDefenseSceneManageService.java 22 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwDefenseSceneService.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwAreaDivideServiceImpl.java 4 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneManageServiceImpl.java 16 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java 4 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/vo/FwDefenseSceneManageVO.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwAreaDivideController.java
@@ -44,9 +44,11 @@
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.springframework.format.annotation.DateTimeFormat;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import java.time.LocalDateTime;
import javax.servlet.http.HttpServletResponse;
/**
@@ -84,12 +86,14 @@
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "列表-不带分页", notes = "传入filterSelected或sceneId或areaTypeKeys")
    @ApiOperation(value = "列表-不带分页", notes = "传入filterSelected或sceneId或areaTypeKeys或isSetSceneManage或flyTime")
    public R<List<FwAreaDivideVO>> list(
        @ApiParam(value = "是否过滤已被选择的数据(1过滤 0不过滤)") @RequestParam(required = false) Integer filterSelected,
        @ApiParam(value = "场景id") @RequestParam(required = false) Long sceneId,
        @ApiParam(value = "区域类型key集合(逗号分隔)") @RequestParam(required = false) String areaTypeKeys) {
        List<FwAreaDivideVO> list = fwAreaDivideService.selectFwAreaDivideList(filterSelected, sceneId, areaTypeKeys);
        @ApiParam(value = "区域类型key集合(逗号分隔)") @RequestParam(required = false) String areaTypeKeys,
        @ApiParam(value = "是否按场景管理过滤(1是 0或空否)") @RequestParam(required = false) Integer isSetSceneManage,
        @ApiParam(value = "时间筛选(yyyy-MM-dd HH:mm:ss)") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime flyTime) {
        List<FwAreaDivideVO> list = fwAreaDivideService.selectFwAreaDivideList(filterSelected, sceneId, areaTypeKeys, isSetSceneManage, flyTime);
        return R.data(list);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneController.java
@@ -54,7 +54,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("area/fwDefenseScene")
@Api(value = "防控场景表", tags = "防控场景表接口")
@Api(value = "场景配置表", tags = "场景配置表接口")
public class FwDefenseSceneController extends BladeController {
    private final IFwDefenseSceneService fwDefenseSceneService;
@@ -77,12 +77,13 @@
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "列表", notes = "传入filterSelected或zoneId或areaId")
    @ApiOperation(value = "列表", notes = "传入filterSelected或zoneId或areaId或unbound")
    public R<List<FwDefenseSceneVO>> list(
        @ApiParam(value = "是否过滤已被选择的数据(1过滤 0不过滤)") @RequestParam(required = false) Integer filterSelected,
        @ApiParam(value = "防区id") @RequestParam(required = false) Long zoneId,
        @ApiParam(value = "区域id") @RequestParam(required = false) Long areaId) {
        List<FwDefenseSceneVO> list = fwDefenseSceneService.selectFwDefenseSceneList(filterSelected, zoneId, areaId);
        @ApiParam(value = "区域id") @RequestParam(required = false) Long areaId,
        @ApiParam(value = "是否仅返回未被场景管理绑定的数据(1是 0或空否)") @RequestParam(required = false) Integer unbound) {
        List<FwDefenseSceneVO> list = fwDefenseSceneService.selectFwDefenseSceneList(filterSelected, zoneId, areaId, unbound);
        return R.data(list);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneManageController.java
@@ -33,9 +33,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.sxkj.fw.area.dto.FwDefenseSceneManageDTO;
import org.sxkj.fw.area.entity.FwDefenseSceneManageEntity;
import org.sxkj.fw.area.param.FwDefenseSceneManagePageParam;
import org.sxkj.fw.area.vo.FwDefenseSceneManageVO;
import org.sxkj.fw.area.excel.FwDefenseSceneManageExcel;
import org.sxkj.fw.area.wrapper.FwDefenseSceneManageWrapper;
import org.sxkj.fw.area.service.IFwDefenseSceneManageService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
@@ -43,9 +43,11 @@
import org.springblade.core.tool.constant.BladeConstant;
import org.sxkj.fw.common.GenericConverter;
import org.sxkj.fw.common.IdParam;
import org.springframework.format.annotation.DateTimeFormat;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import java.util.Date;
import javax.servlet.http.HttpServletResponse;
/**
@@ -69,10 +71,11 @@
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入fwDefenseSceneManage")
    public R<FwDefenseSceneManageVO> detail(IdParam idParam) {
        FwDefenseSceneManageEntity detail = fwDefenseSceneManageService.getOne(
            Condition.getQueryWrapper(
                GenericConverter.convert(idParam, FwDefenseSceneManageEntity.class)));
        return R.data(FwDefenseSceneManageWrapper.build().entityVO(detail));
        if (idParam == null || idParam.getId() == null) {
            return R.fail("主键不能为空");
        }
        FwDefenseSceneManageVO detail = fwDefenseSceneManageService.selectFwDefenseSceneManageDetail(idParam.getId());
        return R.data(detail);
    }
    /**
@@ -80,13 +83,26 @@
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入fwDefenseSceneManage")
    public R<IPage<FwDefenseSceneManageVO>> page(FwDefenseSceneManageDTO fwDefenseSceneManage, Query query) {
        IPage<FwDefenseSceneManageVO> pages = fwDefenseSceneManageService.selectFwDefenseSceneManagePage(Condition.getPage(query), fwDefenseSceneManage);
    @ApiOperation(value = "分页", notes = "传入fwDefenseSceneManagePageParam")
    public R<IPage<FwDefenseSceneManageVO>> page(FwDefenseSceneManagePageParam fwDefenseSceneManagePageParam, Query query) {
        IPage<FwDefenseSceneManageVO> pages = fwDefenseSceneManageService.selectFwDefenseSceneManagePage(Condition.getPage(query), fwDefenseSceneManagePageParam);
        return R.data(pages);
    }
    /**
     * 场景管理表 列表
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "列表", notes = "传入time")
    public R<List<FwDefenseSceneManageVO>> list(
        @ApiParam(value = "时间筛选(yyyy-MM-dd HH:mm:ss)") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date time) {
        Date filterTime = time == null ? new Date() : time;
        List<FwDefenseSceneManageVO> list = fwDefenseSceneManageService.selectFwDefenseSceneManageList(filterTime);
        return R.data(list);
    }
    /**
     * 场景管理表 新增或修改
     */
    @PostMapping("/submit")
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.java
@@ -55,7 +55,9 @@
     */
    List<FwAreaDivideVO> selectFwAreaDivideList(@Param("filterSelected") Integer filterSelected,
        @Param("sceneId") Long sceneId,
        @Param("areaTypeKeyList") List<String> areaTypeKeyList);
        @Param("areaTypeKeyList") List<String> areaTypeKeyList,
        @Param("isSetSceneManage") Integer isSetSceneManage,
        @Param("flyTime") java.time.LocalDateTime flyTime);
    /**
     * 根据设备ID获取区域
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.xml
@@ -101,6 +101,21 @@
        left join ja_fw_police_station ps on ps.id = ad.police_station_id and ps.is_deleted = 0
        <where>
            ad.is_deleted = 0
            <if test="flyTime != null">
                and (ad.fly_date_start is null or ad.fly_date_start &lt;= #{flyTime})
                and (ad.fly_date_end is null or ad.fly_date_end &gt;= #{flyTime})
            </if>
            <if test="isSetSceneManage != null and isSetSceneManage == 1">
                and exists (
                    select 1
                    from ja_fw_defense_scene ds
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id and dsm.is_deleted = 0
                    where ds.is_deleted = 0
                      and ds.area_divide_ids is not null
                      and ds.area_divide_ids != ''
                      and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                )
            </if>
            <if test="filterSelected != null and filterSelected == 1">
                and (
                    not exists (
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.java
@@ -16,7 +16,7 @@
 */
package org.sxkj.fw.area.mapper;
import org.sxkj.fw.area.dto.FwDefenseSceneManageDTO;
import org.sxkj.fw.area.param.FwDefenseSceneManagePageParam;
import org.sxkj.fw.area.entity.FwDefenseSceneManageEntity;
import org.sxkj.fw.area.vo.FwDefenseSceneManageVO;
import org.sxkj.fw.area.excel.FwDefenseSceneManageExcel;
@@ -38,10 +38,26 @@
     * 自定义分页
     *
     * @param page
     * @param fwDefenseSceneManage
     * @param fwDefenseSceneManagePageParam
     * @return
     */
    List<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage page, FwDefenseSceneManageDTO fwDefenseSceneManage);
    List<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage page, FwDefenseSceneManagePageParam fwDefenseSceneManagePageParam);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    FwDefenseSceneManageVO selectFwDefenseSceneManageDetail(@Param("id") Long id);
    /**
     * 列表(按时间过滤有效区间)
     *
     * @param time
     * @return
     */
    List<FwDefenseSceneManageVO> selectFwDefenseSceneManageList(@Param("time") java.util.Date time);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneManageMapper.xml
@@ -6,6 +6,7 @@
    <resultMap id="fwDefenseSceneManageResultMap" type="org.sxkj.fw.area.vo.FwDefenseSceneManageVO">
        <result column="id" property="id"/>
        <result column="defense_scene_id" property="defenseSceneId"/>
        <result column="defense_scene_name" property="defenseSceneName"/>
        <result column="scene_name" property="sceneName"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
@@ -18,7 +19,42 @@
    <select id="selectFwDefenseSceneManagePage" resultMap="fwDefenseSceneManageResultMap">
        select * from ja_fw_defense_scene_manage where is_deleted = 0
        select
            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
        <where>
            dsm.is_deleted = 0
            <if test="param2.name != null and param2.name != ''">
                and dsm.scene_name like concat('%', #{param2.name}, '%')
            </if>
        </where>
    </select>
    <select id="selectFwDefenseSceneManageDetail" resultMap="fwDefenseSceneManageResultMap">
        select
            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
        where dsm.is_deleted = 0
          and dsm.id = #{id}
    </select>
    <select id="selectFwDefenseSceneManageList" resultMap="fwDefenseSceneManageResultMap">
        select
            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
        <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>
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.java
@@ -48,9 +48,10 @@
     * @param filterSelected
     * @param zoneId
     * @param areaId
     * @param unbound
     * @return
     */
    List<FwDefenseSceneVO> selectFwDefenseSceneList(@Param("filterSelected") Integer filterSelected, @Param("zoneId") Long zoneId, @Param("areaId") Long areaId);
    List<FwDefenseSceneVO> selectFwDefenseSceneList(@Param("filterSelected") Integer filterSelected, @Param("zoneId") Long zoneId, @Param("areaId") Long areaId, @Param("unbound") Integer unbound);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseSceneMapper.xml
@@ -53,6 +53,14 @@
        select ds.* from ja_fw_defense_scene ds
        <where>
            ds.is_deleted = 0
            <if test="unbound != null and unbound == 1">
                and not exists (
                    select 1
                    from ja_fw_defense_scene_manage dsm
                    where dsm.is_deleted = 0
                      and dsm.defense_scene_id = ds.id
                )
            </if>
            <if test="filterSelected != null and filterSelected == 1">
                and (
                    not exists (
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/param/FwDefenseSceneManagePageParam.java
New file
@@ -0,0 +1,42 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.sxkj.fw.area.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * 场景管理分页查询参数
 *
 * @author Aix
 * @since 2026-01-30
 */
@Data
public class FwDefenseSceneManagePageParam implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 场景名称(模糊)
     */
    @ApiModelProperty(value = "场景名称(模糊)")
    private String name;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwAreaDivideService.java
@@ -52,7 +52,7 @@
     * @param sceneId
     * @return
     */
    List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId, String areaTypeKeys);
    List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId, String areaTypeKeys, Integer isSetSceneManage, java.time.LocalDateTime flyTime);
    /**
     * 根据设备ID获取关联场景名称
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwDefenseSceneManageService.java
@@ -17,7 +17,7 @@
package org.sxkj.fw.area.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.area.dto.FwDefenseSceneManageDTO;
import org.sxkj.fw.area.param.FwDefenseSceneManagePageParam;
import org.sxkj.fw.area.entity.FwDefenseSceneManageEntity;
import org.sxkj.fw.area.vo.FwDefenseSceneManageVO;
import org.sxkj.fw.area.excel.FwDefenseSceneManageExcel;
@@ -36,10 +36,26 @@
     * 自定义分页
     *
     * @param page
     * @param fwDefenseSceneManage
     * @param fwDefenseSceneManagePageParam
     * @return
     */
    IPage<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage<FwDefenseSceneManageVO> page, FwDefenseSceneManageDTO fwDefenseSceneManage);
    IPage<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage<FwDefenseSceneManageVO> page, FwDefenseSceneManagePageParam fwDefenseSceneManagePageParam);
    /**
     * 详情
     *
     * @param id
     * @return
     */
    FwDefenseSceneManageVO selectFwDefenseSceneManageDetail(Long id);
    /**
     * 列表(按时间过滤有效区间)
     *
     * @param time
     * @return
     */
    List<FwDefenseSceneManageVO> selectFwDefenseSceneManageList(java.util.Date time);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwDefenseSceneService.java
@@ -46,9 +46,10 @@
     * @param filterSelected
     * @param zoneId
     * @param areaId
     * @param unbound
     * @return
     */
    List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId);
    List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId, Integer unbound);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwAreaDivideServiceImpl.java
@@ -71,9 +71,9 @@
    }
    @Override
    public List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId, String areaTypeKeys) {
    public List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId, String areaTypeKeys, Integer isSetSceneManage, java.time.LocalDateTime flyTime) {
        List<String> areaTypeKeyList = parseAreaTypeKeyList(areaTypeKeys);
        List<FwAreaDivideVO> areaDivideList = baseMapper.selectFwAreaDivideList(filterSelected, sceneId, areaTypeKeyList);
        List<FwAreaDivideVO> areaDivideList = baseMapper.selectFwAreaDivideList(filterSelected, sceneId, areaTypeKeyList, isSetSceneManage, flyTime);
        // 获取面数据
        if (areaDivideList != null && !areaDivideList.isEmpty()) {
            enrichWithExtensionData(areaDivideList);
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneManageServiceImpl.java
@@ -16,7 +16,7 @@
 */
package org.sxkj.fw.area.service.impl;
import org.sxkj.fw.area.dto.FwDefenseSceneManageDTO;
import org.sxkj.fw.area.param.FwDefenseSceneManagePageParam;
import org.sxkj.fw.area.entity.FwDefenseSceneManageEntity;
import org.sxkj.fw.area.vo.FwDefenseSceneManageVO;
import org.sxkj.fw.area.excel.FwDefenseSceneManageExcel;
@@ -38,8 +38,18 @@
public class FwDefenseSceneManageServiceImpl extends BaseServiceImpl<FwDefenseSceneManageMapper, FwDefenseSceneManageEntity> implements IFwDefenseSceneManageService {
    @Override
    public IPage<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage<FwDefenseSceneManageVO> page, FwDefenseSceneManageDTO fwDefenseSceneManage) {
        return page.setRecords(baseMapper.selectFwDefenseSceneManagePage(page, fwDefenseSceneManage));
    public IPage<FwDefenseSceneManageVO> selectFwDefenseSceneManagePage(IPage<FwDefenseSceneManageVO> page, FwDefenseSceneManagePageParam fwDefenseSceneManagePageParam) {
        return page.setRecords(baseMapper.selectFwDefenseSceneManagePage(page, fwDefenseSceneManagePageParam));
    }
    @Override
    public FwDefenseSceneManageVO selectFwDefenseSceneManageDetail(Long id) {
        return baseMapper.selectFwDefenseSceneManageDetail(id);
    }
    @Override
    public List<FwDefenseSceneManageVO> selectFwDefenseSceneManageList(java.util.Date time) {
        return baseMapper.selectFwDefenseSceneManageList(time);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java
@@ -137,8 +137,8 @@
    }
    @Override
    public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId) {
        return baseMapper.selectFwDefenseSceneList(filterSelected, zoneId, areaId);
    public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId, Integer unbound) {
        return baseMapper.selectFwDefenseSceneList(filterSelected, zoneId, areaId, unbound);
    }
    private List<Long> parseIdList(String ids) {
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/vo/FwDefenseSceneManageVO.java
@@ -48,6 +48,11 @@
    @ApiModelProperty(value = "关联场景配置ID")
    private Long defenseSceneId;
    /**
     * 场景配置名称
     */
    @ApiModelProperty(value = "场景配置名称")
    private String defenseSceneName;
    /**
     * 场景名称
     */
    @ApiModelProperty(value = "场景名称")