吉安感知网项目-后端
linwei
2026-01-08 58ab95398518445ee6e8fb83a5a95ee534fd0541
记录优化
26 files modified
499 ■■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwAreaDivideController.java 49 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneController.java 26 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/dto/FwAreaDivideDTO.java 88 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwAreaDivideService.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwAreaDivideServiceImpl.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneAlarmRecordController.java 2 ●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java 2 ●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordDetailController.java 2 ●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java 12 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneFlightRecordDTO.java 17 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java 7 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java 10 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml 74 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordDetailMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordDetailMapper.xml 24 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml 46 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneAlarmRecordService.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneFlightRecordDetailService.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneFlightRecordService.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneFlightRecordDetailServiceImpl.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneFlightRecordServiceImpl.java 3 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/vo/FwDroneAlarmRecordVO.java 104 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwAreaDivideController.java
@@ -27,10 +27,12 @@
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.sxkj.fw.area.dto.FwAreaDivideDTO;
import org.sxkj.fw.area.entity.FwAreaDivideEntity;
import org.sxkj.fw.area.vo.FwAreaDivideVO;
import org.sxkj.fw.area.excel.FwAreaDivideExcel;
@@ -40,9 +42,11 @@
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import java.util.Objects;
import javax.servlet.http.HttpServletResponse;
/**
@@ -72,13 +76,13 @@
    /**
     * 区域划分表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入fwAreaDivide")
    public R<IPage<FwAreaDivideVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwAreaDivide, Query query) {
        IPage<FwAreaDivideEntity> pages = fwAreaDivideService.page(Condition.getPage(query), Condition.getQueryWrapper(fwAreaDivide, FwAreaDivideEntity.class));
        return R.data(FwAreaDivideWrapper.build().pageVO(pages));
    }
    // @GetMapping("/list")
    // @ApiOperationSupport(order = 2)
    // @ApiOperation(value = "分页", notes = "传入fwAreaDivide")
    // public R<IPage<FwAreaDivideVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwAreaDivide, Query query) {
    //     IPage<FwAreaDivideEntity> pages = fwAreaDivideService.page(Condition.getPage(query), Condition.getQueryWrapper(fwAreaDivide, FwAreaDivideEntity.class));
    //     return R.data(FwAreaDivideWrapper.build().pageVO(pages));
    // }
    /**
     * 区域划分表 自定义分页
@@ -86,7 +90,7 @@
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入fwAreaDivide")
    public R<IPage<FwAreaDivideVO>> page(FwAreaDivideVO fwAreaDivide, Query query) {
    public R<IPage<FwAreaDivideVO>> page(FwAreaDivideDTO fwAreaDivide, Query query) {
        IPage<FwAreaDivideVO> pages = fwAreaDivideService.selectFwAreaDividePage(Condition.getPage(query), fwAreaDivide);
        return R.data(pages);
    }
@@ -94,22 +98,22 @@
    /**
     * 区域划分表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入fwAreaDivide")
    public R save(@Valid @RequestBody FwAreaDivideEntity fwAreaDivide) {
        return R.status(fwAreaDivideService.save(fwAreaDivide));
    }
    // @PostMapping("/save")
    // @ApiOperationSupport(order = 4)
    // @ApiOperation(value = "新增", notes = "传入fwAreaDivide")
    // public R save(@Valid @RequestBody FwAreaDivideEntity fwAreaDivide) {
    //     return R.status(fwAreaDivideService.save(fwAreaDivide));
    // }
    /**
     * 区域划分表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入fwAreaDivide")
    public R update(@Valid @RequestBody FwAreaDivideEntity fwAreaDivide) {
        return R.status(fwAreaDivideService.updateById(fwAreaDivide));
    }
    // @PostMapping("/update")
    // @ApiOperationSupport(order = 5)
    // @ApiOperation(value = "修改", notes = "传入fwAreaDivide")
    // public R update(@Valid @RequestBody FwAreaDivideEntity fwAreaDivide) {
    //     return R.status(fwAreaDivideService.updateById(fwAreaDivide));
    // }
    /**
     * 区域划分表 新增或修改
@@ -117,8 +121,9 @@
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入fwAreaDivide")
    public R submit(@Valid @RequestBody FwAreaDivideEntity fwAreaDivide) {
        return R.status(fwAreaDivideService.saveOrUpdate(fwAreaDivide));
    public R submit(@Valid @RequestBody FwAreaDivideDTO fwAreaDivide) {
        FwAreaDivideEntity fwAreaDivideEntity = Objects.requireNonNull(BeanUtil.copy(fwAreaDivide, FwAreaDivideEntity.class));
        return R.status(fwAreaDivideService.saveOrUpdate(fwAreaDivideEntity));
    }
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/controller/FwDefenseSceneController.java
@@ -72,13 +72,13 @@
    /**
     * 防控场景表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入fwDefenseScene")
    public R<IPage<FwDefenseSceneVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwDefenseScene, Query query) {
        IPage<FwDefenseSceneEntity> pages = fwDefenseSceneService.page(Condition.getPage(query), Condition.getQueryWrapper(fwDefenseScene, FwDefenseSceneEntity.class));
        return R.data(FwDefenseSceneWrapper.build().pageVO(pages));
    }
    // @GetMapping("/list")
    // @ApiOperationSupport(order = 2)
    // @ApiOperation(value = "分页", notes = "传入fwDefenseScene")
    // public R<IPage<FwDefenseSceneVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwDefenseScene, Query query) {
    //     IPage<FwDefenseSceneEntity> pages = fwDefenseSceneService.page(Condition.getPage(query), Condition.getQueryWrapper(fwDefenseScene, FwDefenseSceneEntity.class));
    //     return R.data(FwDefenseSceneWrapper.build().pageVO(pages));
    // }
    /**
     * 防控场景表 自定义分页
@@ -94,12 +94,12 @@
    /**
     * 防控场景表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入fwDefenseScene")
    public R save(@Valid @RequestBody FwDefenseSceneEntity fwDefenseScene) {
        return R.status(fwDefenseSceneService.save(fwDefenseScene));
    }
    // @PostMapping("/save")
    // @ApiOperationSupport(order = 4)
    // @ApiOperation(value = "新增", notes = "传入fwDefenseScene")
    // public R save(@Valid @RequestBody FwDefenseSceneEntity fwDefenseScene) {
    //     return R.status(fwDefenseSceneService.save(fwDefenseScene));
    // }
    /**
     * 防控场景表 修改
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/dto/FwAreaDivideDTO.java
@@ -16,9 +16,17 @@
 */
