From 4aa86f1386d20c9ad811e2d18b7e56f00b06e25c Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 15 六月 2023 16:51:55 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java    |  187 +++++++++++++-------
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java                                |   87 ---------
 ard-work/src/main/java/com/ruoyi/utils/tools/ArdTool.java                                      |    2 
 ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java                           |    2 
 ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java         |    3 
 ard-work/src/main/java/com/ruoyi/utils/tools/GisTool.java                                      |   32 +++
 ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java                          |    5 
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java |    2 
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java                  |    4 
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java                      |    2 
 ruoyi-common/pom.xml                                                                           |    6 
 /dev/null                                                                                      |   20 --
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java                |    5 
 ard-work/src/main/java/com/ruoyi/constant/CamPriority.java                                     |   21 ++
 ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java                   |    2 
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java          |   45 ++--
 ruoyi-admin/src/main/resources/logback.xml                                                     |    4 
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java      |   12 
 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java         |    6 
 ard-work/src/main/resources/mapper/alarm/ArdAlarmStealelecMapper.xml                           |   23 ++
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java                |   20 +-
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java          |   10 +
 ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java                                     |    6 
 23 files changed, 277 insertions(+), 229 deletions(-)

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

--
Gitblit v1.9.3