From 8d2467a5c6647853df999261e1f5374f6a66da02 Mon Sep 17 00:00:00 2001 From: Administrator <1144154118@qq.com> Date: 星期六, 19 八月 2023 14:11:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java index 476c083..bbe9c52 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java @@ -3,13 +3,18 @@ import com.ruoyi.alarm.global.domain.GuidePriorityQueue; import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.service.IArdCamerasService; +import com.ruoyi.device.channel.domain.ArdChannel; +import com.ruoyi.device.channel.service.IArdChannelService; import com.ruoyi.device.hiksdk.common.GlobalVariable; +import com.ruoyi.device.hiksdk.service.IHikClientService; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import java.util.Comparator; +import java.util.List; import java.util.concurrent.PriorityBlockingQueue; /** @@ -30,6 +35,9 @@ @Override public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) { + IArdChannelService ardChannelService = SpringUtils.getBean(IArdChannelService.class); + IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class); + IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } @@ -37,17 +45,28 @@ GlobalVariable.loginMap.put(camera.getId(), lUserID); log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛"); camera.setLoginId(lUserID); - camera.setChannel((int) lpDeviceinfo.byChanNum); + camera.setChanNum((int) lpDeviceinfo.byChanNum); + camera.setStartDChan((int)lpDeviceinfo.byStartDChan); + + //鑾峰彇鏈�鏂伴�氶亾 + List<ArdChannel> cameraChannelList = hikClientService.getCameraChannelList(camera); + if(cameraChannelList.size()>0) { + //鍒犻櫎绠$悊閫氶亾 + ardChannelService.deleteArdChannelByDeviceId(camera.getId()); + for (ArdChannel channel : cameraChannelList) { + channel.setId(IdUtils.simpleUUID()); + ardChannelService.insertArdChannel(channel); + } + } //鍒涘缓寮曞闃熷垪 Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); - PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000,comparator); + PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); } else { log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触"); - camera.setChannel(0); + camera.setChanNum(0); camera.setLoginId(-1); } - IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); ardCamerasService.updateArdCameras(camera); return 1; } -- Gitblit v1.9.3