‘liusuyi’
2023-06-30 a38cb5bb3898f8996321df8f8d537ea18f4af71f
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -344,7 +344,7 @@
                        log.debug("tube入库成功:" + ardAlarmTube);
                        String nearbyCamera = getNearbyCamera(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()});
                        if (StringUtils.isNotEmpty(nearbyCamera)) {
                            messagesEnqueued(nearbyCamera, ardAlarmTube.getId(), "sys_tube_leak", ardAlarmTube.getAlarmTime(), 1);
                            messagesEnqueued(nearbyCamera, ardAlarmTube.getId(), "sys_tube_leak", ardAlarmTube.getAlarmTime(), 1,1);
                        }
                    }
                    //endregion
@@ -357,26 +357,6 @@
                    int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera);
                    if (aac > 0) {
                        log.debug("camera入库成功:" + ardAlarmCamera);
                        String nearbyCamera = getNearbyCamera(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()});
                        if (StringUtils.isNotEmpty(nearbyCamera)) {
                            messagesEnqueued(nearbyCamera, ardAlarmCamera.getId(), "sys_camera", ardAlarmCamera.getAlarmTime(), 1);
                        }
                        //引导录像
//                        CameraCmd cmd = new CameraCmd();
//                        cmd.setRecordBucketName("record");
//                        cmd.setRecordObjectName("camera");
//                        cmd.setOperator("sys_camera");
//                        cmd.setExpired(30);
//                        cmd.setTargetPosition(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()});
//                        boolean res = guideCamera(cmd);
//                        if (res) {
//                            String url = alarmToRecord(cmd);
//                            if (StringUtils.isNotEmpty(url)) {
//                                //更新录像
//                                ardAlarmCamera.setRecordUrl(url);
//                                ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera);
//                            }
//                        }
                    }
                    //endregion
                    break;
@@ -410,41 +390,36 @@
                            String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
                            if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
                                //入队列待引导
                                messagesEnqueued(cameraIdWithTower, uuid, alarmType, ardAlarmRadar.getAlarmTime(), 1);
                                messagesEnqueued(cameraIdWithTower, uuid, alarmType, ardAlarmRadar.getAlarmTime(), 1,1);
                            }
                        } else {
                            //5分钟内有引导
                            ardAlarmRadar.setGuideFlag(0);
                            int count = ardAlarmRadarMapper.getArdAlarmRadarWithNotGuide(ardAlarmRadar, AlarmRadar.getCreateTime());
                            //未引导超过3次,直接入库入队
                            if (count >= 3) {
                                //未引导超过3次,直接入库入队
                                //5分钟内未引导直接入库
                                ardAlarmRadar.setGuideFlag(1);
                                ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
                                //入队列待引导
                                //获取雷达所在塔上的大光电
                                String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
                                if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
                                    //如果雷达塔上有光电
                                    messagesEnqueued(cameraIdWithTower, uuid, alarmType, ardAlarmRadar.getAlarmTime(), count);
                                    messagesEnqueued(cameraIdWithTower, uuid, alarmType, ardAlarmRadar.getAlarmTime(), count,1);
                                }
                                //获取报警点关联的大光电
                                ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmRadar.getName());
                                if(StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId()))
                                {
                                    String cameraId = ardAlarmpointsWell.getCameraId();
                                    //如果报警点关联了光电
                                    messagesEnqueued(cameraId, uuid, alarmType, ardAlarmRadar.getAlarmTime(), count,1);
                                }
                            } else {
                                //未引导未超过3次,直接入库
                                ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
                            }
                        }
                        //获取兴趣点关联的大光电
//                            ArdAlarmpointsWell well=new ArdAlarmpointsWell();
//                            well.setWellId(ardAlarmRadar.getName());
//                            List<ArdAlarmpointsWell> ardAlarmpointsWells = ardAlarmpointsWellMapper.selectArdAlarmpointsWellList(well);
//                            if(ardAlarmpointsWells!=null&&ardAlarmpointsWells.size()>0)
//                            {
//                                String cameraIdWithWell = ardAlarmpointsWells.get(0).getCameraId();
//                            }
                    }
                    //endregion
                    break;
@@ -459,16 +434,29 @@
    /**
     * 消息入队
     */
    private void messagesEnqueued (String cameraId, String alarmId, String alarmType, Date alarmTime, Integer num) {
    private void messagesEnqueued(String cameraId, String alarmId, String alarmType, Date alarmTime, Integer num, Integer recordSn) {
        GuideTask guideTask = new GuideTask();
        /*配置相机ID*/
        guideTask.setCameraId(cameraId);
        /*根据配置时间配置通道*/
        String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
        Integer channel = ArdTool.getChannelBydayNightTime(dayNightTime);
        guideTask.setChanNum(channel);
        /*配置报警ID*/
        guideTask.setAlarmId(alarmId);
        /*配置报警时间*/
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        guideTask.setAlarmTime(fmt.format(alarmTime));
        /*配置报警优先级*/
        Integer priority = CamPriority.priorityMap.get(alarmType);
        guideTask.setPriority(priority);
        /*配置报警次数*/
        guideTask.setNum(num);
        queueManager.addTaskToQueue(cameraId,guideTask);
        /*配置录像存储位置*/
        guideTask.setRecordSn(recordSn);
        /*消息入队*/
        queueManager.addTaskToQueue(cameraId, guideTask);
//        PriorityBlockingQueue<GuideTask> priorityBlockingQueue = GuidePriorityQueue.cameraQueueMap.get(guideTask.getCameraId());
//        priorityBlockingQueue.add(guideTask);
    }