From 70210b0eb0c58e1779fd89cbcf0909154d7d4936 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 01 七月 2023 11:45:18 +0800
Subject: [PATCH] 基本完成优先级排队报警逻辑

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
index 937237d..210c939 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
@@ -1,23 +1,27 @@
 package com.ruoyi.alarm.globalAlarm.domain;
 
-import com.ruoyi.alarm.globalAlarm.service.impl.GuideTask;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
 
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.PriorityBlockingQueue;
 
 /**
- * @Description:
+ * @Description: 寮曞浼樺厛绾ч槦鍒�
  * @ClassName: PriorityQueue
  * @Author: 鍒樿嫃涔�
  * @Date: 2023骞�06鏈�29鏃�11:18
  * @Version: 1.0
  **/
+@Slf4j(topic = "guideQueue")
 public class GuidePriorityQueue {
     /**
      * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪
      */
-    public static Map<String, java.util.PriorityQueue<GuideTask>> cameraQueueMap = new HashMap<>();
+    public static Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = new HashMap<>();
 
     /**
      * 鍒涘缓涓�涓嚜瀹氫箟鐨勬瘮杈冨櫒锛屾牴鎹紭鍏堢骇灞炴�ц繘琛屾瘮杈�
@@ -25,9 +29,24 @@
     public static Comparator<GuideTask> getComparator() {
         Comparator<GuideTask> PriorityDescCom = Comparator.comparingInt(GuideTask::getPriority).reversed();
         Comparator<GuideTask> NumDescCom = Comparator.comparingInt(GuideTask::getNum).reversed();
-        Comparator<GuideTask> alarmTimeAscCom = Comparator.comparing(GuideTask::getAlarmTime);
-        Comparator<GuideTask> Comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(alarmTimeAscCom);
+        Comparator<GuideTask> receiveTimeAscCom = Comparator.comparing(GuideTask::getReceiveTime);
+        Comparator<GuideTask> Comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(receiveTimeAscCom);
         return Comparator;
     }
 
-}
+    /**
+     * 娴嬭瘯浣跨敤锛氭墦鍗伴槦鍒�
+     */
+    public static void printPriorityQueue() {
+        for (String cameraId : GuidePriorityQueue.cameraQueueMap.keySet()) {
+            PriorityBlockingQueue<GuideTask> priorityQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId);
+            PriorityBlockingQueue<GuideTask> queue = new PriorityBlockingQueue<>(priorityQueue);
+            while (queue.size() > 0) {
+                GuideTask task = queue.poll();
+                log.info("姝e湪鎺掗槦銆恈ameraId銆�" + task.getCameraId()+"銆恆larmId銆�" + task.getAlarmId() + "銆恟eceiveTime銆�" + task.getReceiveTime()
+                        + "銆恆larmType銆�" + task.getAlarmType() + "銆恜riority銆�" + task.getPriority() + "銆恘um銆�" + task.getNum()
+                        + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn());
+            }
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3