package org.sxkj.fw.area.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.fw.area.entity.FwAreaDivideEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
/**
 * 区域划分表 数据传输对象实体类
@@ -27,8 +35,84 @@
 * @since 2026-01-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FwAreaDivideDTO extends FwAreaDivideEntity {
public class FwAreaDivideDTO  {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    private Long id;
    /**
     * 区域名称
     */
    @ApiModelProperty(value = "区域名称")
    private String areaName;
    /**
     * 区域中心经度
     */
    @ApiModelProperty(value = "区域中心经度")
    private Double longitude;
    /**
     * 区域中心纬度
     */
    @ApiModelProperty(value = "区域中心纬度")
    private Double latitude;
    /**
     * 区域面积(km²)
     */
    @ApiModelProperty(value = "区域面积(km²)")
    private BigDecimal areaSize;
    /**
     * 经纬度面(存储地理面数据)
     */
    @ApiModelProperty(value = "经纬度面(存储地理面数据)")
    private byte[] geom;
    /**
     * 区域类型:报警区/重点管制区
     */
    @ApiModelProperty(value = "区域类型:报警区/重点管制区")
    private String areaType;
    /**
     * 触发条件
     */
    @ApiModelProperty(value = "触发条件")
    private String triggerCondition;
    /**
     * 响应机制内容
     */
    @ApiModelProperty(value = "响应机制内容")
    private String responseMechanism;
    /**
     * 管控级别:日常/重点/严密
     */
    @ApiModelProperty(value = "管控级别:日常/重点/严密")
    private String controlLevel;
    /**
     * 关联派出所id
     */
    @ApiModelProperty(value = "关联派出所id")
    private Long policeStationId;
    /**
     * 可飞行时间段-开始
     */
    @ApiModelProperty(value = "可飞行时间段-开始")
    private LocalTime flyTimeStart;
    /**
     * 可飞行时间段-结束
     */
    @ApiModelProperty(value = "可飞行时间段-结束")
    private LocalTime flyTimeEnd;
    /**
     * 可飞行日期-开始
     */
    @ApiModelProperty(value = "可飞行日期-开始")
    private LocalDate flyDateStart;
    /**
     * 可飞行日期-结束
     */
    @ApiModelProperty(value = "可飞行日期-结束")
    private LocalDate flyDateEnd;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwAreaDivideMapper.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.area.mapper;
