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