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;
|
}
|
}
|