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 | 228 ++++++++++++++++++-------------------------------------- 1 files changed, 73 insertions(+), 155 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 b561e4e..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,20 +3,16 @@ import com.ruoyi.common.annotation.SdkOperate; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.utils.Threads; 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.dhsdk.service.IDhClientService; -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.beans.factory.SmartInitializingSingleton; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; @@ -36,27 +32,30 @@ @Resource private IArdCamerasService ardCamerasService; @Resource - IHikClientService hikClientService; + private RedisCache redisCache; @Resource - IDhClientService dhClientService; - @Resource - RedisCache redisCache; + private SdkStrategyFactory sdkStrategyFactory; + /** + * 鍚姩绾跨▼鏂规硶锛岀敤浜庢墽琛屽垵濮嬪寲鐧诲綍鐩告満鐨勯�昏緫 + * + * @param args 鍛戒护琛屽弬鏁� + */ @Override - public void run(ApplicationArguments args) throws Exception { + public void run(ApplicationArguments args) { + try { + // 浠巃rdCamerasService涓幏鍙朅rdCameras鍒楄〃 List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); for (ArdCameras camera : ardCameras) { - if ("1".equals(camera.getFactory())) { - hikClientService.login(camera); - } else if ("2".equals(camera.getFactory())) { - dhClientService.login(camera); - } + login(camera); } } catch (Exception ex) { + // 鍒濆鍖栫櫥褰曠浉鏈哄紓甯革紝璁板綍閿欒鏃ュ織 log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage()); } } + //鐧诲綍 @Override @@ -65,13 +64,10 @@ try { if (ardCamera != null) { String factory = ardCamera.getFactory(); - if (factory.equals("1")) { - hikClientService.login(ardCamera); - result = true; - } else if (factory.equals("2")) { - dhClientService.login(ardCamera); - result = true; - } + SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory); + //sdkStrategy.login(ardCamera);//鍚屾鐧诲綍 + sdkStrategy.asyncLogin(ardCamera);//寮傛鐧诲綍 + result=true; } } catch (Exception ex) { log.error("鐧诲綍寮傚父锛�" + ex.getMessage()); @@ -88,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()); @@ -110,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) { @@ -133,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) { @@ -155,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()); @@ -177,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()); @@ -191,6 +172,7 @@ //璁剧疆棰勭疆浣� @Override + @SdkOperate public boolean setPreset(CameraCmd cmd) { boolean result = false; try { @@ -198,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()); @@ -212,6 +191,7 @@ //璋冪敤棰勭疆浣� @Override + @SdkOperate public boolean gotoPreset(CameraCmd cmd) { boolean result = false; try { @@ -219,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()); @@ -240,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()); @@ -261,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()); @@ -282,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()); @@ -303,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()); @@ -324,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()); @@ -345,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()); @@ -366,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()); @@ -387,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()); @@ -417,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()); @@ -440,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()); @@ -461,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()); @@ -483,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()); @@ -505,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()); @@ -527,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()); @@ -594,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()); @@ -615,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()); @@ -636,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()); @@ -657,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()); @@ -678,11 +599,8 @@ 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()); -- Gitblit v1.9.3