吉安感知网项目-后端
linwei
2026-01-22 f0aa8adb5cafc5829138bc0b096be7fd1e94b6f6
告警记录导出
6 files modified
1 files added
199 ■■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneAlarmRecordController.java 42 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneAlarmRecordExcel.java 104 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml 23 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/param/FwDroneAlarmRecordExportParam.java 12 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneAlarmRecordService.java 5 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java 8 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneAlarmRecordController.java
@@ -24,6 +24,7 @@
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
@@ -37,6 +38,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.param.FwDroneAlarmRecordExportParam;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
import org.sxkj.fw.record.wrapper.FwDroneAlarmRecordWrapper;
@@ -78,16 +80,6 @@
        FwDroneAlarmRecordEntity detail = fwDroneAlarmRecordService.getOne(Condition.getQueryWrapper(fwDroneAlarmRecord));
        return R.data(FwDroneAlarmRecordWrapper.build().entityVO(detail));
    }
    /**
     * 无人机告警表 分页
     */
    // @GetMapping("/list")
    // @ApiOperationSupport(order = 2)
    // @ApiOperation(value = "分页", notes = "传入fwDroneAlarmRecord")
    // public R<IPage<FwDroneAlarmRecordVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwDroneAlarmRecord, Query query) {
    //     IPage<FwDroneAlarmRecordEntity> pages = fwDroneAlarmRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(fwDroneAlarmRecord, FwDroneAlarmRecordEntity.class));
    //     return R.data(FwDroneAlarmRecordWrapper.build().pageVO(pages));
    // }
    /**
     * 无人机告警表 自定义分页
@@ -99,27 +91,6 @@
        IPage<FwDroneAlarmRecordVO> pages = fwDroneAlarmRecordService.selectFwDroneAlarmRecordPage(Condition.getPage(query), fwDroneAlarmRecord);
        return R.data(pages);
    }
    /**
     * 无人机告警表 新增
     */
    // @PostMapping("/save")
    // @ApiOperationSupport(order = 4)
    // @ApiOperation(value = "新增", notes = "传入fwDroneAlarmRecord")
    // public R save(@Valid @RequestBody FwDroneAlarmRecordDTO fwDroneAlarmRecord) {
    //     FwDroneAlarmRecordEntity fwDroneAlarmRecordEntity = Objects.requireNonNull(BeanUtil.copy(fwDroneAlarmRecord, FwDroneAlarmRecordEntity.class));
    //     return R.status(fwDroneAlarmRecordService.save(fwDroneAlarmRecordEntity));
    // }
    /**
     * 无人机告警表 修改
     */
    // @PostMapping("/update")
    // @ApiOperationSupport(order = 5)
    // @ApiOperation(value = "修改", notes = "传入fwDroneAlarmRecord")
    // public R update(@Valid @RequestBody FwDroneAlarmRecordEntity fwDroneAlarmRecord) {
    //     return R.status(fwDroneAlarmRecordService.updateById(fwDroneAlarmRecord));
    // }
    /**
     * 无人机告警表 新增或修改
@@ -149,13 +120,8 @@
    @GetMapping("/export-fwDroneAlarmRecord")
    @ApiOperationSupport(order = 9)
    @ApiOperation(value = "导出数据", notes = "传入fwDroneAlarmRecord")
    public void exportFwDroneAlarmRecord(@ApiIgnore @RequestParam Map<String, Object> fwDroneAlarmRecord, BladeUser bladeUser, HttpServletResponse response) {
        QueryWrapper<FwDroneAlarmRecordEntity> queryWrapper = Condition.getQueryWrapper(fwDroneAlarmRecord, FwDroneAlarmRecordEntity.class);
        //if (!AuthUtil.isAdministrator()) {
        //    queryWrapper.lambda().eq(FwDroneAlarmRecord::getTenantId, bladeUser.getTenantId());
        //}
        queryWrapper.lambda().eq(FwDroneAlarmRecordEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
        List<FwDroneAlarmRecordExcel> list = fwDroneAlarmRecordService.exportFwDroneAlarmRecord(queryWrapper);
    public void exportFwDroneAlarmRecord(FwDroneAlarmRecordExportParam fwDroneAlarmRecord, HttpServletResponse response) {
        List<FwDroneAlarmRecordExcel> list = fwDroneAlarmRecordService.exportFwDroneAlarmRecord(fwDroneAlarmRecord);
        ExcelUtil.export(response, "无人机告警表数据" + DateUtil.time(), "无人机告警表数据表", list, FwDroneAlarmRecordExcel.class);
    }
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneAlarmRecordExcel.java
@@ -46,12 +46,7 @@
    private static final long serialVersionUID = 1L;
    /**
     * 反无设备ID(关联ja_fw_device.id)
     */
    @ColumnWidth(20)
    @ExcelProperty("反无设备ID(关联ja_fw_device.id)")
    private Long deviceId;
    /**
     * 无人机名称
     */
