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 |   78 +++++++++++++++++++++++++++------------
 1 files changed, 54 insertions(+), 24 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 e857c30..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
@@ -1,21 +1,33 @@
 package com.ruoyi.quartz.task;
 
 
+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.dhsdk.service.impl.DhSdkStrategy;
-import com.ruoyi.utils.sdk.hiksdk.service.impl.HikSdkStrategy;
+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;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鍚屾浠诲姟
@@ -33,13 +45,15 @@
     @Resource
     IArdCamerasService iArdCamerasService;
     @Resource
-    HikSdkStrategy hikClientService;
-    @Resource
-    DhSdkStrategy dhClientService;
-    @Resource
     IVtduService vtduService;
     @Resource
     IMediaService mediaService;
+    @Resource
+    private ICameraSdkService cameraSdkService;
+    @Resource
+    private CameraSDKFactory cameraSDKFactory;
+    @Resource
+    private IArdChannelService ardChannelService;
 
     /**
      * 鍚屾鐩告満鍦ㄧ嚎鐘舵��
@@ -48,19 +62,13 @@
      */
     public void cameraState() {
         try {
-           ArdCameras ardCamera = new ArdCameras();
+            ArdCameras ardCamera = new ArdCameras();
             //璋冪敤鏌ヨ鏂规硶
             List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(ardCamera);
             for (ArdCameras camera : ardCameras) {
                 CameraCmd cmd = new CameraCmd();
                 cmd.setCameraId(camera.getId());
-                boolean onLineNew = false;
-                // 鍒ゆ柇鏄�1杩樻槸2
-                if (camera.getFactory().equals("1")) {
-                    onLineNew = hikClientService.isOnLine(cmd);
-                } else if (camera.getFactory().equals("2")) {
-                    onLineNew = dhClientService.isOnLine(cmd);
-                }
+                boolean onLineNew = cameraSdkService.isOnLine(cmd);
                 boolean onLineOld = "1".equals(camera.getState());
                 if (onLineNew != onLineOld) {
                     if (onLineNew) {
@@ -73,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);
+                        }
+                    });
         }
     }
 
@@ -108,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