From 3089fbc788d1dbd638d1cfd9c2f9b7f2011d0af0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 30 六月 2023 16:21:48 +0800
Subject: [PATCH] 优化sdk控制

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuideTask.java              |    4 -
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java |  121 +++++++++++++++++++++-------------------
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java     |   20 ++----
 3 files changed, 71 insertions(+), 74 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
index f6036a4..72bcc71 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java
@@ -40,17 +40,12 @@
     public static void printPriorityQueue() {
         for (String cameraId : GuidePriorityQueue.cameraQueueMap.keySet()) {
             PriorityBlockingQueue<GuideTask> priorityQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId);
-//            for (GuideTask task : priorityQueue) {
-//
-//                log.info("銆恆larmId銆�" + task.getAlarmId() + "銆恟eceiveTime銆�" + task.getReceiveTime()
-//                        + "銆恜riority銆�" + task.getPriority() + "銆恘um銆�" + task.getNum()
-//                        + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn() + "銆恈ameraId銆�" + task.getCameraId());
-//            }
-            while (priorityQueue.size() > 0) {
-                GuideTask task = priorityQueue.poll();
+            PriorityQueue<GuideTask> queue= new PriorityQueue<>(priorityQueue);
+            while (queue.size() > 0) {
+                GuideTask task = queue.poll();
                 log.info("銆恆larmId銆�" + task.getAlarmId() + "銆恟eceiveTime銆�" + task.getReceiveTime()
                         + "銆恜riority銆�" + task.getPriority() + "銆恘um銆�" + task.getNum()
-                        + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn() + "銆恈ameraId銆�" + task.getCameraId());;
+                        + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn() + "銆恈ameraId銆�" + task.getCameraId());
             }
         }
     }
@@ -67,14 +62,13 @@
         priorityQueue.add(new obj(1, 4, 33));
         priorityQueue.add(new obj(1, 4, 44));
         priorityQueue.add(new obj(1, 4, 51));
-
-        while (priorityQueue.size() > 0) {
-            obj task = priorityQueue.poll();
+        PriorityQueue<obj> queue= new PriorityQueue<>(priorityQueue);
+        while (queue.size() > 0) {
+            obj task = queue.poll();
             log.info("銆恘um1銆�" + task.getNUM1() + "銆恘um2銆�" + task.getNUM2() + "銆恘um3銆�" + task.getNUM3());
         }
         log.info("=======================================================================");
     }
-
 }
 
 @Data
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuideTask.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuideTask.java
index 2e6fade..d33976a 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuideTask.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuideTask.java
@@ -43,10 +43,6 @@
      */
     String receiveTime;
     /**
-     * 鎺ユ敹鏃堕棿鐨勬绉掑��
-     */
-    Integer receiveMillisecond;
-    /**
      * 鎶ヨ娆℃暟
      */
     Integer num;
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 39d07e9..b250206 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
@@ -696,66 +696,73 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
      */
     @Override
+    @SdkOperate
     public boolean controlLock(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満
         ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId);