@@ -62,22 +57,9 @@
     * 无人机序列号
     */
    @ColumnWidth(20)
    @ExcelProperty("无人机序列号")
    @ExcelProperty("序列号")
    private String droneSerialNo;
    /**
     * 无人机类型(微型机/植保机...)
     */
    @ColumnWidth(20)
    @ExcelProperty( value = "无人机类型(微型机/植保机...)",converter = ExcelDictConverter.class)
    @ExcelDictItemLabel(type = "droneType")
    @ExcelDictItem(type = "droneType")
    private String droneType;
    /**
     * 告警类型:实时告警/历史告警
     */
    @ColumnWidth(20)
    @ExcelProperty("告警类型:实时告警/历史告警")
    private String alarmType;
    /**
     * 告警时间
     */
@@ -85,20 +67,37 @@
    @ExcelProperty("告警时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date alarmTime;
    @ColumnWidth(20)
    @ExcelProperty("区域名称")
    private String areaName;
    /**
     * 无人机类型(微型机/植保机...)
     */
    @ColumnWidth(20)
    // @ExcelProperty(value = "设备类型", converter = ExcelDictConverter.class)
    @ExcelProperty(value = "设备类型")
    // @ExcelDictItemLabel(type = "droneType")
    // @ExcelDictItem(type = "droneType")
    private String droneType;
    /**
     * 触发原因
     */
    @ColumnWidth(20)
    @ExcelProperty("触发原因")
    private String triggerReason;
    /**
     * 飞行状态:侦测中/反制中
     * 停留时长 (秒)
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "飞行状态:侦测中/反制中", converter = ExcelDictConverter.class)
    @ExcelDictItemLabel(type = "flightStatus")
    @ExcelDictItem(type = "flightStatus")
    private String flightStatus;
    @ExcelProperty(value = "停留时长(秒)")
    private String stayDuration;
    /**
     * 当前经度
     */
@@ -111,55 +110,10 @@
    @ColumnWidth(20)
    @ExcelProperty("当前纬度")
    private Double latitude;
    /**
     * 信号频段(MHz)
     */
    @ColumnWidth(20)
    @ExcelProperty("信号频段(MHz)")
    private Integer signalFreqMhz;
    /**
     * 飞行高度(m)
     */
    @ColumnWidth(20)
    @ExcelProperty("飞行高度(m)")
    private Integer flightHeightM;
    /**
     * 飞行速度(m/s)
     */
    @ColumnWidth(20)
    @ExcelProperty("飞行速度(m/s)")
    private BigDecimal flightSpeedMs;
    /**
     * 停留时长 (秒)
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "停留时长(秒)")
    private String stayDuration;
    /**
     * 反制方式:信号干扰/诱导驱离/无
     */
    @ColumnWidth(20)
     @ExcelProperty(value = "反制方式:信号干扰/诱导驱离/无", converter = ExcelDictConverter.class)
    @ExcelDictItemLabel(type = "counterWay")
    @ExcelDictItem(type = "counterWay")
    private String counterWay;
    /**
     * 区域id ja_fw_area_divide
     */
    @ColumnWidth(20)
    @ExcelProperty("区域id ja_fw_area_divide")
    private String areaDivideId;
    /**
     * 场景id ja_fw_defense_scene.id
     */
    @ColumnWidth(20)
    @ExcelProperty("场景id ja_fw_defense_scene.id")
    private String defenseSceneId;
    /**
     * 区域编码
     */
    @ColumnWidth(20)
    @ExcelProperty("区域编码")
    private String areaCode;
    @ExcelProperty("设备编号")
    private String deviceSn;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.java
@@ -19,6 +19,7 @@
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.param.FwDroneAlarmRecordExportParam;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -48,10 +49,10 @@
    /**
     * 获取导出数据
     *
     * @param queryWrapper
     * @param fwDroneAlarmRecord
     * @return
     */
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(@Param("ew") Wrapper<FwDroneAlarmRecordEntity> queryWrapper);
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord( FwDroneAlarmRecordExportParam fwDroneAlarmRecord);
    /**
     * 告警类型统计
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
@@ -47,10 +47,12 @@
                and dar.device_id = #{param2.deviceId}
            </if>
            <if test="param2.droneName != null and param2.droneName != ''">
                and dar.drone_name like CONCAT('%', #{param2.droneName}, '%')
                and (
                dar.drone_name like CONCAT('%', #{param2.droneName}, '%')
            </if>
            <if test="param2.droneSerialNo != null and param2.droneSerialNo != ''">
                and dar.drone_serial_no = #{param2.droneSerialNo}
                or dar.drone_serial_no like CONCAT('%', #{param2.droneSerialNo}, '%')
                )
            </if>
            <if test="param2.droneType != null and param2.droneType != ''">
                and dar.drone_type = #{param2.droneType}
@@ -108,7 +110,22 @@
    <select id="exportFwDroneAlarmRecord" resultType="org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel">
        SELECT * FROM ja_fw_drone_alarm_record ${ew.customSqlSegment}
        select
        dar.*,
        d.device_name,
        d.status deviceStatus
        from
        ja_fw_drone_alarm_record dar
        left join ja_fw_device d on dar.device_id = d.id
        <where>
            dar.is_deleted = 0
            <if test="ids != null and ids.size() > 0">
                and dar.id in
                <foreach item="item" collection="ids" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </if>
        </where>
    </select>
    <select id="alarmTypeStatistics" resultType="org.sxkj.fw.cockpit.vo.AlarmStatisticsVO">
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/param/FwDroneAlarmRecordExportParam.java
New file
@@ -0,0 +1,12 @@
package org.sxkj.fw.record.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class FwDroneAlarmRecordExportParam {
    @ApiModelProperty("主键id,逗号分隔")
    private List<Long> ids;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneAlarmRecordService.java
@@ -20,6 +20,7 @@
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.param.FwDroneAlarmRecordExportParam;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -46,10 +47,10 @@
    /**
     * 导出数据
     *
     * @param queryWrapper
     * @param fwDroneAlarmRecord
     * @return
     */
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(Wrapper<FwDroneAlarmRecordEntity> queryWrapper);
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(FwDroneAlarmRecordExportParam fwDroneAlarmRecord);
    /**
     *
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
@@ -19,6 +19,7 @@
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.param.FwDroneAlarmRecordExportParam;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
import org.sxkj.fw.record.mapper.FwDroneAlarmRecordMapper;
@@ -45,11 +46,8 @@
    @Override
    public List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(Wrapper<FwDroneAlarmRecordEntity> queryWrapper) {
        List<FwDroneAlarmRecordExcel> fwDroneAlarmRecordList = baseMapper.exportFwDroneAlarmRecord(queryWrapper);
        //fwDroneAlarmRecordList.forEach(fwDroneAlarmRecord -> {
        //    fwDroneAlarmRecord.setTypeName(DictCache.getValue(DictEnum.YES_NO, FwDroneAlarmRecord.getType()));
        //});
    public List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(FwDroneAlarmRecordExportParam fwDroneAlarmRecord) {
        List<FwDroneAlarmRecordExcel> fwDroneAlarmRecordList = baseMapper.exportFwDroneAlarmRecord(fwDroneAlarmRecord);
        return fwDroneAlarmRecordList;
    }