drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseZoneController.java
@@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.sxkj.fw.area.dto.FwDefenseZoneDTO; import org.sxkj.fw.area.entity.FwDefenseZoneEntity; import org.sxkj.fw.area.vo.FwAreaDivideVO; import org.sxkj.fw.area.vo.FwDefenseZoneVO; import org.sxkj.fw.area.excel.FwDefenseZoneExcel; import org.sxkj.fw.area.service.IFwDefenseZoneService; @@ -78,6 +79,23 @@ } return R.data(detail); } /** * 根据防区id获取区域列表 */ @GetMapping("/areaList") @ApiOperationSupport(order = 2) @ApiOperation(value = "区域列表", notes = "传入防区id") public R<List<FwAreaDivideVO>> areaList(@ApiParam(value = "防区id", required = true) @RequestParam Long zoneId) { if (zoneId == null) { return R.fail("防区id不能为空"); } List<FwAreaDivideVO> list = fwDefenseZoneService.selectFwAreaDivideListByZoneId(zoneId); if (list == null) { return R.fail("防区不存在"); } return R.data(list); } // /** // * 防区管理表 分页 // */ drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseZoneMapper.java
@@ -18,6 +18,7 @@ import org.sxkj.fw.area.entity.FwDefenseZoneEntity; import org.sxkj.fw.area.dto.FwDefenseZoneDTO; import org.sxkj.fw.area.vo.FwAreaDivideVO; import org.sxkj.fw.area.vo.FwDefenseZoneVO; import org.sxkj.fw.area.excel.FwDefenseZoneExcel; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -52,6 +53,22 @@ FwDefenseZoneVO selectFwDefenseZoneDetail(@Param("id") Long id); /** * 校验防区是否存在 * * @param zoneId * @return */ Integer selectDefenseZoneExists(@Param("zoneId") Long zoneId); /** * 根据防区id获取区域列表 * * @param zoneId * @return */ List<FwAreaDivideVO> selectFwAreaDivideListByZoneId(@Param("zoneId") Long zoneId); /** * 新增(几何字段使用文本入库) * * @param fwDefenseZone drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseZoneMapper.xml
@@ -21,6 +21,86 @@ <result column="is_deleted" property="isDeleted"/> </resultMap> <resultMap id="fwAreaDivideResultMap" type="org.sxkj.fw.area.vo.FwAreaDivideVO"> <result column="id" property="id"/> <result column="area_name" property="areaName"/> <result column="longitude" property="longitude"/> <result column="latitude" property="latitude"/> <result column="area_size" property="areaSize"/> <result column="geom" property="geom"/> <result column="area_type" property="areaType"/> <result column="trigger_condition" property="triggerCondition"/> <result column="response_mechanism" property="responseMechanism"/> <result column="control_level" property="controlLevel"/> <result column="police_station_id" property="policeStationId"/> <result column="device_ids" property="deviceIds"/> <result column="fly_date_start" property="flyDateStart"/> <result column="fly_date_end" property="flyDateEnd"/> <result column="area_code" property="areaCode"/> <result column="police_station_name" property="policeStationName"/> <result column="police_station_contact_person" property="policeStationContactPerson"/> <result column="police_station_contact_phone" property="policeStationContactPhone"/> <result column="create_user" property="createUser"/> <result column="create_dept" property="createDept"/> <result column="create_time" property="createTime"/> <result column="update_user" property="updateUser"/> <result column="update_time" property="updateTime"/> <result column="status" property="status"/> <result column="is_deleted" property="isDeleted"/> </resultMap> <select id="selectDefenseZoneExists" resultType="java.lang.Integer"> select count(1) from ja_fw_defense_zone where is_deleted = 0 and id = #{zoneId} </select> <select id="selectFwAreaDivideListByZoneId" resultMap="fwAreaDivideResultMap"> select distinct ad.id, ad.area_name, ad.longitude, ad.latitude, ad.area_size, case when ad.geom is null then null when ST_SRID(ad.geom) is null or ST_SRID(ad.geom) = 0 then ST_AsText(ad.geom) else concat(ST_AsText(ST_SwapXY(ad.geom)), ' | ', ST_SRID(ad.geom)) end as geom, ad.area_type, ad.trigger_condition, ad.response_mechanism, ad.control_level, ad.police_station_id, ad.device_ids, ad.fly_date_start, ad.fly_date_end, ad.area_code, ps.station_name as police_station_name, ps.contact_person as police_station_contact_person, ps.contact_phone as police_station_contact_phone, ad.create_user, ad.create_dept, ad.create_time, ad.update_user, ad.update_time, ad.status, ad.is_deleted from ja_fw_defense_zone dz join ja_fw_defense_scene ds on ds.is_deleted = 0 and 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, replace(dz.defense_scene_ids, ' ', '')) join ja_fw_area_divide ad on ad.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, ' ', '')) left join ja_fw_police_station ps on ps.id = ad.police_station_id and ps.is_deleted = 0 </select> <select id="selectFwDefenseZonePage" resultMap="fwDefenseZoneResultMap"> select drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwDefenseZoneService.java
@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import org.sxkj.fw.area.dto.FwDefenseZoneDTO; import org.sxkj.fw.area.entity.FwDefenseZoneEntity; import org.sxkj.fw.area.vo.FwAreaDivideVO; import org.sxkj.fw.area.vo.FwDefenseZoneVO; import org.sxkj.fw.area.excel.FwDefenseZoneExcel; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -49,6 +50,13 @@ */ FwDefenseZoneVO selectFwDefenseZoneDetail(Long id); /** * 根据防区id获取关联区域列表 * * @param zoneId * @return */ List<FwAreaDivideVO> selectFwAreaDivideListByZoneId(Long zoneId); /** * 导出数据 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java
@@ -23,6 +23,7 @@ import org.sxkj.fw.area.entity.FwAreaDivideEntity; import org.sxkj.fw.area.entity.FwDefenseSceneEntity; import org.sxkj.fw.area.entity.FwDefenseZoneEntity; import org.sxkj.fw.area.vo.FwAreaDivideVO; import org.sxkj.fw.area.vo.FwDefenseZoneVO; import org.sxkj.fw.area.excel.FwDefenseZoneExcel; import org.sxkj.fw.area.mapper.FwDefenseZoneMapper; @@ -74,6 +75,22 @@ return detail; } @Override public List<FwAreaDivideVO> selectFwAreaDivideListByZoneId(Long zoneId) { if (zoneId == null) { return Collections.emptyList(); } Integer exists = baseMapper.selectDefenseZoneExists(zoneId); if (exists == null || exists == 0) { return null; } List<FwAreaDivideVO> areaList = baseMapper.selectFwAreaDivideListByZoneId(zoneId); if (areaList == null) { return Collections.emptyList(); } return areaList; } private void fillDefenseZoneStatistics(List<FwDefenseZoneVO> records) { if (records == null || records.isEmpty()) { return;