import org.sxkj.fw.area.dto.FwAreaDivideDTO;
import org.sxkj.fw.area.entity.FwAreaDivideEntity;
import org.sxkj.fw.area.vo.FwAreaDivideVO;
import org.sxkj.fw.area.excel.FwAreaDivideExcel;
@@ -40,7 +41,7 @@
     * @param fwAreaDivide
     * @return
     */
    List<FwAreaDivideVO> selectFwAreaDividePage(IPage page, FwAreaDivideVO fwAreaDivide);
    List<FwAreaDivideVO> selectFwAreaDividePage(IPage page, FwAreaDivideDTO fwAreaDivide);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/IFwAreaDivideService.java
@@ -17,6 +17,7 @@
package org.sxkj.fw.area.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.area.dto.FwAreaDivideDTO;
import org.sxkj.fw.area.entity.FwAreaDivideEntity;
import org.sxkj.fw.area.vo.FwAreaDivideVO;
import org.sxkj.fw.area.excel.FwAreaDivideExcel;
@@ -38,7 +39,7 @@
     * @param fwAreaDivide
     * @return
     */
    IPage<FwAreaDivideVO> selectFwAreaDividePage(IPage<FwAreaDivideVO> page, FwAreaDivideVO fwAreaDivide);
    IPage<FwAreaDivideVO> selectFwAreaDividePage(IPage<FwAreaDivideVO> page, FwAreaDivideDTO fwAreaDivide);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwAreaDivideServiceImpl.java
