From 33ab5566da759239cdde4e80464ee293e4154fc3 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 09 Jan 2026 10:44:01 +0800
Subject: [PATCH] 数据驾驶舱

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/AlarmStatisticsVO.java                    |   61 +++++++
 drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/dto/FwEffectEvalDTO.java                   |   92 +++++++++++
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java                   |   28 +++
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java            |  114 ++++++++++++++
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml           |    3 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwDeviceConfigEntity.java           |    2 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java          |    7 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwEffectEvalController.java     |   46 +++--
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml          |   16 +
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneFlightRecordExcel.java           |   55 ++----
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java         |    6 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java                |    2 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/device/dto/FwDeviceDTO.java                          |    6 
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java |    6 
 14 files changed, 382 insertions(+), 62 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java
new file mode 100644
index 0000000..766f654
--- /dev/null
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java
@@ -0,0 +1,114 @@
+package org.sxkj.fw.cockpit.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+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.springframework.web.bind.annotation.*;
+import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
+import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
+import org.sxkj.fw.detection.dto.FwEffectEvalDTO;
+import org.sxkj.fw.detection.entity.FwEffectEvalEntity;
+import org.sxkj.fw.detection.service.IFwEffectEvalService;
+import org.sxkj.fw.device.dto.FwDeviceDTO;
+import org.sxkj.fw.device.entity.FwDeviceEntity;
+import org.sxkj.fw.device.service.IFwDeviceService;
+import org.sxkj.fw.device.vo.FwDeviceVO;
+import org.sxkj.fw.device.wrapper.FwDeviceWrapper;
+import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
+import org.sxkj.fw.record.service.IFwDroneAlarmRecordService;
+import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * 数据驾驶舱
+ *
+ * @author lw
+ * @since 2026-01-08
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("cockpit/dataCockpit")
+@Api(value = "驾驶舱", tags = "数据驾驶舱")
+public class CockpitController {
+
+	private final IFwDroneAlarmRecordService fwDroneAlarmRecordService;
+
+	private final IFwDeviceService fwDeviceService;
+
+	private final IFwEffectEvalService fwEffectEvalService;
+
+
+	/**
+	 * 历史告警、实时告警
+	 */
+	@GetMapping("/alarmLog")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "历史告警/实时告警", notes = "传入fwDroneAlarmRecord")
+	public R<IPage<FwDroneAlarmRecordVO>> page(FwDroneAlarmRecordDTO fwDroneAlarmRecord, Query query) {
+		IPage<FwDroneAlarmRecordVO> pages = fwDroneAlarmRecordService.selectFwDroneAlarmRecordPage(Condition.getPage(query), fwDroneAlarmRecord);
+		return R.data(pages);
+	}
+
+	/**
+	 * 设备查询 自定义分页
+	 */
+	@GetMapping("/deviceSearch")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "设备查询", notes = "传入fwDevice")
+	public R<IPage<FwDeviceVO>> page(FwDeviceDTO fwDevice, Query query) {
+		IPage<FwDeviceEntity> pages = fwDeviceService.selectFwDevicePage(Condition.getPage(query), fwDevice);
+		return R.data(FwDeviceWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 设备统计接口
+	 */
+	@GetMapping("/deviceStatistics")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "设备统计", notes = "返回设备统计、无线电、光电、雷达等数据")
+	public R<DeviceStatisticsVO> getDeviceStatistics() {
+		DeviceStatisticsVO statistics = new DeviceStatisticsVO();
+		// 假设从服务层获取统计数据,这里仅示例填充数据
+		statistics.setDetectCount(3);
+		statistics.setCountermeasuresCount(4);
+		return R.data(statistics);
+	}
+
+	/**
+	 * 告警记录统计接口
+	 */
+	@GetMapping("/alarmStatistics")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "告警记录统计", notes = "返回实时告警、设备告警、历史告警数量")
+	public R<AlarmStatisticsVO> getAlarmStatistics() {
+		AlarmStatisticsVO statistics = new AlarmStatisticsVO();
+		// 假设从服务层获取统计数据,这里仅示例填充数据
+		statistics.setDeviceCount(5);
+		statistics.setRadioCount(1);
+		statistics.setOpticalCount(2);
+		statistics.setRadarCount(2);
+		statistics.setRealTimeAlarmCount(5);
+		statistics.setDeviceAlarmCount(5);
+		statistics.setHistoryAlarmCount(5);
+		return R.data(statistics);
+	}
+
+	/**
+	 * 信号干扰,诱导驱离
+	 */
+	@PostMapping("/interferenceAndExpulsion")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "信号干扰,诱导驱离", notes = "传入fwEffectEval")
+	public R submit(@Valid @RequestBody FwEffectEvalDTO fwEffectEval) {
+		FwEffectEvalEntity fwEffectEvalEntity = Objects.requireNonNull(BeanUtil.copy(fwEffectEval, FwEffectEvalEntity.class));
+		return R.status(fwEffectEvalService.saveOrUpdate(fwEffectEvalEntity));
+	}
+}
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/AlarmStatisticsVO.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/AlarmStatisticsVO.java
new file mode 100644
index 0000000..bd7789d
--- /dev/null
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/AlarmStatisticsVO.java
@@ -0,0 +1,61 @@
+package org.sxkj.fw.cockpit.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 告警记录统计视图对象
+ *
+ * @author lw
+ * @since 2026-01-09
+ */
+@Data
+public class AlarmStatisticsVO {
+
+	/**
+	 * 告警总数
+	 */
+	@ApiModelProperty(value = "告警总数")
+	private Integer realTimeAlarmCount;
+
+	/**
+	 * 设备告警数量
+	 */
+	@ApiModelProperty(value = "设备告警数量")
+	private Integer deviceAlarmCount;
+
+	/**
+	 * 历史告警数量
+	 */
+	@ApiModelProperty(value = "历史告警数量")
+	private Integer historyAlarmCount;
+
+
+
+	/**
+	 * 设备总数
+	 */
+	@ApiModelProperty(value = "设备总数")
+	private Integer deviceCount;
+
+	/**
+	 * 无线电数量
+	 */
+	@ApiModelProperty(value = "无线电数量")
+	private Integer radioCount;
+
+	/**
+	 * 光电数量
+	 */
+	@ApiModelProperty(value = "光电数量")
+	private Integer opticalCount;
+
+	/**
+	 * 雷达数量
+	 */
+	@ApiModelProperty(value = "雷达数量")
+	private Integer radarCount;
+
+
+}
+
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java
new file mode 100644
index 0000000..c09ecfd
--- /dev/null
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java
@@ -0,0 +1,28 @@
+package org.sxkj.fw.cockpit.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 设备统计视图对象
+ *
+ * @author lw
+ * @since 2026-01-09
+ */
+@Data
+public class DeviceStatisticsVO {
+
+	/**
+	 * 侦测设备数量
+	 */
+	@ApiModelProperty(value = "侦测设备数量")
+	private Integer detectCount;
+
+	/**
+	 * 反制设备数量
+	 */
+	@ApiModelProperty(value = "反制设备数量")
+	private Integer countermeasuresCount;
+
+
+}
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwEffectEvalController.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwEffectEvalController.java
index 1517667..681348b 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwEffectEvalController.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwEffectEvalController.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.detection.dto.FwEffectEvalDTO;
 import org.sxkj.fw.detection.entity.FwEffectEvalEntity;
 import org.sxkj.fw.detection.vo.FwEffectEvalVO;
 import org.sxkj.fw.detection.excel.FwEffectEvalExcel;
