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