From f5fa6fa5e5d14fb3d8703434b30648be76b6e7e6 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 12 十二月 2023 17:08:47 +0800
Subject: [PATCH] 重构引导队列逻辑

---
 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
index 7c36f42..ac1388b 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -2,8 +2,10 @@
 
 import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
 import com.ruoyi.alarm.global.domain.GuideTask;
+import com.ruoyi.alarm.global.service.impl.QueueHandler;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.file.MimeTypeUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.device.camera.factory.CameraSDK;
@@ -52,6 +54,8 @@
     private IArdChannelService ardChannelService;
     @Resource
     private IVtduService vtduService;
+    @Resource
+    private QueueHandler queueHandler;
 
     public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK;
     private static HCNetSDK.FExceptionCallBack fExceptionCallBack;//寮傚父鍥炶皟
@@ -176,6 +180,7 @@
     @Async("loginExecutor")
     public void asyncLogin(ArdCameras camera) {
         try {
+            Thread.sleep(100);
             // 鍒濆鍖�
             if (!hCNetSDK.NET_DVR_Init()) {
                 log.error("SDK鍒濆鍖栧け璐�");
@@ -214,7 +219,7 @@
             //鍚屾鐧诲綍
             int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
             if (lUserID < 0) {
-                log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+                log.debug("Login Failed 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�,Error Code锛�" + hCNetSDK.NET_DVR_GetLastError());
                 camera.setChanNum(0);
                 camera.setLoginId(-1);
                 camera.setState("0");
@@ -224,7 +229,7 @@
                 return;
             }
 
-            log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]");
+            log.debug("Login Success 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�");
             if (fExceptionCallBack == null) {
                 fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟
                 //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
@@ -264,10 +269,14 @@
             //娣诲姞鍒版祦濯掍綋
             addVtdu(camera);
             //鍒涘缓寮曞闃熷垪
-            if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
-                Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
-                PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
-                GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
+            if(camera.getCamAlarmGuideEnable()==1) {
+                if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
+                    Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
+                    PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
+                    GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
+                    //鍚姩闃熷垪澶勭悊鍣�
+                    queueHandler.process(camera.getId());
+                }
             }
         } catch (Exception ex) {
             log.error("娉ㄥ唽璁惧寮傚父", ex);

--
Gitblit v1.9.3