From 4aa86f1386d20c9ad811e2d18b7e56f00b06e25c Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 15 六月 2023 16:51:55 +0800 Subject: [PATCH] 优化 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 187 +++++++++++++------- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java | 87 --------- ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java | 2 ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java | 2 ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java | 3 ard-work/src/main/java/com/ruoyi/utils/tools/GisTool.java | 32 +++ ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java | 5 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java | 2 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java | 4 ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java | 2 ruoyi-common/pom.xml | 6 /dev/null | 20 -- ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java | 5 ard-work/src/main/java/com/ruoyi/constant/CamPriority.java | 21 ++ ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java | 2 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 45 ++-- ruoyi-admin/src/main/resources/logback.xml | 4 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 12 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 6 ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml | 23 ++ ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java | 20 +- ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java | 10 + ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java | 6 23 files changed, 277 insertions(+), 229 deletions(-) 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 0405f7a..26b741a 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 @@ -16,21 +16,21 @@ import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.tools.ArdTool; +import com.ruoyi.utils.tools.ArdTool; +import com.ruoyi.utils.tools.GisTool; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.hiksdk.common.GlobalVariable; -import com.ruoyi.device.hiksdk.config.MinioClientSingleton; import com.ruoyi.device.hiksdk.service.IHikClientService; -import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.tube.GeoPoint; import com.ruoyi.utils.tube.TubeTools; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; @@ -63,6 +63,14 @@ private ArdCamerasMapper ardCamerasMapper; @Resource private IHikClientService hikClientService; + /** + * @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀� + * @鍙傛暟 [condition] + * @杩斿洖鍊� java.util.List<com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData> + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/15 15:48 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ @Override public List<GlobalAlarmData> selectAlarmLogs(GlobalAlarmCondition condition) { String refreshTime = configService.selectConfigByKey("refreshTime"); @@ -103,14 +111,21 @@ return null; } } - + /** + * @鎻忚堪 鎸夋潯浠舵洿鏂版煡鐪嬫椂闂� + * @鍙傛暟 [condition] + * @杩斿洖鍊� java.lang.Object + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/15 15:48 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ @Override public Object updateAlarmViewTime(GlobalAlarmCondition condition) { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); switch (condition.getCommand()) { case 1001: ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(condition.getId()); - if(StringUtils.isNotNull(ardAlarmStealelec)) { + if (StringUtils.isNotNull(ardAlarmStealelec)) { String describe = ardAlarmStealelec.getDescribe(); String startTime = fmt.format(ardAlarmStealelec.getStartTime()); int i = ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime()); @@ -118,16 +133,24 @@ } case 1014: ArdAlarmTube ardAlarmTube = ardAlarmTubeMapper.selectArdAlarmTubeById(condition.getId()); - if(StringUtils.isNotNull(ardAlarmTube)) { + if (StringUtils.isNotNull(ardAlarmTube)) { String tubeId = ardAlarmTube.getTubeId(); String alarmTime = fmt.format(ardAlarmTube.getAlarmTime()); int i = ardAlarmTubeMapper.updateViewTimeByTubeId(tubeId, alarmTime, DateUtils.getTime()); return ardAlarmTube; } - default: return null; + default: + return null; } } - + /** + * @鎻忚堪 寮傛澶勭悊鎺ユ敹鐨勬姤璀� + * @鍙傛暟 [topic, message] + * @杩斿洖鍊� void + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/15 15:46 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ @Override @Async("alarmExecutor") public void receiveAlarm(String topic, String message) { @@ -135,23 +158,39 @@ String simpleUUID = IdUtils.simpleUUID(); switch (topic) { case "stealelec": + //region 澶勭悊鐩楃數鎶ヨ ArdAlarmStealelec ardAlarmStealelec = JSONObject.parseObject(message, ArdAlarmStealelec.class); ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmStealelec.getDescribe()); if (well != null) { ardAlarmStealelec.setLongitude(well.getLongitude()); ardAlarmStealelec.setLatitude(well.getLatitude()); - ardAlarmStealelec.setDeptId(well.getDeptId()); + ardAlarmStealelec.setAltitude(well.getAltitude()); } ArdAlarmStealelec existe = ardAlarmStealelecMapper.selectByPrimaryKey(ardAlarmStealelec.getId()); if (StringUtils.isNotNull(existe)) { return; } - int aas = ardAlarmStealelecMapper.insert(ardAlarmStealelec); + int aas = ardAlarmStealelecMapper.insertArdAlarmStealelec(ardAlarmStealelec); if (aas > 0) { log.info("stealelec鍏ュ簱鎴愬姛锛�" + ardAlarmStealelec); + //寮曞褰曞儚 + CameraCmd cmd = new CameraCmd(); + cmd.setRecordBucketName("record"); + cmd.setRecordObjectName("stealelec"); + cmd.setOperator("sys_steal_elec"); + cmd.setExpired(30); + cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()}); + String url = guideCamera(cmd); + if (StringUtils.isNotEmpty(url)) { + //鏇存柊褰曞儚 + ardAlarmStealelec.setRecordUrl(url); + ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec); + } } + //endregion break; case "tube": + //region 澶勭悊绠$嚎娉勯湶鎶ヨ ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message, ArdAlarmTube.class); ardAlarmTube.setId(simpleUUID); ArdTubesDetails atd = new ArdTubesDetails(); @@ -173,81 +212,101 @@ } int aat = ardAlarmTubeMapper.insertArdAlarmTube(ardAlarmTube); if (aat > 0) { - log.info("tube鍏ュ簱鎴愬姛锛�" + ardAlarmTube); - //鏌ヨ鎵�鏈夊ぇ鍏夌數 - ArdCameras ardCamera = new ArdCameras(); - ardCamera.setGdtype("1"); - List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(ardCamera); - //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 - Map<String, Double> distanceMap = new HashMap<>(); - for (ArdCameras camera : ardCamerasList) { - double distance = GisUtil.getDistance(ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude(), camera.getLongitude(), camera.getLatitude()); - if (distance <= camera.getCamMaxVisibleDistance()) { - distanceMap.put(camera.getId(), distance); - } - } - if(distanceMap.size()<0) - { - return; - } - //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D - String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); - //寮曞鍏夌數 + log.debug("tube鍏ュ簱鎴愬姛锛�" + ardAlarmTube); + //寮曞褰曞儚 CameraCmd cmd = new CameraCmd(); - cmd.setCameraId(minDistanceCameraId); - cmd.setChannelNum(1); - cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()}); + cmd.setRecordBucketName("record"); + cmd.setRecordObjectName("tube"); cmd.setOperator("sys_tube_leak"); cmd.setExpired(30); - boolean guideRes = hikClientService.setTargetPosition(cmd); - if(guideRes) { - hikClientService.controlLock(cmd); - cmd.setEnable(true); - cmd.setRecordBucketName("record"); - String time = new SimpleDateFormat("yyyyMMdd").format(new Date()); - String recordName = minDistanceCameraId + "/" + time + "/" + simpleUUID + ".mp4"; - cmd.setRecordObjectName(recordName); - hikClientService.recordToMinio(cmd); - GlobalVariable.threadMap.put(minDistanceCameraId,Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹� - Thread.sleep(30000); - String thread = GlobalVariable.threadMap.get(minDistanceCameraId); - String currentThread = Thread.currentThread().getName(); - //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍� - if(thread.equals(currentThread)) { - cmd.setEnable(false); - cmd.setUploadMinio(true); - hikClientService.recordToMinio(cmd); - //鏇存柊褰曞儚 - String url = MinioClientSingleton.domainUrl + "/" + cmd.getRecordBucketName() + "/" + recordName; - ardAlarmTube.setRecordUrl(url); - ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube); - } + cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude(), ardAlarmTube.getAltitude()}); + String url = guideCamera(cmd); + //鏇存柊褰曞儚 + if (StringUtils.isNotEmpty(url)) { + ardAlarmTube.setRecordUrl(url); + ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube); } } + //endregion break; } - } - catch (Exception ex) - { - log.error("鎺ユ敹鎶ヨ寮傚父:"+ex.getMessage()); + } catch (Exception ex) { + log.error("鎺ユ敹鎶ヨ寮傚父:" + ex.getMessage()); } } + + /** + * @鎻忚堪 寮曞鏈�杩戠殑澶у厜鐢垫寚鍚戠洰鏍� + * @鍙傛暟 [targetPosition] + * @杩斿洖鍊� java.lang.String + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/15 11:55 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + private String guideCamera(CameraCmd cmd) { + String url = ""; + try { + //鑾峰彇鎵�鏈夊ぇ鍏夌數 + List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); + //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 + Map<String, Double> distanceMap = new HashMap<>(); + for (ArdCameras camera : ardCamerasList) { + double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; + double distance = GisTool.getDistance(cmd.getTargetPosition(), camPosition); + if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { + distanceMap.put(camera.getId(), distance); + } + } + if (distanceMap.size() > 0) { + log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); + //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D + String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); + log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:"+minDistanceCameraId+"锛屽皾璇曞紩瀵�"); + //寮曞鍏夌數 + cmd.setCameraId(minDistanceCameraId); + cmd.setChannelNum(1); + boolean guideRes = hikClientService.guideTargetPosition(cmd); + if (guideRes) { + log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�"); + hikClientService.controlLock(cmd);//涓婇攣 + cmd.setEnable(true);//寮�濮嬪綍鍍� + hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍� + GlobalVariable.threadMap.put(minDistanceCameraId, Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹� + Thread.sleep(cmd.getExpired() * 1000);//褰曞儚鏃堕暱 + String thread = GlobalVariable.threadMap.get(minDistanceCameraId); + String currentThread = Thread.currentThread().getName(); + //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍� + if (thread.equals(currentThread)) { + cmd.setEnable(false);//鍋滄褰曞儚 + cmd.setUploadMinio(true);//涓婁紶minio + url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url + } + } + } else { + log.debug("鏈煡鎵惧埌鏈�杩戝厜鐢�"); + } + } catch (Exception ex) { + log.error("寮曞寮傚父:" + ex.getMessage()); + } + return url; + } + /** * @鎻忚堪 鏌ヨ鎵�鏈夋姤璀︾殑褰撳墠鏁伴噺 * @鍙傛暟 [] - * @杩斿洖鍊� java.util.Map<java.lang.String,java.lang.Integer> + * @杩斿洖鍊� java.util.Map<java.lang.String, java.lang.Integer> * @鍒涘缓浜� 鍒樿嫃涔� * @鍒涘缓鏃堕棿 2023/6/13 16:30 * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override public Map<String, Integer> selectAlarmLogsCount() { - Map<String, Integer> countMap=new HashMap<>(); + Map<String, Integer> countMap = new HashMap<>(); String refreshTime = configService.selectConfigByKey("refreshTime"); int count1001 = ardAlarmStealelecMapper.selectCountByStartTime(refreshTime); - countMap.put("1001",count1001); + countMap.put("1001", count1001); int count1014 = ardAlarmTubeMapper.selectCountByStartTime(refreshTime); - countMap.put("1014 ",count1014); + countMap.put("1014 ", count1014); return countMap; } } diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java index e86be98..45a28a8 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java @@ -94,4 +94,9 @@ * 鏈鎶ヨ鏁伴噺 */ private Integer count; + /** + * 寮曞褰曞儚url + */ + @Excel(name = "寮曞褰曞儚url") + private String recordUrl; } \ No newline at end of file diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java index 0ec906a..0b3b1d9 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java @@ -2,6 +2,7 @@ import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; +import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -9,11 +10,18 @@ public interface ArdAlarmStealelecMapper{ - int insert(ArdAlarmStealelec record); + int insertArdAlarmStealelec(ArdAlarmStealelec record); ArdAlarmStealelec selectByPrimaryKey(String id); List<ArdAlarmStealelec> selectRealByCondition(@Param("refreshTime")String refreshTime,@Param("deptId")Long deptId); List<ArdAlarmStealelec> selectHistoryByCondition(GlobalAlarmCondition condition); List<ArdAlarmStealelec> selectListAllByCommand(@Param("refreshTime")String refreshTime); int selectCountByStartTime(@Param("refreshTime")String refreshTime); int updateViewTimeByDescribe(@Param("describe")String describe,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime); + /** + * 淇敼闃茬洍鐢垫姤璀� + * + * @param ardAlarmStealelec 闃茬洍鐢垫姤璀� + * @return 缁撴灉 + */ + public int updateArdAlarmStealelec(ArdAlarmStealelec ardAlarmStealelec); } \ No newline at end of file diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java index 21abced..481a931 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java @@ -80,7 +80,7 @@ wd.setLatitude(well.getLatitude()); wd.setDeptId(well.getDeptId()); } - int insert = ardAlarmStealelecMapper.insert(wd); + int insert = ardAlarmStealelecMapper.insertArdAlarmStealelec(wd); if (insert > 0) { log.info("鏁版嵁鎻掑叆鎴愬姛锛�" + wd.getId()); } else { diff --git a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java new file mode 100644 index 0000000..b8e6d9f --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java @@ -0,0 +1,21 @@ +package com.ruoyi.constant; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Description: 鐩告満鎺у埗浼樺厛绾� + * @ClassName: sdkPriority + * @Author: 鍒樿嫃涔� + * @Date: 2023骞�05鏈�23鏃�11:25 + * @Version: 1.0 + **/ +public class CamPriority { + public static Map<String,Object> priorityMap=new HashMap<>(); + static { + priorityMap.put("sys_radar_fire",999);//闆疯揪闃茬伀鎶ヨ + priorityMap.put("sys_tube_leak",998);//绠$嚎娉勯湶鎶ヨ + priorityMap.put("sys_steal_elec",997);//鐩楃數鎶ヨ + priorityMap.put("sys_patrol_inspect",1);//宸℃ + } +} diff --git a/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java b/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java deleted file mode 100644 index 62a9617..0000000 --- a/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.constant; - -import java.util.HashMap; -import java.util.Map; - -/** - * @Description: sdk鎺у埗浼樺厛绾� - * @ClassName: sdkPriority - * @Author: 鍒樿嫃涔� - * @Date: 2023骞�05鏈�23鏃�11:25 - * @Version: 1.0 - **/ -public class sdkPriority { - public static Map<String,Object> priorityMap=new HashMap<>(); - static { - priorityMap.put("sys_radar_fire",999); - priorityMap.put("sys_tube_leak",998); - priorityMap.put("sys_patrol_inspect",1); - } -} diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java b/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java index 379d083..9177d82 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java @@ -20,7 +20,10 @@ @NoArgsConstructor public class ArdCameras extends BaseEntity { private static final long serialVersionUID = 1L; - + public ArdCameras(String gdtype) + { + this.gdtype=gdtype; + } /** * id */ 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 7f8f0ec..94e476a 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 @@ -26,8 +26,6 @@ /*PTZ鍊�*/ Map<String,Double>ptzMap; - /*鐩告満缁忕含搴�*/ -// double[] camPosition; /*鐩爣缁忕含搴�*/ double[] targetPosition; diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java index 1b42fc8..4335379 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java @@ -1,7 +1,5 @@ package com.ruoyi.device.camera.service.impl; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -10,9 +8,7 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.common.utils.tools.ArdTool; +import com.ruoyi.utils.tools.ArdTool; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.camera.service.IArdCamerasService; diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java index 8228b63..7727ce8 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java @@ -170,7 +170,7 @@ @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.channelNum", "cmd.targetPosition"}) public @ResponseBody AjaxResult setTargetPosition(@RequestBody CameraCmd cmd) { - return toAjax(sdk.setTargetPosition(cmd)); + return toAjax(sdk.guideTargetPosition(cmd)); } 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 168f8e5..4cb73e6 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 @@ -88,8 +88,8 @@ String record(CameraCmd cmd); //鎵嬪姩褰曞儚 - void recordToMinio(CameraCmd cmd); + String recordToMinio(CameraCmd cmd); //寮曞鐩爣浣嶇疆 - boolean setTargetPosition(CameraCmd cmd); + boolean guideTargetPosition(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 46511ca..c488645 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 @@ -6,13 +6,13 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.constant.sdkPriority; +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; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.hiksdk.config.MinioClientSingleton; -import com.ruoyi.device.hiksdk.domain.recordInfo; import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ruoyi.device.hiksdk.service.IHikClientService; @@ -24,7 +24,6 @@ import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import sun.misc.BASE64Encoder; @@ -36,7 +35,6 @@ import java.text.SimpleDateFormat; import java.util.*; -import static com.ruoyi.device.hiksdk.common.GlobalVariable.threadMap; import static com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK.*; /** @@ -655,7 +653,7 @@ @Override @SdkOperate - public boolean setTargetPosition(CameraCmd cmd) { + public boolean guideTargetPosition(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { @@ -728,18 +726,18 @@ } else { //濡傛灉闈炴湰浜烘瘮杈冧紭鍏堢骇 Integer currentLevel = 0;//褰撳墠鎿嶄綔鑰呯殑浼樺厛绾� - if (sdkPriority.priorityMap.containsKey(currentOperator)) { + if (CamPriority.priorityMap.containsKey(currentOperator)) { /*褰撳墠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ - currentLevel = (Integer) sdkPriority.priorityMap.get(currentOperator); + currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator); } else { /*褰撳墠鎺у埗鑰呬负鏅�氱敤鎴�*/ SysUser sysUser = sysUserMapper.selectUserById(currentOperator); currentLevel = sysUser.getCameraPriority(); } Integer operatorLevel = 0;//鑾峰彇鐢宠鑰呯殑浼樺厛绾� - if (sdkPriority.priorityMap.containsKey(operator)) { + if (CamPriority.priorityMap.containsKey(operator)) { /*鍖呭惈璇存槑褰撳墠鐢宠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ - operatorLevel = (Integer) sdkPriority.priorityMap.get(operator); + operatorLevel = (Integer) CamPriority.priorityMap.get(operator); } else { /*鍚﹀垯鐢宠鎺у埗鑰呬负褰撳墠鐧诲綍鐢ㄦ埛*/ LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -1307,14 +1305,14 @@ } @Override - public void recordToMinio(CameraCmd cmd) { + public String recordToMinio(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return; + return ""; } Integer userId = GlobalVariable.loginMap.get(cameraId); //寮哄埗I甯х粨鏋勪綋瀵硅薄 @@ -1342,40 +1340,47 @@ Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); GlobalVariable.previewMap.remove(cameraId); - log.info("褰曞儚鍋滄"); + log.debug("鍋滄褰撳墠褰曞儚"); } int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); if (lRealHandle == -1) { log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError()); - return; + return ""; } - log.info("鍙栨祦鎴愬姛"); - GlobalVariable.threadMap.put(cameraId,Thread.currentThread().getName()); + log.debug("鍙栨祦鎴愬姛"); + GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); GlobalVariable.previewMap.put(cameraId, lRealHandle); if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) { log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError()); - return; + return ""; } - log.info("褰曞儚寮�濮�"); + log.debug("褰曞儚寮�濮�"); } else { if (GlobalVariable.previewMap.containsKey(cameraId)) { Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); GlobalVariable.previewMap.remove(cameraId); } - log.info("褰曞儚鍋滄"); + log.debug("褰曞儚鍋滄"); //瀛樺叆minio String BucketName = cmd.getRecordBucketName(); String ObjectName = cmd.getRecordObjectName(); String ContentType = "video/MP4"; FileInputStream stream = new FileInputStream(path); - boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType); + String simpleUUID = IdUtils.simpleUUID(); + String time = new SimpleDateFormat("yyyyMMdd").format(new Date()); + String recordName = cameraId + "/" + time + "/" + ObjectName +"_"+ simpleUUID + ".mp4"; + boolean b = MinioUtils.uploadObject(BucketName, recordName, stream, stream.available(), ContentType); if (b) { - log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/" + BucketName + "/" + ObjectName); + String url = MinioClientSingleton.domainUrl + "/" + BucketName + "/" + recordName; + log.debug("涓婁紶鏂囦欢鎴愬姛!" + url); + return url; } } + return ""; } catch (Exception ex) { log.error("褰曞儚寮傚父" + ex.getMessage()); + return ""; } } } \ No newline at end of file diff --git a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java index f86dbfb..fc30265 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java @@ -3,6 +3,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.common.utils.uuid.UUID; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -87,7 +88,7 @@ @Log(title = "瑙嗛宸℃浠诲姟", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArdVideoInspectTask ardVideoInspectTask) { - ardVideoInspectTask.setId(UUID.randomUUID().toString()); + ardVideoInspectTask.setId(IdUtils.simpleUUID()); return toAjax(ardVideoInspectTaskService.insertArdVideoInspectTask(ardVideoInspectTask)); } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java index df4af33..68386dd 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java @@ -450,7 +450,7 @@ cmd.setTargetPosition(targetPositon); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime()*60); - boolean setTargetPosition = hikClientService.setTargetPosition(cmd); + boolean setTargetPosition = hikClientService.guideTargetPosition(cmd); if (setTargetPosition) { /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/ cmd.setEnable(true);//鍚姩褰曞儚 @@ -503,7 +503,7 @@ cmd.setTargetPosition(targetPositon); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime()*60); - boolean setTargetPosition = hikClientService.setTargetPosition(cmd); + boolean setTargetPosition = hikClientService.guideTargetPosition(cmd); if (!setTargetPosition) { /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/ ardVideoInspectTask.setCurrentStepStartTime(""); @@ -538,13 +538,10 @@ cmd.setChannelNum(channel); cmd.setOperator("sys_patrol_inspect"); cmd.setEnable(false);//鍋滄褰曞儚 - String uuid = UUID.randomUUID().toString().replace("-", ""); - String time = new SimpleDateFormat("yyyyMMdd").format(new Date()); - String recordName = cameraId + "/" + time + "/" + uuid + ".mp4"; cmd.setRecordBucketName("record"); - cmd.setRecordObjectName(recordName); + cmd.setRecordObjectName("inspect"); cmd.setUploadMinio(true); - hikClientService.recordToMinio(cmd); + String url= hikClientService.recordToMinio(cmd); /*鎻掑叆宸℃璁板綍*/ ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord(); ardVideoInspectRecord.setStepId(step.getId()); @@ -556,7 +553,6 @@ Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, step.getRecordingTime()); ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartDate)); ardVideoInspectRecord.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStopDate)); - String url = MinioClientSingleton.domainUrl + "/" + cmd.getRecordBucketName() + "/" + recordName; ardVideoInspectRecord.setRecordFilePath(url); ardVideoInspectRecordMapper.insertArdVideoInspectRecord(ardVideoInspectRecord); } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java index ebec5a6..65b4e5e 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java @@ -37,7 +37,7 @@ public void run() { while (isRunning) { // 宸℃浠诲姟鐨勫叿浣撻�昏緫 - log.debug("宸℃浠诲姟鎵ц涓細" + taskId); + log.debug("鎵嬪姩宸℃浠诲姟鎵ц涓細" + taskId); ArdVideoInspectTaskServiceImpl ardVideoInspectTaskService = SpringUtils.getBean(ArdVideoInspectTaskServiceImpl.class); ardVideoInspectTaskService.manualTaskRun(taskId); try { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java b/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java similarity index 97% rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java rename to ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java index 627bc7c..9b7516f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java +++ b/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils.tools; +package com.ruoyi.utils.tools; import java.lang.reflect.Field; import java.util.*; diff --git a/ard-work/src/main/java/com/ruoyi/utils/tools/GisTool.java b/ard-work/src/main/java/com/ruoyi/utils/tools/GisTool.java new file mode 100644 index 0000000..661fd91 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/utils/tools/GisTool.java @@ -0,0 +1,32 @@ +package com.ruoyi.utils.tools; + +import org.gavaghan.geodesy.Ellipsoid; +import org.gavaghan.geodesy.GeodeticCalculator; +import org.gavaghan.geodesy.GlobalCoordinates; + +/** + * @Description: + * @ClassName: GisTool + * @Author: 鍒樿嫃涔� + * @Date: 2023骞�06鏈�15鏃�13:26 + * @Version: 1.0 + **/ +public class GisTool { + public static GeodeticCalculator geodeticCalculator = new GeodeticCalculator(); + /** + * 鏍规嵁缁忕含搴︼紝璁$畻涓ょ偣闂寸殑璺濈 + * + * @param From 绗竴涓偣鐨勭粡绾害 + * @param To 绗簩涓偣鐨勭粡绾害 + * @return 杩斿洖璺濈 鍗曚綅绫� + */ + public static double getDistance(double[] From, double[] To) { + double longitudeFrom = From[0]; + double latitudeFrom = From[1]; + double longitudeTo = To[0]; + double latitudeTo = To[1]; + GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom); + GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo); + return geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java b/ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java index 1508874..efa4764 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java +++ b/ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java @@ -1,6 +1,7 @@ package com.ruoyi.utils.tube; import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails; +import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GeodeticCalculator; @@ -61,6 +62,11 @@ */ public static GeoPoint CalculateCoordinates(List<ArdTubesDetails> ardTubesDetails, Integer alarmPointDistance) { try { + if(StringUtils.isNull(alarmPointDistance)) + { + log.debug("鎶ヨ鐐硅窛绂讳负绌猴紝鏃犳硶璁$畻鍧愭爣"); + return null; + } Comparator<ArdTubesDetails> comparator = Comparator.comparingInt(person -> Integer.parseInt(person.getInflectionPointNumber())); // 浣跨敤Collections.sort鏂规硶杩涜鎺掑簭 Collections.sort(ardTubesDetails, comparator); GeoPoint point0 = new GeoPoint(ardTubesDetails.get(0).getLongitude(), ardTubesDetails.get(0).getLatitude(), ardTubesDetails.get(0).getAltitude() - ardTubesDetails.get(0).getDepth()); diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml index 25ad3ff..17ba21c 100644 --- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml +++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml @@ -16,7 +16,7 @@ <result column="dept_id" property="deptId"/> </resultMap> <sql id="Base_Column_List"> - id, name, describe, catalog_text, description, start_time, end_time,view_time,longitude,latitude,create_by,create_time,user_id,dept_id + id, name, describe, catalog_text, description, start_time, end_time,view_time,longitude,latitude,altitude,create_by,create_time,user_id,dept_id </sql> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> select @@ -88,9 +88,26 @@ and start_time<=#{alarmTime} and view_time is null </update> - <insert id="insert" parameterType="ArdAlarmStealelec"> + <update id="updateArdAlarmStealelec" parameterType="ArdAlarmStealelec"> + update ard_alarm_stealelec + <trim prefix="SET" suffixOverrides=","> + <if test="name != null">name = #{name},</if> + <if test="describe != null">describe = #{describe},</if> + <if test="catalogText != null">catalog_text = #{catalogText},</if> + <if test="description != null">description = #{description},</if> + <if test="startTime != null">start_time = #{startTime},</if> + <if test="endTime != null">end_time = #{endTime},</if> + <if test="longitude != null">longitude = #{longitude},</if> + <if test="latitude != null">latitude = #{latitude},</if> + <if test="altitude != null">altitude = #{altitude},</if> + <if test="recordUrl != null">record_url = #{recordUrl},</if> + <if test="viewTime != null">view_time = #{viewTime},</if> + </trim> + where id = #{id} + </update> + <insert id="insertArdAlarmStealelec" parameterType="ArdAlarmStealelec"> insert into ard_alarm_stealelec(<include refid="Base_Column_List"/>) values (#{id}, #{name},#{describe},#{catalogText},#{description}, #{startTime}, #{endTime}, - #{viewTime},#{longitude},#{latitude},#{createBy},#{createTime},#{userId},#{deptId}) + #{viewTime},#{longitude},#{latitude},#{altitude},#{createBy},#{createTime},#{userId},#{deptId}) </insert> </mapper> \ 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 7018a83..dcaeff9 100644 --- a/ruoyi-admin/src/main/resources/logback.xml +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -188,7 +188,7 @@ <appender-ref ref="minio"/> </logger> <!--hiksdk鏃ュ織鎵撳嵃绛夌骇--> - <logger name="hikSdk" level="INFO"> + <logger name="hikSdk" level="DEBUG"> <appender-ref ref="hikSdk"/> </logger> <!--鐩楃數鎶ヨ鏃ュ織鎵撳嵃绛夌骇--> @@ -204,7 +204,7 @@ <appender-ref ref="PatrolInspectionTask"/> </logger> <!--mqtt鏃ュ織鎵撳嵃绛夌骇--> - <logger name="mqtt" level="INFO"> + <logger name="mqtt" level="DEBUG"> <appender-ref ref="mqtt"/> </logger> </configuration> \ No newline at end of file diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 745ce49..8a465c4 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -146,6 +146,12 @@ <version>1.6.2</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>org.gavaghan</groupId> + <artifactId>geodesy</artifactId> + <version>1.1.3</version> + <scope>compile</scope> + </dependency> </dependencies> </project> \ No newline at end of file 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 868981f..3217b04 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 @@ -4,12 +4,11 @@ import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.constant.sdkPriority; +import com.ruoyi.constant.CamPriority; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.system.service.ISysUserService; -import org.apache.ibatis.jdbc.Null; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -40,8 +39,8 @@ @Around("dsPointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { - Boolean resultMap = dataScopeFilter(point); - if (resultMap) { + Boolean result = controlScopeFilter(point); + if (result) { return point.proceed(); } else { return false;//浠f浛鐩爣鏂规硶鐨勮繑鍥炲�� @@ -53,7 +52,7 @@ * * @param joinPoint 鍒囩偣 */ - public Boolean dataScopeFilter(ProceedingJoinPoint joinPoint) { + public Boolean controlScopeFilter(ProceedingJoinPoint joinPoint) { //鑾峰彇璇锋眰鎺у埗鐩告満鐨勫懡浠や俊鎭� CameraCmd cmd = (CameraCmd) joinPoint.getArgs()[0]; String operator = cmd.getOperator();//鐢宠鑰� @@ -84,18 +83,18 @@ } else { /*褰撳墠鐩告満鏈変汉鎺у埗骞朵笖閰嶇疆浜嗚繃鏈熸椂闂达紝鍏堝垽鏂紭鍏堢骇锛屼紭鍏堢骇楂樺厑璁告帶鍒�*/ Integer currentLevel = 0;//褰撳墠鐩告満鐨勬搷浣滆�呯殑浼樺厛绾� - if (sdkPriority.priorityMap.containsKey(currentOperator)) { + if (CamPriority.priorityMap.containsKey(currentOperator)) { /*褰撳墠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ - currentLevel = (Integer) sdkPriority.priorityMap.get(currentOperator); + currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator); } else { /*褰撳墠鎺у埗鑰呬负鏅�氱敤鎴�*/ SysUser sysUser = sysUserService.selectUserById(currentOperator); currentLevel = sysUser.getCameraPriority(); } Integer operatorLevel = 0;//鑾峰彇鐢宠鑰呯殑浼樺厛绾� - if (sdkPriority.priorityMap.containsKey(operator)) { + if (CamPriority.priorityMap.containsKey(operator)) { /*鍖呭惈璇存槑褰撳墠鐢宠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ - operatorLevel = (Integer) sdkPriority.priorityMap.get(operator); + operatorLevel = (Integer) CamPriority.priorityMap.get(operator); } else { /*鍚﹀垯鐢宠鎺у埗鑰呬负褰撳墠鐧诲綍鐢ㄦ埛*/ LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -111,7 +110,6 @@ return true; } else { /*濡傛灉鐢宠鑰呬紭鍏堢骇浣庯紝鍒欏垽鏂繃鏈熸椂闂�*/ - Date now = new Date(); if (currentExpired == null) { /*褰撳墠鐩告満鏈厤缃繃鏈熸椂闂达紝鍙帶*/ ardCameras.setOperatorId(operator); @@ -119,7 +117,7 @@ ardCamerasService.updateArdCameras(ardCameras);//鏇存柊鐩告満褰撳墠鎺у埗鑰� return true; } else { - if (now.before(currentExpired)) { + if (new Date().before(currentExpired)) { /*鏃堕棿鏈繃鏈燂紝涓嶅彲鎺�*/ return false; } else { 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 1b552c7..16d4594 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 @@ -28,98 +28,15 @@ public class AlarmTask { @Resource - IStealElecAlarmService IStealElecAlarmService; - @Resource - ISysUserService sysUserService; - @Resource IGlobalAlarmService globalAlarmService; - /** - * @鎻忚堪 鐩楃數鎶ヨ瀹炴椂鎺ㄩ�佷换鍔� + * @鎻忚堪 瀹氭椂鎺ㄩ�佹墍鏈夋姤璀︾殑鐐逛綅鏁伴噺 * @鍙傛暟 [] * @杩斿洖鍊� void * @鍒涘缓浜� 鍒樿嫃涔� - * @鍒涘缓鏃堕棿 2023/3/6 15:10 + * @鍒涘缓鏃堕棿 2023/6/15 15:43 * @淇敼浜哄拰鍏跺畠淇℃伅 */ - public void stealElecAlarmPush() { - log.info("鐩楃數鎶ヨ鎺ㄩ�佸紑濮�"); - // 寮�濮嬫椂闂� - long stime = System.currentTimeMillis(); - try { - for (String userId : ONLINE_USER_SESSIONS.keySet()) { - SysUser sysUser = sysUserService.selectUserById(userId); - List<ArdAlarmStealelec> alarms = IStealElecAlarmService.getRealAlarm(sysUser.getDeptId()); - Map<String, Object> map = new HashMap<>(); - List<ArdAlarmStealelec> objs = new ArrayList<>(); - for (ArdAlarmStealelec data : alarms) { - - //缁忕含搴︾伀鏄熻浆84 - if (data.getLongitude() != 0 && data.getLatitude() != 0) { - double[] wgs84 = LonlatConver.gcj02_To_Wgs84(data.getLongitude(), data.getLatitude());//鐏槦杞�84 - data.setLongitude(wgs84[0]); - data.setLatitude(wgs84[1]); - } - - //鍒ゆ柇褰撳墠鏁版嵁鏄惁10S鍐� - Date startTime = data.getStartTime(); - SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH鏄�24灏忔椂鍒讹紝12灏忔椂鐢╤h - Calendar calendar = Calendar.getInstance(); - //浠庡綋鍓嶆椂闂村噺鍘�10绉� - calendar.add(Calendar.MINUTE, -30); - String currentTime = formatTime.format(calendar.getTime()); - int dateFlag = formatTime.format(startTime).compareTo(currentTime); - if (dateFlag > 0) { - objs.add(data); - } - data.setId(data.getDescribe() + "&" + data.getCommand()); - } - if (objs.size() > 0) { - map.put("obj", objs); - } else { - map.put("obj", -1); - } - map.put("Command", 8000); - map.put("count", objs.size()); - map.put("total", alarms.size()); - map.put("data", alarms); - if (alarms.size() > 0) { - WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId), map); - } - } - } catch (Exception ex) { - log.error("鐩楃數鎶ヨ鎺ㄩ�佸紓甯革細" + ex.getMessage()); - } - // 缁撴潫鏃堕棿 - long etime = System.currentTimeMillis(); - // 璁$畻鎵ц鏃堕棿 - log.info("鐩楃數鎶ヨ鎺ㄩ�佺粨鏉燂細" + (etime - stime) + " 姣"); - } - - /** - * @鎻忚堪 鐩楃數鎶ヨapi鎷夊彇浠诲姟 - * @鍙傛暟 [] - * @杩斿洖鍊� void - * @鍒涘缓浜� 鍒樿嫃涔� - * @鍒涘缓鏃堕棿 2023/2/28 11:51 - * @淇敼浜哄拰鍏跺畠淇℃伅 - */ - public void stealElecAlarmPull() { - log.info("鐩楃數鏁版嵁鎷夊彇寮�濮�"); - // 寮�濮嬫椂闂� - long stime = System.currentTimeMillis(); - try { - // String url = "http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil"; - IStealElecAlarmService.getAlarmByApi(); - } catch (Exception ex) { - log.error("鐩楃數鏁版嵁鎷夊彇寮傚父锛�" + ex.getMessage()); - } - // 缁撴潫鏃堕棿 - long etime = System.currentTimeMillis(); - // 璁$畻鎵ц鏃堕棿 - log.info("鐩楃數鏁版嵁鎷夊彇缁撴潫锛�" + (etime - stime) + " 姣"); - } - public void globalAlarmCountPush() { Map<String, Integer> stringIntegerMap = globalAlarmService.selectAlarmLogsCount(); if (ONLINE_USER_SESSIONS.size() > 0) { -- Gitblit v1.9.3