From 70210b0eb0c58e1779fd89cbcf0909154d7d4936 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 01 七月 2023 11:45:18 +0800
Subject: [PATCH] 基本完成优先级排队报警逻辑

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |   17 +++
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java                             |   17 ++++
 ard-work/src/main/java/com/ruoyi/constant/CamPriority.java                                  |    4 -
 ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java                        |    3 
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java       |  116 +++++-----------------------
 ruoyi-admin/src/main/resources/logback.xml                                                  |   17 ++++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java           |    8 +
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java      |   12 ++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java           |    2 
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java             |   13 ++
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java               |    4 +
 ruoyi-common/src/main/java/com/ruoyi/common/annotation/SdkOperate.java                      |    1 
 12 files changed, 101 insertions(+), 113 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 776da58..210c939 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
@@ -16,7 +16,7 @@
  * @Date: 2023骞�06鏈�29鏃�11:18
  * @Version: 1.0
  **/
-@Slf4j
+@Slf4j(topic = "guideQueue")
 public class GuidePriorityQueue {
     /**
      * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index 63a106c..fcf5f7e 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -343,7 +343,13 @@
                     int aat = ardAlarmTubeMapper.insertArdAlarmTube(ardAlarmTube);
                     if (aat > 0) {
                         log.debug("tube鍏ュ簱鎴愬姛锛�" + ardAlarmTube);
-                        double[] coordinate=new double[]{ardAlarmTube.getLongitude(),ardAlarmTube.getLatitude()};
+                        Double longitude = ardAlarmTube.getLongitude();
+                        Double latitude = ardAlarmTube.getLatitude();
+                        if(StringUtils.isNull(longitude)||StringUtils.isNull(latitude))
+                        {
+                            return;
+                        }
+                        double[] coordinate=new double[]{longitude,latitude};
                         String nearbyCameraId = getNearbyCamera(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()});
                         if (StringUtils.isNotEmpty(nearbyCameraId)) {
                             messagesEnqueued(nearbyCameraId, ardAlarmTube.getId(), "sys_tube_leak",ardAlarmTube.getCreateTime(), 1,1,coordinate);
@@ -400,8 +406,11 @@
                             ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
                             if(StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId()))
                             {
-
                                 String cameraId = ardAlarmpointsWell.getCameraId();
+                                if(cameraIdWithTower.equals(cameraId))
+                                {
+                                    return;
+                                }
                                 log.info("鑾峰彇鍒版姤璀︾偣鍏宠仈鐨勫厜鐢�:"+cameraId);
                                 //濡傛灉鎶ヨ鐐瑰叧鑱斾簡鍏夌數
                                 messagesEnqueued(cameraId, uuid, alarmType,ardAlarmRadar.getCreateTime(), 1,2,coordinate);
@@ -427,6 +436,10 @@
                                 if(StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId()))
                                 {
                                     String cameraId = ardAlarmpointsWell.getCameraId();
+                                    if(cameraIdWithTower.equals(cameraId))
+                                    {
+                                        return;
+                                    }
                                     log.info("鑾峰彇鍒版姤璀︾偣鍏宠仈鐨勫厜鐢�:"+cameraId);
                                     //濡傛灉鎶ヨ鐐瑰叧鑱斾簡鍏夌數
                                     messagesEnqueued(cameraId, uuid, alarmType,ardAlarmRadar.getCreateTime(), count,2,coordinate);
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
index c4cf0fe..edff059 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
@@ -24,7 +24,7 @@
  */
 
 @Component
-@Slf4j
+@Slf4j(topic = "guideQueue")
 public class QueueManager {
 
     @Autowired
@@ -64,8 +64,9 @@
         PriorityBlockingQueue<GuideTask> guideTaskQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId);
         if(StringUtils.isNull(guideTaskQueue))
         {
-            log.info("鐩告満鏈垵濮嬪寲鎴愬姛锛屾病鏈夐槦鍒�");
+            log.info("鐩告満鏈櫥褰曪紝娌℃湁闃熷垪");
         }
+        log.debug("鏂颁换鍔″叆闃�:"+task.getAlarmId());
         guideTaskQueue.add(task);
         /*鑾峰彇璇ョ浉鏈虹殑褰撳墠鎵ц绾跨▼*/
         TaskThread currentTaskThread = threadMap.get(cameraId);
@@ -92,14 +93,15 @@
             while (!Thread.currentThread().isInterrupted()) {
                 try {
                     GuideTask task = queue.take();
+                    log.debug("鍙栧嚭闃熷垪鏁版嵁:"+task.getAlarmId());
                     taskExecutor.processTask(task);
-                   // GuidePriorityQueue.printPriorityQueue();
                     // 鏇存柊绾跨▼鐨勫綋鍓嶄换鍔�
                     TaskThread currentTaskThread = threadMap.get(queueName);
                     if (currentTaskThread != null) {
                         currentTaskThread.setCurrentTask(task);
                     }
                 } catch (InterruptedException e) {
+                    log.info("涓柇褰撳墠绾跨▼");
                     //绾跨▼涓柇锛岄��鍑哄惊鐜�
                     Thread.currentThread().interrupt();
                 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
index d4c5e1f..659afcc 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
@@ -23,7 +23,7 @@
  */
 
 @Component
-@Slf4j
+@Slf4j(topic = "guideQueue")
 public class QueueTaskExecutor {
     @Resource
     IHikClientService hikClientService;
@@ -42,12 +42,18 @@
             cmd.setExpired(30);
             cmd.setRecordBucketName("record");
             cmd.setRecordObjectName("alarm");
+            log.debug("寮�濮嬪紩瀵�");
             boolean guideRes = hikClientService.guideTargetPosition(cmd);
             if (guideRes) {
+                log.debug("寮曞鎴愬姛");
                 hikClientService.controlLock(cmd);//涓婇攣
                 cmd.setEnable(true);//寮�濮嬪綍鍍�
                 hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍�
-                Thread.sleep(30000);
+                try {
+                    Thread.sleep(30000);
+                } catch (InterruptedException e) {
+                    log.info("褰撳墠浠诲姟ID"+guideTask.getAlarmId()+"绾跨▼琚粓姝�");
+                }
                 cmd.setEnable(false);//鍋滄褰曞儚
                 cmd.setUploadMinio(true);//涓婁紶minio
                 String url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url
@@ -83,7 +89,7 @@
                 }
             }
         } catch (Exception ex) {
-            log.info("鑷姩寮曞寮傚父:" + ex.getMessage());
+            log.info("绾跨▼浠诲姟寮傚父:" + ex.getMessage());
         }
     }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
index 02214af..d2ba937 100644
--- a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
+++ b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
@@ -1,12 +1,8 @@
 package com.ruoyi.constant;
 
-import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue;
-import com.ruoyi.alarm.globalAlarm.domain.GuideTask;
 import lombok.extern.slf4j.Slf4j;
-
 import java.util.HashMap;
 import java.util.Map;
-import java.util.PriorityQueue;
 
 /**
  * @Description: 鐩告満鎺у埗浼樺厛绾�
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java b/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
index 94e476a..9f39667 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
@@ -8,7 +8,8 @@
 @Data
 @ApiModel(description = "sdk鍛戒护瀹炰綋绫�")
 public class CameraCmd {
-
+    /*鍛戒护鏍囪瘑*/
+    String cmdType;
     /*鐩告満ID*/
     String cameraId;
     /*鐩告満閫氶亾鍙�*/
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
index 6ef6268..3f9325e 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
@@ -54,8 +54,10 @@
 
     //鑱氱劍妯″紡
     boolean controlFocusMode(CameraCmd cmd);
+
     //鑾峰彇鑱氱劍妯″紡
     String getFocusMode(CameraCmd cmd);
+
     //浜戝彴鍔犵儹
     boolean controlPTHeateRpwron(CameraCmd cmd);
 
@@ -64,8 +66,10 @@
 
     //閰嶇疆閿佸畾
     boolean controlLock(CameraCmd cmd);
+
     //閰嶇疆瑙i攣
     boolean controlUnLock(CameraCmd cmd);
+
     //鑾峰彇浜戝彴閿佸畾淇℃伅
     int getPTZLockInfo(CameraCmd cmd);
 
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 97944f4..3a4971f 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
@@ -1,13 +1,8 @@
 package com.ruoyi.device.hiksdk.service.impl;
 
 import com.ruoyi.common.annotation.SdkOperate;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.constant.CamPriority;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
 import com.ruoyi.device.hiksdk.common.GlobalVariable;
@@ -18,7 +13,6 @@
 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;
 import com.sun.jna.Platform;
 import com.sun.jna.Pointer;
@@ -30,6 +24,7 @@
 import javax.annotation.Resource;
 import java.io.*;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.nio.ByteBuffer;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -50,9 +45,6 @@
 
     @Resource
     ArdCamerasMapper ardCamerasMapper;
-
-    @Resource
-    SysUserMapper sysUserMapper;
 
     private static HCNetSDK hCNetSDK;
 
@@ -132,11 +124,8 @@
             hCNetSDK.NET_DVR_Cleanup();
             camera.setLoginId(-1);
         }
