吉安感知网项目-后端
linwei
2026-01-09 0abcc981f5c8e674c17baf7160ee8e6446d87b3a
数据驾驶舱优化
13 files modified
2 files added
318 ■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java 33 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java 50 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java 64 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java 8 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java 13 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml 51 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/IFwDeviceService.java 13 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceVO.java 27 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java 6 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.java 6 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml 7 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/IFwDroneAlarmRecordService.java 6 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/vo/FwDroneAlarmRecordVO.java 10 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/controller/CockpitController.java
@@ -10,6 +10,7 @@
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;
@@ -25,6 +26,7 @@
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import javax.validation.Valid;
import java.util.List;
import java.util.Objects;
/**
@@ -39,11 +41,7 @@
@Api(value = "驾驶舱", tags = "数据驾驶舱")
public class CockpitController {
    private final IFwDroneAlarmRecordService fwDroneAlarmRecordService;
    private final IFwDeviceService fwDeviceService;
    private final IFwEffectEvalService fwEffectEvalService;
    private final ICockpitService cockpitService;
    /**
@@ -53,7 +51,7 @@
    @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);
        IPage<FwDroneAlarmRecordVO> pages = cockpitService.selectFwDroneAlarmRecordPage(Condition.getPage(query), fwDroneAlarmRecord);
        return R.data(pages);
    }
@@ -64,7 +62,7 @@
    @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);
        IPage<FwDeviceEntity> pages = cockpitService.selectFwDevicePage(Condition.getPage(query), fwDevice);
        return R.data(FwDeviceWrapper.build().pageVO(pages));
    }
@@ -73,12 +71,9 @@
     */
    @GetMapping("/deviceStatistics")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "设备统计", notes = "返回设备统计、无线电、光电、雷达等数据")
    public R<DeviceStatisticsVO> getDeviceStatistics() {
        DeviceStatisticsVO statistics = new DeviceStatisticsVO();
        // 假设从服务层获取统计数据,这里仅示例填充数据
        statistics.setDetectCount(3);
        statistics.setCountermeasuresCount(4);
    @ApiOperation(value = "设备统计", notes = "返回侦测设备,反制设备数量")
    public R<List<DeviceStatisticsVO>> getDeviceStatistics() {
        List<DeviceStatisticsVO> statistics = cockpitService.statisticalDeviceType();
        return R.data(statistics);
    }
@@ -89,15 +84,7 @@
    @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);
        AlarmStatisticsVO statistics = cockpitService.statisticsAlarmsAndDeviceRecords();
        return R.data(statistics);
    }
