From 70210b0eb0c58e1779fd89cbcf0909154d7d4936 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Sat, 01 Jul 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);
+
//配置解锁
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();
//视频输出口分辨率: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进制转Integer后除10,保留小数点1位
//实际显示的PTZ值是获取到的十六进制值的十分之一,
//如获取的水平参数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;
}
+
/**
* @描述 操控解锁
* @参数 [userId, channelNum]
@@ -778,14 +707,12 @@
String cameraId = cmd.getCameraId();//申请解锁的相机
String operator = cmd.getOperator();//申请者
ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId);
- if(ardCameras.getOperatorId().equals(operator))
- {
+ if (ardCameras.getOperatorId().equals(operator)) {
//如果解锁相机的当前用户是申请者,则清空该相机的过期时间
ardCameras.setOperatorExpired(null);
int i = ardCamerasMapper.updateArdCameras(ardCameras);
- if(i>0)
- {
- log.debug(cameraId+"--解锁成功");
+ if (i > 0) {
+ log.debug(cameraId + "--解锁成功");
}
}
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;//代替目标方法的返回值
}
}
@@ -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