ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
@@ -4,6 +4,8 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue; import com.ruoyi.alarm.globalAlarm.domain.GuideTask; import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; @@ -17,6 +19,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.concurrent.PriorityBlockingQueue; /** * @ClassName: globalAlarmController @@ -70,4 +73,11 @@ Object alarmList = globalAlarmService.selectAlarmList(command,beginTime,endTime, pageNum, pageSize); return getDataTable((List)alarmList); } @GetMapping("/getQueueList") @ApiOperation(value = "查询队列",notes = "查询所有相机的当前队列") public AjaxResult getQueueList() { Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = GuidePriorityQueue.cameraQueueMap; return AjaxResult.success(cameraQueueMap); } } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
@@ -40,41 +40,13 @@ public static void printPriorityQueue() { for (String cameraId : GuidePriorityQueue.cameraQueueMap.keySet()) { PriorityBlockingQueue<GuideTask> priorityQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId); PriorityQueue<GuideTask> queue= new PriorityQueue<>(priorityQueue); PriorityBlockingQueue<GuideTask> queue = new PriorityBlockingQueue<>(priorityQueue); while (queue.size() > 0) { GuideTask task = queue.poll(); log.info("【alarmId】" + task.getAlarmId() + "【receiveTime】" + task.getReceiveTime() + "【priority】" + task.getPriority() + "【num】" + task.getNum() + "【chan】" + task.getChanNum() + "【recordSn】" + task.getRecordSn() + "【cameraId】" + task.getCameraId()); log.info("正在排队【cameraId】" + task.getCameraId()+"【alarmId】" + task.getAlarmId() + "【receiveTime】" + task.getReceiveTime() + "【alarmType】" + task.getAlarmType() + "【priority】" + task.getPriority() + "【num】" + task.getNum() + "【chan】" + task.getChanNum() + "【recordSn】" + task.getRecordSn()); } } } public static void main(String[] args) { Comparator<obj> com1 = Comparator.comparingInt(obj::getNUM1).reversed(); Comparator<obj> com2 = Comparator.comparingInt(obj::getNUM2).reversed(); Comparator<obj> com3 = Comparator.comparingInt(obj::getNUM3).reversed(); Comparator<obj> objComparator = com1.thenComparing(com2).thenComparing(com3); PriorityQueue<obj> priorityQueue = new PriorityQueue<>(objComparator); priorityQueue.add(new obj(1, 1, 65)); priorityQueue.add(new obj(1, 4, 21)); priorityQueue.add(new obj(1, 4, 33)); priorityQueue.add(new obj(1, 4, 44)); priorityQueue.add(new obj(1, 4, 51)); PriorityQueue<obj> queue= new PriorityQueue<>(priorityQueue); while (queue.size() > 0) { obj task = queue.poll(); log.info("【num1】" + task.getNUM1() + "【num2】" + task.getNUM2() + "【num3】" + task.getNUM3()); } log.info("======================================================================="); } } @Data @AllArgsConstructor class obj { Integer NUM1; Integer NUM2; Integer NUM3; } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -440,7 +440,6 @@ //endregion break; } GuidePriorityQueue.printPriorityQueue();//打印队列 } catch (Exception ex) { log.error("接收报警异常:" + ex.getMessage()); } @@ -482,6 +481,8 @@ guideTask.setTargetPosition(targetPosition); //消息入队 queueManager.addTaskToQueue(cameraId, guideTask); //打印队列 GuidePriorityQueue.printPriorityQueue(); } /** ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
@@ -93,7 +93,7 @@ try { GuideTask task = queue.take(); taskExecutor.processTask(task); GuidePriorityQueue.printPriorityQueue(); // GuidePriorityQueue.printPriorityQueue(); // 更新线程的当前任务 TaskThread currentTaskThread = threadMap.get(queueName); if (currentTaskThread != null) { ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
@@ -1,5 +1,6 @@ package com.ruoyi.alarm.globalAlarm.service.impl; import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue; import com.ruoyi.alarm.globalAlarm.domain.GuideTask; import com.ruoyi.alarm.radarAlarm.domain.ArdAlarmRadar; import com.ruoyi.alarm.radarAlarm.service.IArdAlarmRadarService; ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
@@ -22,11 +22,8 @@ static { priorityMap.put("sys_radar_fire", 999);//雷达防火报警 priorityMap.put("sys_radar_move", 999);//雷达移动报警 priorityMap.put("sys_tube_leak", 998);//管线泄露报警 priorityMap.put("sys_camera", 997);//通用光电报警 priorityMap.put("sys_steal_elec", 996);//盗电报警 priorityMap.put("sys_radar_move", 900);//雷达移动报警 priorityMap.put("sys_tube_leak", 800);//管线泄露报警 priorityMap.put("sys_patrol_inspect", 1);//巡检 } } ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -701,7 +701,7 @@ String cameraId = cmd.getCameraId();//申请锁的相机 ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); Date now = new Date(); now.setTime(now.getTime() + cmd.getExpired() * 60); now.setTime(now.getTime() + cmd.getExpired() * 1000); ardCameras.setOperatorExpired(now);//设置当前过期时间 ardCamerasMapper.updateArdCameras(ardCameras); // String cameraId = cmd.getCameraId();//申请锁的相机