吉安感知网项目-后端
linwei
2026-01-17 497e3161f4e8fc2be2a78a348ccf3dfcfe4ea602
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package org.sxkj.fw.cockpit.service.impl;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
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;
import org.sxkj.fw.device.service.IFwDeviceService;
import org.sxkj.fw.device.vo.CockpitFwDeviceVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
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<CockpitFwDeviceVO> selectCockpitDevicePage(IPage<CockpitFwDeviceVO> page, FwDeviceDTO fwDevice) {
        return fwDeviceService.selectCockpitDevicePage(page, fwDevice);
    }
 
    @Override
    public List<DeviceStatisticsVO> statisticalDeviceType() {
        return fwDeviceService.statisticalDeviceType();
    }
 
    @Override
    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.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);
    }
 
    @Override
    public AlarmStatisticsVO statisticsAlarmsAndDeviceRecords() {
        // 设备统计
        AlarmStatisticsVO alarmStatisticsVO = fwDeviceService.statisticalDeviceAtt();
        // 告警统计
        AlarmStatisticsVO alarmStatistics =  fwDroneAlarmRecordService.alarmTypeStatistics();
        alarmStatisticsVO.setHistoryAlarmCount(alarmStatistics.getHistoryAlarmCount());
        alarmStatisticsVO.setRealTimeAlarmCount(alarmStatistics.getRealTimeAlarmCount());
        return alarmStatisticsVO;
    }
}