From 0a93967d8028733169ef9bcad7207026d4dea74e Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期一, 11 三月 2024 16:07:57 +0800 Subject: [PATCH] 增加雷达报警引导优先ptz引导 修改海康红外开关接口命令值 优化坐标数组改为实体类 --- ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java | 4 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/lib/HCNetSDK.java | 3 ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java | 1 ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java | 3 ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java | 12 + ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java | 4 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java | 4 ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePoint.java | 13 ++ ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 12 +- ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java | 6 ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 94 +++++++++++---- ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java | 27 ++++ ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueHandler.java | 41 +++++- ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideCameraDto.java | 35 +++++ ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 38 ++--- ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 8 ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java | 2 17 files changed, 227 insertions(+), 80 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideCameraDto.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideCameraDto.java new file mode 100644 index 0000000..8d56fda --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideCameraDto.java @@ -0,0 +1,35 @@ +package com.ruoyi.alarm.global.domain; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @Description: + * @ClassName: GuideCameraDto + * @Author: 鍒樿嫃涔� + * @Date: 2024骞�03鏈�11鏃�11:45:38 + **/ +@Data +@Accessors(chain = true) +public class GuideCameraDto { + /** + * 鎽勫儚澶磇d + */ + private String cameraId; + /** + * 鎽勫儚澶撮�氶亾 + */ + private Integer chanNo; + /** + * 鏄惁寮曞ptz + */ + private Boolean isGuidePTZ; + /** + * 寮曞鍧愭爣瀹炰綋 + */ + private GuidePoint guidePoint; + /** + * 寮曞PTZ瀹炰綋 + */ + private GuidePTZ guidePTZ; +} diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java index 060b9de..2e9edad 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java @@ -1,9 +1,11 @@ package com.ruoyi.alarm.global.domain; +import com.ruoyi.device.camera.domain.ArdCameras; import lombok.Data; import lombok.experimental.Accessors; import java.util.Date; +import java.util.List; /** * @Description: 寮曞鏁版嵁瀹炰綋 @@ -20,6 +22,8 @@ String alarmId; String alarmType; Date receiveTime; - double[] targetPosition; + GuidePTZ guidePTZ; + GuidePoint targetPosition; String wellId; + Boolean isGuidePTZ;//鏄惁ptz寮曞 } diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java new file mode 100644 index 0000000..7749c89 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java @@ -0,0 +1,27 @@ +package com.ruoyi.alarm.global.domain; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @Description: + * @ClassName: PTZ + * @Author: 鍒樿嫃涔� + * @Date: 2024骞�03鏈�11鏃�11:47:54 + **/ +@Data +@Accessors(chain = true) +public class GuidePTZ { + /** + * 鍙鍏塒TZ + */ + private Double p1; + private Double t1; + private Double z1; + /** + * 鐑孩澶朠TZ + */ + private Double p2; + private Double t2; + private Double z2; +} diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePoint.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePoint.java new file mode 100644 index 0000000..6055204 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePoint.java @@ -0,0 +1,13 @@ +package com.ruoyi.alarm.global.domain; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class GuidePoint{ + + private Double longitude; + private Double latitude; + private Double altitude; +} diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java index ca81988..a4512b6 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java @@ -40,12 +40,18 @@ * 鎺ユ敹鏃堕棿 */ String receiveTime; - + /** + * 鏄惁PTZ寮曞 + */ + Boolean isGuidePTZ; /** * 寮曞鐩爣缁忕含搴� */ - double[] targetPosition; - + GuidePoint targetPosition; + /** + * 寮曞鐩爣PTZ + */ + GuidePTZ targetPTZ; /** * 浜曞彿 */ diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java index 73831f6..2de1c2c 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java @@ -30,7 +30,9 @@ import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper; import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; +import com.ruoyi.alarmpoints.well.domain.ArdWellGuideCamera; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; +import com.ruoyi.alarmpoints.well.mapper.ArdWellGuideCameraMapper; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.ConfigUtils; @@ -116,6 +118,9 @@ private QueueHandler queueHandler; @Resource private ArdEquipRadarMapper ardEquipRadarMapper; + @Resource + private ArdWellGuideCameraMapper ardWellGuideCameraMapper; + //endregion /** @@ -1034,15 +1039,15 @@ if (StringUtils.isNull(longitude) || StringUtils.isNull(latitude)) { return; } - double[] coordinate = new double[]{longitude, latitude}; - String cameraId = getCameraByNear(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()}); + GuidePoint guidePoint = new GuidePoint().setLongitude(longitude).setLatitude(latitude); + String cameraId = getCameraByNear(guidePoint); if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() - .setAlarmId(cameraId) + .setCameraId(cameraId) .setAlarmId(ardAlarmTube.getId()) .setAlarmType("sys_tube_leak") .setReceiveTime(ardAlarmTube.getCreateTime()) - .setTargetPosition(coordinate); + .setTargetPosition(guidePoint); messagesEnqueued(guideDataDto); } //endregion @@ -1070,8 +1075,8 @@ String alarmpointName = ardAlarmRadar.getName();//鍏磋叮鐐瑰悕绉� ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName); if (well == null) { - String path=System.getProperty("user.dir") + File.separator +"noExistWell.txt"; - writeStringToFile(alarmpointName,path); + String path = System.getProperty("user.dir") + File.separator + "noExistWell.txt"; + writeStringToFile(alarmpointName, path); continue; } @@ -1148,15 +1153,16 @@ if (StringUtils.isNull(ardAlarmExternal.getLongitude()) || StringUtils.isNull(ardAlarmExternal.getLatitude())) { return; } - double[] coordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//寮曞鍧愭爣 - String cameraId = getCameraByNear(coordinate);//鏈�杩戠浉鏈篒D + GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmExternal.getLongitude()).setLatitude(ardAlarmExternal.getLatitude()); + //寮曞鍧愭爣 + String cameraId = getCameraByNear(guidePoint);//鏈�杩戠浉鏈篒D if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() - .setAlarmId(cameraId) + .setCameraId(cameraId) .setAlarmId(ardAlarmExternal.getId()) .setAlarmType("sys_external") .setReceiveTime(ardAlarmExternal.getCreateTime()) - .setTargetPosition(coordinate) + .setTargetPosition(guidePoint) .setWellId(well.getId()); messagesEnqueued(guideDataDto); } @@ -1186,15 +1192,15 @@ if (StringUtils.isNull(ardAlarmAccess.getLongitude()) || StringUtils.isNull(ardAlarmAccess.getLatitude())) { return; } - double[] coordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//寮曞鍧愭爣 - String cameraId = getCameraByNear(coordinate);//鏈�杩戠浉鏈篒D + GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmAccess.getLongitude()).setLatitude(ardAlarmAccess.getLatitude());//寮曞鍧愭爣 + String cameraId = getCameraByNear(guidePoint);//鏈�杩戠浉鏈篒D if (StringUtils.isNotEmpty(cameraId)) { GuideDataDto guideDataDto = new GuideDataDto() - .setAlarmId(cameraId) + .setCameraId(cameraId) .setAlarmId(ardAlarmAccess.getId()) .setAlarmType("sys_external") .setReceiveTime(ardAlarmAccess.getCreateTime()) - .setTargetPosition(coordinate); + .setTargetPosition(guidePoint); messagesEnqueued(guideDataDto); } //endregion @@ -1263,6 +1269,11 @@ } GuideTask guideTask = new GuideTask(); guideTask.setCameraId(cameraId);//鐩告満ID + guideTask.setIsGuidePTZ(guideDataDto.getIsGuidePTZ()); + if(guideTask.getIsGuidePTZ()) + { + guideTask.setTargetPTZ(guideDataDto.getGuidePTZ()); + } String alarmType = guideDataDto.getAlarmType(); switch (alarmType) { case "杩愬姩鐩爣妫�娴�": @@ -1317,7 +1328,7 @@ /** * 鑾峰彇闄勮繎寮�鍚姤璀﹀紩瀵煎姛鑳藉厜鐢� */ - private String getCameraByNear(double[] targetPosition) { + private String getCameraByNear(GuidePoint guidePoint) { String minDistanceCameraId = ""; try { //鑾峰彇鎵�鏈夊ぇ鍏夌數 @@ -1330,6 +1341,7 @@ continue; } double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; + double[] targetPosition = new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()}; double distance = GisUtil.getDistance(targetPosition, camPosition); if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { distanceMap.put(camera.getId(), distance); @@ -1357,15 +1369,37 @@ //鑾峰彇鐩告満寮曞鍏ラ槦 private void getCameraGuideToQueue(GuideDataDto guideDataDto) { - //鑾峰彇闆疯揪鎵�鍦ㄥ涓婄殑澶у厜鐢� - ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId()); - if (StringUtils.isNotNull(cameraWithTower)) { - log.debug("鑾峰彇鍒伴浄杈惧涓婄殑鍏夌數:" + cameraWithTower.getId()); - //濡傛灉闆疯揪濉斾笂鏈夊厜鐢� - guideDataDto.setCameraId(cameraWithTower.getId()); + //鑾峰彇鍏磋叮鐐瑰叧鑱旂殑鐩告満 + ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(guideDataDto.getWellId()); + ArdWellGuideCamera ardWellGuideCamera = new ArdWellGuideCamera(); + ardWellGuideCamera.setWellId(well.getId()); + List<ArdWellGuideCamera> ardWellGuideCameras = ardWellGuideCameraMapper.selectArdWellGuideCameraList(ardWellGuideCamera); + if (ardWellGuideCameras.size() > 0) { + //浼樺厛鑾峰彇浜曞叧鑱旂浉鏈虹殑棰勭疆浣� + ardWellGuideCamera = ardWellGuideCameras.get(0); + guideDataDto.setIsGuidePTZ(true); + guideDataDto.setCameraId(ardWellGuideCamera.getCameraId()); + guideDataDto.setGuidePTZ(new GuidePTZ() + .setP1(ardWellGuideCamera.getP1()) + .setT1(ardWellGuideCamera.getT1()) + .setZ1(ardWellGuideCamera.getZ1()) + .setP2(ardWellGuideCamera.getP2()) + .setT2(ardWellGuideCamera.getT2()) + .setZ2(ardWellGuideCamera.getZ2()) + ); messagesEnqueued(guideDataDto); } else { - log.debug("鏈幏鍙栧埌闆疯揪濉斾笂鐨勫厜鐢�,鏃犳硶寮曞"); + //鑾峰彇闆疯揪鎵�鍦ㄥ涓婄殑澶у厜鐢� + ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId()); + if (StringUtils.isNotNull(cameraWithTower)) { + log.debug("鑾峰彇鍒伴浄杈惧涓婄殑鍏夌數:" + cameraWithTower.getId()); + //濡傛灉闆疯揪濉斾笂鏈夊厜鐢� + guideDataDto.setIsGuidePTZ(false); + guideDataDto.setCameraId(cameraWithTower.getId()); + messagesEnqueued(guideDataDto); + } else { + log.debug("鏈幏鍙栧埌闆疯揪濉斾笂鐨勫厜鐢�,鏃犳硶寮曞"); + } } } @@ -1380,7 +1414,9 @@ log.debug("鍧愭爣涓虹┖涓嶅紩瀵�"); return; } - double[] coordinate = new double[]{ardAlarmRadarMove.getLongitude(), ardAlarmRadarMove.getLatitude()};//鎶ヨ鍧愭爣 + GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarMove.getLongitude()) + .setLatitude(ardAlarmRadarMove.getLatitude()); + //鎶ヨ鍧愭爣 //寮曞鍏ラ槦 GuideDataDto guideDataDto = new GuideDataDto() .setRadarId(ardAlarmRadarMove.getRadarId()) @@ -1389,7 +1425,7 @@ .setAlarmType(ardAlarmRadarMove.getAlarmType()) .setReceiveTime(ardAlarmRadarMove.getCreateTime()) .setWellId(ardAlarmRadarMove.getWellId()) - .setTargetPosition(coordinate); + .setTargetPosition(guidePoint); getCameraGuideToQueue(guideDataDto);//鑾峰彇鐩告満鍏ラ槦 } @@ -1404,7 +1440,8 @@ log.debug("鍧愭爣涓虹┖涓嶅紩瀵�"); return; } - double[] coordinate = new double[]{ardAlarmRadarFire.getLongitude(), ardAlarmRadarFire.getLatitude()};//鎶ヨ鍧愭爣 + GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarFire.getLongitude())//鎶ヨ鍧愭爣 + .setLatitude(ardAlarmRadarFire.getLatitude()); //寮曞鍏ラ槦 GuideDataDto guideDataDto = new GuideDataDto() .setRadarId(ardAlarmRadarFire.getRadarId()) @@ -1413,7 +1450,7 @@ .setAlarmType(ardAlarmRadarFire.getAlarmType()) .setReceiveTime(ardAlarmRadarFire.getCreateTime()) .setWellId(ardAlarmRadarFire.getWellId()) - .setTargetPosition(coordinate); + .setTargetPosition(guidePoint); getCameraGuideToQueue(guideDataDto);//鑾峰彇鐩告満鍏ラ槦 } @@ -1429,7 +1466,8 @@ log.debug("鍧愭爣涓虹┖涓嶅紩瀵�"); return; } - double[] coordinate = new double[]{ardAlarmRadarPump.getLongitude(), ardAlarmRadarPump.getLatitude()};//鎶ヨ鍧愭爣 + GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarPump.getLongitude()) + .setLatitude(ardAlarmRadarPump.getLatitude());//鎶ヨ鍧愭爣 //寮曞鍏ラ槦 GuideDataDto guideDataDto = new GuideDataDto() .setRadarId(ardAlarmRadarPump.getRadarId()) @@ -1438,7 +1476,7 @@ .setAlarmType(ardAlarmRadarPump.getAlarmType()) .setReceiveTime(ardAlarmRadarPump.getCreateTime()) .setWellId(ardAlarmRadarPump.getWellId()) - .setTargetPosition(coordinate); + .setTargetPosition(guidePoint); getCameraGuideToQueue(guideDataDto);//鑾峰彇鐩告満鍏ラ槦 } diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueHandler.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueHandler.java index afa6338..484f0b7 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueHandler.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueHandler.java @@ -91,6 +91,7 @@ } } } + //寮傛澶勭悊浠诲姟 public void processTask(GuideTask guideTask) { try { @@ -103,24 +104,46 @@ cmd.setChanNo(guideTask.getChanNo()); cmd.setOperator(guideTask.getAlarmType()); cmd.setExpired(30); + Map<String, Double> ptzMap=new HashMap<>(); + if(guideTask.getTargetPTZ()!=null) { + if (guideTask.getChanNo() == 1) { + ptzMap.put("p", guideTask.getTargetPTZ().getP1()); + ptzMap.put("t", guideTask.getTargetPTZ().getT1()); + ptzMap.put("z", guideTask.getTargetPTZ().getZ1()); + } + if (guideTask.getChanNo() == 2) { + ptzMap.put("p", guideTask.getTargetPTZ().getP2()); + ptzMap.put("t", guideTask.getTargetPTZ().getT2()); + ptzMap.put("z", guideTask.getTargetPTZ().getZ2()); + } + cmd.setPtzMap(ptzMap); + } cmd.setRecordBucketName("record"); cmd.setTargetPosition(guideTask.getTargetPosition()); - cmd.setRecordObjectName("alarmGuide/"+ DateUtils.getDateYYYYMMDD()+"/"+guideTask.getAlarmType()+"/"+guideTask.getAlarmId()); + cmd.setRecordObjectName("alarmGuide/" + DateUtils.getDateYYYYMMDD() + "/" + guideTask.getAlarmType() + "/" + guideTask.getAlarmId()); ICameraSdkService cameraSdkService = SpringUtils.getBean(ICameraSdkService.class); log.debug("寮�濮嬪紩瀵�"); boolean recordFlag = false; - boolean guideRes = cameraSdkService.guideTargetPosition(cmd); + boolean guideRes = false; + if (guideTask.getIsGuidePTZ()) { + AjaxResult result = cameraSdkService.setPtz(cmd); + if (result.get("code").equals(200)) { + guideRes = true; + } + } else { + guideRes = cameraSdkService.guideTargetPosition(cmd); + } if (guideRes) { log.debug("寮曞鎴愬姛"); //region 閫氱煡鍓嶇 - Map<String,Object> message = new HashMap<>(); - Map<String,String> data = new HashMap<>(); - data.put("cameraId",cmd.getCameraId()); - data.put("chanNo",cmd.getChanNo().toString()); - data.put("alarmType",cmd.getOperator()); + Map<String, Object> message = new HashMap<>(); + Map<String, String> data = new HashMap<>(); + data.put("cameraId", cmd.getCameraId()); + data.put("chanNo", cmd.getChanNo().toString()); + data.put("alarmType", cmd.getOperator()); data.put("alarmId", guideTask.getAlarmId()); - data.put("wellId",guideTask.getWellId()); - message.put("70000",data); + data.put("wellId", guideTask.getWellId()); + message.put("70000", data); WebSocketUtils.sendMessageAll(message); //endregion cameraSdkService.controlLock(cmd);//涓婇攣 diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java index b19c33f..e211410 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.alarm.radar.service.impl; import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.alarm.global.domain.GuidePoint; import com.ruoyi.alarm.radar.domain.ArdAlarmRadar; import com.ruoyi.alarm.radar.domain.RadarAlarmData; import com.ruoyi.alarm.radar.service.ArdRadarService; @@ -98,6 +99,7 @@ //杩欓噷杩借釜鐨勫潗鏍囦负闆疯揪缁忚繃璁$畻涓婁紶鐨勭粡绾害 Double longitude = ardFollowRadar.getLongitude(); Double latitude = ardFollowRadar.getLatitude(); + GuidePoint guidePoint=new GuidePoint().setLongitude(longitude).setLatitude(latitude); //鑾峰彇闆疯揪鎵�鍦ㄥ涓婄殑澶у厜鐢� ArdCameras camera = ardEquipRadarMapper.getCameraByRadar(radarId); if (StringUtils.isNotNull(camera)) { @@ -107,7 +109,7 @@ cmd.setOperator("sys_radar_follow"); cmd.setCameraId(camera.getId()); cmd.setChanNo(1); - cmd.setTargetPosition(new double[]{longitude,latitude}); + cmd.setTargetPosition(guidePoint); boolean res = iCameraSdkService.guideTargetPosition(cmd); if (res) { log.debug("闆疯揪杩借釜寮曞鎴愬姛"); diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java index fe446ef..147b230 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java @@ -194,8 +194,8 @@ point.setLatitude(Double.valueOf(parts[i + 1])); pointList.add(point); } - double lon = cmd.getTargetPosition()[0]; - double lat = cmd.getTargetPosition()[1]; + double lon = cmd.getTargetPosition().getLongitude(); + double lat = cmd.getTargetPosition().getLatitude(); Point targetPoint = new Point(lon, lat); //鍒ゆ柇寮曞鐩爣鏄惁鍦ㄥ潗鏍囬泦鍚堢粍鎴愮殑澶氳竟褰㈠唴 boolean inPolygon = GisUtil.isInPolygon(targetPoint, pointList); 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 d1706be..c5f2143 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 @@ -1,5 +1,6 @@ package com.ruoyi.device.camera.domain; +import com.ruoyi.alarm.global.domain.GuidePoint; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.NoArgsConstructor; @@ -37,7 +38,7 @@ Map<String, Double> ptzMap; /*鐩爣缁忕含搴�*/ - double[] targetPosition; + GuidePoint targetPosition; /*鐩爣浜�*/ String wellId; 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 1b7b893..be6a3b9 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 @@ -3,6 +3,7 @@ import java.util.*; import java.util.stream.Collectors; +import com.ruoyi.alarm.global.domain.GuidePoint; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.CameraConstants; @@ -402,8 +403,8 @@ @Override public TreeMap getNearCamerasBycoordinate(CameraCmd cmd) { try { - double[] targetPosition = cmd.getTargetPosition(); - if (targetPosition == null || (targetPosition != null && targetPosition.length == 0)) { + GuidePoint guidePoint = cmd.getTargetPosition(); + if (guidePoint == null) { log.debug("鐩爣浣嶇疆涓虹┖"); return new TreeMap<>(); } @@ -418,7 +419,8 @@ continue; } double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; - double distance = GisUtil.getDistance(cmd.getTargetPosition(), camPosition); + double[] targetPosition = new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()}; + double distance = GisUtil.getDistance(targetPosition, camPosition); if (camera.getCamMaxVisibleDistance() == null) { continue; } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java index 895723b..d698a32 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.device.camera.service.impl; +import com.ruoyi.alarm.global.domain.GuidePoint; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.domain.ArdWellGuideCamera; import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; @@ -500,7 +501,8 @@ if (well == null) { return AjaxResult.error("浜曚笉瀛樺湪"); } - cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude()}); + GuidePoint guidePoint=new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude()); + cmd.setTargetPosition(guidePoint); //鑾峰彇浜曢厤缃殑寮曞鐩告満鍒楄〃 List<ArdWellGuideCamera> ardWellGuideCameraList = well.getArdWellGuideCameraList(); 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 890016e..f14a2b1 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 @@ -2,6 +2,7 @@ import java.util.*; +import com.ruoyi.alarm.global.domain.GuidePoint; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.utils.DateUtils; @@ -436,17 +437,13 @@ if (!StringUtils.isNull(wellId)) { /*鑾峰彇浜曞潗鏍�*/ ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId); - if(StringUtils.isNull(well)) - { + if (StringUtils.isNull(well)) { log.debug("鎵句笉鍒颁簳:" + well.getWellId()); return; } log.debug("鎵惧埌浜�:" + well.getWellId()); - double[] targetPositon = new double[3]; - targetPositon[0] = well.getLongitude(); - targetPositon[1] = well.getLatitude(); - //targetPositon[2] = well.getAltitude(); - log.debug("鎵惧埌浜曞潗鏍�:" +well.getLongitude()+"-"+well.getLatitude()+"-"+well.getAltitude()); + GuidePoint guidePoint = new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude()); + log.debug("鎵惧埌浜曞潗鏍�:" + well.getLongitude() + "-" + well.getLatitude() + "-" + well.getAltitude()); /*鑾峰彇鐩告満鍧愭爣*/ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if (StringUtils.isNull(cameras)) { @@ -454,16 +451,11 @@ return; } log.debug("鎵惧埌鐩告満:" + cameraId); - //double[] cameraPositon = new double[3]; - //cameraPositon[0] = cameras.getLongitude(); - //cameraPositon[1] = cameras.getLatitude(); - //cameraPositon[2] = cameras.getAltitude(); - /*鎺у埗鐩告満宸℃*/ CameraCmd cmd = new CameraCmd(); cmd.setCameraId(cameraId); cmd.setChanNo(channel); - cmd.setTargetPosition(targetPositon); + cmd.setTargetPosition(guidePoint); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime());//绉掍负鍗曚綅 boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd); @@ -502,25 +494,25 @@ if (!StringUtils.isNull(wellId)) { /*鑾峰彇浜曞潗鏍�*/ ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId); - double[] targetPositon = new double[2]; - targetPositon[0] = well.getLongitude(); - targetPositon[1] = well.getLatitude(); - //targetPositon[2] = well.getAltitude(); + if(StringUtils.isNull(well)) + { + log.debug("鎵句笉鍒颁簳:" + well.getWellId()); + return; + } + log.debug("鎵惧埌浜�:" + well.getWellId()); + GuidePoint guidePoint = new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude()); /*鑾峰彇鐩告満鍧愭爣*/ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if (StringUtils.isNull(cameras)) { log.debug("鎵句笉鍒扮浉鏈�:" + cameraId); return; } - double[] cameraPositon = new double[3]; - cameraPositon[0] = cameras.getLongitude(); - cameraPositon[1] = cameras.getLatitude(); - cameraPositon[2] = cameras.getAltitude(); + log.debug("鎵惧埌鐩告満:" + cameraId); /*鎺у埗鐩告満宸℃*/ CameraCmd cmd = new CameraCmd(); cmd.setCameraId(cameraId); cmd.setChanNo(channel); - cmd.setTargetPosition(targetPositon); + cmd.setTargetPosition(guidePoint); cmd.setOperator("sys_patrol_inspect"); cmd.setExpired(step.getRecordingTime());//绉掍负鍗曚綅 boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd); @@ -561,7 +553,7 @@ cmd.setChanNo(channel); cmd.setOperator("sys_patrol_inspect"); cmd.setRecordBucketName("record"); - cmd.setRecordObjectName("inspectGuide/" + DateUtils.getDateYYYYMMDD()+"/"+ IdUtils.fastSimpleUUID()); + cmd.setRecordObjectName("inspectGuide/" + DateUtils.getDateYYYYMMDD() + "/" + IdUtils.fastSimpleUUID()); String url = cameraSdkService.recordStopToMinio(cmd); /*鎻掑叆宸℃璁板綍*/ ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord(); diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java index 29ef39c..b7810a5 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java @@ -690,7 +690,7 @@ try { ArdCameras cameras = ardCamerasService.selectArdCamerasById(cameraId); double[] cameraPositon = new double[]{cameras.getLongitude(), cameras.getLatitude(), cameras.getAltitude()}; - double[] targetPositions = cmd.getTargetPosition(); + double[] targetPositions = new double[]{cmd.getTargetPosition().getLongitude(),cmd.getTargetPosition().getLatitude()}; double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150); int p = (int) (cameraPTZ[0] * 10); int t = (int) (cameraPTZ[1] * 10); diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/lib/HCNetSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/lib/HCNetSDK.java index 1372e82..642998b 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/lib/HCNetSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/lib/HCNetSDK.java @@ -686,7 +686,8 @@ public static final int NET_DVR_GET_TRAFFIC_DATA = 3141; //闀胯繛鎺ヨ幏鍙栦氦閫氭暟鎹� public static final int NET_DVR_GET_TRAFFIC_FLOW = 3142; //闀胯繛鎺ヨ幏鍙栦氦閫氭祦閲� - + public static final int NET_DVR_GET_CCDPARAMCFG = 1067;//鑾峰彇鍓嶇鍙傛暟(鎵╁睍) + public static final int NET_DVR_SET_CCDPARAMCFG = 1068;//璁剧疆鍓嶇鍙傛暟(鎵╁睍) public static final int NET_DVR_GET_CCDPARAMCFG_EX = 3368;//鑾峰彇鍓嶇鍙傛暟(鎵╁睍) public static final int NET_DVR_SET_CCDPARAMCFG_EX = 3369;//璁剧疆鍓嶇鍙傛暟(鎵╁睍) public static final int NET_DVR_GET_FOCUSMODECFG = 3305;//鑾峰彇蹇悆鑱氱劍妯″紡淇℃伅 diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java index bc691b3..27f62d1 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java @@ -457,7 +457,7 @@ if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + errorCode); - return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); + return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return AjaxResult.success(); } @@ -1021,7 +1021,7 @@ if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("璁剧疆PTZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + errorCode); - return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); + return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return AjaxResult.success(); } catch (Exception ex) { @@ -1080,7 +1080,7 @@ if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + errorCode); - return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); + return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); } return AjaxResult.success(); @@ -1104,7 +1104,7 @@ try { ArdCameras cameras = ardCamerasService.selectArdCamerasById(cameraId); double[] cameraPositon = new double[]{cameras.getLongitude(), cameras.getLatitude(), cameras.getAltitude()}; - double[] targetPositions = cmd.getTargetPosition(); + double[] targetPositions = new double[]{cmd.getTargetPosition().getLongitude(), cmd.getTargetPosition().getLatitude()}; double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150); String p = String.valueOf((int) (cameraPTZ[0] * 10)); String t = String.valueOf((int) (cameraPTZ[1] * 10)); @@ -1302,7 +1302,7 @@ NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struDayNigh.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); - boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size(), ibrBytesReturned); + boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG, chanNo, point, struDayNigh.size(), ibrBytesReturned); if (!b_GetCameraParam) { log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError()); } @@ -1320,7 +1320,7 @@ daynight.byDayNightFilterTime = 60; struDayNigh.struDayNight = daynight; struDayNigh.write(); - boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size()); + boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG, chanNo, point, struDayNigh.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("璁剧疆澶滆澶辫触 ErrorCode:{},ErrorInfo:{}",code, SdkErrorCodeEnum.getDescByCode(code)); diff --git a/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java b/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java index f2185bb..21b28c4 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java +++ b/ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java @@ -181,4 +181,5 @@ e.printStackTrace(); } } + } -- Gitblit v1.9.3