@@ -43,6 +45,7 @@
 import springfox.documentation.annotations.ApiIgnore;
 import java.util.Map;
 import java.util.List;
+import java.util.Objects;
 import javax.servlet.http.HttpServletResponse;
 
 /**
@@ -72,13 +75,13 @@
 	/**
 	 * 反制效果评估表 分页
 	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入fwEffectEval")
-	public R<IPage<FwEffectEvalVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwEffectEval, Query query) {
-		IPage<FwEffectEvalEntity> pages = fwEffectEvalService.page(Condition.getPage(query), Condition.getQueryWrapper(fwEffectEval, FwEffectEvalEntity.class));
-		return R.data(FwEffectEvalWrapper.build().pageVO(pages));
-	}
+	// @GetMapping("/list")
+	// @ApiOperationSupport(order = 2)
+	// @ApiOperation(value = "分页", notes = "传入fwEffectEval")
+	// public R<IPage<FwEffectEvalVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwEffectEval, Query query) {
+	// 	IPage<FwEffectEvalEntity> pages = fwEffectEvalService.page(Condition.getPage(query), Condition.getQueryWrapper(fwEffectEval, FwEffectEvalEntity.class));
+	// 	return R.data(FwEffectEvalWrapper.build().pageVO(pages));
+	// }
 
 	/**
 	 * 反制效果评估表 自定义分页
@@ -94,22 +97,22 @@
 	/**
 	 * 反制效果评估表 新增
 	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入fwEffectEval")
-	public R save(@Valid @RequestBody FwEffectEvalEntity fwEffectEval) {
-		return R.status(fwEffectEvalService.save(fwEffectEval));
-	}
+	// @PostMapping("/save")
+	// @ApiOperationSupport(order = 4)
+	// @ApiOperation(value = "新增", notes = "传入fwEffectEval")
+	// public R save(@Valid @RequestBody FwEffectEvalEntity fwEffectEval) {
+	// 	return R.status(fwEffectEvalService.save(fwEffectEval));
+	// }
 
 	/**
 	 * 反制效果评估表 修改
 	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入fwEffectEval")
-	public R update(@Valid @RequestBody FwEffectEvalEntity fwEffectEval) {
-		return R.status(fwEffectEvalService.updateById(fwEffectEval));
-	}
+	// @PostMapping("/update")
+	// @ApiOperationSupport(order = 5)
+	// @ApiOperation(value = "修改", notes = "传入fwEffectEval")
+	// public R update(@Valid @RequestBody FwEffectEvalEntity fwEffectEval) {
+	// 	return R.status(fwEffectEvalService.updateById(fwEffectEval));
+	// }
 
 	/**
 	 * 反制效果评估表 新增或修改
@@ -117,8 +120,9 @@
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入fwEffectEval")
-	public R submit(@Valid @RequestBody FwEffectEvalEntity fwEffectEval) {
-		return R.status(fwEffectEvalService.saveOrUpdate(fwEffectEval));
+	public R submit(@Valid @RequestBody FwEffectEvalDTO fwEffectEval) {
+		FwEffectEvalEntity fwEffectEvalEntity = Objects.requireNonNull(BeanUtil.copy(fwEffectEval, FwEffectEvalEntity.class));
+		return R.status(fwEffectEvalService.saveOrUpdate(fwEffectEvalEntity));
 	}
 
 	/**
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/dto/FwEffectEvalDTO.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/dto/FwEffectEvalDTO.java
index 328e304..13fe026 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/dto/FwEffectEvalDTO.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/dto/FwEffectEvalDTO.java
@@ -16,9 +16,14 @@
  */
 package org.sxkj.fw.detection.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import org.sxkj.fw.detection.entity.FwEffectEvalEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+
