From 3940ebf3e39da287974c4f49474e668d33fed2df Mon Sep 17 00:00:00 2001
From: zhangjian <zhangjianrock@163.com>
Date: 星期六, 19 八月 2023 17:28:27 +0800
Subject: [PATCH] 处理连接失败异常
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java | 42 +++++++++++++++++++++++++++++-------------
1 files changed, 29 insertions(+), 13 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 4ea42ef..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
@@ -1,18 +1,20 @@
package com.ruoyi.device.hiksdk.util.hikSdkUtil;
-import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue;
-import com.ruoyi.alarm.globalAlarm.domain.GuideTask;
+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.mapper.ArdCamerasMapper;
+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 org.springframework.stereotype.Component;
-import javax.annotation.Resource;
import java.util.Comparator;
-import java.util.PriorityQueue;
+import java.util.List;
import java.util.concurrent.PriorityBlockingQueue;
/**
@@ -33,25 +35,39 @@
@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());
}
if (dwResult == 1) {
GlobalVariable.loginMap.put(camera.getId(), lUserID);
- log.info(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛");
+ 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.info(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触");
- camera.setChannel(0);
+ log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触");
+ camera.setChanNum(0);
camera.setLoginId(-1);
}
- ArdCamerasMapper ardCamerasMapper = SpringUtils.getBean(ArdCamerasMapper.class);
- ardCamerasMapper.updateArdCameras(camera);
+ ardCamerasService.updateArdCameras(camera);
return 1;
}
}
--
Gitblit v1.9.3