From 3089fbc788d1dbd638d1cfd9c2f9b7f2011d0af0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 30 六月 2023 16:21:48 +0800
Subject: [PATCH] 优化sdk控制

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java |   62 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 7 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 11c5aac..72bcc71 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,9 +1,13 @@
 package com.ruoyi.alarm.globalAlarm.domain;
 
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.PriorityQueue;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.PriorityBlockingQueue;
 
 /**
  * @Description: 寮曞浼樺厛绾ч槦鍒�
@@ -12,11 +16,12 @@
  * @Date: 2023骞�06鏈�29鏃�11:18
  * @Version: 1.0
  **/
+@Slf4j
 public class GuidePriorityQueue {
     /**
      * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪
      */
-    public static Map<String, PriorityQueue<GuideTask>> cameraQueueMap = new HashMap<>();
+    public static Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = new HashMap<>();
 
     /**
      * 鍒涘缓涓�涓嚜瀹氫箟鐨勬瘮杈冨櫒锛屾牴鎹紭鍏堢骇灞炴�ц繘琛屾瘮杈�
@@ -24,9 +29,52 @@
     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);
+            PriorityQueue<GuideTask> queue= new PriorityQueue<>(priorityQueue);
+            while (queue.size() > 0) {
+                GuideTask task = queue.poll();
+                log.info("銆恆larmId銆�" + task.getAlarmId() + "銆恟eceiveTime銆�" + task.getReceiveTime()
+                        + "銆恜riority銆�" + task.getPriority() + "銆恘um銆�" + task.getNum()
+                        + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn() + "銆恈ameraId銆�" + task.getCameraId());
+            }
+        }
+    }
+
+
+    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("銆恘um1銆�" + task.getNUM1() + "銆恘um2銆�" + task.getNUM2() + "銆恘um3銆�" + task.getNUM3());
+        }
+        log.info("=======================================================================");
+    }
 }
+
+@Data
+@AllArgsConstructor
+class obj {
+    Integer NUM1;
+    Integer NUM2;
+    Integer NUM3;
+}
\ No newline at end of file

--
Gitblit v1.9.3