From 6b4a4baa1048b1ed148580802ab06a78bbbd3db7 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Sat, 09 Dec 2023 14:14:11 +0800
Subject: [PATCH] 报警引导增加优先井配置ptz引导

---
 ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java                |    3 
 ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml               |   20 ++
 ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java                      |   67 ++----
 ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java                       |    4 
 ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java                |   64 +++++-
 ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java         |   15 +
 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java          |    5 
 ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java                    |   27 +++
 ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java    |  214 +++++++++++++++--------
 ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java          |   11 +
 ruoyi-admin/src/main/resources/logback.xml                                                |   36 ++--
 ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java                        |   23 ++
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |   37 +++
 ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java                |    3 
 ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java |    2 
 15 files changed, 367 insertions(+), 164 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java
new file mode 100644
index 0000000..fa24638
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideDataDto.java
@@ -0,0 +1,27 @@
+package com.ruoyi.alarm.global.domain;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @Description: 引导数据实体
+ * @ClassName: GuideDataDto
+ * @Author: 刘苏义
+ * @Date: 2023年12月09日11:37:58
+ **/
+@Data
+@Accessors(chain = true)
+public class GuideDataDto {
+    String radarId;
+    String name;
+    String cameraId;
+    String alarmId;
+    String alarmType;
+    Date receiveTime;
+    Integer num;
+    Integer recordSn;
+    double[] targetPosition;
+    GuidePTZ guidePTZ;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java
new file mode 100644
index 0000000..064825f
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuidePTZ.java
@@ -0,0 +1,23 @@
+package com.ruoyi.alarm.global.domain;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description:
+ * @ClassName: GuidePTZ
+ * @Author: 刘苏义
+ * @Date: 2023年12月09日10:13:28
+ **/
+@Data
+@Accessors(chain = true)
+public class GuidePTZ {
+    /** 引导P值 */
+    private Double P;
+
+    /** 引导T值 */
+    private Double T;
+
+    /** 引导Z值 */
+    private Double Z;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java
index bf1ac65..5b65e69 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/domain/GuideTask.java
@@ -53,4 +53,8 @@
      * 引导目标经纬度
      */
     double[] targetPosition;
+
+    /** 引导PTZ值 */
+    private GuidePTZ guidePTZ;
+
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
index 1d710a9..588c3f5 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -11,10 +11,7 @@
 import com.ruoyi.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper;
 import com.ruoyi.alarm.external.domain.ArdAlarmExternal;
 import com.ruoyi.alarm.external.mapper.ArdAlarmExternalMapper;
-import com.ruoyi.alarm.global.domain.GlobalAlarmCondition;
-import com.ruoyi.alarm.global.domain.GlobalAlarmData;
-import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
-import com.ruoyi.alarm.global.domain.GuideTask;
+import com.ruoyi.alarm.global.domain.*;
 import com.ruoyi.alarm.global.service.IGlobalAlarmService;
 import com.ruoyi.alarm.radar.domain.*;
 import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarFireMapper;
@@ -35,13 +32,11 @@
 import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
 import com.ruoyi.common.constant.CacheConstants;
-import com.ruoyi.common.core.domain.entity.SysConfig;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.ConfigUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.external.domain.ArdEquipExternal;
 import com.ruoyi.device.external.mapper.ArdEquipExternalMapper;
 import com.ruoyi.device.radar.mapper.ArdEquipRadarMapper;
@@ -54,14 +49,12 @@
 import com.ruoyi.utils.tube.GeoPoint;
 import com.ruoyi.utils.tube.TubeTools;
 import lombok.extern.slf4j.Slf4j;
-import org.gavaghan.geodesy.GlobalCoordinates;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 
@@ -73,7 +66,7 @@
  * @Version: 1.0
  **/
 @Service
-@Slf4j(topic = "mqtt")
+@Slf4j(topic = "alarm")
 public class GlobalAlarmServiceImpl implements IGlobalAlarmService {
     //region 依赖注入
     @Resource
@@ -1039,9 +1032,17 @@
                             return;
                         }
                         double[] coordinate = new double[]{longitude, latitude};
-                        String nearbyCameraId = getNearbyCamera(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()});
-                        if (StringUtils.isNotEmpty(nearbyCameraId)) {
-                            messagesEnqueued(nearbyCameraId, ardAlarmTube.getId(), "sys_tube_leak", ardAlarmTube.getCreateTime(), 1, 1, coordinate);
+                        String cameraId = getCameraByNear(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()});
+                        if (StringUtils.isNotEmpty(cameraId)) {
+                            GuideDataDto guideDataDto = new GuideDataDto()
+                                    .setAlarmId(cameraId)
+                                    .setAlarmId(ardAlarmTube.getId())
+                                    .setAlarmType("sys_tube_leak")
+                                    .setReceiveTime(ardAlarmTube.getCreateTime())
+                                    .setNum(1)
+                                    .setRecordSn(1)
+                                    .setTargetPosition(coordinate);
+                            messagesEnqueued(guideDataDto);
                         }
                         //endregion
                     }
