Administrator
2023-08-05 0ee44e75029923734744628a8b059fa41ff3ef55
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -508,6 +508,8 @@
                    break;
                case "radar":
                    //region 处理雷达报警
                    // 开始时间
                    long stime = System.currentTimeMillis();
                    RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class);
                    List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars();
                    for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) {
@@ -539,12 +541,15 @@
                            continue;
                        }
                        double[] coordinate = new double[]{ardAlarmRadar.getLongitude(), ardAlarmRadar.getLatitude()};//报警坐标
                        //判断当前报警点5分钟内是否已引导
                        ardAlarmRadar.setGuideFlag(1);
                        ArdAlarmRadar AlarmRadar = ardAlarmRadarMapper.getArdAlarmRadarWithGuide(ardAlarmRadar);
                       // ArdAlarmRadar AlarmRadar = ardAlarmRadarMapper.getArdAlarmRadarWithGuide(ardAlarmRadar);
                        ArdAlarmRadar AlarmRadar = redisCache.getCacheObject("global_alarm:guideNew");//从redis中取出最新引导的报警数据
                        if (StringUtils.isNull(AlarmRadar)) {
                            //5分钟内未引导直接入库
                            ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
                            redisCache.setCacheObject("global_alarm:guideNew",ardAlarmRadar);//引导数据写入redis
                            //获取雷达所在塔上的大光电
                            String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
                            if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
@@ -556,7 +561,7 @@
                            ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
                            if (StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId())) {
                                String cameraId = ardAlarmpointsWell.getCameraId();
                                if (cameraIdWithTower.equals(cameraId)) {
                                if (cameraId.equals(cameraIdWithTower)) {
                                    return;
                                }
                                log.info("获取到报警点关联的光电:" + cameraId);
@@ -571,6 +576,7 @@
                            if (count >= 3) {
                                ardAlarmRadar.setGuideFlag(1);
                                ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
                                redisCache.setCacheObject("global_alarm:guideNew",ardAlarmRadar);//引导数据写入redis
                                //获取雷达所在塔上的大光电
                                String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
                                if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
@@ -582,7 +588,7 @@
                                ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
                                if (StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId())) {
                                    String cameraId = ardAlarmpointsWell.getCameraId();
                                    if (cameraIdWithTower.equals(cameraId)) {
                                    if (cameraId.equals(cameraIdWithTower)) {
                                        return;
                                    }
                                    log.info("获取到报警点关联的光电:" + cameraId);
@@ -594,7 +600,12 @@
                                ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
                            }
                        }
                        // 结束时间
                        long etime = System.currentTimeMillis();
                        // 计算执行时间
                        log.info("查询API执行时长:"+(etime-stime)+"毫秒");
                    }
                    //endregion
                    break;
                case "external":
@@ -728,8 +739,10 @@
    private Boolean IsEnableGuide(String cameraId) {
        boolean enabled = false;
        ArdCameras ardCameras = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
        if (ardCameras.getCamAlarmGuideEnable().equals(1)) {
            enabled = true;
        if(ardCameras!=null) {
            if (ardCameras.getCamAlarmGuideEnable().equals(1)) {
                enabled = true;
            }
        }
        return enabled;
    }