‘liusuyi’
2023-08-28 418a8806dba90a2463f194da759ed6338018d7d2
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -34,8 +34,8 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.device.external.domain.ArdEquipExternal;
import com.ruoyi.device.external.mapper.ArdEquipExternalMapper;
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.tools.ArdTool;
import com.ruoyi.utils.tools.GisTool;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
@@ -49,7 +49,6 @@
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -278,6 +277,167 @@
                return null;
        }
    }
    @Override
    public List<GlobalAlarmData> selectAlarmLogsAll() {
        List<GlobalAlarmData> GlobalAlarmDataList = new ArrayList<>();
        String refreshTime = configService.selectConfigByKey("refreshTime");
        List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1001 = ardAlarmStealelecs.stream()
                .map(ardAlarmStealelec -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmStealelec.getId())
                            .setName(ardAlarmStealelec.getDescribe())
                            .setAlarmTime(ardAlarmStealelec.getStartTime())
                            .setLongitude(ardAlarmStealelec.getLongitude())
                            .setLatitude(ardAlarmStealelec.getLatitude())
                            .setAltitude(ardAlarmStealelec.getAltitude())
                            .setCount(ardAlarmStealelec.getCount())
                            .setTotal(ardAlarmStealelec.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1001.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1001);
        }
        List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1002= ardAlarmCameras.stream()
                .map(ardAlarmCamera -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmCamera.getId())
                            .setName(ardAlarmCamera.getCameraName())
                            .setAlarmTime(ardAlarmCamera.getAlarmTime())
                            .setLongitude(ardAlarmCamera.getLongitude())
                            .setLatitude(ardAlarmCamera.getLatitude())
                            .setCount(ardAlarmCamera.getCount())
                            .setTotal(ardAlarmCamera.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1002.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1002);
        }
        List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "运动目标检测");
        List<GlobalAlarmData> alarmData1003= ardAlarmRadars.stream()
                .map(ardAlarmRadar -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmRadar.getId())
                            .setName(ardAlarmRadar.getName())
                            .setAlarmTime(ardAlarmRadar.getAlarmTime())
                            .setLongitude(ardAlarmRadar.getLongitude())
                            .setLatitude(ardAlarmRadar.getLatitude())
                            .setCount(ardAlarmRadar.getCount())
                            .setTotal(ardAlarmRadar.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1003.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1003);
        }
        ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "热源检测");
        List<GlobalAlarmData> alarmData1004=  ardAlarmRadars.stream()
                .map(ardAlarmRadar -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmRadar.getId())
                            .setName(ardAlarmRadar.getName())
                            .setAlarmTime(ardAlarmRadar.getAlarmTime())
                            .setLongitude(ardAlarmRadar.getLongitude())
                            .setLatitude(ardAlarmRadar.getLatitude())
                            .setCount(ardAlarmRadar.getCount())
                            .setTotal(ardAlarmRadar.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1004.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1004);
        }
        List<ArdAlarmExternal> ardAlarmExternals = ardAlarmExternalMapper.selectListAllByCommand(refreshTime, "防区报警");
        List<GlobalAlarmData> alarmData1005=  ardAlarmExternals.stream()
                .map(ardAlarmExternal -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmExternal.getId())
                            .setName(ardAlarmExternal.getAlarmName())
                            .setAlarmTime(ardAlarmExternal.getAlarmTime())
                            .setLongitude(ardAlarmExternal.getLongitude())
                            .setLatitude(ardAlarmExternal.getLatitude())
                            .setCount(ardAlarmExternal.getCount())
                            .setTotal(ardAlarmExternal.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1005.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1005);
        }
        List<ArdAlarmAccess> ardAlarmAccesses = ardAlarmAccessMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1006= ardAlarmAccesses.stream()
                .map(ardAlarmAccess -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmAccess.getId())
                            .setName(ardAlarmAccess.getAcsName())
                            .setAlarmTime(ardAlarmAccess.getAlarmTime())
                            .setLongitude(ardAlarmAccess.getLongitude())
                            .setLatitude(ardAlarmAccess.getLatitude())
                            .setCount(ardAlarmAccess.getCount())
                            .setTotal(ardAlarmAccess.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1006.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1006);
        }
        ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "雷达抽油机停机");
        List<GlobalAlarmData> alarmData1007= ardAlarmRadars.stream()
                .map(ardAlarmRadar -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmRadar.getId())
                            .setName(ardAlarmRadar.getName())
                            .setAlarmTime(ardAlarmRadar.getAlarmTime())
                            .setLongitude(ardAlarmRadar.getLongitude())
                            .setLatitude(ardAlarmRadar.getLatitude())
                            .setCount(ardAlarmRadar.getCount())
                            .setTotal(ardAlarmRadar.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1007.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1007);
        }
        List<ArdAlarmApponekey> ardAlarmApponekeys = ardAlarmApponekeyMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1009= ardAlarmApponekeys.stream()
                .map(ardAlarmApponekey -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmApponekey.getId())
                            .setName(ardAlarmApponekey.getName())
                            .setAlarmTime(ardAlarmApponekey.getCreateTime())
                            .setLongitude(ardAlarmApponekey.getLongitude())
                            .setLatitude(ardAlarmApponekey.getLatitude())
                            .setCount(ardAlarmApponekey.getCount())
                            .setTotal(ardAlarmApponekey.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1009.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1009);
        }
        List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1014= ardAlarmTubes.stream()
                .map(ardAlarmTube -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmTube.getId())
                            .setName(ardAlarmTube.getTubeName())
                            .setAlarmTime(ardAlarmTube.getAlarmTime())
                            .setLongitude(ardAlarmTube.getLongitude())
                            .setLatitude(ardAlarmTube.getLatitude())
                            .setAltitude(ardAlarmTube.getAltitude())
                            .setCount(ardAlarmTube.getCount())
                            .setTotal(ardAlarmTube.getTotal());
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if(alarmData1014.size()>0) {
            GlobalAlarmDataList.addAll(alarmData1014);
        }
        return GlobalAlarmDataList;
}
    /**
     * @描述 历史报警查询
@@ -543,9 +703,8 @@
                    }
                    //按兴趣点去重,然后按引导逻辑进行引导入队
                    ardAlarmRadars = ardAlarmRadars.stream()
                    .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadar::getName))), ArrayList::new));
                    for(ArdAlarmRadar ardAlarmRadar : ardAlarmRadars)
                    {
                            .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadar::getName))), ArrayList::new));
                    for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) {
                        //遍历报警数据进行引导
                        if (StringUtils.isNull(ardAlarmRadar.getLongitude()) || StringUtils.isNull(ardAlarmRadar.getLatitude())) {
                            //坐标为空不引导
@@ -748,7 +907,7 @@
                    continue;
                }
                double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()};
                double distance = GisTool.getDistance(targetPosition, camPosition);
                double distance = GisUtil.getDistance(targetPosition, camPosition);
                if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) {
                    distanceMap.put(camera.getId(), distance);
                    if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) {
@@ -767,14 +926,13 @@
                    return " ";
                }
            }
        }
        catch (Exception ex)
        {
            log.error("获取附近开启报警引导功能光电异常:"+ex.getMessage());
        } catch (Exception ex) {
            log.error("获取附近开启报警引导功能光电异常:" + ex.getMessage());
        }
        return minDistanceCameraId;
    }
    /**
     * 雷达引导入队
     */