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