From 4aa86f1386d20c9ad811e2d18b7e56f00b06e25c Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Thu, 15 Jun 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;
-                        }
-                        //获取距离字典中最近的一个相机ID
-                        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());//将相机id与当前处理线程名称绑定
-                            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("尝试查找最近光电");
+                //获取距离字典中最近的一个相机ID
+                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());//将相机id与当前处理线程名称绑定
+                    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) {
                         /*控制失败,当前步骤启动时间置null*/
                         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;//代替目标方法的返回值
@@ -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小时用hh
-                    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