16 files modified
1 files added
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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); |
| | | } |
| | | |
| | |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("area/fwDefenseScene") |
| | | @Api(value = "防控场景表", tags = "防控场景表接口") |
| | | @Api(value = "场景配置表", tags = "场景配置表接口") |
| | | public class FwDefenseSceneController extends BladeController { |
| | | |
| | | private final IFwDefenseSceneService fwDefenseSceneService; |
| | |
| | | */ |
| | | @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); |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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") |
| | |
| | | */ |
| | | 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获取区域 |
| | |
| | | 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 <= #{flyTime}) |
| | | and (ad.fly_date_end is null or ad.fly_date_end >= #{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 ( |
| | |
| | | */ |
| | | 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; |
| | |
| | | * 自定义分页 |
| | | * |
| | | * @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); |
| | | |
| | | |
| | | /** |
| | |
| | | <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"/> |
| | |
| | | |
| | | |
| | | <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 <= #{time}) |
| | | and (dsm.effective_date_end is null or dsm.effective_date_end >= #{time}) |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | |
| | |
| | | * @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); |
| | | |
| | | |
| | | /** |
| | |
| | | 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 ( |
| New file |
| | |
| | | /* |
| | | * 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; |
| | | |
| | | } |
| | | |
| | |
| | | * @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获取关联场景名称 |
| | |
| | | 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; |
| | |
| | | * 自定义分页 |
| | | * |
| | | * @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); |
| | | |
| | | |
| | | /** |
| | |
| | | * @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); |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | */ |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | @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) { |
| | |
| | | @ApiModelProperty(value = "关联场景配置ID") |
| | | private Long defenseSceneId; |
| | | /** |
| | | * 场景配置名称 |
| | | */ |
| | | @ApiModelProperty(value = "场景配置名称") |
| | | private String defenseSceneName; |
| | | /** |
| | | * 场景名称 |
| | | */ |
| | | @ApiModelProperty(value = "场景名称") |