From 2ab35000026ccd58238e6a504b1b5f79f8c262c3 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期三, 17 七月 2024 10:20:20 +0800
Subject: [PATCH] 优化

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java |  234 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 150 insertions(+), 84 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 f2b6b01..1ee40ff 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,84 +1,150 @@
-package com.ruoyi.quartz.task;
-
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.rongcloud.service.RongCloudService;
-import com.ruoyi.system.service.ISysUserService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * @Description: 鍚屾浠诲姟
- * @ClassName: syncDeviceStateTask
- * @Author: 鍒樿嫃涔�
- * @Date: 2023骞�10鏈�08鏃�11:06:42
- **/
-@Component("SyncTask")
-@Slf4j
-public class SyncTask {
-    @Resource
-    ISysUserService sysUserService;
-    @Resource
-    RongCloudService rongCloudService;
-    @Resource
-    IArdCamerasService iArdCamerasService;
-    @Resource
-    IHikClientService iHikClientService;
-
-    /**
-     * 鍚屾鐩告満鍦ㄧ嚎鐘舵��
-     * 鍒樿嫃涔�
-     * 2023/10/8 14:54:41
-     */
-    public void cameraState() {
-        List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
-        for (ArdCameras camera : ardCameras) {
-            CameraCmd cmd = new CameraCmd();
-            cmd.setCameraId(camera.getId());
-            boolean onLineNew = iHikClientService.isOnLine(cmd);//鐩告満瀹炴椂鐘舵��
-            boolean onLineOld = "1".equals(camera.getState());//鐩告満鍘嗗彶鐘舵��
-            //褰撶姸鎬佸彂鐢熷彉鍖栨椂锛屾洿鏂板疄鏃剁姸鎬�
-            if (onLineNew != onLineOld) {
-                if (onLineNew) {
-                    camera.setState("1");
-                } else {
-                    camera.setState("0");
-                }
-                iArdCamerasService.updateArdCameras(camera);
-            }
-        }
-    }
-
-    /**
-     * 瀹氭椂鑾峰彇app鐢ㄦ埛鍦ㄧ嚎鐘舵��
-     * 鍒樿嫃涔�
-     * 2023/8/9 9:17:48
-     */
-    public void appUserState() {
-        try {
-            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
-            if (SysUserList.size() > 0) {
-                for (SysUser sysUser : SysUserList) {
-                    String state = sysUser.getAppOnlineState();//鑾峰彇褰撳墠鐢ㄦ埛鐨勫湪绾跨姸鎬�
-                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//浠庤瀺浜戣幏鍙栧湪绾跨姸鎬�
-                    if (state != null) {
-                        Boolean appOnlineState = state.equals("1");
-                        if (appOnlineState == online) {
-                            continue;
-                        }
-                    }
-                    sysUser.setAppOnlineState(online ? "1" : "0");
-                    sysUserService.updateUserProfile(sysUser);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("铻嶄簯鍦ㄧ嚎鎺ュ彛寮傚父锛�" + ex.getMessage());
-        }
-    }
-}
+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.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: 鍚屾浠诲姟
+ * @ClassName: syncDeviceStateTask
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�10鏈�08鏃�11:06:42
+ **/
+@Component("SyncTask")
+@Slf4j
+public class SyncTask {
+    @Resource
+    ISysUserService sysUserService;
+    @Resource
+    RongCloudService rongCloudService;
+    @Resource
+    IArdCamerasService iArdCamerasService;
+    @Resource
+    IVtduService vtduService;
+    @Resource
+    IMediaService mediaService;
+    @Resource
+    private ICameraSdkService cameraSdkService;
+    @Resource
+    private CameraSDKFactory cameraSDKFactory;
+    @Resource
+    private IArdChannelService ardChannelService;
+
+    /**
+     * 鍚屾鐩告満鍦ㄧ嚎鐘舵��
+     * 鍒樿嫃涔�
+     * 2023/10/8 14:54:41
+     */
+    public void cameraState() {
+        try {
+            ArdCameras ardCamera = new ArdCameras();
+            //璋冪敤鏌ヨ鏂规硶
+            List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(ardCamera);
+            for (ArdCameras camera : ardCameras) {
+                CameraCmd cmd = new CameraCmd();
+                cmd.setCameraId(camera.getId());
+                boolean onLineNew = cameraSdkService.isOnLine(cmd);
+                boolean onLineOld = "1".equals(camera.getState());
+                if (onLineNew != onLineOld) {
+                    if (onLineNew) {
+                        camera.setState("1");
+                    } else {
+                        camera.setState("0");
+                    }
+                    iArdCamerasService.updateArdCameras(camera);
+                }
+            }
+        } catch (Exception ex) {
+            log.error("鍚屾鐩告満鍦ㄧ嚎鐘舵�佸紓甯�:" + ex.getMessage());
+        }
+    }
+
+    /**
+     * @Author 鍒樿嫃涔�
+     * @Description 鍚屾閫氶亾鐘舵�佸疄鏃跺悓姝ユ祦濯掍綋
+     * @Date 2024/7/9 16:01
+     */
+    public void syncChannelState() {
+        log.debug("瀹氭椂鍚屾閫氶亾浠诲姟寮�濮�");
+        //鑾峰彇鎵�鏈塶vr璁惧
+        List<ArdCameras> ardCamerasList = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
+        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);
+                        }
+                    });
+        }
+    }
+
+    /**
+     * 瀹氭椂鑾峰彇app鐢ㄦ埛鍦ㄧ嚎鐘舵��
+     * 鍒樿嫃涔�
+     * 2023/8/9 9:17:48
+     */
+    public void appUserState() {
+        try {
+            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
+            if (SysUserList.size() > 0) {
+                for (SysUser sysUser : SysUserList) {
+                    String state = sysUser.getAppOnlineState();//鑾峰彇褰撳墠鐢ㄦ埛鐨勫湪绾跨姸鎬�
+                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//浠庤瀺浜戣幏鍙栧湪绾跨姸鎬�
+                    if (state != null) {
+                        Boolean appOnlineState = state.equals("1");
+                        if (appOnlineState == online) {
+                            continue;
+                        }
+                    }
+                    sysUser.setAppOnlineState(online ? "1" : "0");
+                    sysUserService.updateUserProfile(sysUser);
+                }
+            }
+        } catch (Exception ex) {
+            log.error("铻嶄簯鍦ㄧ嚎鎺ュ彛寮傚父锛�" + ex.getMessage());
+        }
+    }
+
+    /**
+     * 鍚屾娴佸獟浣�
+     * 鍒樿嫃涔�
+     * 2023/10/13 14:13:53
+     */
+    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