From b1084891961232e3c697ea9fc52f127cdccffb6b Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 11 七月 2024 17:28:44 +0800
Subject: [PATCH] 优化:流媒体
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java | 76 +++++++++++++++++++++++++------------
1 files changed, 51 insertions(+), 25 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..0b089e4 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,32 @@
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.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,14 +44,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 +60,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 +79,30 @@
}
} catch (Exception ex) {
log.error("鍚屾鐩告満鍦ㄧ嚎鐘舵�佸紓甯�:" + ex.getMessage());
+ }
+ }
+
+ /**
+ * @Author 鍒樿嫃涔�
+ * @Description 鍚屾閫氶亾鐘舵�佸疄鏃跺悓姝ユ祦濯掍綋
+ * @Date 2024/7/9 16:01
+ */
+ public void syncChannelState() {
+ log.warn("瀹氭椂鍚屾閫氶亾浠诲姟寮�濮�");
+ //鑾峰彇鎵�鏈塶vr璁惧
+ List<ArdCameras> ardCamerasList = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
+ if (ardCamerasList.size() > 0) {
+ ardCamerasList.stream()
+ .forEach(ardCameras -> {
+ //閫氳繃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 +138,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.warn("瀹氭椂鍚屾娴佸獟浣撲换鍔″紑濮�");
+ 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