From e4aeeaf6fc665faa0f1e9e71c60609d62a9b093f Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Fri, 21 Nov 2025 17:00:49 +0800
Subject: [PATCH] 修复机场挂载相机无法删除的问题

---
 ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java |   26 ++++++++++----------------
 1 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java b/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
index dcdb3e8..c146539 100644
--- a/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
+++ b/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
@@ -1,13 +1,10 @@
 package com.ard.device.component.sdk.hik.service.impl;
 
-import com.ard.common.core.domain.AjaxResult;
 import com.ard.common.utils.StringUtils;
 import com.ard.device.camera.domain.ArdCamera;
-import com.ard.device.camera.service.IArdCameraService;
 import com.ard.device.channel.domain.ArdChannel;
 import com.ard.device.camera.domain.CameraCmd;
 import com.ard.device.channel.domain.VideoCompressionCfg;
-import com.ard.device.channel.service.IArdChannelService;
 import com.ard.device.component.sdk.common.GlobalVariable;
 import com.ard.device.component.sdk.common.ResolutionEnum;
 import com.ard.device.component.sdk.common.SdkErrorCodeEnum;
@@ -76,7 +73,7 @@
      * 登录
      */
     @Override
-    public AjaxResult login(ArdCamera camera) {
+    public void login(ArdCamera camera) {
         try {
             String m_sDeviceIP = camera.getIp();
             String m_sUsername = camera.getUsername();
@@ -109,9 +106,9 @@
                 eventPublisher.publishEvent(loginEvent);
                 log.warn("设备[{}:{}]登录失败: {}({})", camera.getIp(), camera.getPort(),
                         SdkErrorCodeEnum.getDescByCode(errorCode), errorCode);
-                return AjaxResult.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")");
+                return;
             }
-            log.debug("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort());
+            log.info("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort());
 
             GlobalVariable.loginMap.put(camera.getId(), loginId);
             GlobalVariable.hikLoginMap.put(loginId, camera);
@@ -119,7 +116,7 @@
             camera.setState("1");
             int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum;
             int startChan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1;
-            if (camera.getType().equals("2")) {
+            if ("2".equals(camera.getType())) {
                 chanNum = m_strDeviceInfo.struDeviceV30.byIPChanNum;
                 startChan = m_strDeviceInfo.struDeviceV30.byStartDChan;
             }
@@ -132,10 +129,8 @@
             }
             LoginEvent loginEvent = new LoginEvent(camera);
             eventPublisher.publishEvent(loginEvent);
-            return AjaxResult.success("设备登录成功");
         } catch (Exception ex) {
             log.error("注册设备异常", ex);
-            return AjaxResult.error("注册设备异常" + ex.getMessage());
         }
     }
 
@@ -143,16 +138,15 @@
      * 注销
      */
     @Override
-    public boolean logout(String cameraId) {
+    public void logout(String cameraId) {
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return;
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         boolean b = hCNetSDK.NET_DVR_Logout(userId);
         if (b) {
             GlobalVariable.loginMap.remove(cameraId);
         }
-        return b;
     }
 
     @Override
@@ -314,7 +308,7 @@
             }
             //分辨率
             String resolution =
-                    ResolutionEnum.fromCode(compressionCfg.struNormHighRecordPara.byResolution).getResolution();
+                    Objects.requireNonNull(ResolutionEnum.fromCode(compressionCfg.struNormHighRecordPara.byResolution)).getResolution();
             //帧率
             String nFrameRate;
             switch (compressionCfg.struNormHighRecordPara.dwVideoFrameRate) {
@@ -401,6 +395,7 @@
     /**
      * 获取通道
      */
+    @Override
     public List<ArdChannel> getChannels(ArdCamera camera) {
         //获取通道
         List<ArdChannel> channelList = new ArrayList<>();
@@ -443,7 +438,7 @@
                         channel.setVideoCode(videoCompressionCfg.getVideoEncType());
                     }
                     //NVR过滤离线通道
-                    if (camera.getType().equals("3") || camera.getType().equals("2")) {
+                    if ("3".equals(camera.getType()) || "2".equals(camera.getType())) {
                         if (ipParaCfg.struStreamMode[iChanNo].uGetStream.struChanInfo.byEnable != 1) {
                             continue;
                         }
@@ -488,12 +483,11 @@
                         return false;
                     }
 
-                    System.out.println("✅ 尝试加载动态库: " + strDllPath);
+                    System.out.println("⏳ 正在加载 HCNetSDK: " + strDllPath);
                     hCNetSDK = Native.loadLibrary(strDllPath, HCNetSDK.class);
                     System.out.println("✅ SDK 加载成功!");
                 } catch (Exception ex) {
                     System.err.println("❌ SDK 加载失败: " + strDllPath + "\n异常信息: " + ex.getMessage());
-                    ex.printStackTrace();
                     return false;
                 }
             }

--
Gitblit v1.9.3