@@ -18,6 +18,7 @@
import org.springblade.core.secure.utils.AuthUtil;
import org.sxkj.common.utils.HeaderUtils;
import org.sxkj.fw.area.dto.FwAreaDivideDTO;
import org.sxkj.fw.area.entity.FwAreaDivideEntity;
import org.sxkj.fw.area.vo.FwAreaDivideVO;
import org.sxkj.fw.area.excel.FwAreaDivideExcel;
@@ -40,7 +41,7 @@
public class FwAreaDivideServiceImpl extends BaseServiceImpl<FwAreaDivideMapper, FwAreaDivideEntity> implements IFwAreaDivideService {
    @Override
    public IPage<FwAreaDivideVO> selectFwAreaDividePage(IPage<FwAreaDivideVO> page, FwAreaDivideVO fwAreaDivide) {
    public IPage<FwAreaDivideVO> selectFwAreaDividePage(IPage<FwAreaDivideVO> page, FwAreaDivideDTO fwAreaDivide) {
        return page.setRecords(baseMapper.selectFwAreaDividePage(page, fwAreaDivide));
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneAlarmRecordController.java
@@ -95,7 +95,7 @@
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入fwDroneAlarmRecord")
    public R<IPage<FwDroneAlarmRecordVO>> page(FwDroneAlarmRecordVO fwDroneAlarmRecord, Query query) {
    public R<IPage<FwDroneAlarmRecordVO>> page(FwDroneAlarmRecordDTO fwDroneAlarmRecord, Query query) {
        IPage<FwDroneAlarmRecordVO> pages = fwDroneAlarmRecordService.selectFwDroneAlarmRecordPage(Condition.getPage(query), fwDroneAlarmRecord);
        return R.data(pages);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java
@@ -89,7 +89,7 @@
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入fwDroneFlightRecord")
    public R<IPage<FwDroneFlightRecordVO>> page(FwDroneFlightRecordVO fwDroneFlightRecord, Query query) {
    public R<IPage<FwDroneFlightRecordVO>> page(FwDroneFlightRecordDTO fwDroneFlightRecord, Query query) {
        IPage<FwDroneFlightRecordVO> pages = fwDroneFlightRecordService.selectFwDroneFlightRecordPage(Condition.getPage(query), fwDroneFlightRecord);
        return R.data(pages);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordDetailController.java
@@ -90,7 +90,7 @@
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入fwDroneFlightRecordDetail")
    public R<IPage<FwDroneFlightRecordDetailVO>> page(FwDroneFlightRecordDetailVO fwDroneFlightRecordDetail, Query query) {
    public R<IPage<FwDroneFlightRecordDetailVO>> page(FwDroneFlightRecordDetailDTO fwDroneFlightRecordDetail, Query query) {
        IPage<FwDroneFlightRecordDetailVO> pages = fwDroneFlightRecordDetailService.selectFwDroneFlightRecordDetailPage(Condition.getPage(query), fwDroneFlightRecordDetail);
        return R.data(pages);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java
@@ -129,4 +129,16 @@
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    @ApiModelProperty(value = "开始时间")
    private String startTime;
    @ApiModelProperty(value = "结束时间")
    private String endTime;
    @ApiModelProperty(value = "设备类型")
    private String deviceType;
    @ApiModelProperty(value = "区域名称")
    private String areaName;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneFlightRecordDTO.java
@@ -65,13 +65,24 @@
    /**
     * 停留时长(HH:MM:SS)
     */
    @ApiModelProperty(value = "停留时长(HH:MM:SS)")
    @JsonFormat(pattern = "HH:mm:ss")
    private LocalTime stayDuration;
    @ApiModelProperty(value = "停留时长(秒)")
    private String stayDuration;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    @ApiModelProperty(value = "开始时间")
    private String startTime;
    @ApiModelProperty(value = "结束时间")
    private String endTime;
    @ApiModelProperty(value = "设备类型")
    private String deviceType;
    @ApiModelProperty(value = "区域名称")
    private String areaName;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java
@@ -151,4 +151,11 @@
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    /**
     * 设备类型(察打一体/便捷侦测箱/反制枪)
     */
    @TableField("device_type")
    @ApiModelProperty(value = "设备类型(察打一体/便捷侦测箱/反制枪)")
    private String deviceType;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java
@@ -45,6 +45,10 @@
    @TableField("device_id")
    @ApiModelProperty(value = "反无设备ID(关联ja_fw_device.id)")
    private Long deviceId;
    @TableField("area_divide_id")
    @ApiModelProperty(value = "区域id ja_fw_area_divide")
    private Long areaDivideId;
    /**
     * 无人机名称
     */
@@ -70,11 +74,11 @@
    @ApiModelProperty(value = "触发原因/类型")
    private String triggerType;
    /**
     * 停留时长(HH:MM:SS)
     * 停留时长(秒)
     */
    @TableField("stay_duration")
    @ApiModelProperty(value = "停留时长(HH:MM:SS)")
    private LocalTime stayDuration;
    @ApiModelProperty(value = "停留时长(秒)")
    private String stayDuration;
    /**
     * 区域编码
     */
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.mapper;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
@@ -40,7 +41,7 @@
     * @param fwDroneAlarmRecord
     * @return
     */
    List<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage page, FwDroneAlarmRecordVO fwDroneAlarmRecord);
    List<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage page, FwDroneAlarmRecordDTO fwDroneAlarmRecord);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
@@ -33,87 +33,73 @@
    </resultMap>
    <select id="selectFwDroneAlarmRecordPage" resultMap="fwDroneAlarmRecordResultMap">
        select * from ja_fw_drone_alarm_record
    <select id="selectFwDroneAlarmRecordPage" resultType="org.sxkj.fw.record.vo.FwDroneAlarmRecordVO">
        select dar.*  from
        ja_fw_drone_alarm_record dar
            left join ja_fw_area_divide ad on dar.area_divide_id = ad.id
        <where>
            is_deleted = 0
            <if test="param2.id != null and param2.id != ''">
                and id = #{param2.id}
            </if>
            dar.is_deleted = 0
            <if test="param2.deviceId != null and param2.deviceId != ''">
                and device_id = #{param2.deviceId}
                and dar.device_id = #{param2.deviceId}
            </if>
            <if test="param2.droneName != null and param2.droneName != ''">
                and drone_name = #{param2.droneName}
                and dar.drone_name like CONCAT('%', #{param2.droneName}, '%')
            </if>
            <if test="param2.droneSerialNo != null and param2.droneSerialNo != ''">
                and drone_serial_no = #{param2.droneSerialNo}
                and dar.drone_serial_no = #{param2.droneSerialNo}
            </if>
            <if test="param2.droneType != null and param2.droneType != ''">
                and drone_type = #{param2.droneType}
                and dar.drone_type = #{param2.droneType}
            </if>
            <if test="param2.alarmType != null and param2.alarmType != ''">
                and alarm_type = #{param2.alarmType}
                and dar.alarm_type = #{param2.alarmType}
            </if>
            <if test="param2.alarmTime != null and param2.alarmTime != ''">
                and alarm_time = #{param2.alarmTime}
                and dar.alarm_time = #{param2.alarmTime}
            </if>
            <if test="param2.triggerReason != null and param2.triggerReason != ''">
                and trigger_reason = #{param2.triggerReason}
                and dar.trigger_reason = #{param2.triggerReason}
            </if>
            <if test="param2.flightStatus != null and param2.flightStatus != ''">
                and flight_status = #{param2.flightStatus}
                and dar.flight_status = #{param2.flightStatus}
            </if>
            <if test="param2.longitude != null and param2.longitude != ''">
                and longitude = #{param2.longitude}
                and dar.longitude = #{param2.longitude}
            </if>
            <if test="param2.latitude != null and param2.latitude != ''">
                and latitude = #{param2.latitude}
                and dar.latitude = #{param2.latitude}
            </if>
            <if test="param2.signalFreqMhz != null and param2.signalFreqMhz != ''">
                and signal_freq_mhz = #{param2.signalFreqMhz}
                and dar.signal_freq_mhz = #{param2.signalFreqMhz}
            </if>
            <if test="param2.flightHeightM != null and param2.flightHeightM != ''">
                and flight_height_m = #{param2.flightHeightM}
                and dar.flight_height_m = #{param2.flightHeightM}
            </if>
            <if test="param2.flightSpeedMs != null and param2.flightSpeedMs != ''">
                and flight_speed_ms = #{param2.flightSpeedMs}
                and dar.flight_speed_ms = #{param2.flightSpeedMs}
            </if>
            <if test="param2.stayDuration != null and param2.stayDuration != ''">
                and stay_duration = #{param2.stayDuration}
                and dar.stay_duration = #{param2.stayDuration}
            </if>
            <if test="param2.counterWay != null and param2.counterWay != ''">
                and counter_way = #{param2.counterWay}
                and dar.counter_way = #{param2.counterWay}
            </if>
            <if test="param2.areaDivideId != null and param2.areaDivideId != ''">
                and area_divide_id = #{param2.areaDivideId}
                and dar.area_divide_id = #{param2.areaDivideId}
            </if>
            <if test="param2.defenseSceneId != null and param2.defenseSceneId != ''">
                and defense_scene_id = #{param2.defenseSceneId}
                and dar.defense_scene_id = #{param2.defenseSceneId}
            </if>
            <if test="param2.areaCode != null and param2.areaCode != ''">
                and area_code = #{param2.areaCode}
            <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != ''">
                and dar.alarm_time BETWEEN #{param2.startTime} AND #{param2.endTime}
            </if>
            <if test="param2.createUser != null and param2.createUser != ''">
                and create_user = #{param2.createUser}
            <if test="param2.deviceType != null and param2.deviceType != ''">
                and dar.device_type = #{param2.deviceType}
            </if>
            <if test="param2.createDept != null and param2.createDept != ''">
                and create_dept = #{param2.createDept}
            </if>
            <if test="param2.createTime != null and param2.createTime != ''">
                and create_time = #{param2.createTime}
            </if>
            <if test="param2.updateUser != null and param2.updateUser != ''">
                and update_user = #{param2.updateUser}
            </if>
            <if test="param2.updateTime != null and param2.updateTime != ''">
                and update_time = #{param2.updateTime}
            </if>
            <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}
            <if test="param2.areaName != null and param2.areaName != ''">
                and ad.area_name like CONCAT('%', #{param2.areaName}, '%')
            </if>
        </where>
    </select>
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordDetailMapper.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.mapper;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDetailDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordDetailEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordDetailVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordDetailExcel;
@@ -40,7 +41,7 @@
     * @param fwDroneFlightRecordDetail
     * @return
     */
    List<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage page, FwDroneFlightRecordDetailVO fwDroneFlightRecordDetail);
    List<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage page, FwDroneFlightRecordDetailDTO fwDroneFlightRecordDetail);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordDetailMapper.xml
@@ -24,9 +24,6 @@
        select * from ja_fw_drone_flight_record_detail
        <where>
            is_deleted = 0
            <if test="param2.id != null and param2.id != ''">
                and id = #{param2.id}
            </if>
            <if test="param2.flightRecordId != null and param2.flightRecordId != ''">
                and flight_record_id = #{param2.flightRecordId}
            </if>
@@ -41,27 +38,6 @@
            </if>
            <if test="param2.areaCode != null and param2.areaCode != ''">
                and area_code = #{param2.areaCode}
            </if>
            <if test="param2.createUser != null and param2.createUser != ''">
                and create_user = #{param2.createUser}
            </if>
            <if test="param2.createDept != null and param2.createDept != ''">
                and create_dept = #{param2.createDept}
            </if>
            <if test="param2.createTime != null and param2.createTime != ''">
                and create_time = #{param2.createTime}
            </if>
            <if test="param2.updateUser != null and param2.updateUser != ''">
                and update_user = #{param2.updateUser}
            </if>
            <if test="param2.updateTime != null and param2.updateTime != ''">
                and update_time = #{param2.updateTime}
            </if>
            <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}
            </if>
        </where>
    </select>
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.mapper;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordExcel;
@@ -40,7 +41,7 @@
     * @param fwDroneFlightRecord
     * @return
     */
    List<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage page, FwDroneFlightRecordVO fwDroneFlightRecord);
    List<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage page, FwDroneFlightRecordDTO fwDroneFlightRecord);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml
@@ -23,53 +23,39 @@
    <select id="selectFwDroneFlightRecordPage" resultMap="fwDroneFlightRecordResultMap">
        select * from ja_fw_drone_flight_record
        select dfr.* from ja_fw_drone_flight_record dfr
        left join ja_fw_area_divide ad on dfr.area_divide_id = ad.id
        <where>
            is_deleted = 0
            <if test="param2.id != null and param2.id != ''">
                and id = #{param2.id}
            </if>
            dfr.is_deleted = 0
            <if test="param2.deviceId != null and param2.deviceId != ''">
                and device_id = #{param2.deviceId}
                and dfr.device_id = #{param2.deviceId}
            </if>
            <if test="param2.droneName != null and param2.droneName != ''">
                and drone_name = #{param2.droneName}
                and dfr.drone_name like CONCAT('%', #{param2.droneName}, '%')
            </if>
            <if test="param2.serialNo != null and param2.serialNo != ''">
                and serial_no = #{param2.serialNo}
                and dfr.serial_no = #{param2.serialNo}
            </if>
            <if test="param2.alarmTime != null and param2.alarmTime != ''">
                and alarm_time = #{param2.alarmTime}
                and dfr.alarm_time = #{param2.alarmTime}
            </if>
            <if test="param2.triggerType != null and param2.triggerType != ''">
                and trigger_type = #{param2.triggerType}
                and dfr.trigger_type = #{param2.triggerType}
            </if>
            <if test="param2.stayDuration != null and param2.stayDuration != ''">
                and stay_duration = #{param2.stayDuration}
                and dfr.stay_duration = #{param2.stayDuration}
            </if>
            <if test="param2.areaCode != null and param2.areaCode != ''">
                and area_code = #{param2.areaCode}
                and dfr.area_code = #{param2.areaCode}
            </if>
            <if test="param2.createUser != null and param2.createUser != ''">
                and create_user = #{param2.createUser}
            <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != ''">
                and dfr.alarm_time BETWEEN #{param2.startTime} AND #{param2.endTime}
            </if>
            <if test="param2.createDept != null and param2.createDept != ''">
                and create_dept = #{param2.createDept}
            <if test="param2.deviceType != null and param2.deviceType != ''">
                and dfr.device_type = #{param2.deviceType}
            </if>
            <if test="param2.createTime != null and param2.createTime != ''">
                and create_time = #{param2.createTime}
            </if>
            <if test="param2.updateUser != null and param2.updateUser != ''">
                and update_user = #{param2.updateUser}
            </if>
            <if test="param2.updateTime != null and param2.updateTime != ''">
                and update_time = #{param2.updateTime}
            </if>
            <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}
            <if test="param2.areaName != null and param2.areaName != ''">
                and ad.area_name like CONCAT('%', #{param2.areaName}, '%')
            </if>
        </where>
    </select>
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneAlarmRecordService.java
@@ -17,6 +17,7 @@
package org.sxkj.fw.record.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
@@ -38,7 +39,7 @@
     * @param fwDroneAlarmRecord
     * @return
     */
    IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordVO fwDroneAlarmRecord);
    IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordDTO fwDroneAlarmRecord);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneFlightRecordDetailService.java
@@ -17,6 +17,7 @@
package org.sxkj.fw.record.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDetailDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordDetailEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordDetailVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordDetailExcel;
@@ -38,7 +39,7 @@
     * @param fwDroneFlightRecordDetail
     * @return
     */
    IPage<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage<FwDroneFlightRecordDetailVO> page, FwDroneFlightRecordDetailVO fwDroneFlightRecordDetail);
    IPage<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage<FwDroneFlightRecordDetailVO> page, FwDroneFlightRecordDetailDTO fwDroneFlightRecordDetail);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneFlightRecordService.java
