From 81dd45819944baa8032d942e2e28c5c859c0cc81 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Thu, 15 Jun 2023 10:37:46 +0800
Subject: [PATCH] 优化巡检
---
ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java | 1
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 4 +
ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java | 2
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 6 +-
ruoyi-admin/src/main/resources/logback.xml | 2
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 66 ++++++++++++++++++++++++++++----
ruoyi-generator/src/main/resources/generator.yml | 2
7 files changed, 67 insertions(+), 16 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 ffdf968..0405f7a 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
@@ -194,12 +194,14 @@
String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap);
//引导光电
CameraCmd cmd = new CameraCmd();
- cmd.setOperator("sys_tube_leak");
cmd.setCameraId(minDistanceCameraId);
cmd.setChannelNum(1);
cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()});
+ 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());
diff --git a/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java b/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java
index dec4799..62a9617 100644
--- a/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java
+++ b/ard-work/src/main/java/com/ruoyi/constant/sdkPriority.java
@@ -15,5 +15,6 @@
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/CameraCmd.java b/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
index 227c222..7f8f0ec 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
@@ -33,7 +33,7 @@
/*当前操作者*/
String operator;
- /*过期间隔(分钟)*/
+ /*过期间隔(秒)*/
Integer expired;
/*录像存储池名称*/
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 cfbcf96..46511ca 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
@@ -713,7 +713,7 @@
ardCameras.setOperatorId(operator);
//设置当前过期时间
Date now = new Date();
- now.setTime(now.getTime() + expired * 1000 * 60);
+ now.setTime(now.getTime() + expired * 1000);
ardCameras.setOperatorExpired(now);
ardCamerasMapper.updateArdCameras(ardCameras);
} else {
@@ -722,7 +722,7 @@
if (currentOperator.equals(operator)) {
//设置当前过期时间
Date now = new Date();
- now.setTime(now.getTime() + expired * 1000 * 60);
+ now.setTime(now.getTime() + expired * 1000);
ardCameras.setOperatorExpired(now);
ardCamerasMapper.updateArdCameras(ardCameras);
} else {
@@ -749,7 +749,7 @@
//判断优先级
if (operatorLevel > currentLevel) {
Date now = new Date();
- now.setTime(now.getTime() + expired * 60 * 1000);
+ now.setTime(now.getTime() + expired * 60);
ardCameras.setOperatorExpired(now);//设置当前过期时间
ardCameras.setOperatorId(operator);//设置当前用户
ardCamerasMapper.updateArdCameras(ardCameras);
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 73f0659..df4af33 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
@@ -34,7 +34,7 @@
* @date 2023-05-30
*/
@Service
-@Slf4j
+@Slf4j(topic = "PatrolInspectionTask")
public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
@Resource
private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
@@ -229,6 +229,9 @@
//开始下一步骤
videoInspectTask.setCurrentStepId(nextStepId);
startRunStep(videoInspectTask);
+ }else{
+ //未过期尝试引导,引导失败清空当前步骤开始时间,标记中断
+ tryGuide(videoInspectTask);
}
}
}
@@ -337,7 +340,7 @@
//开始下一步骤
videoInspectTask.setCurrentStepId(nextStepId);
startRunStep(videoInspectTask);
- }
+ }else{tryGuide(videoInspectTask);}
}
}
} else {
@@ -414,7 +417,7 @@
log.info("当前开始巡检步骤id为空");
return;
}
- log.info("步骤:" + currentStepId + "开始");
+ log.debug("巡检步骤:" + currentStepId + "尝试开始");
String cameraId = ardVideoInspectTask.getCameraId();
Integer channel = ardVideoInspectTask.getChannel();
Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
@@ -446,16 +449,13 @@
cmd.setChannelNum(channel);
cmd.setTargetPosition(targetPositon);
cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime());
+ cmd.setExpired(step.getRecordingTime()*60);
boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
if (setTargetPosition) {
/*控制相机巡检成功,开始录像*/
cmd.setEnable(true);//启动录像
hikClientService.recordToMinio(cmd);
} else {
- cmd.setEnable(false);//停止录像
- cmd.setUploadMinio(true);
- hikClientService.recordToMinio(cmd);
/*控制失败,当前步骤启动时间置null*/
ardVideoInspectTask.setCurrentStepStartTime("");
ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
@@ -466,12 +466,60 @@
log.error("巡检开始异常:" + ex.getMessage());
}
}
-
+ //尝试控制引导
+ private void tryGuide(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ if (StringUtils.isNull(currentStepId)) {
+ log.info("当前开始巡检步骤id为空");
+ return;
+ }
+ log.debug("巡检正常,尝试引导:" + currentStepId);
+ String cameraId = ardVideoInspectTask.getCameraId();
+ Integer channel = ardVideoInspectTask.getChannel();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ ArdVideoInspectTaskStep step = objectOptional.get();
+ String wellId = step.getWellId();
+ if (!StringUtils.isNull(wellId)) {
+ /*获取井坐标*/
+ ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
+ double[] targetPositon = new double[3];
+ targetPositon[0] = ardAlarmpointsWell.getLongitude();
+ targetPositon[1] = ardAlarmpointsWell.getLatitude();
+ targetPositon[2] = ardAlarmpointsWell.getAltitude();
+ /*获取相机坐标*/
+ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+ double[] cameraPositon = new double[3];
+ cameraPositon[0] = cameras.getLongitude();
+ cameraPositon[1] = cameras.getLatitude();
+ cameraPositon[2] = cameras.getAltitude();
+ /*控制相机巡检*/
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(cameraId);
+ cmd.setChannelNum(channel);
+ cmd.setTargetPosition(targetPositon);
+ cmd.setOperator("sys_patrol_inspect");
+ cmd.setExpired(step.getRecordingTime()*60);
+ boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
+ if (!setTargetPosition) {
+ /*控制失败,当前步骤启动时间置null*/
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("巡检尝试引导异常:" + ex.getMessage());
+ }
+ }
//步骤停止
private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
try {
String currentStepId = ardVideoInspectTask.getCurrentStepId();
- log.info("步骤:" + currentStepId + "停止");
+ log.debug("巡检步骤:" + currentStepId + "停止");
if (StringUtils.isNull(currentStepId)) {
log.info("当前停止巡检步骤id为空");
return;
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index 86ca1cd..7018a83 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -200,7 +200,7 @@
<appender-ref ref="websocket"/>
</logger>
<!--光电巡检日志打印等级-->
- <logger name="PatrolInspectionTask" level="INFO">
+ <logger name="PatrolInspectionTask" level="DEBUG">
<appender-ref ref="PatrolInspectionTask"/>
</logger>
<!--mqtt日志打印等级-->
diff --git a/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-generator/src/main/resources/generator.yml
index 5bd3dd6..acf8ce6 100644
--- a/ruoyi-generator/src/main/resources/generator.yml
+++ b/ruoyi-generator/src/main/resources/generator.yml
@@ -1,7 +1,7 @@
# 代码生成
gen:
# 作者
- author: ruoyi
+ author: ard
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
packageName: com.ruoyi.system
# 自动去除表前缀,默认是false
--
Gitblit v1.9.3