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