@@ -109,6 +96,6 @@
    @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));
        return R.status(cockpitService.saveOrUpdate(fwEffectEvalEntity));
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/ICockpitService.java
New file
@@ -0,0 +1,50 @@
package org.sxkj.fw.cockpit.service;
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.device.dto.FwDeviceDTO;
import org.sxkj.fw.device.entity.FwDeviceEntity;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import java.util.List;
public interface ICockpitService {
    /**
     * 告警记录分页
     * @param page
     * @param fwDroneAlarmRecord
     * @return
     */
    IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordDTO fwDroneAlarmRecord);
    /**
     * 设备分页
     * @param page
     * @param fwDevice
     * @return
     */
    IPage<FwDeviceEntity> selectFwDevicePage(IPage<FwDeviceEntity> page, FwDeviceDTO fwDevice);
    /**
     * 设备类型统计
     * @return
     */
    List<DeviceStatisticsVO> statisticalDeviceType();
    /**
     * 评估结果保存
     * @param fwEffectEvalEntity
     * @return
     */
    boolean saveOrUpdate(FwEffectEvalEntity fwEffectEvalEntity);
    /**
     * 告警记录和设备记录统计
     * @return
     */
    AlarmStatisticsVO statisticsAlarmsAndDeviceRecords();
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/service/impl/CockpitServiceImpl.java
New file
@@ -0,0 +1,64 @@
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.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.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.service.IFwDroneAlarmRecordService;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import javax.annotation.Resource;
import java.util.List;
@Service
public class CockpitServiceImpl implements ICockpitService {
    @Resource
    private  IFwDroneAlarmRecordService fwDroneAlarmRecordService;
    @Resource
    private  IFwDeviceService fwDeviceService;
    @Resource
    private  IFwEffectEvalService fwEffectEvalService;
    @Override
    public IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordDTO fwDroneAlarmRecord) {
        return fwDroneAlarmRecordService.selectFwDroneAlarmRecordPage(page, fwDroneAlarmRecord);
    }
    @Override
    public IPage<FwDeviceEntity> selectFwDevicePage(IPage<FwDeviceEntity> page, FwDeviceDTO fwDevice) {
        return fwDeviceService.selectFwDevicePage(page, fwDevice);
    }
    @Override
    public List<DeviceStatisticsVO> statisticalDeviceType() {
        return fwDeviceService.statisticalDeviceType();
    }
    @Override
    public boolean saveOrUpdate(FwEffectEvalEntity fwEffectEvalEntity) {
        return fwEffectEvalService.saveOrUpdate(fwEffectEvalEntity);
    }
    @Override
    public AlarmStatisticsVO statisticsAlarmsAndDeviceRecords() {
        // 设备统计
        AlarmStatisticsVO alarmStatisticsVO = fwDeviceService.statisticalDeviceAtt();
        // 告警统计
        AlarmStatisticsVO alarmStatistics =  fwDroneAlarmRecordService.alarmTypeStatistics();
        alarmStatisticsVO.setHistoryAlarmCount(alarmStatistics.getHistoryAlarmCount());
        alarmStatisticsVO.setRealTimeAlarmCount(alarmStatistics.getRealTimeAlarmCount());
        return alarmStatisticsVO;
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/cockpit/vo/DeviceStatisticsVO.java
@@ -15,14 +15,14 @@
    /**
     * 侦测设备数量
     */
    @ApiModelProperty(value = "侦测设备数量")
    private Integer detectCount;
    @ApiModelProperty(value = "类型")
    private String type;
    /**
     * 反制设备数量
     */
    @ApiModelProperty(value = "反制设备数量")
    private Integer countermeasuresCount;
    @ApiModelProperty(value = "数量")
    private Integer count;
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java
@@ -16,6 +16,8 @@
 */
package org.sxkj.fw.device.mapper;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
import org.sxkj.fw.device.dto.FwDeviceDTO;
import org.sxkj.fw.device.entity.FwDeviceEntity;
import org.sxkj.fw.device.vo.FwDeviceVO;
@@ -52,4 +54,15 @@
     */
    List<FwDeviceExcel> exportFwDevice(@Param("ew") Wrapper<FwDeviceEntity> queryWrapper);
    /**
     * 设备统计
     * @return
     */
    List<DeviceStatisticsVO> statisticalDeviceType();
    /**
     *
     * @return
     */
    AlarmStatisticsVO statisticalDeviceAtt();
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -70,4 +70,55 @@
        SELECT * FROM ja_fw_device ${ew.customSqlSegment}
    </select>
   <!-- 统计设备类型(察打一体同时计入侦测和反制) -->
    <select id="statisticalDeviceType" resultType="org.sxkj.fw.cockpit.vo.DeviceStatisticsVO">
        SELECT
            CASE split_device_type  -- 自定义排序(可选)
                WHEN '1' THEN '侦测设备'
                WHEN '2' THEN '反制设备'
                ELSE '其他'
                END AS type,
            COUNT(*) AS count
        FROM (
            -- 子查询:拆分察打一体设备为侦测/反制两类
            SELECT
            id,
            CASE
            WHEN device_type = '3' THEN '1'  -- 察打一体拆分为侦测
            ELSE device_type
            END AS split_device_type
            FROM ja_fw_device
            WHERE is_deleted = 0  -- 排除已删除数据
            UNION ALL  -- 合并拆分的反制部分
            SELECT
            id,
            CASE
            WHEN device_type = '3' THEN '2'  -- 察打一体拆分为反制
            ELSE device_type
            END AS split_device_type
            FROM ja_fw_device
            WHERE is_deleted = 0
            AND device_type != '3'  -- 避免普通设备重复统计
            ) AS temp
        GROUP BY split_device_type
        ORDER BY split_device_type
    </select>
     <!-- 查询设备总数 + 无线电/光电/雷达设备数量 -->
    <select id="statisticalDeviceAtt" resultType="org.sxkj.fw.cockpit.vo.AlarmStatisticsVO">
        SELECT
            -- 设备统计总数
            (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0) AS deviceCount,
            -- 无线电设备数量
            (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '1') AS radioCount,
            -- 光电设备数量
            (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '2') AS opticalCount,
            -- 雷达设备数量
            (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '3') AS radarCount,
            -- 设备告警
            (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND status = '2') AS deviceAlarmCount;
    </select>
</mapper>
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/IFwDeviceService.java
@@ -17,6 +17,8 @@
package org.sxkj.fw.device.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
import org.sxkj.fw.device.dto.FwDeviceDTO;
import org.sxkj.fw.device.entity.FwDeviceEntity;
import org.sxkj.fw.device.vo.FwDeviceVO;
@@ -50,4 +52,15 @@
     */
    List<FwDeviceExcel> exportFwDevice(Wrapper<FwDeviceEntity> queryWrapper);
    /**
     * 设备类型统计
     * @return
     */
    List<DeviceStatisticsVO> statisticalDeviceType();
    /**
     *
     * @return
     */
    AlarmStatisticsVO statisticalDeviceAtt();
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
@@ -16,6 +16,8 @@
 */
package org.sxkj.fw.device.service.impl;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
import org.sxkj.fw.device.dto.FwDeviceDTO;
import org.sxkj.fw.device.entity.FwDeviceEntity;
import org.sxkj.fw.device.vo.FwDeviceVO;
@@ -52,4 +54,17 @@
        return fwDeviceList;
    }
    /**
     *
     * @return
     */
    @Override
    public List<DeviceStatisticsVO> statisticalDeviceType() {
        return baseMapper.statisticalDeviceType();
    }
    @Override
    public AlarmStatisticsVO statisticalDeviceAtt() {
        return baseMapper.statisticalDeviceAtt();
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceVO.java
@@ -25,6 +25,7 @@
import org.sxkj.system.cache.SysCache;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * 设备表 视图实体类
@@ -105,6 +106,32 @@
    @ApiModelProperty("运行状态(0:在线/1:离线/2:故障/3:报废)")
    private Integer status;
    /**
     * 电量百分比 0-100
     */
    @ApiModelProperty(value = "电量百分比 0-100")
    private Byte batteryPct;
    /**
     * 方位角 0-360°
     */
    @ApiModelProperty(value = "方位角 0-360°")
    private Short azimuth;
    /**
     * 俯仰角 -90-+90°
     */
    @ApiModelProperty(value = "俯仰角 -90-+90°")
    private Short elevation;
    /**
     * 侦测目标数量
     */
    @ApiModelProperty(value = "侦测目标数量")
    private Integer detectTargetCnt;
    /**
     * 有效范围 km
     */
    @ApiModelProperty(value = "有效范围 km")
    private BigDecimal effectiveRangeKm;
    @ApiModelProperty(value = "所属部门名称")
    public String getBelongDeptName() {
        if (belongDept == null) {
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/dto/FwDroneAlarmRecordDTO.java
@@ -56,7 +56,7 @@
    /**
     * 无人机类型(微型机/植保机...)
     */
    @ApiModelProperty(value = "无人机类型(微型机/植保机...)")
    @ApiModelProperty(value = "无人机类型(1.微型机/2.植保机...)")
    private String droneType;
    /**
     * 告警类型:实时告警/历史告警
@@ -77,7 +77,7 @@
    /**
     * 飞行状态:侦测中/反制中
     */
    @ApiModelProperty(value = "飞行状态:侦测中/反制中")
    @ApiModelProperty(value = "飞行状态:1.侦测中/2.反制中")
    private String flightStatus;
    /**
     * 当前经度
@@ -112,7 +112,7 @@
    /**
     * 反制方式:信号干扰/诱导驱离/无
     */
    @ApiModelProperty(value = "反制方式:信号干扰/诱导驱离/无")
    @ApiModelProperty(value = "反制方式:1.信号干扰/2.诱导驱离/无")
    private String counterWay;
    /**
     * 区域id ja_fw_area_divide
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.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
@@ -52,4 +53,9 @@
     */
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(@Param("ew") Wrapper<FwDroneAlarmRecordEntity> queryWrapper);
    /**
     * 告警类型统计
     * @return
     */
    AlarmStatisticsVO alarmTypeStatistics();
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/mapper/FwDroneAlarmRecordMapper.xml
@@ -107,4 +107,11 @@
        SELECT * FROM ja_fw_drone_alarm_record ${ew.customSqlSegment}
    </select>
    <select id="alarmTypeStatistics" resultType="org.sxkj.fw.cockpit.vo.AlarmStatisticsVO">
        SELECT
        COUNT(CASE WHEN alarm_type = 1 THEN 1 END) AS realTimeAlarmCount,
        COUNT(CASE WHEN alarm_type = 2 THEN 2 END) AS historyAlarmCount
        FROM ja_fw_drone_alarm_record WHERE is_deleted = 0
    </select>
</mapper>
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.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
@@ -50,4 +51,9 @@
     */
    List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(Wrapper<FwDroneAlarmRecordEntity> queryWrapper);
    /**
     *
     * @return
     */
    AlarmStatisticsVO alarmTypeStatistics();
}
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.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
@@ -52,4 +53,12 @@
        return fwDroneAlarmRecordList;
    }
    /**
     * 告警类型统计
     * @return
     */
    @Override
    public AlarmStatisticsVO alarmTypeStatistics() {
        return baseMapper.alarmTypeStatistics();
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/vo/FwDroneAlarmRecordVO.java
@@ -58,12 +58,12 @@
    /**
     * 无人机类型(微型机/植保机...)
     */
    @ApiModelProperty(value = "无人机类型(微型机/植保机...)")
    @ApiModelProperty(value = "无人机类型(1.微型机/2.植保机...)")
    private String droneType;
    /**
     * 告警类型:实时告警/历史告警
     */
    @ApiModelProperty(value = "告警类型:实时告警/历史告警")
    @ApiModelProperty(value = "告警类型:1.实时告警/2.历史告警")
    private String alarmType;
    /**
     * 告警时间
@@ -79,7 +79,7 @@
    /**
     * 飞行状态:侦测中/反制中
     */
    @ApiModelProperty(value = "飞行状态:侦测中/反制中")
    @ApiModelProperty(value = "飞行状态:1.侦测中/2.反制中")
    private String flightStatus;
    /**
     * 当前经度
@@ -114,7 +114,7 @@
    /**
     * 反制方式:信号干扰/诱导驱离/无
     */
    @ApiModelProperty(value = "反制方式:信号干扰/诱导驱离/无")
    @ApiModelProperty(value = "反制方式:1.信号干扰/2.诱导驱离/3.无")
    private String counterWay;
    /**
     * 区域名称
@@ -130,7 +130,7 @@
    /**
     * 设备类型(察打一体/便捷侦测箱/反制枪)
     */
    @ApiModelProperty(value = "设备类型(察打一体/便捷侦测箱/反制枪)")
    @ApiModelProperty(value = "设备类型(1.便捷侦测箱/2.反制枪/3.察打一体)")
    private String deviceType;