@@ -1061,7 +1062,7 @@
                 case "radar":
                     //region 处理雷达报警
                     String mergeTime = ConfigUtils.getConfigValue("radarMergeTime");
-                    Integer radarMergeTime= mergeTime==null||"".equals(mergeTime)?10:Integer.valueOf(mergeTime);
+                    Integer radarMergeTime = mergeTime == null || "".equals(mergeTime) ? 10 : Integer.valueOf(mergeTime);
                     RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class);
                     List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars();
                     for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) {
@@ -1069,13 +1070,16 @@
                         String radarId = radarAlarmData.getRadarId();
                         String alarmpointName = ardAlarmRadar.getName();//兴趣点名称
                         ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
-                        if(well==null)
-                        {
+                        if (well == null) {
                             return;
                         }
+                        Double guideP = well.getGuideP();
+                        Double guideT = well.getGuideT();
+                        Double guideZ = well.getGuideZ();
                         Double longitude = well.getLongitude();
                         Double latitude = well.getLatitude();
                         String targetId = ardAlarmRadar.getTargetId();
+                        GuidePTZ guidePTZ = new GuidePTZ();
                         switch (ardAlarmRadar.getAlarmType()) {
                             case "运动目标检测":
                                 ArdAlarmRadarMove ardAlarmRadarMove = new ArdAlarmRadarMove();
@@ -1089,6 +1093,11 @@
                                 ardAlarmRadarMove.setLatitude(latitude);
                                 ardAlarmRadarMove.setUpdateTime(radarAlarmData.getAlarmTime());
                                 ardAlarmRadarMove.setRadarId(radarId);
+
+                                guidePTZ.setP(guideP);
+                                guidePTZ.setT(guideT);
+                                guidePTZ.setZ(guideZ);
+                                ardAlarmRadarMove.setGuidePTZ(guidePTZ);
                                 Date alarmTime = ardAlarmRadarMove.getAlarmTime();
                                 //获取当前兴趣点当前雷达的上一条数据
                                 ArdAlarmRadarMove lastMoveData = ardAlarmRadarMoveMapper.selectArdAlarmRadarLastData(ardAlarmRadarMove.getName());
@@ -1101,7 +1110,7 @@
                                     //否则比对更新时间
                                     Date lastUpdateTime = lastMoveData.getUpdateTime();
                                     Date lastGuideTime = lastMoveData.getGuideTime();
-                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime);
+                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime);
                                     if (secDatePoor <= radarMergeTime) {
                                         //小于10秒的新数据,更新上一条
                                         ArdAlarmRadarMove updateData = new ArdAlarmRadarMove();
@@ -1109,9 +1118,8 @@
                                         updateData.setUpdateTime(alarmTime);
 
                                         //判断引导时间超过5分钟再次引导
-                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime);
-                                        if(secDatePoorGuide>=300)
-                                        {
+                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime);
+                                        if (secDatePoorGuide >= 300) {
                                             updateData.setGuideTime(alarmTime);
                                             radarMoveGuide(ardAlarmRadarMove);//引导
                                         }
@@ -1142,6 +1150,10 @@
                                 ardAlarmRadarFire.setAlarmType("热源检测");
                                 ardAlarmRadarFire.setLongitude(longitude);
                                 ardAlarmRadarFire.setLatitude(latitude);
+                                guidePTZ.setP(guideP);
+                                guidePTZ.setT(guideT);
+                                guidePTZ.setZ(guideZ);
+                                ardAlarmRadarFire.setGuidePTZ(guidePTZ);
                                 ardAlarmRadarFire.setRadarId(radarId);
                                 ardAlarmRadarFire.setUpdateTime(radarAlarmData.getAlarmTime());
                                 //
@@ -1155,9 +1167,8 @@
                                 } else {
                                     //否则比对更新时间
                                     Date lastUpdateTime = lastFireData.getUpdateTime();
-
                                     Date lastGuideTime = lastFireData.getGuideTime();
-                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime);
+                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime);
                                     if (secDatePoor <= radarMergeTime) {
                                         //小于10秒的新数据,更新上一条
                                         ArdAlarmRadarFire updateData = new ArdAlarmRadarFire();
@@ -1165,9 +1176,8 @@
                                         updateData.setUpdateTime(alarmTime);
 
                                         //判断引导时间超过5分钟再次引导
-                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime);
-                                        if(secDatePoorGuide>=300)
-                                        {
+                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime);
+                                        if (secDatePoorGuide >= 300) {
                                             updateData.setGuideTime(alarmTime);
                                             radarFireGuide(ardAlarmRadarFire);//引导
                                         }
@@ -1191,11 +1201,12 @@
                                 ardAlarmRadarPump.setAlarmType("雷达抽油机停机");
                                 ardAlarmRadarPump.setUpdateTime(radarAlarmData.getAlarmTime());
                                 alarmTime = ardAlarmRadarPump.getAlarmTime();