@@ -17,6 +17,7 @@
package org.sxkj.fw.record.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordExcel;
@@ -38,7 +39,7 @@
     * @param fwDroneFlightRecord
     * @return
     */
    IPage<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage<FwDroneFlightRecordVO> page, FwDroneFlightRecordVO fwDroneFlightRecord);
    IPage<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage<FwDroneFlightRecordVO> page, FwDroneFlightRecordDTO fwDroneFlightRecord);
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.service.impl;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
@@ -37,7 +38,7 @@
public class FwDroneAlarmRecordServiceImpl extends BaseServiceImpl<FwDroneAlarmRecordMapper, FwDroneAlarmRecordEntity> implements IFwDroneAlarmRecordService {
    @Override
    public IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordVO fwDroneAlarmRecord) {
    public IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordDTO fwDroneAlarmRecord) {
        return page.setRecords(baseMapper.selectFwDroneAlarmRecordPage(page, fwDroneAlarmRecord));
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneFlightRecordDetailServiceImpl.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.service.impl;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDetailDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordDetailEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordDetailVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordDetailExcel;
@@ -37,7 +38,7 @@
public class FwDroneFlightRecordDetailServiceImpl extends BaseServiceImpl<FwDroneFlightRecordDetailMapper, FwDroneFlightRecordDetailEntity> implements IFwDroneFlightRecordDetailService {
    @Override
    public IPage<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage<FwDroneFlightRecordDetailVO> page, FwDroneFlightRecordDetailVO fwDroneFlightRecordDetail) {
    public IPage<FwDroneFlightRecordDetailVO> selectFwDroneFlightRecordDetailPage(IPage<FwDroneFlightRecordDetailVO> page, FwDroneFlightRecordDetailDTO fwDroneFlightRecordDetail) {
        return page.setRecords(baseMapper.selectFwDroneFlightRecordDetailPage(page, fwDroneFlightRecordDetail));
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneFlightRecordServiceImpl.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.fw.record.service.impl;
import org.sxkj.fw.record.dto.FwDroneFlightRecordDTO;
import org.sxkj.fw.record.entity.FwDroneFlightRecordEntity;
import org.sxkj.fw.record.vo.FwDroneFlightRecordVO;
import org.sxkj.fw.record.excel.FwDroneFlightRecordExcel;
@@ -37,7 +38,7 @@
public class FwDroneFlightRecordServiceImpl extends BaseServiceImpl<FwDroneFlightRecordMapper, FwDroneFlightRecordEntity> implements IFwDroneFlightRecordService {
    @Override
    public IPage<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage<FwDroneFlightRecordVO> page, FwDroneFlightRecordVO fwDroneFlightRecord) {
    public IPage<FwDroneFlightRecordVO> selectFwDroneFlightRecordPage(IPage<FwDroneFlightRecordVO> page, FwDroneFlightRecordDTO fwDroneFlightRecord) {
        return page.setRecords(baseMapper.selectFwDroneFlightRecordPage(page, fwDroneFlightRecord));
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/vo/FwDroneAlarmRecordVO.java
@@ -16,10 +16,16 @@
 */
package org.sxkj.fw.record.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 无人机告警表 视图实体类
@@ -28,8 +34,102 @@
 * @since 2026-01-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FwDroneAlarmRecordVO extends FwDroneAlarmRecordEntity {
public class FwDroneAlarmRecordVO  {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    private Long id;
    /**
     * 反无设备ID(关联ja_fw_device.id)
     */
    @ApiModelProperty(value = "反无设备ID(关联ja_fw_device.id)")
    private Long deviceId;
    /**
     * 无人机名称
     */
    @ApiModelProperty(value = "无人机名称")
    private String droneName;
    /**
     * 无人机序列号
     */
    @ApiModelProperty(value = "无人机序列号")
    private String droneSerialNo;
    /**
     * 无人机类型(微型机/植保机...)
     */
    @ApiModelProperty(value = "无人机类型(微型机/植保机...)")
    private String droneType;
    /**
     * 告警类型:实时告警/历史告警
     */
    @ApiModelProperty(value = "告警类型:实时告警/历史告警")
    private String alarmType;
    /**
     * 告警时间
     */
    @ApiModelProperty(value = "告警时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date alarmTime;
    /**
     * 触发原因
     */
    @ApiModelProperty(value = "触发原因")
    private String triggerReason;
    /**
     * 飞行状态:侦测中/反制中
     */
    @ApiModelProperty(value = "飞行状态:侦测中/反制中")
    private String flightStatus;
    /**
     * 当前经度
     */
    @ApiModelProperty(value = "当前经度")
    private Double longitude;
    /**
     * 当前纬度
     */
    @ApiModelProperty(value = "当前纬度")
    private Double latitude;
    /**
     * 信号频段(MHz)
     */
    @ApiModelProperty(value = "信号频段(MHz)")
    private Integer signalFreqMhz;
    /**
     * 飞行高度(m)
     */
    @ApiModelProperty(value = "飞行高度(m)")
    private Integer flightHeightM;
    /**
     * 飞行速度(m/s)
     */
    @ApiModelProperty(value = "飞行速度(m/s)")
    private BigDecimal flightSpeedMs;
    /**
     * 停留时长 (秒)
     */
    @ApiModelProperty(value = "停留时长(秒)")
    private String stayDuration;
    /**
     * 反制方式:信号干扰/诱导驱离/无
     */
    @ApiModelProperty(value = "反制方式:信号干扰/诱导驱离/无")
    private String counterWay;
    /**
     * 区域名称
     */
    @ApiModelProperty(value = "区域名称")
    private String areaName;
    /**
     * 区域编码
     */
    @ApiModelProperty(value = "区域编码")
    private String areaCode;
    /**
     * 设备类型(察打一体/便捷侦测箱/反制枪)
     */
    @ApiModelProperty(value = "设备类型(察打一体/便捷侦测箱/反制枪)")
    private String deviceType;
}