From 1253e030e4b805f9f8adc3c664ad9de014670ad9 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期六, 25 五月 2024 17:22:39 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java |   16 +++----
 ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java          |    1 
 ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java      |   67 ++++++++-------------------------
 3 files changed, 24 insertions(+), 60 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java
index 7efaa05..ac9bcd0 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java
@@ -17,6 +17,7 @@
     NET_DVR_NETWORK_SEND_ERROR(8, "鍚戣澶囧彂閫佸け璐�"),
     NET_DVR_NETWORK_RECV_TIMEOUT(10, "浠庤澶囨帴鏀舵暟鎹秴鏃�"),
     NET_DVR_NETWORK_ERRORDATA(11, "浼犻�佺殑鏁版嵁鏈夎銆傚彂閫佺粰璁惧鎴栬�呬粠璁惧鎺ユ敹鍒扮殑鏁版嵁閿欒锛屽杩滅▼鍙傛暟閰嶇疆鏃惰緭鍏ヨ澶囦笉鏀寔鐨勫��"),
+    NET_DVR_NOSUPPORT(23, "璁惧涓嶆敮鎸�"),
     NET_DVR_DVROPRATEFAILED(29, "璁惧鎿嶄綔澶辫触"),
     NET_DVR_USERNOTEXIST(47, "鐢ㄦ埛涓嶅瓨鍦ㄣ�傛敞鍐岀殑鐢ㄦ埛ID宸叉敞閿�鎴栦笉鍙敤");
     /**
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
index 15cd216..e374b7a 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -123,58 +123,22 @@
                 NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName();
                 boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName);
                 if (b) {
-                    String chanName = null;
+                    String chanName = "";
                     try {
                         chanName = new String(av_cfg_channelName.szName, "GBK").trim();
                     } catch (UnsupportedEncodingException e) {
                         e.printStackTrace();
                     }
-                    channel.setName(chanName);
-                } else {
-                    channel.setName("閫氶亾" + i);
+                    channel.setName(chanName.equals("") ? "閫氶亾" + i : chanName);
                 }
                 channel.setDeviceId(camera.getId());
                 channel.setChanNo(i);
                 ardChannelService.insertArdChannel(channel);
             }
             //閰嶇疆鍒版祦濯掍綋
-            for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
-                String name = camera.getId() + "_" + i;
-                String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + i + "&subtype=0";
-                Vtdu vtdu = vtduService.selectVtduByName(name);
-                if (vtdu != null) {
-                    vtduService.deleteVtduByName(name);
-                }
-                //娣诲姞鍒版祦濯掍綋
-                CameraCmd cmd = new CameraCmd(camera.getId(), i);
-                Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd);
-                vtdu = new Vtdu();
-                if (videoCompressionCfg.get("videoEncType") != null) {
-                    if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) {
-                        vtdu.setIsCode("0");//榛樿涓嶈浆鐮�
-                    } else {
-                        vtdu.setIsCode("1");//榛樿杞爜
-                    }
-                } else {
-                    vtdu.setIsCode("0");//榛樿涓嶈浆鐮�
-                }
-                vtdu.setRtspSource(rtspSource);
-                vtdu.setName(camera.getId() + "_" + i);
-                vtdu.setMode("1");//榛樿CPU杞В鐮�
-                vtdu.setCameraId(camera.getId());
-                vtduService.insertVtdu(vtdu);
-            }
-
+            addVtdu(camera);
             //鍒涘缓寮曞闃熷垪
-            if (camera.getCamAlarmGuideEnable() != null && camera.getCamAlarmGuideEnable() == 1) {
-                if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
-                    Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
-                    PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
-                    GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
-                }
-                //鍚姩闃熷垪澶勭悊鍣�
-                queueHandler.process(camera.getId());
-            }
+            createGuideQueue(camera);
             return AjaxResult.success("璁惧鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("璁惧鐧诲綍寮傚父:" + ex.getMessage());
@@ -215,18 +179,19 @@
             for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
                 ArdChannel channel = new ArdChannel();
                 NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName();
-                boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName);
-                if (b) {
-                    String chanName = null;
-                    try {
-                        chanName = new String(av_cfg_channelName.szName, "GBK").trim();
-                    } catch (UnsupportedEncodingException e) {
-                        e.printStackTrace();
-                    }
-                    channel.setName(chanName);
-                } else {
-                    channel.setName("閫氶亾" + i);
+                boolean b = ConfigModule.GetNewDevConfig(loginId, i-1, CFG_CMD_CHANNELTITLE, av_cfg_channelName);
+                if (!b) {
+                    log.error("鑾峰彇閰嶇疆澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint());
+                   // return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
                 }
+                String chanName = "";
+                try {
+                    chanName = new String(av_cfg_channelName.szName, "GBK").trim();
+                } catch (UnsupportedEncodingException e) {
+                    e.printStackTrace();
+                }
+                channel.setName(chanName.equals("") ? "閫氶亾" + i : chanName);
+
                 channel.setDeviceId(camera.getId());
                 channel.setChanNo(i);
                 ardChannelService.insertArdChannel(channel);
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
index 3b0c5ce..cd34865 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -161,20 +161,17 @@
             List<ArdChannel> cameraChannelList = getIPChannelInfo(camera);
             if (cameraChannelList.size() > 0) {
                 camera.setChannelList(cameraChannelList);
+                camera.setChanNum(cameraChannelList.size());
                 for (ArdChannel channel : cameraChannelList) {
                     channel.setId(IdUtils.simpleUUID());
                     ardChannelService.insertArdChannel(channel);
                 }
+                ardCamerasService.updateArdCameras(camera);
                 //娣诲姞鍒版祦濯掍綋
                 addVtdu(camera);
             }
             //鍒涘缓寮曞闃熷垪
-            if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
-                Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
-                PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
-                GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
-            }
-            ardCamerasService.updateArdCameras(camera);
+            createGuideQueue(camera);
             return AjaxResult.success("璁惧鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("璁惧鐧诲綍寮傚父", ex);
@@ -284,10 +281,11 @@
                     channel.setId(IdUtils.simpleUUID());
                     ardChannelService.insertArdChannel(channel);
                 }
+                ardCamerasService.updateArdCameras(camera);
+                //娣诲姞鍒版祦濯掍綋
+                addVtdu(camera);
             }
-            ardCamerasService.updateArdCameras(camera);
-            //娣诲姞鍒版祦濯掍綋
-            addVtdu(camera);
+
             //鍒涘缓寮曞闃熷垪
             createGuideQueue(camera);
             return AjaxResult.success("璁惧鐧诲綍鎴愬姛");

--
Gitblit v1.9.3