-                                ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
-                                if (StringUtils.isNotNull(ardAlarmpointsWell)) {
-                                    ardAlarmRadarPump.setLongitude(ardAlarmpointsWell.getLongitude());
-                                    ardAlarmRadarPump.setLatitude(ardAlarmpointsWell.getLatitude());
-                                }
+                                ardAlarmRadarPump.setLongitude(well.getLongitude());
+                                ardAlarmRadarPump.setLatitude(well.getLatitude());
+                                guidePTZ.setP(guideP);
+                                guidePTZ.setT(guideT);
+                                guidePTZ.setZ(guideZ);
+                                ardAlarmRadarPump.setGuidePTZ(guidePTZ);
                                 //
                                 ArdAlarmRadarPump lastPumpData = ardAlarmRadarPumpMapper.selectArdAlarmRadarLastData(ardAlarmRadarPump.getName());
                                 if (lastPumpData == null) {
@@ -1207,16 +1218,15 @@
                                     //否则比对更新时间
                                     Date lastUpdateTime = lastPumpData.getUpdateTime();
                                     Date lastGuideTime = lastPumpData.getGuideTime();
-                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime,lastUpdateTime);
+                                    long secDatePoor = DateUtils.getSecDatePoor(alarmTime, lastUpdateTime);
                                     if (secDatePoor <= radarMergeTime) {
                                         //小于10秒的新数据,更新上一条
                                         ArdAlarmRadarPump updateData = new ArdAlarmRadarPump();
                                         updateData.setId(lastPumpData.getId());
                                         updateData.setUpdateTime(alarmTime);
                                         //判断引导时间超过5分钟再次引导
-                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime,lastGuideTime);
-                                        if(secDatePoorGuide>=300)
-                                        {
+                                        long secDatePoorGuide = DateUtils.getSecDatePoor(alarmTime, lastGuideTime);
+                                        if (secDatePoorGuide >= 300) {
                                             radarPumpGuide(ardAlarmRadarPump);//引导
                                             updateData.setGuideTime(alarmTime);
                                         }
@@ -1240,10 +1250,10 @@
                     ardAlarmExternal.setCreateTime(new Date());//接收时间
                     //外联防区名称就是兴趣点,查兴趣点坐标
                     String defenseName = ardAlarmExternal.getDefenseName();
-                    ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(defenseName);
-                    if (StringUtils.isNotNull(ardAlarmpointsWell)) {
-                        ardAlarmExternal.setLongitude(ardAlarmpointsWell.getLongitude());
-                        ardAlarmExternal.setLatitude(ardAlarmpointsWell.getLatitude());
+                    ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(defenseName);
+                    if (StringUtils.isNotNull(well)) {
+                        ardAlarmExternal.setLongitude(well.getLongitude());
+                        ardAlarmExternal.setLatitude(well.getLatitude());
                     }
                     int aae = ardAlarmExternalMapper.insertArdAlarmExternal(ardAlarmExternal);
                     if (aae > 0) {
@@ -1252,10 +1262,23 @@
                         if (StringUtils.isNull(ardAlarmExternal.getLongitude()) || StringUtils.isNull(ardAlarmExternal.getLatitude())) {
                             return;
                         }
-                        double[] guideCoordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//引导坐标
-                        String nearbyCameraId = getNearbyCamera(guideCoordinate);//最近相机ID
-                        if (StringUtils.isNotEmpty(nearbyCameraId)) {
-                            messagesEnqueued(nearbyCameraId, ardAlarmExternal.getId(), "sys_external", ardAlarmExternal.getCreateTime(), 1, 1, guideCoordinate);
+                        double[] coordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//引导坐标
+                        GuidePTZ guidePTZ = new GuidePTZ()
+                                .setP(well.getGuideP())
+                                .setT(well.getGuideT())
+                                .setZ(well.getGuideZ());
+                        String cameraId = getCameraByNear(coordinate);//最近相机ID
+                        if (StringUtils.isNotEmpty(cameraId)) {
+                            GuideDataDto guideDataDto = new GuideDataDto()
+                                    .setAlarmId(cameraId)
+                                    .setAlarmId(ardAlarmExternal.getId())
+                                    .setAlarmType("sys_external")
+                                    .setReceiveTime(ardAlarmExternal.getCreateTime())
+                                    .setNum(1)
+                                    .setRecordSn(1)
+                                    .setTargetPosition(coordinate)
+                                    .setGuidePTZ(guidePTZ);
+                            messagesEnqueued(guideDataDto);
                         }
                         //endregion
                     }
@@ -1283,10 +1306,18 @@
                         if (StringUtils.isNull(ardAlarmAccess.getLongitude()) || StringUtils.isNull(ardAlarmAccess.getLatitude())) {
                             return;
                         }
-                        double[] guideCoordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//引导坐标
-                        String nearbyCameraId = getNearbyCamera(guideCoordinate);//最近相机ID
-                        if (StringUtils.isNotEmpty(nearbyCameraId)) {
-                            messagesEnqueued(nearbyCameraId, ardAlarmAccess.getId(), "sys_access_control", ardAlarmAccess.getCreateTime(), 1, 1, guideCoordinate);
+                        double[] coordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//引导坐标
+                        String cameraId = getCameraByNear(coordinate);//最近相机ID
+                        if (StringUtils.isNotEmpty(cameraId)) {
+                            GuideDataDto guideDataDto = new GuideDataDto()
+                                    .setAlarmId(cameraId)
+                                    .setAlarmId(ardAlarmAccess.getId())
+                                    .setAlarmType("sys_external")
+                                    .setReceiveTime(ardAlarmAccess.getCreateTime())
+                                    .setNum(1)
+                                    .setRecordSn(1)
+                                    .setTargetPosition(coordinate);
+                            messagesEnqueued(guideDataDto);
                         }
                         //endregion
                     }
@@ -1345,8 +1376,10 @@
      * recordSn 录像存储位置 1-recordUrl1 2-recordUrl2
      * targetPosition 报警点位置坐标
      */
-    private void messagesEnqueued(String cameraId, String alarmId, String alarmType, Date receiveTime, Integer num, Integer recordSn, double[] targetPosition) {
+    private void messagesEnqueued(GuideDataDto guideDataDto) {
         try {
+            String cameraId = guideDataDto.getCameraId();
+            String alarmType = guideDataDto.getAlarmType();
             if (!IsEnableGuide(cameraId)) {
                 log.info("相机:" + cameraId + "未开启报警引导功能");
                 return;
@@ -1356,43 +1389,43 @@
             //相机ID
             guideTask.setCameraId(cameraId);
             //报警类型
-            String aType = "";
             switch (alarmType) {
                 case "运动目标检测":
-                    aType = "sys_radar_move";
+                    alarmType = "sys_radar_move";
                     break;
                 case "热源检测":
-                    aType = "sys_radar_fire";
+                    alarmType = "sys_radar_fire";
                     break;
                 case "雷达抽油机停机":
-                    aType = "sys_radar_pump";
-                    break;
-                default:
-                    aType = alarmType;
+                    alarmType = "sys_radar_pump";
                     break;
             }
-            guideTask.setAlarmType(aType);
+            guideTask.setAlarmType(alarmType);
             //通道(通过日夜时间研判)
             String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime");
             Integer channel = ArdTool.getChannelBydayNightTime(dayNightTime);
             guideTask.setChanNum(channel);
             //报警ID
-            guideTask.setAlarmId(alarmId);
+            guideTask.setAlarmId(guideDataDto.getAlarmId());
             //接收时间
-            guideTask.setReceiveTime(fmt.format(receiveTime));
+            guideTask.setReceiveTime(fmt.format(guideDataDto.getReceiveTime()));
             //报警优先级(通过优先级字典)
-            String priority = DictUtils.getDictValue("cameras_priority", aType);
+            String priority = DictUtils.getDictValue("cameras_priority", alarmType);
             if (StringUtils.isEmpty(priority)) {
                 log.debug("未匹配到优先级,请检查优先级字典配置");
                 return;
             }
             guideTask.setPriority(Integer.valueOf(priority));
             //报警次数
-            guideTask.setNum(num);
+            guideTask.setNum(guideDataDto.getNum());
             //录像存储位置
-            guideTask.setRecordSn(recordSn);
+            guideTask.setRecordSn(guideDataDto.getRecordSn());
             //目标经纬度
-            guideTask.setTargetPosition(targetPosition);
+            guideTask.setTargetPosition(guideDataDto.getTargetPosition());
+            //目标PTZ
+            if (guideDataDto.getGuidePTZ() != null) {
+                guideTask.setGuidePTZ(guideDataDto.getGuidePTZ());
+            }
             //消息入队
             queueManager.addTaskToQueue(cameraId, guideTask);
             //打印队列
@@ -1421,7 +1454,7 @@
     /**
      * 获取附近开启报警引导功能光电
      */
-    private String getNearbyCamera(double[] targetPosition) {
+    private String getCameraByNear(double[] targetPosition) {
         String minDistanceCameraId = "";
         try {
             //获取所有大光电
@@ -1459,16 +1492,17 @@
         return minDistanceCameraId;
     }
 
-    //雷达获取相机引导入队
-    private void radarGuideToQueue(String alarmId, String radarId, String name, String alarmType, Date createTime, double[] coordinate) {
-        int index = name.indexOf("(");
-        String alarmpointName = name.substring(0, index);
+    //获取相机引导入队
+    private void getCameraGuideToQueue(GuideDataDto guideDataDto) {
+        int index = guideDataDto.getName().indexOf("(");
+        String alarmpointName = guideDataDto.getName().substring(0, index);
         //获取雷达所在塔上的大光电
-        ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(radarId);
+        ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId());
         if (StringUtils.isNotNull(cameraWithTower)) {
             log.debug("获取到雷达塔上的光电:" + cameraWithTower.getId());
             //如果雷达塔上有光电
-            messagesEnqueued(cameraWithTower.getId(), alarmId, alarmType, createTime, 1, 1, coordinate);
+            guideDataDto.setCameraId(cameraWithTower.getId());
+            messagesEnqueued(guideDataDto);
         } else {
             log.debug("未获取到雷达塔上的光电,无法引导");
         }
@@ -1479,13 +1513,16 @@
             if (cameraId.equals(cameraWithTower.getId())) {
                 return;
             }
-            log.info("获取到报警点关联的光电:" + cameraId);
+            log.debug("获取到报警点关联的光电:" + cameraId);
             //如果报警点关联了光电
-            messagesEnqueued(cameraId, alarmId, alarmType, createTime, 1, 2, coordinate);
+            guideDataDto.setCameraId(cameraId);
+            guideDataDto.setRecordSn(2);//兴趣点光电引导录像存储第二个路径
+            messagesEnqueued(guideDataDto);
         } else {
             log.debug("未获取到报警点关联的光电,无法引导");
         }
     }
+
     //雷达移动引导
     private void radarMoveGuide(ArdAlarmRadarMove ardAlarmRadarMove) {
         log.debug("雷达移动开始引导");
@@ -1495,8 +1532,19 @@
         }
         double[] coordinate = new double[]{ardAlarmRadarMove.getLongitude(), ardAlarmRadarMove.getLatitude()};//报警坐标
         //引导入队
-        radarGuideToQueue(ardAlarmRadarMove.getId(), ardAlarmRadarMove.getRadarId(), ardAlarmRadarMove.getName(), ardAlarmRadarMove.getAlarmType(), ardAlarmRadarMove.getCreateTime(), coordinate);//更新
+        GuideDataDto guideDataDto = new GuideDataDto()
+                .setRadarId( ardAlarmRadarMove.getRadarId())
+                .setName(ardAlarmRadarMove.getName())
+                .setAlarmId(ardAlarmRadarMove.getId())
+                .setAlarmType(ardAlarmRadarMove.getAlarmType())
+                .setReceiveTime(ardAlarmRadarMove.getCreateTime())
+                .setNum(1)
+                .setRecordSn(1)
+                .setTargetPosition(coordinate)
+                .setGuidePTZ(ardAlarmRadarMove.getGuidePTZ());
+        getCameraGuideToQueue(guideDataDto);//获取相机入队
     }
+
     //雷达防火引导
     private void radarFireGuide(ArdAlarmRadarFire ardAlarmRadarFire) {
         log.debug("雷达防火开始引导");
@@ -1506,8 +1554,19 @@
         }
         double[] coordinate = new double[]{ardAlarmRadarFire.getLongitude(), ardAlarmRadarFire.getLatitude()};//报警坐标
         //引导入队
-        radarGuideToQueue(ardAlarmRadarFire.getId(), ardAlarmRadarFire.getRadarId(), ardAlarmRadarFire.getName(), ardAlarmRadarFire.getAlarmType(), ardAlarmRadarFire.getCreateTime(), coordinate);//更新
+        GuideDataDto guideDataDto = new GuideDataDto()
+                .setRadarId( ardAlarmRadarFire.getRadarId())
+                .setName(ardAlarmRadarFire.getName())
+                .setAlarmId(ardAlarmRadarFire.getId())
+                .setAlarmType(ardAlarmRadarFire.getAlarmType())
+                .setReceiveTime(ardAlarmRadarFire.getCreateTime())
+                .setNum(1)
+                .setRecordSn(1)
+                .setTargetPosition(coordinate)
+                .setGuidePTZ(ardAlarmRadarFire.getGuidePTZ());
+        getCameraGuideToQueue(guideDataDto);//获取相机入队
     }
+
     //雷达抽油机停机引导
     private void radarPumpGuide(ArdAlarmRadarPump ardAlarmRadarPump) {
         log.debug("雷达抽油机停机开始引导");
@@ -1518,7 +1577,16 @@
         }
         double[] coordinate = new double[]{ardAlarmRadarPump.getLongitude(), ardAlarmRadarPump.getLatitude()};//报警坐标
         //引导入队
-        radarGuideToQueue(ardAlarmRadarPump.getId(), ardAlarmRadarPump.getRadarId(), ardAlarmRadarPump.getName(), ardAlarmRadarPump.getAlarmType(), ardAlarmRadarPump.getCreateTime(), coordinate);//更新
+        GuideDataDto guideDataDto = new GuideDataDto()
+                .setRadarId( ardAlarmRadarPump.getRadarId())
+                .setName(ardAlarmRadarPump.getName())
+                .setAlarmId(ardAlarmRadarPump.getId())
+                .setAlarmType(ardAlarmRadarPump.getAlarmType())
+                .setReceiveTime(ardAlarmRadarPump.getCreateTime())
+                .setNum(1)
+                .setRecordSn(1)
+                .setTargetPosition(coordinate)
+                .setGuidePTZ(ardAlarmRadarPump.getGuidePTZ());
+        getCameraGuideToQueue(guideDataDto);//获取相机入队
     }
-
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java
index fd48181..9b45bf5 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java
@@ -20,6 +20,8 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @ClassName QueueTaskExecutor
@@ -57,6 +59,11 @@
             cmd.setOperator(guideTask.getAlarmType());
             cmd.setExpired(30);
             cmd.setRecordBucketName("record");
+            Map<String, Double> ptzMap = new HashMap<>();
+            ptzMap.put("p", guideTask.getGuidePTZ().getP());
+            ptzMap.put("t", guideTask.getGuidePTZ().getT());
+            ptzMap.put("z", guideTask.getGuidePTZ().getZ());
+            cmd.setPtzMap(ptzMap);
             if (guideTask.getRecordSn().equals(1)) {
                 cmd.setRecordObjectName("alarm_" + guideTask.getAlarmId() + "_1");
             } else {
@@ -64,7 +71,13 @@
             }
 
             log.debug("开始引导");
-            boolean guideRes = cameraSdkService.guideTargetPosition(cmd);
+            boolean guideRes = false;
+            if (cmd.getPtzMap().get("p") != null) {
+                //p值存在 优先引导ptz
+                guideRes = cameraSdkService.setPtz(cmd);
+            } else {
+                guideRes = cameraSdkService.guideTargetPosition(cmd);
+            }
             if (guideRes) {
                 log.debug("引导成功");
                 cameraSdkService.controlLock(cmd);//上锁
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java
index 661231e..a3bac6a 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarFire.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.alarm.global.domain.GuidePTZ;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -85,6 +86,8 @@
      */
     private String radarId;
 
+    /** 引导PTZ值 */
+    private GuidePTZ guidePTZ;
 
 
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java
index c86db63..e8eac9d 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarMove.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.alarm.global.domain.GuidePTZ;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -85,5 +86,7 @@
     private String RadarId;
 
 
+    /** 引导PTZ值 */
+    private GuidePTZ guidePTZ;
 
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java
index 453adc6..82af9b6 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radar/domain/ArdAlarmRadarPump.java
@@ -1,7 +1,9 @@
 package com.ruoyi.alarm.radar.domain;
 
 import java.util.Date;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.alarm.global.domain.GuidePTZ;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -10,63 +12,88 @@
 
 /**
  * 雷达抽油机停机报警对象 ard_alarm_radar_pump
- * 
+ *
  * @author ard
  * @date 2023-09-02
  */
 @Data
-public class ArdAlarmRadarPump extends BaseEntity
-{
+public class ArdAlarmRadarPump extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 记录ID */
+    /**
+     * 记录ID
+     */
     private String id;
 
-    /** 兴趣点名称 */
+    /**
+     * 兴趣点名称
+     */
     @Excel(name = "兴趣点名称")
     private String name;
 
-    /** 目标ID */
+    /**
+     * 目标ID
+     */
     @Excel(name = "目标ID")
     private String targetId;
 
-    /** 报警类型 */
+    /**
+     * 报警类型
+     */
     @Excel(name = "报警类型")
     private String alarmType;
 
-    /** 报警时间 */
+    /**
+     * 报警时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date alarmTime;
 
-    /** 经度 */
+    /**
+     * 经度
+     */
     @Excel(name = "经度")
     private Double longitude;
 
-    /** 纬度 */
+    /**
+     * 纬度
+     */
     @Excel(name = "纬度")
     private Double latitude;
-    /** 引导录像1 */
+    /**
+     * 引导录像1
+     */
     @Excel(name = "引导录像1")
     private String recordUrl1;
-    /** 引导录像2 */
+    /**
+     * 引导录像2
+     */
     @Excel(name = "引导录像2")
     private String recordUrl2;
 
-    /** 查看时间 */
+    /**
+     * 查看时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "查看时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date viewTime;
 
-    /** 用户ID */
+    /**
+     * 用户ID
+     */
     @Excel(name = "用户ID")
     private String userId;
 
-    /** 部门ID */
+    /**
+     * 部门ID
+     */
     @Excel(name = "部门ID")
     private Long deptId;
 
-    /** 引导时间 */
+    /**
+     * 引导时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "引导时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date guideTime;
@@ -84,4 +111,9 @@
      * 雷达ID
      */
     private String radarId;
+    /**
+     * 引导PTZ值
+     */
+    private GuidePTZ guidePTZ;
+
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java
index 183cc2b..62c0189 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/steal/service/impl/IStealElecAlarmServiceImpl.java
@@ -25,7 +25,7 @@
  * @Date 2022/12/26 16:34
  * @Version 1.0
  */
-@Slf4j(topic = "stealAlarm")
+@Slf4j(topic = "alarm")
 @Service
 public class IStealElecAlarmServiceImpl implements IStealElecAlarmService {
     @Resource
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
index b9be340..46dc005 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
@@ -101,6 +101,17 @@
     /** 关联相机ID */
     private String cameraId;
 
+    /** 引导P值 */
+    private Double guideP;
+
+    /** 引导T值 */
+    private Double guideT;
+
+    /** 引导Z值 */
+    private Double guideZ;
+
     @TableField(exist = false)
     private String type;
+
+
 }
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 3ca1966..fa639b2 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
@@ -1,6 +1,7 @@
 package com.ruoyi.inspect.service.impl;
 
 import java.util.*;
+
 import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
 import com.ruoyi.common.utils.DateUtils;
@@ -21,6 +22,7 @@
 import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
 import com.ruoyi.inspect.domain.ArdVideoInspectTask;
 import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
@@ -440,9 +442,8 @@
                     targetPositon[2] = ardAlarmpointsWell.getAltitude();
                     /*获取相机坐标*/
                     ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
-                    if(StringUtils.isNull(cameras))
-                    {
-                        log.debug("找不到相机:"+cameraId);
+                    if (StringUtils.isNull(cameras)) {
+                        log.debug("找不到相机:" + cameraId);
                         return;
                     }
                     double[] cameraPositon = new double[3];
@@ -456,7 +457,17 @@
                     cmd.setTargetPosition(targetPositon);
                     cmd.setOperator("sys_patrol_inspect");
                     cmd.setExpired(step.getRecordingTime() * 60);
-                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    Map<String, Double> ptzMap = new HashMap<>();
+                    ptzMap.put("p", ardAlarmpointsWell.getGuideP());
+                    ptzMap.put("t", ardAlarmpointsWell.getGuideT());
+                    ptzMap.put("z", ardAlarmpointsWell.getGuideZ());
+                    cmd.setPtzMap(ptzMap);
+                    boolean setTargetPosition;
+                    if (cmd.getPtzMap().get("p") != null) {
+                        setTargetPosition = cameraSdkService.setPtz(cmd);
+                    } else {
+                        setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    }
                     if (setTargetPosition) {
                         /*控制相机巡检成功,开始录像*/
                         cameraSdkService.recordStart(cmd);
@@ -498,9 +509,8 @@
                     targetPositon[2] = ardAlarmpointsWell.getAltitude();
                     /*获取相机坐标*/
                     ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
-                    if(StringUtils.isNull(cameras))
-                    {
-                        log.debug("找不到相机:"+cameraId);
+                    if (StringUtils.isNull(cameras)) {
+                        log.debug("找不到相机:" + cameraId);
                         return;
                     }
                     double[] cameraPositon = new double[3];
@@ -514,7 +524,17 @@
                     cmd.setTargetPosition(targetPositon);
                     cmd.setOperator("sys_patrol_inspect");
                     cmd.setExpired(step.getRecordingTime() * 60);
-                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    Map<String, Double> ptzMap = new HashMap<>();
+                    ptzMap.put("p", ardAlarmpointsWell.getGuideP());
+                    ptzMap.put("t", ardAlarmpointsWell.getGuideT());
+                    ptzMap.put("z", ardAlarmpointsWell.getGuideZ());
+                    cmd.setPtzMap(ptzMap);
+                    boolean setTargetPosition;
+                    if (cmd.getPtzMap().get("p") != null) {
+                        setTargetPosition = cameraSdkService.setPtz(cmd);
+                    } else {
+                        setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    }
                     if (!setTargetPosition) {
                         /*控制失败,当前步骤启动时间置null*/
                         ardVideoInspectTask.setCurrentStepStartTime("");
@@ -649,6 +669,7 @@
 
     /**
      * 获取相机的空闲时段
+     *
      * @param cameraId
      * @return
      */
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
index 7c36f42..8c89a46 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -176,6 +176,7 @@
     @Async("loginExecutor")
     public void asyncLogin(ArdCameras camera) {
         try {
+            Thread.sleep(100);
             // 初始化
             if (!hCNetSDK.NET_DVR_Init()) {
                 log.error("SDK初始化失败");
@@ -214,7 +215,7 @@
             //同步登录
             int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
             if (lUserID < 0) {
-                log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],错误码:" + hCNetSDK.NET_DVR_GetLastError());
+                log.debug("Login Failed 【 " + camera.getIp() + ":" + camera.getPort() + " 】,Error Code:" + hCNetSDK.NET_DVR_GetLastError());
                 camera.setChanNum(0);
                 camera.setLoginId(-1);
                 camera.setState("0");
@@ -224,7 +225,7 @@
                 return;
             }
 
-            log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]");
+            log.debug("Login Success 【 " + camera.getIp() + ":" + camera.getPort() + " 】");
             if (fExceptionCallBack == null) {
                 fExceptionCallBack = new ExceptionCallBack();//异常回调
                 //设置异常回调函数(可在回调函数中获取设备上下线状态等)
diff --git a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
index 3e5dea9..7b997d0 100644
--- a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml
@@ -29,6 +29,9 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
         <result property="cameraId" column="camera_id"/>
+        <result property="guideP" column="guide_p"/>
+        <result property="guideT" column="guide_t"/>
+        <result property="guideZ" column="guide_z"/>
     </resultMap>
 
     <resultMap type="ArdAlarmpointsWell" id="wellResult">
@@ -61,7 +64,10 @@
                c.create_time,
                c.update_by,
                c.update_time,
-               c.camera_id
+               c.camera_id,
+               c.guide_p,
+               c.guide_t,
+               c.guide_z
         from ard_alarmpoints_well c
                  left join sys_dept d on d.dept_id = c.dept_id
                  left join sys_user u on u.user_id = c.user_id
@@ -127,6 +133,9 @@
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="cameraId != null">camera_id,</if>
+            <if test="guideP != null">guide_p,</if>
+            <if test="guideT != null">guide_t,</if>
+            <if test="guideZ != null">guide_z,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -153,6 +162,9 @@
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="cameraId != null">#{cameraId},</if>
+            <if test="guideP != null">#{guideP},</if>
+            <if test="guideT != null">#{guideT},</if>
+            <if test="guideZ != null">#{guideZ},</if>
         </trim>
     </insert>
 
@@ -182,6 +194,9 @@
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="cameraId != null">camera_id = #{cameraId},</if>
+            <if test="guideP != null">guide_p = #{guideP},</if>
+            <if test="guideT != null">guide_t = #{guideT},</if>
+            <if test="guideZ != null">guide_z = #{guideZ},</if>
         </trim>
         where id = #{id}
     </update>
@@ -211,6 +226,9 @@
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="cameraId != null">camera_id = #{cameraId},</if>
+            <if test="guideP != null">guide_p = #{guideP},</if>
+            <if test="guideT != null">guide_t = #{guideT},</if>
+            <if test="guideZ != null">guide_z = #{guideZ},</if>
         </trim>
         where well_id = #{wellId}
     </update>
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index 08c2b1c..2e58b01 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -133,19 +133,6 @@
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
-    <!--盗电报警日志输出-->
-    <appender name="stealAlarm" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.path}/stealAlarm.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--按天回滚daily-->
-            <fileNamePattern>${log.path}/stealAlarm.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!--日志最大的历史60天-->
-            <maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
     <!--websocket报警日志输出-->
     <appender name="websocket" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${log.path}/websocket.log</file>
@@ -263,6 +250,19 @@
             <pattern>${log.pattern}</pattern>
         </encoder>
     </appender>
+    <!--报警日志输出-->
+    <appender name="alarm" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/alarm.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--按天回滚daily-->
+            <fileNamePattern>${log.path}/alarm.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!--日志最大的历史60天-->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
     <!-- 系统模块日志级别控制  -->
     <logger name="com.ruoyi" level="info"/>
     <!-- Spring日志级别控制  -->
@@ -332,12 +332,12 @@
     <logger name="guideQueue" level="INFO">
         <appender-ref ref="guideQueue"/>
     </logger>
-    <!--stealAlarm日志-->
-    <logger name="stealAlarm" level="INFO">
-        <appender-ref ref="stealAlarm"/>
-    </logger>
-    <!--stealAlarm日志-->
+    <!--websocket日志-->
     <logger name="websocket" level="INFO">
         <appender-ref ref="websocket"/>
     </logger>
+    <!--alarm日志-->
+    <logger name="alarm" level="INFO">
+        <appender-ref ref="alarm"/>
+    </logger>
 </configuration> 
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
index ff2b1b7..3d1650f 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
@@ -9,22 +9,17 @@
 
 /**
  * 安全服务工具类
- * 
+ *
  * @author ruoyi
  */
-public class SecurityUtils
-{
+public class SecurityUtils {
     /**
      * 用户ID
      **/
-    public static String getUserId()
-    {
-        try
-        {
+    public static String getUserId() {
+        try {
             return getLoginUser().getUserId();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);
         }
     }
@@ -32,29 +27,21 @@
     /**
      * 获取部门ID
      **/
-    public static Long getDeptId()
-    {
-        try
-        {
+    public static Long getDeptId() {
+        try {
             return getLoginUser().getDeptId();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new ServiceException("获取部门ID异常", HttpStatus.UNAUTHORIZED);
         }
     }
-    
+
     /**
      * 获取用户账户
      **/
-    public static String getUsername()
-    {
-        try
-        {
+    public static String getUsername() {
+        try {
             return getLoginUser().getUsername();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED);
         }
     }
@@ -62,14 +49,10 @@
     /**
      * 获取用户
      **/
-    public static LoginUser getLoginUser()
-    {
-        try
-        {
+    public static LoginUser getLoginUser() {
+        try {
             return (LoginUser) getAuthentication().getPrincipal();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
         }
     }
@@ -77,9 +60,8 @@
     /**
      * 获取Authentication
      */
-    public static Authentication getAuthentication()
-    {
-        Authentication authentication=   SecurityContextHolder.getContext().getAuthentication();
+    public static Authentication getAuthentication() {
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         return authentication;
     }
 
@@ -89,8 +71,7 @@
      * @param password 密码
      * @return 加密字符串
      */
-    public static String encryptPassword(String password)
-    {
+    public static String encryptPassword(String password) {
         BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
         return passwordEncoder.encode(password);
     }
@@ -98,25 +79,23 @@
     /**
      * 判断密码是否相同
      *
-     * @param rawPassword 真实密码
+     * @param rawPassword     真实密码
      * @param encodedPassword 加密后字符
      * @return 结果
      */
-    public static boolean matchesPassword(String rawPassword, String encodedPassword)
-    {
+    public static boolean matchesPassword(String rawPassword, String encodedPassword) {
         BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
         return passwordEncoder.matches(rawPassword, encodedPassword);
     }
 
     /**
      * 是否为管理员
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
-    public static boolean isAdmin(String userId)
-    {
-        boolean k=  userId != null && userId.equals("1");
+    public static boolean isAdmin(String userId) {
+        boolean k = userId != null && userId.equals("1");
         return k;
     }
 }

--
Gitblit v1.9.3