ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.ruoyi.alarm.global.domain; import lombok.Data; import lombok.experimental.Accessors; import java.util.Date; /** * @Description: å¼å¯¼æ°æ®å®ä½ * @ClassName: GuideDataDto * @Author: åèä¹ * @Date: 2023å¹´12æ09æ¥11:37:58 **/ @Data @Accessors(chain = true) public class GuideDataDto { String radarId; String name; String cameraId; String alarmId; String alarmType; Date receiveTime; Integer num; Integer recordSn; double[] targetPosition; GuidePTZ guidePTZ; } ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.alarm.global.domain; import lombok.Data; import lombok.experimental.Accessors; /** * @Description: * @ClassName: GuidePTZ * @Author: åèä¹ * @Date: 2023å¹´12æ09æ¥10:13:28 **/ @Data @Accessors(chain = true) public class GuidePTZ { /** å¼å¯¼På¼ */ private Double P; /** å¼å¯¼Tå¼ */ private Double T; /** å¼å¯¼Zå¼ */ private Double Z; } ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java
@@ -53,4 +53,8 @@ * å¼å¯¼ç®æ ç»çº¬åº¦ */ double[] targetPosition; /** å¼å¯¼PTZå¼ */ private GuidePTZ guidePTZ; } ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -11,10 +11,7 @@ import com.ruoyi.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper; import com.ruoyi.alarm.external.domain.ArdAlarmExternal; import com.ruoyi.alarm.external.mapper.ArdAlarmExternalMapper; import com.ruoyi.alarm.global.domain.GlobalAlarmCondition; import com.ruoyi.alarm.global.domain.GlobalAlarmData; import com.ruoyi.alarm.global.domain.GuidePriorityQueue; import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.alarm.global.domain.*; import com.ruoyi.alarm.global.service.IGlobalAlarmService; import com.ruoyi.alarm.radar.domain.*; import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarFireMapper; @@ -35,13 +32,11 @@ import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.ConfigUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.external.domain.ArdEquipExternal; import com.ruoyi.device.external.mapper.ArdEquipExternalMapper; import com.ruoyi.device.radar.mapper.ArdEquipRadarMapper; @@ -54,14 +49,12 @@ import com.ruoyi.utils.tube.GeoPoint; import com.ruoyi.utils.tube.TubeTools; import lombok.extern.slf4j.Slf4j; import org.gavaghan.geodesy.GlobalCoordinates; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -73,7 +66,7 @@ * @Version: 1.0 **/ @Service @Slf4j(topic = "mqtt") @Slf4j(topic = "alarm") public class GlobalAlarmServiceImpl implements IGlobalAlarmService { //region ä¾èµæ³¨å ¥ @Resource @@ -1039,9 +1032,17 @@ 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); String cameraId = getCameraByNear(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()}); if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() .setAlarmId(cameraId) .setAlarmId(ardAlarmTube.getId()) .setAlarmType("sys_tube_leak") .setReceiveTime(ardAlarmTube.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate); messagesEnqueued(guideDataDto); } //endregion } @@ -1061,7 +1062,7 @@ case "radar": //region å¤çé·è¾¾æ¥è¦ String mergeTime = ConfigUtils.getConfigValue("radarMergeTime"); Integer radarMergeTime= mergeTime==null||"".equals(mergeTime)?10:Integer.valueOf(mergeTime); Integer radarMergeTime = mergeTime == null || "".equals(mergeTime) ? 10 : Integer.valueOf(mergeTime); RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class); List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars(); for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) { @@ -1069,13 +1070,16 @@ String radarId = radarAlarmData.getRadarId(); String alarmpointName = ardAlarmRadar.getName();//å ´è¶£ç¹åç§° ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName); if(well==null) { if (well == null) { return; } Double guideP = well.getGuideP(); Double guideT = well.getGuideT(); Double guideZ = well.getGuideZ(); Double longitude = well.getLongitude(); Double latitude = well.getLatitude(); String targetId = ardAlarmRadar.getTargetId(); GuidePTZ guidePTZ = new GuidePTZ(); switch (ardAlarmRadar.getAlarmType()) { case "è¿å¨ç®æ æ£æµ": ArdAlarmRadarMove ardAlarmRadarMove = new ArdAlarmRadarMove(); @@ -1089,6 +1093,11 @@ ardAlarmRadarMove.setLatitude(latitude); ardAlarmRadarMove.setUpdateTime(radarAlarmData.getAlarmTime()); ardAlarmRadarMove.setRadarId(radarId); guidePTZ.setP(guideP); guidePTZ.setT(guideT); guidePTZ.setZ(guideZ); ardAlarmRadarMove.setGuidePTZ(guidePTZ); Date alarmTime = ardAlarmRadarMove.getAlarmTime(); //è·åå½åå ´è¶£ç¹å½åé·è¾¾çä¸ä¸æ¡æ°æ® ArdAlarmRadarMove lastMoveData = ardAlarmRadarMoveMapper.selectArdAlarmRadarLastData(ardAlarmRadarMove.getName()); @@ -1101,7 +1110,7 @@ //å¦åæ¯å¯¹æ´æ°æ¶é´ Date lastUpdateTime = lastMoveData.getUpdateTime(); Date lastGuideTime = lastMoveData.getGuideTime(); long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime); long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime); if (secDatePoor <= radarMergeTime) { //å°äº10ç§çæ°æ°æ®ï¼æ´æ°ä¸ä¸æ¡ ArdAlarmRadarMove updateData = new ArdAlarmRadarMove(); @@ -1109,9 +1118,8 @@ updateData.setUpdateTime(alarmTime); //夿å¼å¯¼æ¶é´è¶ è¿5åé忬¡å¼å¯¼ long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime); if(secDatePoorGuide>=300) { long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime); if (secDatePoorGuide >= 300) { updateData.setGuideTime(alarmTime); radarMoveGuide(ardAlarmRadarMove);//å¼å¯¼ } @@ -1142,6 +1150,10 @@ ardAlarmRadarFire.setAlarmType("çæºæ£æµ"); ardAlarmRadarFire.setLongitude(longitude); ardAlarmRadarFire.setLatitude(latitude); guidePTZ.setP(guideP); guidePTZ.setT(guideT); guidePTZ.setZ(guideZ); ardAlarmRadarFire.setGuidePTZ(guidePTZ); ardAlarmRadarFire.setRadarId(radarId); ardAlarmRadarFire.setUpdateTime(radarAlarmData.getAlarmTime()); // @@ -1155,9 +1167,8 @@ } else { //å¦åæ¯å¯¹æ´æ°æ¶é´ Date lastUpdateTime = lastFireData.getUpdateTime(); Date lastGuideTime = lastFireData.getGuideTime(); long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime); long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime); if (secDatePoor <= radarMergeTime) { //å°äº10ç§çæ°æ°æ®ï¼æ´æ°ä¸ä¸æ¡ ArdAlarmRadarFire updateData = new ArdAlarmRadarFire(); @@ -1165,9 +1176,8 @@ updateData.setUpdateTime(alarmTime); //夿å¼å¯¼æ¶é´è¶ è¿5åé忬¡å¼å¯¼ long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime); if(secDatePoorGuide>=300) { long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime); if (secDatePoorGuide >= 300) { updateData.setGuideTime(alarmTime); radarFireGuide(ardAlarmRadarFire);//å¼å¯¼ } @@ -1191,11 +1201,12 @@ ardAlarmRadarPump.setAlarmType("é·è¾¾æ½æ²¹æºåæº"); ardAlarmRadarPump.setUpdateTime(radarAlarmData.getAlarmTime()); alarmTime = ardAlarmRadarPump.getAlarmTime(); ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName); if (StringUtils.isNotNull(ardAlarmpointsWell)) { ardAlarmRadarPump.setLongitude(ardAlarmpointsWell.getLongitude()); ardAlarmRadarPump.setLatitude(ardAlarmpointsWell.getLatitude()); } ardAlarmRadarPump.setLongitude(well.getLongitude()); ardAlarmRadarPump.setLatitude(well.getLatitude()); guidePTZ.setP(guideP); guidePTZ.setT(guideT); guidePTZ.setZ(guideZ); ardAlarmRadarPump.setGuidePTZ(guidePTZ); // ArdAlarmRadarPump lastPumpData = ardAlarmRadarPumpMapper.selectArdAlarmRadarLastData(ardAlarmRadarPump.getName()); if (lastPumpData == null) { @@ -1207,16 +1218,15 @@ //å¦åæ¯å¯¹æ´æ°æ¶é´ Date lastUpdateTime = lastPumpData.getUpdateTime(); Date lastGuideTime = lastPumpData.getGuideTime(); long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime); long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime); if (secDatePoor <= radarMergeTime) { //å°äº10ç§çæ°æ°æ®ï¼æ´æ°ä¸ä¸æ¡ ArdAlarmRadarPump updateData = new ArdAlarmRadarPump(); updateData.setId(lastPumpData.getId()); updateData.setUpdateTime(alarmTime); //夿å¼å¯¼æ¶é´è¶ è¿5åé忬¡å¼å¯¼ long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime); if(secDatePoorGuide>=300) { long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime); if (secDatePoorGuide >= 300) { radarPumpGuide(ardAlarmRadarPump);//å¼å¯¼ updateData.setGuideTime(alarmTime); } @@ -1240,10 +1250,10 @@ ardAlarmExternal.setCreateTime(new Date());//æ¥æ¶æ¶é´ //å¤èé²åºåç§°å°±æ¯å ´è¶£ç¹ï¼æ¥å ´è¶£ç¹åæ String defenseName = ardAlarmExternal.getDefenseName(); ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(defenseName); if (StringUtils.isNotNull(ardAlarmpointsWell)) { ardAlarmExternal.setLongitude(ardAlarmpointsWell.getLongitude()); ardAlarmExternal.setLatitude(ardAlarmpointsWell.getLatitude()); ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(defenseName); if (StringUtils.isNotNull(well)) { ardAlarmExternal.setLongitude(well.getLongitude()); ardAlarmExternal.setLatitude(well.getLatitude()); } int aae = ardAlarmExternalMapper.insertArdAlarmExternal(ardAlarmExternal); if (aae > 0) { @@ -1252,10 +1262,23 @@ if (StringUtils.isNull(ardAlarmExternal.getLongitude()) || StringUtils.isNull(ardAlarmExternal.getLatitude())) { return; } double[] guideCoordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//å¼å¯¼åæ String nearbyCameraId = getNearbyCamera(guideCoordinate);//æè¿ç¸æºID if (StringUtils.isNotEmpty(nearbyCameraId)) { messagesEnqueued(nearbyCameraId, ardAlarmExternal.getId(), "sys_external", ardAlarmExternal.getCreateTime(), 1, 1, guideCoordinate); double[] coordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//å¼å¯¼åæ GuidePTZ guidePTZ = new GuidePTZ() .setP(well.getGuideP()) .setT(well.getGuideT()) .setZ(well.getGuideZ()); String cameraId = getCameraByNear(coordinate);//æè¿ç¸æºID if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() .setAlarmId(cameraId) .setAlarmId(ardAlarmExternal.getId()) .setAlarmType("sys_external") .setReceiveTime(ardAlarmExternal.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate) .setGuidePTZ(guidePTZ); messagesEnqueued(guideDataDto); } //endregion } @@ -1283,10 +1306,18 @@ if (StringUtils.isNull(ardAlarmAccess.getLongitude()) || StringUtils.isNull(ardAlarmAccess.getLatitude())) { return; } double[] guideCoordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//å¼å¯¼åæ String nearbyCameraId = getNearbyCamera(guideCoordinate);//æè¿ç¸æºID if (StringUtils.isNotEmpty(nearbyCameraId)) { messagesEnqueued(nearbyCameraId, ardAlarmAccess.getId(), "sys_access_control", ardAlarmAccess.getCreateTime(), 1, 1, guideCoordinate); double[] coordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//å¼å¯¼åæ String cameraId = getCameraByNear(coordinate);//æè¿ç¸æºID if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() .setAlarmId(cameraId) .setAlarmId(ardAlarmAccess.getId()) .setAlarmType("sys_external") .setReceiveTime(ardAlarmAccess.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate); messagesEnqueued(guideDataDto); } //endregion } @@ -1345,8 +1376,10 @@ * recordSn å½ååå¨ä½ç½® 1-recordUrl1 2-recordUrl2 * targetPosition æ¥è¦ç¹ä½ç½®åæ */ private void messagesEnqueued(String cameraId, String alarmId, String alarmType, Date receiveTime, Integer num, Integer recordSn, double[] targetPosition) { private void messagesEnqueued(GuideDataDto guideDataDto) { try { String cameraId = guideDataDto.getCameraId(); String alarmType = guideDataDto.getAlarmType(); if (!IsEnableGuide(cameraId)) { log.info("ç¸æº:" + cameraId + "æªå¼å¯æ¥è¦å¼å¯¼åè½"); return; @@ -1356,43 +1389,43 @@ //ç¸æºID guideTask.setCameraId(cameraId); //æ¥è¦ç±»å String aType = ""; switch (alarmType) { case "è¿å¨ç®æ æ£æµ": aType = "sys_radar_move"; alarmType = "sys_radar_move"; break; case "çæºæ£æµ": aType = "sys_radar_fire"; alarmType = "sys_radar_fire"; break; case "é·è¾¾æ½æ²¹æºåæº": aType = "sys_radar_pump"; break; default: aType = alarmType; alarmType = "sys_radar_pump"; break; } guideTask.setAlarmType(aType); guideTask.setAlarmType(alarmType); //éé(éè¿æ¥å¤æ¶é´ç å¤) String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime"); Integer channel = ArdTool.getChannelBydayNightTime(dayNightTime); guideTask.setChanNum(channel); //æ¥è¦ID guideTask.setAlarmId(alarmId); guideTask.setAlarmId(guideDataDto.getAlarmId()); //æ¥æ¶æ¶é´ guideTask.setReceiveTime(fmt.format(receiveTime)); guideTask.setReceiveTime(fmt.format(guideDataDto.getReceiveTime())); //æ¥è¦ä¼å 级(éè¿ä¼å 级åå ¸) String priority = DictUtils.getDictValue("cameras_priority", aType); String priority = DictUtils.getDictValue("cameras_priority", alarmType); if (StringUtils.isEmpty(priority)) { log.debug("æªå¹é å°ä¼å 级,è¯·æ£æ¥ä¼å 级åå ¸é ç½®"); return; } guideTask.setPriority(Integer.valueOf(priority)); //æ¥è¦æ¬¡æ° guideTask.setNum(num); guideTask.setNum(guideDataDto.getNum()); //å½ååå¨ä½ç½® guideTask.setRecordSn(recordSn); guideTask.setRecordSn(guideDataDto.getRecordSn()); //ç®æ ç»çº¬åº¦ guideTask.setTargetPosition(targetPosition); guideTask.setTargetPosition(guideDataDto.getTargetPosition()); //ç®æ PTZ if (guideDataDto.getGuidePTZ() != null) { guideTask.setGuidePTZ(guideDataDto.getGuidePTZ()); } //æ¶æ¯å ¥é queueManager.addTaskToQueue(cameraId, guideTask); //æå°éå @@ -1421,7 +1454,7 @@ /** * è·åéè¿å¼å¯æ¥è¦å¼å¯¼åè½å çµ */ private String getNearbyCamera(double[] targetPosition) { private String getCameraByNear(double[] targetPosition) { String minDistanceCameraId = ""; try { //è·åææå¤§å çµ @@ -1459,16 +1492,17 @@ return minDistanceCameraId; } //é·è¾¾è·åç¸æºå¼å¯¼å ¥é private void radarGuideToQueue(String alarmId, String radarId, String name, String alarmType, Date createTime, double[] coordinate) { int index = name.indexOf("("); String alarmpointName = name.substring(0, index); //è·åç¸æºå¼å¯¼å ¥é private void getCameraGuideToQueue(GuideDataDto guideDataDto) { int index = guideDataDto.getName().indexOf("("); String alarmpointName = guideDataDto.getName().substring(0, index); //è·åé·è¾¾æå¨å¡ä¸ç大å çµ ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(radarId); ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId()); if (StringUtils.isNotNull(cameraWithTower)) { log.debug("è·åå°é·è¾¾å¡ä¸çå çµ:" + cameraWithTower.getId()); //妿é·è¾¾å¡ä¸æå çµ messagesEnqueued(cameraWithTower.getId(), alarmId, alarmType, createTime, 1, 1, coordinate); guideDataDto.setCameraId(cameraWithTower.getId()); messagesEnqueued(guideDataDto); } else { log.debug("æªè·åå°é·è¾¾å¡ä¸çå çµ,æ æ³å¼å¯¼"); } @@ -1479,13 +1513,16 @@ if (cameraId.equals(cameraWithTower.getId())) { return; } log.info("è·åå°æ¥è¦ç¹å ³èçå çµ:" + cameraId); log.debug("è·åå°æ¥è¦ç¹å ³èçå çµ:" + cameraId); //妿æ¥è¦ç¹å ³èäºå çµ messagesEnqueued(cameraId, alarmId, alarmType, createTime, 1, 2, coordinate); guideDataDto.setCameraId(cameraId); guideDataDto.setRecordSn(2);//å ´è¶£ç¹å çµå¼å¯¼å½ååå¨ç¬¬äºä¸ªè·¯å¾ messagesEnqueued(guideDataDto); } else { log.debug("æªè·åå°æ¥è¦ç¹å ³èçå çµ,æ æ³å¼å¯¼"); } } //é·è¾¾ç§»å¨å¼å¯¼ private void radarMoveGuide(ArdAlarmRadarMove ardAlarmRadarMove) { log.debug("é·è¾¾ç§»å¨å¼å§å¼å¯¼"); @@ -1495,8 +1532,19 @@ } double[] coordinate = new double[]{ardAlarmRadarMove.getLongitude(), ardAlarmRadarMove.getLatitude()};//æ¥è¦åæ //å¼å¯¼å ¥é radarGuideToQueue(ardAlarmRadarMove.getId(), ardAlarmRadarMove.getRadarId(), ardAlarmRadarMove.getName(), ardAlarmRadarMove.getAlarmType(), ardAlarmRadarMove.getCreateTime(), coordinate);//æ´æ° GuideDataDto guideDataDto = new GuideDataDto() .setRadarId( ardAlarmRadarMove.getRadarId()) .setName(ardAlarmRadarMove.getName()) .setAlarmId(ardAlarmRadarMove.getId()) .setAlarmType(ardAlarmRadarMove.getAlarmType()) .setReceiveTime(ardAlarmRadarMove.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate) .setGuidePTZ(ardAlarmRadarMove.getGuidePTZ()); getCameraGuideToQueue(guideDataDto);//è·åç¸æºå ¥é } //é·è¾¾é²ç«å¼å¯¼ private void radarFireGuide(ArdAlarmRadarFire ardAlarmRadarFire) { log.debug("é·è¾¾é²ç«å¼å§å¼å¯¼"); @@ -1506,8 +1554,19 @@ } double[] coordinate = new double[]{ardAlarmRadarFire.getLongitude(), ardAlarmRadarFire.getLatitude()};//æ¥è¦åæ //å¼å¯¼å ¥é radarGuideToQueue(ardAlarmRadarFire.getId(), ardAlarmRadarFire.getRadarId(), ardAlarmRadarFire.getName(), ardAlarmRadarFire.getAlarmType(), ardAlarmRadarFire.getCreateTime(), coordinate);//æ´æ° GuideDataDto guideDataDto = new GuideDataDto() .setRadarId( ardAlarmRadarFire.getRadarId()) .setName(ardAlarmRadarFire.getName()) .setAlarmId(ardAlarmRadarFire.getId()) .setAlarmType(ardAlarmRadarFire.getAlarmType()) .setReceiveTime(ardAlarmRadarFire.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate) .setGuidePTZ(ardAlarmRadarFire.getGuidePTZ()); getCameraGuideToQueue(guideDataDto);//è·åç¸æºå ¥é } //é·è¾¾æ½æ²¹æºåæºå¼å¯¼ private void radarPumpGuide(ArdAlarmRadarPump ardAlarmRadarPump) { log.debug("é·è¾¾æ½æ²¹æºåæºå¼å§å¼å¯¼"); @@ -1518,7 +1577,16 @@ } double[] coordinate = new double[]{ardAlarmRadarPump.getLongitude(), ardAlarmRadarPump.getLatitude()};//æ¥è¦åæ //å¼å¯¼å ¥é radarGuideToQueue(ardAlarmRadarPump.getId(), ardAlarmRadarPump.getRadarId(), ardAlarmRadarPump.getName(), ardAlarmRadarPump.getAlarmType(), ardAlarmRadarPump.getCreateTime(), coordinate);//æ´æ° GuideDataDto guideDataDto = new GuideDataDto() .setRadarId( ardAlarmRadarPump.getRadarId()) .setName(ardAlarmRadarPump.getName()) .setAlarmId(ardAlarmRadarPump.getId()) .setAlarmType(ardAlarmRadarPump.getAlarmType()) .setReceiveTime(ardAlarmRadarPump.getCreateTime()) .setNum(1) .setRecordSn(1) .setTargetPosition(coordinate) .setGuidePTZ(ardAlarmRadarPump.getGuidePTZ()); getCameraGuideToQueue(guideDataDto);//è·åç¸æºå ¥é } } ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java
@@ -20,6 +20,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; /** * @ClassName QueueTaskExecutor @@ -57,6 +59,11 @@ cmd.setOperator(guideTask.getAlarmType()); cmd.setExpired(30); cmd.setRecordBucketName("record"); Map<String, Double> ptzMap = new HashMap<>(); ptzMap.put("p", guideTask.getGuidePTZ().getP()); ptzMap.put("t", guideTask.getGuidePTZ().getT()); ptzMap.put("z", guideTask.getGuidePTZ().getZ()); cmd.setPtzMap(ptzMap); if (guideTask.getRecordSn().equals(1)) { cmd.setRecordObjectName("alarm_" + guideTask.getAlarmId() + "_1"); } else { @@ -64,7 +71,13 @@ } log.debug("å¼å§å¼å¯¼"); boolean guideRes = cameraSdkService.guideTargetPosition(cmd); boolean guideRes = false; if (cmd.getPtzMap().get("p") != null) { //på¼åå¨ ä¼å å¼å¯¼ptz guideRes = cameraSdkService.setPtz(cmd); } else { guideRes = cameraSdkService.guideTargetPosition(cmd); } if (guideRes) { log.debug("å¼å¯¼æå"); cameraSdkService.controlLock(cmd);//ä¸é ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java
@@ -2,6 +2,7 @@ import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.alarm.global.domain.GuidePTZ; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -85,6 +86,8 @@ */ private String radarId; /** å¼å¯¼PTZå¼ */ private GuidePTZ guidePTZ; } ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java
@@ -2,6 +2,7 @@ import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.alarm.global.domain.GuidePTZ; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -85,5 +86,7 @@ private String RadarId; /** å¼å¯¼PTZå¼ */ private GuidePTZ guidePTZ; } ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java
@@ -1,7 +1,9 @@ package com.ruoyi.alarm.radar.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.alarm.global.domain.GuidePTZ; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -10,63 +12,88 @@ /** * é·è¾¾æ½æ²¹æºåæºæ¥è¦å¯¹è±¡ ard_alarm_radar_pump * * * @author ard * @date 2023-09-02 */ @Data public class ArdAlarmRadarPump extends BaseEntity { public class ArdAlarmRadarPump extends BaseEntity { private static final long serialVersionUID = 1L; /** è®°å½ID */ /** * è®°å½ID */ private String id; /** å ´è¶£ç¹åç§° */ /** * å ´è¶£ç¹åç§° */ @Excel(name = "å ´è¶£ç¹åç§°") private String name; /** ç®æ ID */ /** * ç®æ ID */ @Excel(name = "ç®æ ID") private String targetId; /** æ¥è¦ç±»å */ /** * æ¥è¦ç±»å */ @Excel(name = "æ¥è¦ç±»å") private String alarmType; /** æ¥è¦æ¶é´ */ /** * æ¥è¦æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "æ¥è¦æ¶é´", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date alarmTime; /** ç»åº¦ */ /** * ç»åº¦ */ @Excel(name = "ç»åº¦") private Double longitude; /** 纬度 */ /** * 纬度 */ @Excel(name = "纬度") private Double latitude; /** å¼å¯¼å½å1 */ /** * å¼å¯¼å½å1 */ @Excel(name = "å¼å¯¼å½å1") private String recordUrl1; /** å¼å¯¼å½å2 */ /** * å¼å¯¼å½å2 */ @Excel(name = "å¼å¯¼å½å2") private String recordUrl2; /** æ¥çæ¶é´ */ /** * æ¥çæ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "æ¥çæ¶é´", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date viewTime; /** ç¨æ·ID */ /** * ç¨æ·ID */ @Excel(name = "ç¨æ·ID") private String userId; /** é¨é¨ID */ /** * é¨é¨ID */ @Excel(name = "é¨é¨ID") private Long deptId; /** å¼å¯¼æ¶é´ */ /** * å¼å¯¼æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "å¼å¯¼æ¶é´", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date guideTime; @@ -84,4 +111,9 @@ * é·è¾¾ID */ private String radarId; /** * å¼å¯¼PTZå¼ */ private GuidePTZ guidePTZ; } ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java
@@ -25,7 +25,7 @@ * @Date 2022/12/26 16:34 * @Version 1.0 */ @Slf4j(topic = "stealAlarm") @Slf4j(topic = "alarm") @Service public class IStealElecAlarmServiceImpl implements IStealElecAlarmService { @Resource ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
@@ -101,6 +101,17 @@ /** å ³èç¸æºID */ private String cameraId; /** å¼å¯¼På¼ */ private Double guideP; /** å¼å¯¼Tå¼ */ private Double guideT; /** å¼å¯¼Zå¼ */ private Double guideZ; @TableField(exist = false) private String type; } ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.inspect.service.impl; import java.util.*; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.utils.DateUtils; @@ -21,6 +22,7 @@ import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper; import com.ruoyi.inspect.domain.ArdVideoInspectTask; import com.ruoyi.inspect.service.IArdVideoInspectTaskService; import javax.annotation.PostConstruct; import javax.annotation.Resource; @@ -440,9 +442,8 @@ targetPositon[2] = ardAlarmpointsWell.getAltitude(); /*è·åç¸æºåæ */ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if(StringUtils.isNull(cameras)) { log.debug("æ¾ä¸å°ç¸æº:"+cameraId); if (StringUtils.isNull(cameras)) { log.debug("æ¾ä¸å°ç¸æº:" + cameraId); return; } double[] cameraPositon = new double[3]; @@ -456,7 +457,17 @@ cmd.setTargetPosition(targetPositon); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime() * 60); boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd); Map<String, Double> ptzMap = new HashMap<>(); ptzMap.put("p", ardAlarmpointsWell.getGuideP()); ptzMap.put("t", ardAlarmpointsWell.getGuideT()); ptzMap.put("z", ardAlarmpointsWell.getGuideZ()); cmd.setPtzMap(ptzMap); boolean setTargetPosition; if (cmd.getPtzMap().get("p") != null) { setTargetPosition = cameraSdkService.setPtz(cmd); } else { setTargetPosition = cameraSdkService.guideTargetPosition(cmd); } if (setTargetPosition) { /*æ§å¶ç¸æºå·¡æ£æåï¼å¼å§å½å*/ cameraSdkService.recordStart(cmd); @@ -498,9 +509,8 @@ targetPositon[2] = ardAlarmpointsWell.getAltitude(); /*è·åç¸æºåæ */ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if(StringUtils.isNull(cameras)) { log.debug("æ¾ä¸å°ç¸æº:"+cameraId); if (StringUtils.isNull(cameras)) { log.debug("æ¾ä¸å°ç¸æº:" + cameraId); return; } double[] cameraPositon = new double[3]; @@ -514,7 +524,17 @@ cmd.setTargetPosition(targetPositon); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime() * 60); boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd); Map<String, Double> ptzMap = new HashMap<>(); ptzMap.put("p", ardAlarmpointsWell.getGuideP()); ptzMap.put("t", ardAlarmpointsWell.getGuideT()); ptzMap.put("z", ardAlarmpointsWell.getGuideZ()); cmd.setPtzMap(ptzMap); boolean setTargetPosition; if (cmd.getPtzMap().get("p") != null) { setTargetPosition = cameraSdkService.setPtz(cmd); } else { setTargetPosition = cameraSdkService.guideTargetPosition(cmd); } if (!setTargetPosition) { /*æ§å¶å¤±è´¥,å½åæ¥éª¤å¯å¨æ¶é´ç½®null*/ ardVideoInspectTask.setCurrentStepStartTime(""); @@ -649,6 +669,7 @@ /** * è·åç¸æºçç©ºé²æ¶æ®µ * * @param cameraId * @return */ ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -176,6 +176,7 @@ @Async("loginExecutor") public void asyncLogin(ArdCameras camera) { try { Thread.sleep(100); // åå§å if (!hCNetSDK.NET_DVR_Init()) { log.error("SDKåå§å失败"); @@ -214,7 +215,7 @@ //忥ç»å½ int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (lUserID < 0) { log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],é误ç ï¼" + hCNetSDK.NET_DVR_GetLastError()); log.debug("Login Failed ã " + camera.getIp() + ":" + camera.getPort() + " ã,Error Codeï¼" + hCNetSDK.NET_DVR_GetLastError()); camera.setChanNum(0); camera.setLoginId(-1); camera.setState("0"); @@ -224,7 +225,7 @@ return; } log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]"); log.debug("Login Success ã " + camera.getIp() + ":" + camera.getPort() + " ã"); if (fExceptionCallBack == null) { fExceptionCallBack = new ExceptionCallBack();//å¼å¸¸åè° //设置å¼å¸¸åè°å½æ°(å¯å¨åè°å½æ°ä¸è·å设å¤ä¸ä¸çº¿ç¶æç) ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
@@ -29,6 +29,9 @@ <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="cameraId" column="camera_id"/> <result property="guideP" column="guide_p"/> <result property="guideT" column="guide_t"/> <result property="guideZ" column="guide_z"/> </resultMap> <resultMap type="ArdAlarmpointsWell" id="wellResult"> @@ -61,7 +64,10 @@ c.create_time, c.update_by, c.update_time, c.camera_id c.camera_id, c.guide_p, c.guide_t, c.guide_z from ard_alarmpoints_well c left join sys_dept d on d.dept_id = c.dept_id left join sys_user u on u.user_id = c.user_id @@ -127,6 +133,9 @@ <if test="updateBy != null">update_by,</if> <if test="updateTime != null">update_time,</if> <if test="cameraId != null">camera_id,</if> <if test="guideP != null">guide_p,</if> <if test="guideT != null">guide_t,</if> <if test="guideZ != null">guide_z,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> @@ -153,6 +162,9 @@ <if test="updateBy != null">#{updateBy},</if> <if test="updateTime != null">#{updateTime},</if> <if test="cameraId != null">#{cameraId},</if> <if test="guideP != null">#{guideP},</if> <if test="guideT != null">#{guideT},</if> <if test="guideZ != null">#{guideZ},</if> </trim> </insert> @@ -182,6 +194,9 @@ <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> <if test="cameraId != null">camera_id = #{cameraId},</if> <if test="guideP != null">guide_p = #{guideP},</if> <if test="guideT != null">guide_t = #{guideT},</if> <if test="guideZ != null">guide_z = #{guideZ},</if> </trim> where id = #{id} </update> @@ -211,6 +226,9 @@ <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> <if test="cameraId != null">camera_id = #{cameraId},</if> <if test="guideP != null">guide_p = #{guideP},</if> <if test="guideT != null">guide_t = #{guideT},</if> <if test="guideZ != null">guide_z = #{guideZ},</if> </trim> where well_id = #{wellId} </update> ruoyi-admin/src/main/resources/logback.xml
@@ -133,19 +133,6 @@ <pattern>${log.pattern}</pattern> </encoder> </appender> <!--ççµæ¥è¦æ¥å¿è¾åº--> <appender name="stealAlarm" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/stealAlarm.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--æå¤©åæ»daily--> <fileNamePattern>${log.path}/stealAlarm.%d{yyyy-MM-dd}.log</fileNamePattern> <!--æ¥å¿æå¤§çåå²60天--> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!--websocketæ¥è¦æ¥å¿è¾åº--> <appender name="websocket" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/websocket.log</file> @@ -263,6 +250,19 @@ <pattern>${log.pattern}</pattern> </encoder> </appender> <!--æ¥è¦æ¥å¿è¾åº--> <appender name="alarm" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/alarm.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--æå¤©åæ»daily--> <fileNamePattern>${log.path}/alarm.%d{yyyy-MM-dd}.log</fileNamePattern> <!--æ¥å¿æå¤§çåå²60天--> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- ç³»ç»æ¨¡åæ¥å¿çº§å«æ§å¶ --> <logger name="com.ruoyi" level="info"/> <!-- Springæ¥å¿çº§å«æ§å¶ --> @@ -332,12 +332,12 @@ <logger name="guideQueue" level="INFO"> <appender-ref ref="guideQueue"/> </logger> <!--stealAlarmæ¥å¿--> <logger name="stealAlarm" level="INFO"> <appender-ref ref="stealAlarm"/> </logger> <!--stealAlarmæ¥å¿--> <!--websocketæ¥å¿--> <logger name="websocket" level="INFO"> <appender-ref ref="websocket"/> </logger> <!--alarmæ¥å¿--> <logger name="alarm" level="INFO"> <appender-ref ref="alarm"/> </logger> </configuration> ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
@@ -9,22 +9,17 @@ /** * å®å ¨æå¡å·¥å ·ç±» * * * @author ruoyi */ public class SecurityUtils { public class SecurityUtils { /** * ç¨æ·ID **/ public static String getUserId() { try { public static String getUserId() { try { return getLoginUser().getUserId(); } catch (Exception e) { } catch (Exception e) { throw new ServiceException("è·åç¨æ·IDå¼å¸¸", HttpStatus.UNAUTHORIZED); } } @@ -32,29 +27,21 @@ /** * è·åé¨é¨ID **/ public static Long getDeptId() { try { public static Long getDeptId() { try { return getLoginUser().getDeptId(); } catch (Exception e) { } catch (Exception e) { throw new ServiceException("è·åé¨é¨IDå¼å¸¸", HttpStatus.UNAUTHORIZED); } } /** * è·åç¨æ·è´¦æ· **/ public static String getUsername() { try { public static String getUsername() { try { return getLoginUser().getUsername(); } catch (Exception e) { } catch (Exception e) { throw new ServiceException("è·åç¨æ·è´¦æ·å¼å¸¸", HttpStatus.UNAUTHORIZED); } } @@ -62,14 +49,10 @@ /** * è·åç¨æ· **/ public static LoginUser getLoginUser() { try { public static LoginUser getLoginUser() { try { return (LoginUser) getAuthentication().getPrincipal(); } catch (Exception e) { } catch (Exception e) { throw new ServiceException("è·åç¨æ·ä¿¡æ¯å¼å¸¸", HttpStatus.UNAUTHORIZED); } } @@ -77,9 +60,8 @@ /** * è·åAuthentication */ public static Authentication getAuthentication() { Authentication authentication= SecurityContextHolder.getContext().getAuthentication(); public static Authentication getAuthentication() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); return authentication; } @@ -89,8 +71,7 @@ * @param password å¯ç * @return å å¯å符串 */ public static String encryptPassword(String password) { public static String encryptPassword(String password) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.encode(password); } @@ -98,25 +79,23 @@ /** * 夿å¯ç æ¯å¦ç¸å * * @param rawPassword çå®å¯ç * @param rawPassword çå®å¯ç * @param encodedPassword å å¯åå符 * @return ç»æ */ public static boolean matchesPassword(String rawPassword, String encodedPassword) { public static boolean matchesPassword(String rawPassword, String encodedPassword) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.matches(rawPassword, encodedPassword); } /** * æ¯å¦ä¸ºç®¡çå * * * @param userId ç¨æ·ID * @return ç»æ */ public static boolean isAdmin(String userId) { boolean k= userId != null && userId.equals("1"); public static boolean isAdmin(String userId) { boolean k = userId != null && userId.equals("1"); return k; } }