From acdb4a206f64cc7b39cee05d77bbc4e98258c27b Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期二, 24 十月 2023 21:50:48 +0800
Subject: [PATCH] 相机校验是否唯一

---
 ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java |  121 ++++++++++++++++++++-------------------
 1 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java
index 1a41ec9..0a9df8c 100644
--- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.device.dhsdk.service.impl;
 
 import com.ruoyi.common.annotation.SdkOperate;
+import com.ruoyi.common.utils.Threads;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.file.MimeTypeUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
@@ -58,7 +59,7 @@
     private IVtduService vtduService;
     @Value("${minio.endpoint}")
     private String minioEndPoint;
-
+    private final Object lock = new Object();
 
     // 璁惧鏂嚎閫氱煡鍥炶皟
     private static DisConnect disConnect = new DisConnect();
@@ -76,70 +77,72 @@
         LoginModule.init(disConnect, haveReConnect);
         NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
         LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
-        if (loginId.longValue() > 0) {
-            //log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛");
-            if (GlobalVariable.loginMap.containsKey(camera.getId())) {
-                GlobalVariable.loginMap.remove(camera.getId());
-            }
-            //鍒犻櫎绠$悊閫氶亾
-            ardChannelService.deleteArdChannelByDeviceId(camera.getId());
-            camera.setState("1");
-            camera.setChanNum(m_stDeviceInfo.byChanNum);
-            camera.setStartDChan(1);
-            camera.setLoginId((int) loginId.longValue());
-            ardCamerasService.updateArdCameras(camera);
-            GlobalVariable.loginMap.put(camera.getId(), loginId);
-
-            //鑾峰彇鏈�鏂伴�氶亾
-            for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
-                ArdChannel channel = new ArdChannel();
-                AV_CFG_ChannelName av_cfg_channelName = new 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);
-                }
-                channel.setDeviceId(camera.getId());
-                channel.setChanNo(i);
-                ardChannelService.insertArdChannel(channel);
-
-                //閰嶇疆鍒版祦濯掍綋
-                String name = camera.getId() + "_" + channel.getChanNo();
-                String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + channel.getChanNo() + "&subtype=0";
-                Vtdu vtdu = vtduService.selectVtduByName(name);
-                if (vtdu != null) {
-                    vtduService.deleteVtduByName(name);
-                }
-                //娣诲姞鍒版祦濯掍綋
-                CameraCmd cmd = new CameraCmd(camera.getId(), channel.getChanNo());
-                Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd);
-                vtdu = new Vtdu();
-                if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) {
-                    vtdu.setIsCode("0");//榛樿涓嶈浆鐮�
-                } else {
-                    vtdu.setIsCode("1");//榛樿杞爜
-                }
-                vtdu.setRtspSource(rtspSource);
-                vtdu.setName(camera.getId() + "_" + channel.getChanNo());
-                vtdu.setMode("1");//榛樿CPU杞В鐮�
-                vtdu.setCameraId(camera.getId());
-                vtduService.insertVtdu(vtdu);
-            }
-        } else {
-            //log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触");
+        if (loginId.longValue() <= 0) {
             camera.setChanNum(0);
             camera.setLoginId(-1);
             camera.setState("0");
             ardCamerasService.updateArdCameras(camera);
             return false;
         }
+        if (GlobalVariable.loginMap.containsKey(camera.getId())) {
+            GlobalVariable.loginMap.remove(camera.getId());
+        }
+        //鍒犻櫎绠$悊閫氶亾
+        ardChannelService.deleteArdChannelByDeviceId(camera.getId());
+        camera.setState("1");
+        camera.setChanNum(m_stDeviceInfo.byChanNum);
+        camera.setStartDChan(1);
+        camera.setLoginId((int) loginId.longValue());
+        ardCamerasService.updateArdCameras(camera);
+        GlobalVariable.loginMap.put(camera.getId(), loginId);
+
+        //鑾峰彇鏈�鏂伴�氶亾
+        for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
+            ArdChannel channel = new ArdChannel();
+            AV_CFG_ChannelName av_cfg_channelName = new 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);
+            }
+            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);
+        }
         return true;
     }
 

--
Gitblit v1.9.3