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