+import java.util.Date;
 
 /**
  * 反制效果评估表 数据传输对象实体类
@@ -27,8 +32,91 @@
  * @since 2026-01-08
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class FwEffectEvalDTO extends FwEffectEvalEntity {
+public class FwEffectEvalDTO {
 	private static final long serialVersionUID = 1L;
 
+	@ApiModelProperty("主键id")
+	private Long id;
+
+	/**
+	 * 告警记录ID(ja_fw_drone_alarm_record.id)
+	 */
+	@ApiModelProperty(value = "告警记录ID(ja_fw_drone_alarm_record.id)")
+	private Long alarmRecordId;
+	/**
+	 * 反制设备ID(ja_fw_device.id)
+	 */
+	@ApiModelProperty(value = "反制设备ID(ja_fw_device.id)")
+	private Long deviceId;
+	/**
+	 * 反制设备编码(快照)
+	 */
+	@ApiModelProperty(value = "反制设备编码(快照)")
+	private String deviceCode;
+	/**
+	 * 反制设备名称(快照)
+	 */
+	@ApiModelProperty(value = "反制设备名称(快照)")
+	private String deviceName;
+	/**
+	 * 反制设备型号(快照)
+	 */
+	@ApiModelProperty(value = "反制设备型号(快照)")
+	private String deviceModel;
+	/**
+	 * 反制设备类型(快照)
+	 */
+	@ApiModelProperty(value = "反制设备类型(快照)")
+	private String deviceType;
+	/**
+	 * 无人机名称
+	 */
+	@ApiModelProperty(value = "无人机名称")
+	private String droneName;
+	/**
+	 * 无人机类型
+	 */
+	@ApiModelProperty(value = "无人机类型")
+	private String droneType;
+	/**
+	 * 无人机设备编码
+	 */
+	@ApiModelProperty(value = "无人机设备编码")
+	private String droneDeviceCode;
+	/**
+	 * 发现时间
+	 */
+	@ApiModelProperty(value = "发现时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private Date findTime;
+	/**
+	 * 反制效果(success/fail)
+	 */
+	@ApiModelProperty(value = "反制效果(success/fail)")
+	private String counterEffect;
+	/**
+	 * 部署经度(冗余)
+	 */
+	@ApiModelProperty(value = "部署经度(冗余)")
+	private Double deployLongitude;
+	/**
+	 * 部署纬度(冗余)
+	 */
+	@ApiModelProperty(value = "部署纬度(冗余)")
+	private Double deployLatitude;
+	/**
+	 * 覆盖范围(米)
+	 */
+	@ApiModelProperty(value = "覆盖范围(米)")
+	private Integer coverRadiusM;
+	/**
+	 * 工作模式(机动/固定)
+	 */
+	@ApiModelProperty(value = "工作模式(机动/固定)")
+	private String workMode;
+	/**
+	 * 区域编码
+	 */
+	@ApiModelProperty(value = "区域编码")
+	private String areaCode;
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwDeviceConfigEntity.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwDeviceConfigEntity.java
index 1400ebc..22c3693 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwDeviceConfigEntity.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwDeviceConfigEntity.java
@@ -16,6 +16,8 @@
  */
 package org.sxkj.fw.detection.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/dto/FwDeviceDTO.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/dto/FwDeviceDTO.java
index 8024b8a..62f5140 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/dto/FwDeviceDTO.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/dto/FwDeviceDTO.java
@@ -91,4 +91,10 @@
 	@ApiModelProperty(value = "联系电话")
 	private String contactPhone;
 
+	/**
+	 * 设备状态,多个状态用逗号隔
+	 */
+	@ApiModelProperty(value = "设备状态,多个状态用逗号隔开")
+	private String deviceStatus;
+
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java
index c0a530d..0927804 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/controller/FwDroneFlightRecordController.java
@@ -16,6 +16,9 @@
  */
 package org.sxkj.fw.record.controller;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -36,6 +39,7 @@
 import org.springframework.web.bind.annotation.*;
 import org.sxkj.fw.record.dto.FwDroneFlightRecordDTO;
 import org.sxkj.fw.record.entity.FwDroneFlightRecordEntity;
+import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
 import org.sxkj.fw.record.excel.FwDroneFlightRecordExcel;
 import org.sxkj.fw.record.service.IFwDroneFlightRecordService;
 import org.sxkj.fw.record.vo.FwDroneFlightRecordVO;
@@ -44,6 +48,8 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java
index fb80fc8..e330da9 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java
@@ -61,7 +61,7 @@
 	/**
 	 * 告警类型:实时告警/历史告警
 	 */
-	@ApiModelProperty(value = "告警类型:实时告警/历史告警")
+	@ApiModelProperty(value = "告警类型:1.实时告警/2.历史告警")
 	private String alarmType;
 	/**
 	 * 告警时间
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java
index c200b05..218449c 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneAlarmRecordEntity.java
@@ -158,4 +158,11 @@
 	@ApiModelProperty(value = "设备类型(察打一体/便捷侦测箱/反制枪)")
 	private String deviceType;
 
+	/**
+	 * 区域名称
+	 */
+	@TableField("area_name")
+	@ApiModelProperty(value = "区域名称")
+	private String areaName;
+
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java
index b28bb23..c687990 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/entity/FwDroneFlightRecordEntity.java
@@ -86,4 +86,10 @@
 	@ApiModelProperty(value = "区域编码")
 	private String areaCode;
 
+	/**
+	 * 区域名称
+	 */
+	@TableField("area_name")
+	@ApiModelProperty(value = "区域名称")
+	private String areaName;
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneFlightRecordExcel.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneFlightRecordExcel.java
index 2fe95ac..a9f6603 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneFlightRecordExcel.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/excel/FwDroneFlightRecordExcel.java
@@ -42,53 +42,42 @@
 
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * 反无设备ID(关联ja_fw_device.id)
-	 */
-	@ColumnWidth(20)
-	@ExcelProperty("反无设备ID(关联ja_fw_device.id)")
-	private Long deviceId;
-	/**
-	 * 无人机名称
-	 */
 	@ColumnWidth(20)
 	@ExcelProperty("无人机名称")
 	private String droneName;
-	/**
-	 * 序列号
-	 */
+
 	@ColumnWidth(20)
 	@ExcelProperty("序列号")
 	private String serialNo;
-	/**
-	 * 首次告警时间
-	 */
+
 	@ColumnWidth(20)
 	@ExcelProperty("首次告警时间")
 	private Date alarmTime;
-	/**
-	 * 触发原因/类型
-	 */
+
 	@ColumnWidth(20)
 	@ExcelProperty("触发原因/类型")
 	private String triggerType;
-	/**
-	 * 停留时长(HH:MM:SS)
-	 */
+
 	@ColumnWidth(20)
-	@ExcelProperty("停留时长(HH:MM:SS)")
-	private LocalTime stayDuration;
-	/**
-	 * 区域编码
-	 */
+	@ExcelProperty("停留时长")
+	private String stayDuration;
+
 	@ColumnWidth(20)
-	@ExcelProperty("区域编码")
-	private String areaCode;
-	/**
-	 * 删除标志(0存在 1删除)
-	 */
+	@ExcelProperty("区域名称")
+	private String areaName;
+
 	@ColumnWidth(20)
-	@ExcelProperty("删除标志(0存在 1删除)")
-	private Byte isDeleted;
+	@ExcelProperty("经度")
+	private Double longitude;
+
+	@ColumnWidth(20)
+	@ExcelProperty("纬度")
+	private Double latitude;
+
+	@ColumnWidth(20)
+	@ExcelProperty("时间")
+	private Date pointTime;
+
+
 
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
index efdafb0..0eeff63 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
@@ -36,7 +36,6 @@
     <select id="selectFwDroneAlarmRecordPage" resultType="org.sxkj.fw.record.vo.FwDroneAlarmRecordVO">
         select dar.*,d.device_name,d.device_model from
         ja_fw_drone_alarm_record dar
-        left join ja_fw_area_divide ad on dar.area_divide_id = ad.id
         left join ja_fw_device d on dar.device_id = d.id
         <where>
             dar.is_deleted = 0
@@ -98,7 +97,7 @@
                 and dar.device_type = #{param2.deviceType}
             </if>
             <if test="param2.areaName != null and param2.areaName != ''">
-                and ad.area_name like CONCAT('%', #{param2.areaName}, '%')
+                and dar.area_name like CONCAT('%', #{param2.areaName}, '%')
             </if>
         </where>
     </select>
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml
index 02162b9..298b579 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneFlightRecordMapper.xml
@@ -24,7 +24,6 @@
 
     <select id="selectFwDroneFlightRecordPage" resultMap="fwDroneFlightRecordResultMap">
         select dfr.* from ja_fw_drone_flight_record dfr
-        left join ja_fw_area_divide ad on dfr.area_divide_id = ad.id
         <where>
             dfr.is_deleted = 0
             <if test="param2.deviceId != null and param2.deviceId != ''">
@@ -55,14 +54,25 @@
                 and dfr.device_type = #{param2.deviceType}
             </if>
             <if test="param2.areaName != null and param2.areaName != ''">
-                and ad.area_name like CONCAT('%', #{param2.areaName}, '%')
+                and dfr.area_name like CONCAT('%', #{param2.areaName}, '%')
             </if>
         </where>
     </select>
 
 
     <select id="exportFwDroneFlightRecord" resultType="org.sxkj.fw.record.excel.FwDroneFlightRecordExcel">
-        SELECT * FROM ja_fw_drone_flight_record ${ew.customSqlSegment}
+        SELECT dfr.drone_name,
+               dfr.serial_no,
+               dfr.alarm_time,
+               dfr.area_name,
+               dfr.trigger_type,
+               dfr.stay_duration,
+               dfrd.longitude,
+               dfrd.latitude,
+               dfrd.point_time
+        FROM ja_fw_drone_flight_record dfr
+                 left join ja_fw_drone_flight_record_detail dfrd on dfr.id = dfrd.flight_record_id
+        where dfr.is_deleted = 0
     </select>
 
 </mapper>

--
Gitblit v1.9.3