From afeeaebde614bd4e8ef20cee1402011da9c7f92b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 14 六月 2023 08:18:24 +0800
Subject: [PATCH] 修改报警list查询按时间逆序

---
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java |   96 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 65 insertions(+), 31 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 0d5e498..646c238 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
@@ -16,6 +16,7 @@
 import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil;
 import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.device.hiksdk.util.hikSdkUtil.LoginResultCallBack;
 import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.sun.jna.Native;
@@ -98,15 +99,14 @@
     }
 
     /**
-     * @鎻忚堪 娉ㄥ唽鐧诲綍
+     * @鎻忚堪 娉ㄥ唽鐧诲綍 鍙敮鎸佸悓姝ョ櫥闄嗭紝涓斿畼鏂逛笉寤鸿鐩存帴鍦ㄦ鎺ュ彛涓嬪啓鑰楁椂鎿嶄綔
      * @鍙傛暟 [dvrLogin]
      * @杩斿洖鍊� java.lang.Integer
      * @鍒涘缓浜� 鍒樿嫃涔�
      * @鍒涘缓鏃堕棿 2023/1/17 16:12
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    @Override
-    public ArdCameras login(ArdCameras camera) {
+    public ArdCameras login1(ArdCameras camera) {
         // 鍒濆鍖�
         if (!hCNetSDK.NET_DVR_Init()) {
             log.error("SDK鍒濆鍖栧け璐�");
@@ -114,9 +114,9 @@
         //鎵撳嵃娴峰悍sdk鏃ュ織
         if (Platform.isWindows()) {
             String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator;
-            hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, false);
+            hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true);
         } else {
-            hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", false);
+            hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true);
         }
         String m_sDeviceIP = camera.getIp();
         String m_sUsername = camera.getUsername();
@@ -144,6 +144,60 @@
     }
 
     /**
+     * @鎻忚堪 娉ㄥ唽鐧诲綍 闆嗘垚浜嶯ET_DVR_Login_V30锛屾敮鎸佸悓姝ュ拰寮傛鐧诲綍
+     * @鍙傛暟 [dvrLogin]
+     * @杩斿洖鍊� java.lang.Integer
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/1/17 16:12
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
+    @Override
+    public void login(ArdCameras camera) {
+        // 鍒濆鍖�
+        if (!hCNetSDK.NET_DVR_Init()) {
+            log.error("SDK鍒濆鍖栧け璐�");
+        }
+        //鎵撳嵃娴峰悍sdk鏃ュ織
+        if (Platform.isWindows()) {
+            String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator;
+            hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true);
+        } else {
+            hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true);
+        }
+        String m_sDeviceIP = camera.getIp();
+        String m_sUsername = camera.getUsername();
+        String m_sPassword = camera.getPassword();
+        short m_sPort = camera.getPort().shortValue();
+        //璁剧疆杩炴帴鏃堕棿涓庨噸杩炴椂闂�
+        hCNetSDK.NET_DVR_SetConnectTime(2000, 1);
+        hCNetSDK.NET_DVR_SetReconnect(100000, true);
+        //璁惧淇℃伅, 杈撳嚭鍙傛暟
+        HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();
+        HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();
+
+        // 娉ㄥ唽璁惧-鐧诲綍鍙傛暟锛屽寘鎷澶囧湴鍧�銆佺櫥褰曠敤鎴枫�佸瘑鐮佺瓑
+        m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
+        System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length());
+        m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
+        System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length());
+        m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN];
+        System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length());
+        m_strLoginInfo.wPort = m_sPort;
+        m_strLoginInfo.byVerifyMode = 0;
+        m_strLoginInfo.byLoginMode=0;
+        //鏄惁寮傛鐧诲綍锛�0- 鍚︼紝1- 鏄�  windowsSDK閲屾槸true鍜宖alse
+        m_strLoginInfo.bUseAsynLogin = true;
+        //寮傛鐧诲綍鍥炶皟
+        m_strLoginInfo.cbLoginResult = new LoginResultCallBack(camera);
+        m_strLoginInfo.write();
+        int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
+        if (i < 0) {
+            int errorCode = hCNetSDK.NET_DVR_GetLastError();
+            log.info("鐧诲綍寮傚父锛�" + errorCode);
+        }
+    }
+
+    /**
      * @鎻忚堪 鐧诲綍鎵�鏈夌浉鏈�
      * @鍙傛暟 []
      * @杩斿洖鍊� void
@@ -152,32 +206,12 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    @Async("loginExecutor")
     public void loginAll() {
         try {
             log.debug("鍔犺浇lib瀹屾垚锛�");
-            List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
+            List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasListNoDataScope(new ArdCameras());
             for (ArdCameras camera : ardCameras) {
-                camera = login(camera);
-                if (camera.getLoginId() >= 0) {
-                    log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛锛�" + camera.getLoginId());
-                    ardCamerasMapper.updateArdCameras(camera);
-                } else {
-                    log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触锛�" + camera.getLoginId());
-                }
-//                if (!globalVariable.loginMap.containsKey(camera.getId())) {
-//                    camera = login(camera);
-//                    if (camera.getLoginId() >= 0) {
-//                        log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛锛�" + camera.getLoginId());
-//                        globalVariable.loginMap.put(camera.getId(), camera.getLoginId());
-//                        ardCamerasService.updateArdCameras(camera);
-//                    } else {
-//                        log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触锛�" + camera.getLoginId());
-//                    }
-//                } else {
-//                    Integer userid = globalVariable.loginMap.get(camera.getId());
-//                    log.info("褰撳墠鐩告満:" + camera.getId() + "宸茬櫥褰�,ID:" + userid);
-//                }
+                login(camera);
             }
         } catch (Exception ex) {
             log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
@@ -233,7 +267,7 @@
      */
     @Override
     @SdkOperate
-    public boolean PTZControlWithSpeed(CameraCmd cmd) {
+    public boolean pTZControlWithSpeed(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChannelNum();
@@ -1310,7 +1344,7 @@
             netDvrIFrame.byStreamType = 0;
             netDvrIFrame.dwSize = netDvrIFrame.size();
             netDvrIFrame.write();
-            if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){
+            if (!hCNetSDK.NET_DVR_RemoteControl(userId, 3402, netDvrIFrame.getPointer(), netDvrIFrame.dwSize)) {
                 log.error("寮哄埗I甯� 閿欒鐮佷负:  " + hCNetSDK.NET_DVR_GetLastError());
             }
             //棰勮鍙傛暟
@@ -1333,7 +1367,7 @@
                     }
                     log.info("鍙栨祦鎴愬姛");
 
-                    String path= FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
+                    String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
                     recordInfo info = new recordInfo();
                     info.setLRealHandle(lRealHandle);
                     info.setRecordPath(path);
@@ -1352,7 +1386,7 @@
                 }
                 hCNetSDK.NET_DVR_StopRealPlay(info.getLRealHandle());
                 log.info("褰曞儚鍋滄");
-                if(cmd.isUploadMinio()) {
+                if (cmd.isUploadMinio()) {
                     //瀛樺叆minio
                     String BucketName = cmd.getRecordBucketName();
                     String ObjectName = cmd.getRecordObjectName();

--
Gitblit v1.9.3