From 81dd45819944baa8032d942e2e28c5c859c0cc81 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 15 六月 2023 10:37:46 +0800
Subject: [PATCH] 优化巡检

---
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index 1d5a6cd..46511ca 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -35,6 +35,8 @@
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
+
+import static com.ruoyi.device.hiksdk.common.GlobalVariable.threadMap;
 import static com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK.*;
 
 /**
@@ -210,6 +212,7 @@
             log.debug("鍔犺浇lib瀹屾垚锛�");
             List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasListNoDataScope(new ArdCameras());
             for (ArdCameras camera : ardCameras) {
+                Thread.sleep(100);
                 login(camera);
             }
         } catch (Exception ex) {
@@ -710,7 +713,7 @@
             ardCameras.setOperatorId(operator);
             //璁剧疆褰撳墠杩囨湡鏃堕棿
             Date now = new Date();
-            now.setTime(now.getTime() + expired * 1000 * 60);
+            now.setTime(now.getTime() + expired * 1000);
             ardCameras.setOperatorExpired(now);
             ardCamerasMapper.updateArdCameras(ardCameras);
         } else {
@@ -719,7 +722,7 @@
             if (currentOperator.equals(operator)) {
                 //璁剧疆褰撳墠杩囨湡鏃堕棿
                 Date now = new Date();
-                now.setTime(now.getTime() + expired * 1000 * 60);
+                now.setTime(now.getTime() + expired * 1000);
                 ardCameras.setOperatorExpired(now);
                 ardCamerasMapper.updateArdCameras(ardCameras);
             } else {
@@ -746,7 +749,7 @@
                 //鍒ゆ柇浼樺厛绾�
                 if (operatorLevel > currentLevel) {
                     Date now = new Date();
-                    now.setTime(now.getTime() + expired * 60 * 1000);
+                    now.setTime(now.getTime() + expired * 60);
                     ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
                     ardCameras.setOperatorId(operator);//璁剧疆褰撳墠鐢ㄦ埛
                     ardCamerasMapper.updateArdCameras(ardCameras);
@@ -1335,16 +1338,20 @@
             previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡
             previewinfo.write();
             if (enable) {
-                if (!GlobalVariable.previewMap.containsKey(cameraId)) {
-                    int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
-                    if (lRealHandle == -1) {
-                        log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
-                        return;
-                    }
-                    log.info("鍙栨祦鎴愬姛");
-                    GlobalVariable.previewMap.put(cameraId, lRealHandle);
+                if (GlobalVariable.previewMap.containsKey(cameraId)) {
+                    Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
+                    hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
+                    GlobalVariable.previewMap.remove(cameraId);
+                    log.info("褰曞儚鍋滄");
                 }
-
+                int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
+                if (lRealHandle == -1) {
+                    log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
+                    return;
+                }
+                log.info("鍙栨祦鎴愬姛");
+                GlobalVariable.threadMap.put(cameraId,Thread.currentThread().getName());
+                GlobalVariable.previewMap.put(cameraId, lRealHandle);
                 if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
                     log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负:  " + hCNetSDK.NET_DVR_GetLastError());
                     return;
@@ -1357,7 +1364,6 @@
                     GlobalVariable.previewMap.remove(cameraId);
                 }
                 log.info("褰曞儚鍋滄");
-
                 //瀛樺叆minio
                 String BucketName = cmd.getRecordBucketName();
                 String ObjectName = cmd.getRecordObjectName();

--
Gitblit v1.9.3