From 497e3161f4e8fc2be2a78a348ccf3dfcfe4ea602 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Sat, 17 Jan 2026 15:40:01 +0800
Subject: [PATCH] 反制

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/param/FwEffectEvalParam.java       |   38 +++++++++++++++++++
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java         |    7 +--
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java    |   16 +------
 drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java |   33 ++++++++++++++--
 drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwEffectEvalEntity.java     |    4 +-
 5 files changed, 75 insertions(+), 23 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
index ca63d86..1e4ad0d 100644
--- 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
@@ -8,27 +8,18 @@
 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.service.ICockpitService;
 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.detection.param.FwEffectEvalParam;
 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.CockpitFwDeviceVO;
-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.List;
-import java.util.Objects;
 
 /**
  * 数据驾驶舱
@@ -95,8 +86,7 @@
 	@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(cockpitService.saveOrUpdate(fwEffectEvalEntity));
+	public R interferenceAndExpulsion(@Valid @RequestBody FwEffectEvalParam fwEffectEvalParam) {
+ 		return R.status(cockpitService.interferenceAndExpulsion(fwEffectEvalParam));
 	}
 }
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java
index 205bb4e..f190217 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java
@@ -3,9 +3,8 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
 import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
-import org.sxkj.fw.detection.entity.FwEffectEvalEntity;
+import org.sxkj.fw.detection.param.FwEffectEvalParam;
 import org.sxkj.fw.device.dto.FwDeviceDTO;
-import org.sxkj.fw.device.entity.FwDeviceEntity;
 import org.sxkj.fw.device.vo.CockpitFwDeviceVO;
 import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
 import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
@@ -38,10 +37,10 @@
 
 	/**
 	 * 评估结果保存
-	 * @param fwEffectEvalEntity
+	 * @param fwEffectEvalParam
 	 * @return
 	 */
-	boolean saveOrUpdate(FwEffectEvalEntity fwEffectEvalEntity);
+	boolean interferenceAndExpulsion(FwEffectEvalParam fwEffectEvalParam);
 
 	/**
 	 * 告警记录和设备记录统计
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java
index 12709fc..0a74419 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java
@@ -1,12 +1,12 @@
 package org.sxkj.fw.cockpit.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.sxkj.fw.cockpit.service.ICockpitService;
 import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
 import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
 import org.sxkj.fw.detection.entity.FwEffectEvalEntity;
+import org.sxkj.fw.detection.param.FwEffectEvalParam;
 import org.sxkj.fw.detection.service.IFwEffectEvalService;
 import org.sxkj.fw.device.dto.FwDeviceDTO;
 import org.sxkj.fw.device.entity.FwDeviceEntity;
@@ -49,11 +49,36 @@
 	}
 
 	@Override
-	public boolean saveOrUpdate(FwEffectEvalEntity fwEffectEvalEntity) {
-		FwDroneAlarmRecordEntity alarmRecordEntity = fwDroneAlarmRecordService.getById(fwEffectEvalEntity.getAlarmRecordId());
+	public boolean interferenceAndExpulsion(FwEffectEvalParam fwEffectEvalParam) {
+		FwDroneAlarmRecordEntity alarmRecordEntity = fwDroneAlarmRecordService.getById(fwEffectEvalParam.getAlarmRecordId());
 		FwDeviceEntity device = fwDeviceService.getById(alarmRecordEntity.getDeviceId());
+		FwEffectEvalEntity fwEffectEvalEntity = new FwEffectEvalEntity();
+
+		// 告警记录相关字段
+		fwEffectEvalEntity.setAlarmRecordId(fwEffectEvalParam.getAlarmRecordId());
+		fwEffectEvalEntity.setDroneName(alarmRecordEntity.getDroneName());
+		fwEffectEvalEntity.setDroneType(alarmRecordEntity.getDroneType());
+		fwEffectEvalEntity.setDroneDeviceCode(alarmRecordEntity.getDroneSerialNo());
+		fwEffectEvalEntity.setFindTime(alarmRecordEntity.getAlarmTime());
+
+		// 从参数获取反制方式,否则使用告警记录中的值
+		fwEffectEvalEntity.setCounterWay(fwEffectEvalParam.getCounterWay());
+
+		// 设备相关字段
 		fwEffectEvalEntity.setDeviceId(alarmRecordEntity.getDeviceId());
-		fwEffectEvalEntity.setCounterEffect("1");
+		fwEffectEvalEntity.setDeviceSn(device.getDeviceSn());
+		fwEffectEvalEntity.setDeviceName(device.getDeviceName());
+		fwEffectEvalEntity.setDeviceModel(device.getDeviceModel());
+		fwEffectEvalEntity.setDeviceType(device.getDeviceType());
+		fwEffectEvalEntity.setDeployLongitude(device.getLongitude() != null ? Double.parseDouble(device.getLongitude()) : null);
+		fwEffectEvalEntity.setDeployLatitude(device.getLatitude() != null ? Double.parseDouble(device.getLatitude()) : null);
+		fwEffectEvalEntity.setAreaCode(device.getAreaCode());
+
+		// 反制效果及工作模式(从参数获取,否则使用默认值)
+		fwEffectEvalEntity.setCounterEffect( "1"); // 1.success/2.fail
+		fwEffectEvalEntity.setCoverRadiusM(2500); // 覆盖范围(米)
+		fwEffectEvalEntity.setWorkMode( "1"); // 1.机动/2.固定
+
 		return fwEffectEvalService.saveOrUpdate(fwEffectEvalEntity);
 	}
 
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwEffectEvalEntity.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwEffectEvalEntity.java
index 4335830..89cf90c 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwEffectEvalEntity.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/entity/FwEffectEvalEntity.java
@@ -57,9 +57,9 @@
 	/**
 	 * 反制设备编码(快照)
 	 */
-	@TableField("device_code")
+	@TableField("device_sn")
 	@ApiModelProperty(value = "反制设备编码(快照)")
-	private String deviceCode;
+	private String deviceSn;
 	/**
 	 * 反制设备名称(快照)
 	 */
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/param/FwEffectEvalParam.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/param/FwEffectEvalParam.java
new file mode 100644
index 0000000..80df8e7
--- /dev/null
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/param/FwEffectEvalParam.java
@@ -0,0 +1,38 @@
+
+package org.sxkj.fw.detection.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 反制效果评估表 参数类
+ *
+ * @author BladeX
+ * @since 2026-01-17
+ */
+@Data
+public class FwEffectEvalParam implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 告警记录ID(ja_fw_drone_alarm_record.id)
+     */
+    @ApiModelProperty(value = "告警记录ID(ja_fw_drone_alarm_record.id)")
+    private Long alarmRecordId;
+
+    @ApiModelProperty(value = "反制方式:1.信号干扰/2.诱导驱离/无")
+    private String counterWay;
+
+    // @ApiModelProperty(value = "反制效果(1.success/2.fail)")
+    // private String counterEffect;
+	//
+    // @ApiModelProperty(value = "覆盖范围(米)")
+    // private Integer coverRadiusM;
+	//
+    // @ApiModelProperty(value = "工作模式(1.机动/2.固定)")
+    // private String workMode;
+
+}

--
Gitblit v1.9.3