From 93cecfaf0fae080ebd0212adea714726290d0d4a Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期四, 01 八月 2024 20:36:54 +0800
Subject: [PATCH] 电磁锁串口协议发送加入线程排队提交

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java |   54 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
index d6ed2c3..edd182e 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
@@ -3,17 +3,22 @@
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.factory.CameraSDK;
 import com.ruoyi.device.camera.factory.CameraSDKFactory;
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.device.camera.service.ICameraSdkService;
+import com.ruoyi.device.channel.domain.ArdChannel;
+import com.ruoyi.device.channel.service.IArdChannelService;
+import com.ruoyi.device.channel.service.impl.ArdChannelServiceImpl;
 import com.ruoyi.media.domain.Vtdu;
 import com.ruoyi.media.service.IMediaService;
 import com.ruoyi.media.service.IVtduService;
 import com.ruoyi.rongcloud.service.RongCloudService;
 import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.utils.sdk.common.GlobalVariable;
 import com.ruoyi.utils.sdk.dhsdk.service.impl.DahuaSDK;
 import com.ruoyi.utils.sdk.hiksdk.service.impl.HikvisionSDK;
 import lombok.extern.slf4j.Slf4j;
@@ -21,6 +26,8 @@
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鍚屾浠诲姟
@@ -43,6 +50,11 @@
     IMediaService mediaService;
     @Resource
     private ICameraSdkService cameraSdkService;
+    @Resource
+    private CameraSDKFactory cameraSDKFactory;
+    @Resource
+    private IArdChannelService ardChannelService;
+
     /**
      * 鍚屾鐩告満鍦ㄧ嚎鐘舵��
      * 鍒樿嫃涔�
@@ -69,6 +81,32 @@
             }
         } catch (Exception ex) {
             log.error("鍚屾鐩告満鍦ㄧ嚎鐘舵�佸紓甯�:" + ex.getMessage());
+        }
+    }
+
+    /**
+     * @Author 鍒樿嫃涔�
+     * @Description 鍚屾閫氶亾鐘舵�佸疄鏃跺悓姝ユ祦濯掍綋
+     * @Date 2024/7/9 16:01
+     */
+    public void syncChannelState(){
+        log.debug("瀹氭椂鍚屾閫氶亾浠诲姟寮�濮�");
+        //鑾峰彇鎵�鏈塶vr璁惧
+        List<ArdCameras> ardCamerasList = GlobalVariable.loginedSet.stream().collect(Collectors.toList());
+        if (ardCamerasList.size() > 0) {
+            ardCamerasList.stream()
+                    .forEach(ardCameras -> {
+                        if (ardCameras.getLoginId() > 0) {
+                            //閫氳繃SDK鑾峰彇NVR瀹為檯閫氶亾
+                            CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(ardCameras.getFactory());
+                            List<ArdChannel> ardChannelList = cameraSDK.getChannels(ardCameras);
+                            //鍚屾閫氶亾琛�
+                            ArdChannel ardChannel = new ArdChannel();
+                            ardChannel.setDeviceId(ardCameras.getId());
+                            List<ArdChannel> ardChannelListDb = ardChannelService.selectArdChannelList(ardChannel);
+                            ardChannelService.asyncChannel(ardCameras, ardChannelListDb, ardChannelList);
+                        }
+                    });
         }
     }
 
@@ -104,14 +142,10 @@
      * 鍒樿嫃涔�
      * 2023/10/13 14:13:53
      */
-    public void vtdu() {
-
-        List<Vtdu> vtdus = vtduService.selectVtduList(new Vtdu());
-        for (Vtdu vtdu : vtdus) {
-            boolean nameExist = mediaService.checkNameExist(vtdu.getName());
-            if (!nameExist) {
-                mediaService.addPath(vtdu.getName(), vtdu.getRtspSource(), vtdu.getMode(), vtdu.getIsCode());
-            }
-        }
+    public void syncVtdu() {
+        log.debug("瀹氭椂鍚屾娴佸獟浣撲换鍔″紑濮�");
+        List<String> nameList = mediaService.getNameList();
+        List<Vtdu> vtduList = vtduService.selectVtduList(new Vtdu());
+        vtduService.asyncVtdu(vtduList, nameList);
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3