-        if (GlobalVariable.loginMap.containsKey(camera.getId())) {
-            GlobalVariable.loginMap.remove(camera.getId());
-        }
+        GlobalVariable.loginMap.remove(camera.getId());
         GlobalVariable.loginMap.put(camera.getId(), lUserID);
-
         camera.setLoginId(lUserID);
         camera.setChannel((int) m_strDeviceInfo.byStartChan);
         return camera;
@@ -242,7 +231,7 @@
     /**
      * 鏄惁鍦ㄧ嚎
      *
-     * @param cmd
+     * @param cmd 鐩告満鍛戒护
      */
     @Override
     public boolean isOnLine(CameraCmd cmd) {
@@ -251,8 +240,7 @@
             return false;
         }
         Integer userId = GlobalVariable.loginMap.get(cameraId);
-        boolean isOnLine = hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0);
-        return isOnLine;
+        return hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0);
     }
 
     /**
@@ -277,13 +265,13 @@
             return false;
         }
         Integer userId = GlobalVariable.loginMap.get(cameraId);
-        Integer dwStop;
+        int dwStop;
         if (enable) {
             dwStop = 0;//寮�鍚�
         } else {
             dwStop = 1;//鍏抽棴
         }
-        Integer dwPTZCommand = -1;
+        int dwPTZCommand = -1;
         switch (code) {
             /*鏂瑰悜*/
             case 1:
@@ -350,7 +338,7 @@
     /**
      * 璁剧疆鑱氱劍鍊�
      *
-     * @param cmd
+     * @param cmd 鐩告満鍛戒护
      */
     @Override
     @SdkOperate
@@ -378,7 +366,7 @@
     /**
      * 鑾峰彇鑱氱劍鍊�
      *
-     * @param cmd
+     * @param cmd 鐩告満鍛戒护
      */
     @Override
     public Map<String, Object> getFocusPos(CameraCmd cmd) {
@@ -411,7 +399,7 @@
     /**
      * 璁剧疆棰勭疆鐐�
      *
-     * @param cmd
+     * @param cmd 鐩告満鍛戒护
      */
     @Override
     @SdkOperate
@@ -434,7 +422,7 @@
     /**
      * 杞埌棰勭疆鐐�
      *
-     * @param cmd
+     * @param cmd 鐩告満鍛戒护
      */
     @Override
     @SdkOperate
@@ -481,8 +469,8 @@
             if (bool) {
                 resolution.read();
                 //瑙嗛杈撳嚭鍙e垎杈ㄧ巼锛�0- 1024x768锛�1- 1280x720锛�2-1280x1024锛�3- 1680x1050锛�4- 1920x1080锛�5- 3840*2160
-                byte byStreamType = resolution.struNormHighRecordPara.byStreamType;
-                int dwVideoBitrate = resolution.struNormHighRecordPara.dwVideoBitrate;
+//                byte byStreamType = resolution.struNormHighRecordPara.byStreamType;
+//                int dwVideoBitrate = resolution.struNormHighRecordPara.dwVideoBitrate;
                 int byResolution = resolution.struNormHighRecordPara.byResolution;
                 switch (byResolution) {
                     case 0:
@@ -560,7 +548,6 @@
     }
 
     /**
-     * @return
      * @鎻忚堪 鑾峰彇ptz淇℃伅
      * @鍙傛暟 [userId, channelNum]
      * @杩斿洖鍊� boolean
@@ -584,7 +571,7 @@
         boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_PTZPOS, channelNum, pioint, m_ptzPosCurrent.size(), ibrBytesReturned);
         if (bool) {
             m_ptzPosCurrent.read();
-            DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟
+            // DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟
             //16杩涘埗杞琁nteger鍚庨櫎10锛屼繚鐣欏皬鏁扮偣1浣�
             //瀹為檯鏄剧ず鐨凱TZ鍊兼槸鑾峰彇鍒扮殑鍗佸叚杩涘埗鍊肩殑鍗佸垎涔嬩竴锛�
             //濡傝幏鍙栫殑姘村钩鍙傛暟P鐨勫�兼槸0x1750锛屽疄闄呮樉绀虹殑P鍊间负175搴︼紱
@@ -596,7 +583,7 @@
             double p = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
             double t = c.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
             double z = d.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-//            log.debug("T鍨傜洿鍙傛暟涓�: " + p + "P姘村钩鍙傛暟涓�: " + t + "Z鍙樺�嶅弬鏁颁负: " + z);
+            //log.debug("T鍨傜洿鍙傛暟涓�: " + p + "P姘村钩鍙傛暟涓�: " + t + "Z鍙樺�嶅弬鏁颁负: " + z);
             Map<String, Object> ptzMap = new HashMap<>();
             ptzMap.put("p", p);
             ptzMap.put("t", t);
@@ -704,67 +691,9 @@
         now.setTime(now.getTime() + cmd.getExpired() * 1000);
         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;
     }
+
     /**
      * @鎻忚堪 鎿嶆帶瑙i攣
      * @鍙傛暟 [userId, channelNum]
@@ -778,14 +707,12 @@
         String cameraId = cmd.getCameraId();//鐢宠瑙i攣鐨勭浉鏈�
         String operator = cmd.getOperator();//鐢宠鑰�
         ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId);
-        if(ardCameras.getOperatorId().equals(operator))
-        {
+        if (ardCameras.getOperatorId().equals(operator)) {
             //濡傛灉瑙i攣鐩告満鐨勫綋鍓嶇敤鎴锋槸鐢宠鑰咃紝鍒欐竻绌鸿鐩告満鐨勮繃鏈熸椂闂�
             ardCameras.setOperatorExpired(null);
             int i = ardCamerasMapper.updateArdCameras(ardCameras);
-            if(i>0)
-            {
-                log.debug(cameraId+"--瑙i攣鎴愬姛");
+            if (i > 0) {
+                log.debug(cameraId + "--瑙i攣鎴愬姛");
             }
         }
         return true;
@@ -1046,8 +973,7 @@
         return bool;
     }
 
-    public String getFocusMode(CameraCmd cmd)
-    {
+    public String getFocusMode(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChannelNum();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
@@ -1065,6 +991,7 @@
         log.info("褰撳墠鑱氱劍妯″紡锛�" + struFocusMode.byFocusMode);
         return String.valueOf(struFocusMode.byFocusMode);
     }
+
     /**
      * @鎻忚堪 浜戝彴鍔犵儹寮�鍏�
      * @鍙傛暟 [userId, channelNum, enable]
@@ -1420,7 +1347,7 @@
                 FileInputStream stream = new FileInputStream(path);
                 String simpleUUID = IdUtils.simpleUUID();
                 String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
-                String recordName = cameraId + "/" + time + "/" + ObjectName +"_"+ simpleUUID + ".mp4";
+                String recordName = cameraId + "/" + time + "/" + ObjectName + "_" + simpleUUID + ".mp4";
                 boolean b = MinioUtils.uploadObject(BucketName, recordName, stream, stream.available(), ContentType);
                 if (b) {
                     String url = MinioClientSingleton.domainUrl + "/" + BucketName + "/" + recordName;
@@ -1434,4 +1361,5 @@
             return "";
         }
     }
+
 }
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index dcaeff9..267157c 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -147,6 +147,19 @@
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
+    <!--guideQueue鏃ュ織杈撳嚭-->
+    <appender name="guideQueue" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/guideQueue.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--鎸夊ぉ鍥炴粴daily-->
+            <fileNamePattern>${log.path}/guideQueue.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶60澶�-->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
     <!--PatrolInspectionTask鏃ュ織杈撳嚭-->
     <appender name="PatrolInspectionTask" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${log.path}/PatrolInspectionTask.log</file>
@@ -207,4 +220,8 @@
     <logger name="mqtt" level="DEBUG">
         <appender-ref ref="mqtt"/>
     </logger>
+    <!--guideQueue鏃ュ織鎵撳嵃绛夌骇-->
+    <logger name="guideQueue" level="DEBUG">
+        <appender-ref ref="guideQueue"/>
+    </logger>
 </configuration> 
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/SdkOperate.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/SdkOperate.java
index 05f51b2..24da383 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/SdkOperate.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/SdkOperate.java
@@ -6,5 +6,4 @@
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 public @interface SdkOperate {
-
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
index dd79534..25cb772 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
@@ -1,5 +1,6 @@
 package com.ruoyi.framework.aspectj;
 
+import com.ruoyi.common.annotation.SdkOperate;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -10,13 +11,18 @@
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Nullable;
 import javax.annotation.Resource;
+import java.lang.reflect.Method;
 import java.util.Date;
 
 import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
@@ -43,12 +49,14 @@
 
     @Around("dsPointCut()")
     public Object around(ProceedingJoinPoint point) throws Throwable {
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        Method method = signature.getMethod();
         Boolean result = controlScopeFilter(point);
         if (result) {
-            log.debug("宸茶幏鍙栫浉鏈烘帶鍒舵潈");
+            log.debug("宸茶幏鍙栫浉鏈烘帶鍒舵潈--" + method.getName());
             return point.proceed();
         } else {
-            log.debug("鏈幏鍙栫浉鏈烘帶鍒舵潈");
+            log.debug("鏈幏鍙栫浉鏈烘帶鍒舵潈--" + method.getName());
             return false;//浠f浛鐩爣鏂规硶鐨勮繑鍥炲��
         }
     }
@@ -137,6 +145,5 @@
                 }
             }
         }
-
     }
 }
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
index cf22a3f..1dc3ebe 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
@@ -1,5 +1,7 @@
 package com.ruoyi.quartz.task;
 
+import com.ruoyi.alarm.globalAlarm.domain.GuidePriorityQueue;
+import com.ruoyi.alarm.globalAlarm.domain.GuideTask;
 import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService;
 import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.stealAlarm.service.IStealElecAlarmService;
@@ -15,6 +17,7 @@
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.PriorityBlockingQueue;
 
 import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
@@ -26,7 +29,7 @@
  * @Version: 1.0
  **/
 @Component("AlarmTask")
-@Slf4j(topic = "AlarmTask")
+@Slf4j
 public class AlarmTask {
 
     /**
@@ -44,4 +47,16 @@
                 WebSocketUtils.sendMessageAll(stringIntegerMap);
         }
     }
+    /**
+     * 瀹氭椂娓呯┖寮曞闃熷垪
+     * 鍒樿嫃涔�
+     * 2023/7/1 10:41
+     */
+    public void clearGuideQueue() {
+        log.info("瀹氭椂娓呯悊寮曞闃熷垪");
+        for(PriorityBlockingQueue<GuideTask> guideQueue:GuidePriorityQueue.cameraQueueMap.values())
+        {
+            guideQueue.clear();
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3