From 6decb63d865de6b551324fd9782555786132170e Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 07 十一月 2023 16:11:22 +0800 Subject: [PATCH] 1、修改相机异步登录 2、sdk切换更改为策略模式 3、修复手动巡检停止录像bug --- ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java | 244 +++++++++++++++++------------------------------- 1 files changed, 85 insertions(+), 159 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java index 6598897..bd6a533 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java @@ -3,29 +3,21 @@ import com.ruoyi.common.annotation.SdkOperate; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.utils.file.FileUtils; 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.camera.service.ICameraSdkService; -import com.ruoyi.device.channel.domain.ArdChannel; -import com.ruoyi.device.dhsdk.lib.NetSDKLib; -import com.ruoyi.device.dhsdk.module.RealPlayModule; -import com.ruoyi.device.dhsdk.service.IDhClientService; -import com.ruoyi.device.hiksdk.common.GlobalVariable; -import com.ruoyi.device.hiksdk.service.IHikClientService; +import com.ruoyi.device.camera.strategy.SdkStrategy; +import com.ruoyi.device.camera.strategy.SdkStrategyFactory; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Service; - import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; - -import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint; -import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk; -import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.NET_DVR_CHECK_USER_STATUS; /** @@ -36,22 +28,34 @@ **/ @Service @Slf4j(topic = "SDK") -public class CameraSdkServiceImpl implements ICameraSdkService { +public class CameraSdkServiceImpl implements ICameraSdkService, ApplicationRunner { @Resource private IArdCamerasService ardCamerasService; @Resource - IHikClientService hikClientService; + private RedisCache redisCache; @Resource - IDhClientService dhClientService; - @Resource - RedisCache redisCache; + private SdkStrategyFactory sdkStrategyFactory; - //鍒濆鍖朣DK + /** + * 鍚姩绾跨▼鏂规硶锛岀敤浜庢墽琛屽垵濮嬪寲鐧诲綍鐩告満鐨勯�昏緫 + * + * @param args 鍛戒护琛屽弬鏁� + */ @Override - public void loginAll() { - hikClientService.loginAll();//鐧诲綍鍏ㄩ儴娴峰悍鐩告満 - dhClientService.loginAll();//鐧诲綍鍏ㄩ儴澶у崕鐩告満 + public void run(ApplicationArguments args) { + + try { + // 浠巃rdCamerasService涓幏鍙朅rdCameras鍒楄〃 + List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); + for (ArdCameras camera : ardCameras) { + login(camera); + } + } catch (Exception ex) { + // 鍒濆鍖栫櫥褰曠浉鏈哄紓甯革紝璁板綍閿欒鏃ュ織 + log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage()); + } } + //鐧诲綍 @Override @@ -60,12 +64,10 @@ try { if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - hikClientService.login(ardCamera); - result = true; - } else if (factory.equals("2")) { - result = dhClientService.login(ardCamera); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + //sdkStrategy.login(ardCamera);//鍚屾鐧诲綍 + sdkStrategy.asyncLogin(ardCamera);//寮傛鐧诲綍 + result=true; } } catch (Exception ex) { log.error("鐧诲綍寮傚父锛�" + ex.getMessage()); @@ -82,11 +84,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.logout(cameraId); - } else if (factory.equals("2")) { - result = dhClientService.logout(cameraId); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.logout(cameraId); } } catch (Exception ex) { log.error("娉ㄩ攢寮傚父锛�" + ex.getMessage()); @@ -104,11 +103,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - onLine = hikClientService.isOnLine(cmd); - } else if (factory.equals("2")) { - onLine = dhClientService.isOnLine(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + onLine = sdkStrategy.isOnLine(cmd); } return onLine; } catch (Exception ex) { @@ -127,11 +123,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.pTZControlWithSpeed(cmd); - } else if (factory.equals("2")) { - result = dhClientService.pTZControl(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.pTZControl(cmd); } return result; } catch (Exception ex) { @@ -149,11 +142,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.setFocusPos(cmd); - } else if (factory.equals("2")) { - result = dhClientService.setFocusPos(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.setFocusPos(cmd); } } catch (Exception ex) { log.error("璁剧疆鑱氱劍鍊煎紓甯革細" + ex.getMessage()); @@ -171,11 +161,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.getFocusPos(cmd); - } else if (factory.equals("2")) { - result = dhClientService.getFocusPos(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.getFocusPos(cmd); } } catch (Exception ex) { log.error("鑾峰彇鑱氱劍鍊煎紓甯革細" + ex.getMessage()); @@ -185,6 +172,7 @@ //璁剧疆棰勭疆浣� @Override + @SdkOperate public boolean setPreset(CameraCmd cmd) { boolean result = false; try { @@ -192,11 +180,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.setPreset(cmd); - } else if (factory.equals("2")) { - result = dhClientService.setPreset(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.setPreset(cmd); } } catch (Exception ex) { log.error("璁剧疆棰勭疆浣嶅紓甯革細" + ex.getMessage()); @@ -206,6 +191,7 @@ //璋冪敤棰勭疆浣� @Override + @SdkOperate public boolean gotoPreset(CameraCmd cmd) { boolean result = false; try { @@ -213,11 +199,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.gotoPreset(cmd); - } else if (factory.equals("2")) { - result = dhClientService.gotoPreset(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.gotoPreset(cmd); } } catch (Exception ex) { log.error("璋冪敤棰勭疆浣嶅紓甯革細" + ex.getMessage()); @@ -234,11 +217,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - map = hikClientService.getVideoCompressionCfg(cmd); - } else if (factory.equals("2")) { - map = dhClientService.getVideoCompressionCfg(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + map = sdkStrategy.getVideoCompressionCfg(cmd); } } catch (Exception ex) { log.error("鑾峰彇鐮佹祦鍘嬬缉鍙傛暟寮傚父锛�" + ex.getMessage()); @@ -255,11 +235,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.controlDefogcfg(cmd); - } else if (factory.equals("2")) { - //涓嶆敮鎸� - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.controlDefogcfg(cmd); } } catch (Exception ex) { log.error("鎿嶆帶閫忛浘寮傚父锛�" + ex.getMessage()); @@ -276,11 +253,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.controlInfrarecfg(cmd); - } else if (factory.equals("2")) { - result = dhClientService.controlInfrarecfg(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.controlInfrarecfg(cmd); } } catch (Exception ex) { log.error("鎿嶆帶绾㈠寮傚父锛�" + ex.getMessage()); @@ -297,11 +271,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.controlFocusMode(cmd); - } else if (factory.equals("2")) { - result = dhClientService.controlFocusMode(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.controlFocusMode(cmd); } } catch (Exception ex) { log.error("鎿嶆帶鑱氱劍妯″紡寮傚父锛�" + ex.getMessage()); @@ -318,11 +289,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.getFocusMode(cmd); - } else if (factory.equals("2")) { - result = dhClientService.getFocusMode(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.getFocusMode(cmd); } } catch (Exception ex) { log.error("鑾峰彇鑱氱劍妯″紡寮傚父锛�" + ex.getMessage()); @@ -339,11 +307,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.controlPTHeateRpwron(cmd); - } else if (factory.equals("2")) { - //涓嶆敮鎸� - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.controlPTHeateRpwron(cmd); } } catch (Exception ex) { log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage()); @@ -360,11 +325,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.controlCameraDeicing(cmd); - } else if (factory.equals("2")) { - //涓嶆敮鎸� - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.controlCameraDeicing(cmd); } } catch (Exception ex) { log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage()); @@ -381,11 +343,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.getPTZLockInfo(cmd); - } else if (factory.equals("2")) { - - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.getPTZLockInfo(cmd); } } catch (Exception ex) { log.error("鑾峰彇浜戝彴閿佸畾淇℃伅寮傚父锛�" + ex.getMessage()); @@ -411,13 +370,8 @@ if (ardCamera != null) { //鑾峰彇鎽勫儚澶村伐鍘� String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - //璋冪敤hikClientService鐨刾icCutCate鏂规硶 - url = hikClientService.picCutCate(cmd); - } else if (factory.equals("2")) { - //璋冪敤dhClientService鐨刾icCutCate鏂规硶 - url = dhClientService.picCutCate(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + url = sdkStrategy.picCutCate(cmd); } } catch (Exception ex) { log.error("鎶撳浘寮傚父锛�" + ex.getMessage()); @@ -434,11 +388,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - map = hikClientService.getPtz(cmd); - } else if (factory.equals("2")) { - map = dhClientService.getPtz(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + map = sdkStrategy.getPtz(cmd); } } catch (Exception ex) { log.error("鑾峰彇ptz寮傚父锛�" + ex.getMessage()); @@ -455,11 +406,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - map = hikClientService.getPtzScope(cmd); - } else if (factory.equals("2")) { - - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + map = sdkStrategy.getPtzScope(cmd); } } catch (Exception ex) { log.error("鑾峰彇ptz鑼冨洿寮傚父锛�" + ex.getMessage()); @@ -477,11 +425,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.setPtz(cmd); - } else if (factory.equals("2")) { - result = dhClientService.setPtz(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.setPtz(cmd); } } catch (Exception ex) { log.error("璁剧疆ptz寮傚父锛�" + ex.getMessage()); @@ -499,11 +444,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.setZeroPtz(cmd); - } else if (factory.equals("2")) { - result = dhClientService.setZeroPtz(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.setZeroPtz(cmd); } } catch (Exception ex) { log.error("璁剧疆闆舵柟浣嶈寮傚父锛�" + ex.getMessage()); @@ -521,11 +463,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.guideTargetPosition(cmd); - } else if (factory.equals("2")) { - result = dhClientService.guideTargetPosition(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.guideTargetPosition(cmd); } } catch (Exception ex) { log.error("寮曞鎸囧悜鐩爣寮傚父锛�" + ex.getMessage()); @@ -588,11 +527,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - url = hikClientService.record(cmd); - } else if (factory.equals("2")) { - url = dhClientService.record(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + url = sdkStrategy.record(cmd); } } catch (Exception ex) { log.error("褰曞儚寮傚父锛�" + ex.getMessage()); @@ -609,11 +545,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.recordStart(cmd); - } else if (factory.equals("2")) { - result = dhClientService.recordStart(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.recordStart(cmd); } } catch (Exception ex) { log.error("寮�濮嬪綍鍍忓紓甯革細" + ex.getMessage()); @@ -630,11 +563,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - url = hikClientService.recordStopToMinio(cmd); - } else if (factory.equals("2")) { - url = dhClientService.recordStopToMinio(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + url = sdkStrategy.recordStopToMinio(cmd); } } catch (Exception ex) { log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage()); @@ -651,11 +581,8 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - result = hikClientService.recordStopNotToMinio(cmd); - } else if (factory.equals("2")) { - result = dhClientService.recordStopNotToMinio(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + result = sdkStrategy.recordStopNotToMinio(cmd); } } catch (Exception ex) { log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage()); @@ -672,15 +599,14 @@ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - map = hikClientService.getGisInfo(cmd); - } else if (factory.equals("2")) { - map = dhClientService.getGisInfo(cmd); - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + map = sdkStrategy.getGisInfo(cmd); } } catch (Exception ex) { log.error("鑾峰彇鐩告満鏋惰鍙傛暟寮傚父锛�" + ex.getMessage()); } return map; } + + } -- Gitblit v1.9.3