-        if (StringUtils.isNull(ardCameras)) {
-            return false;//鎵句笉鍒扮浉鏈烘嫆缁濇搷鎺�
-        }
-        Integer expired = cmd.getExpired();//鐢宠鎺у埗鏃堕暱
-        String operator = cmd.getOperator();//鐢宠鑰�
-        String currentOperator = ardCameras.getOperatorId();//鐩告満褰撳墠鎺у埗鑰�
-        Date currentExpired = ardCameras.getOperatorExpired();//鐩告満褰撳墠杩囨湡鏃堕棿
-        if (currentExpired == null) {
-            //璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID
-            ardCameras.setOperatorId(operator);
-            //璁剧疆褰撳墠杩囨湡鏃堕棿
-            Date now = new Date();
-            now.setTime(now.getTime() + expired * 1000);
-            ardCameras.setOperatorExpired(now);
-            ardCamerasMapper.updateArdCameras(ardCameras);
-        } else {
-            //濡傛灉杩囨湡鏃堕棿鏈夊��
-            //濡傛灉鏄湰浜虹洿鎺ヤ慨鏀�
-            if (currentOperator.equals(operator)) {
-                //璁剧疆褰撳墠杩囨湡鏃堕棿
-                Date now = new Date();
-                now.setTime(now.getTime() + expired * 1000);
-                ardCameras.setOperatorExpired(now);
-                ardCamerasMapper.updateArdCameras(ardCameras);
-            } else {
-                //濡傛灉闈炴湰浜烘瘮杈冧紭鍏堢骇
-                Integer currentLevel = 0;//褰撳墠鎿嶄綔鑰呯殑浼樺厛绾�
-                if (CamPriority.priorityMap.containsKey(currentOperator)) {
-                    /*褰撳墠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/
-                    currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator);
-                } else {
-                    /*褰撳墠鎺у埗鑰呬负鏅�氱敤鎴�*/
-                    SysUser sysUser = sysUserMapper.selectUserById(currentOperator);
-                    currentLevel = sysUser.getCameraPriority();
-                }
-                Integer operatorLevel = 0;//鑾峰彇鐢宠鑰呯殑浼樺厛绾�
-                if (CamPriority.priorityMap.containsKey(operator)) {
-                    /*鍖呭惈璇存槑褰撳墠鐢宠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/
-                    operatorLevel = (Integer) CamPriority.priorityMap.get(operator);
-                } else {
-                    /*鍚﹀垯鐢宠鎺у埗鑰呬负褰撳墠鐧诲綍鐢ㄦ埛*/
-                    LoginUser loginUser = SecurityUtils.getLoginUser();
-                    SysUser user = loginUser.getUser();//鑾峰彇鐧诲綍鐢ㄦ埛鐨勪俊鎭�
-                    operatorLevel = user.getCameraPriority();
-                }
-                //鍒ゆ柇浼樺厛绾�
-                if (operatorLevel > currentLevel) {
-                    Date now = new Date();
-                    now.setTime(now.getTime() + expired * 60);
-                    ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
-                    ardCameras.setOperatorId(operator);//璁剧疆褰撳墠鐢ㄦ埛
-                    ardCamerasMapper.updateArdCameras(ardCameras);
-                } else {
-                    return false;//浼樺厛绾т綆鏃犳硶涓婇攣
-                }
-            }
-        }
+        Date now = new Date();
+        now.setTime(now.getTime() + cmd.getExpired() * 60);
+        ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
+        ardCamerasMapper.updateArdCameras(ardCameras);
+//        String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満
+//        ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+//        if (StringUtils.isNull(ardCameras)) {
+//            return false;//鎵句笉鍒扮浉鏈烘嫆缁濇搷鎺�
+//        }
+//        Integer expired = cmd.getExpired();//鐢宠鎺у埗鏃堕暱
+//        String operator = cmd.getOperator();//鐢宠鑰�
+//        String currentOperator = ardCameras.getOperatorId();//鐩告満褰撳墠鎺у埗鑰�
+//        Date currentExpired = ardCameras.getOperatorExpired();//鐩告満褰撳墠杩囨湡鏃堕棿
+//        if (currentExpired == null) {
+//            //璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID
+//            ardCameras.setOperatorId(operator);
+//            //璁剧疆褰撳墠杩囨湡鏃堕棿
+//            Date now = new Date();
+//            now.setTime(now.getTime() + expired * 1000);
+//            ardCameras.setOperatorExpired(now);
+//            ardCamerasMapper.updateArdCameras(ardCameras);
+//        } else {
+//            //濡傛灉杩囨湡鏃堕棿鏈夊��
+//            //濡傛灉鏄湰浜虹洿鎺ヤ慨鏀�
+//            if (currentOperator.equals(operator)) {
+//                //璁剧疆褰撳墠杩囨湡鏃堕棿
+//                Date now = new Date();
+//                now.setTime(now.getTime() + expired * 1000);
+//                ardCameras.setOperatorExpired(now);
+//                ardCamerasMapper.updateArdCameras(ardCameras);
+//            } else {
+//                //濡傛灉闈炴湰浜烘瘮杈冧紭鍏堢骇
+//                Integer currentLevel = 0;//褰撳墠鎿嶄綔鑰呯殑浼樺厛绾�
+//                if (CamPriority.priorityMap.containsKey(currentOperator)) {
+//                    /*褰撳墠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/
+//                    currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator);
+//                } else {
+//                    /*褰撳墠鎺у埗鑰呬负鏅�氱敤鎴�*/
+//                    SysUser sysUser = sysUserMapper.selectUserById(currentOperator);
+//                    currentLevel = sysUser.getCameraPriority();
+//                }
+//                Integer operatorLevel = 0;//鑾峰彇鐢宠鑰呯殑浼樺厛绾�
+//                if (CamPriority.priorityMap.containsKey(operator)) {
+//                    /*鍖呭惈璇存槑褰撳墠鐢宠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/
+//                    operatorLevel = (Integer) CamPriority.priorityMap.get(operator);
+//                } else {
+//                    /*鍚﹀垯鐢宠鎺у埗鑰呬负褰撳墠鐧诲綍鐢ㄦ埛*/
+//                    LoginUser loginUser = SecurityUtils.getLoginUser();
+//                    SysUser user = loginUser.getUser();//鑾峰彇鐧诲綍鐢ㄦ埛鐨勪俊鎭�
+//                    operatorLevel = user.getCameraPriority();
+//                }
+//                //鍒ゆ柇浼樺厛绾�
+//                if (operatorLevel > currentLevel) {
+//                    Date now = new Date();
+//                    now.setTime(now.getTime() + expired * 60);
+//                    ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
+//                    ardCameras.setOperatorId(operator);//璁剧疆褰撳墠鐢ㄦ埛
+//                    ardCamerasMapper.updateArdCameras(ardCameras);
+//                } else {
+//                    return false;//浼樺厛绾т綆鏃犳硶涓婇攣
+//                }
+//            }
+//        }
         return true;
     }
     /**

--
Gitblit v1.9.3