From ba1e219d97e123b91657dc424f13a2fdeaa85d21 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Mon, 21 Aug 2023 13:37:01 +0800
Subject: [PATCH] 修改兴趣点列表井号模糊查询
---
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 83 ++++++++++++++++++++++++-----------------
1 files changed, 49 insertions(+), 34 deletions(-)
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 e8123e7..5644b88 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,15 +1,13 @@
package com.ruoyi.inspect.service.impl;
-import java.text.SimpleDateFormat;
import java.util.*;
-
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
import com.ruoyi.common.utils.DateUtils;
+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.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
@@ -23,7 +21,6 @@
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;
@@ -96,6 +93,7 @@
@Transactional
@Override
public int insertArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
+ ardVideoInspectTask.setId(IdUtils.simpleUUID());
ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
@@ -229,7 +227,7 @@
//开始下一步骤
videoInspectTask.setCurrentStepId(nextStepId);
startRunStep(videoInspectTask);
- }else{
+ } else {
//未过期尝试引导,引导失败清空当前步骤开始时间,标记中断
tryGuide(videoInspectTask);
}
@@ -340,7 +338,9 @@
//开始下一步骤
videoInspectTask.setCurrentStepId(nextStepId);
startRunStep(videoInspectTask);
- }else{tryGuide(videoInspectTask);}
+ } else {
+ tryGuide(videoInspectTask);
+ }
}
}
} else {
@@ -414,7 +414,7 @@
try {
String currentStepId = ardVideoInspectTask.getCurrentStepId();
if (StringUtils.isNull(currentStepId)) {
- log.info("当前开始巡检步骤id为空");
+ log.debug("当前开始巡检步骤id为空");
return;
}
log.debug("巡检步骤:" + currentStepId + "尝试开始");
@@ -439,6 +439,11 @@
targetPositon[2] = ardAlarmpointsWell.getAltitude();
/*获取相机坐标*/
ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+ if(StringUtils.isNull(cameras))
+ {
+ log.debug("找不到相机:"+cameraId);
+ return;
+ }
double[] cameraPositon = new double[3];
cameraPositon[0] = cameras.getLongitude();
cameraPositon[1] = cameras.getLatitude();
@@ -449,12 +454,11 @@
cmd.setChannelNum(channel);
cmd.setTargetPosition(targetPositon);
cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime()*60);
+ cmd.setExpired(step.getRecordingTime() * 60);
boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
if (setTargetPosition) {
/*控制相机巡检成功,开始录像*/
- cmd.setEnable(true);//启动录像
- hikClientService.recordToMinio(cmd);
+ hikClientService.recordStart(cmd);
} else {
/*控制失败,当前步骤启动时间置null*/
ardVideoInspectTask.setCurrentStepStartTime("");
@@ -466,12 +470,13 @@
log.error("巡检开始异常:" + ex.getMessage());
}
}
+
//尝试控制引导
private void tryGuide(ArdVideoInspectTask ardVideoInspectTask) {
try {
String currentStepId = ardVideoInspectTask.getCurrentStepId();
if (StringUtils.isNull(currentStepId)) {
- log.info("当前开始巡检步骤id为空");
+ log.debug("当前开始巡检步骤id为空");
return;
}
log.debug("巡检正常,尝试引导:" + currentStepId);
@@ -492,6 +497,11 @@
targetPositon[2] = ardAlarmpointsWell.getAltitude();
/*获取相机坐标*/
ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+ if(StringUtils.isNull(cameras))
+ {
+ log.debug("找不到相机:"+cameraId);
+ return;
+ }
double[] cameraPositon = new double[3];
cameraPositon[0] = cameras.getLongitude();
cameraPositon[1] = cameras.getLatitude();
@@ -502,15 +512,13 @@
cmd.setChannelNum(channel);
cmd.setTargetPosition(targetPositon);
cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime()*60);
+ cmd.setExpired(step.getRecordingTime() * 60);
boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
if (!setTargetPosition) {
/*控制失败,当前步骤启动时间置null*/
ardVideoInspectTask.setCurrentStepStartTime("");
ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
- }
- else
- {
+ } else {
log.debug("引导成功!");
}
}
@@ -519,6 +527,7 @@
log.error("巡检尝试引导异常:" + ex.getMessage());
}
}
+
//步骤停止
private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
try {
@@ -541,11 +550,9 @@
cmd.setCameraId(cameraId);
cmd.setChannelNum(channel);
cmd.setOperator("sys_patrol_inspect");
- cmd.setEnable(false);//停止录像
cmd.setRecordBucketName("record");
- cmd.setRecordObjectName("inspect");
- cmd.setUploadMinio(true);
- String url= hikClientService.recordToMinio(cmd);
+ cmd.setRecordObjectName("inspect_" + IdUtils.fastSimpleUUID());
+ String url = hikClientService.recordStopToMinio(cmd);
/*插入巡检记录*/
ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
ardVideoInspectRecord.setStepId(step.getId());
@@ -638,6 +645,11 @@
return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId);
}
+ /**
+ * 获取相机的空闲时段
+ * @param cameraId
+ * @return
+ */
public List getCameraIdleTimeList(String cameraId) {
LinkedList<String> timeList = new LinkedList();
List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId);
@@ -647,21 +659,24 @@
timeList.add((String) p.get("end_time"));
}
//判断第一个起始点
- if (timeList.getFirst().equals("00:00:00")) {
- timeList.removeFirst();
- } else {
- timeList.addFirst("00:00:00");
- }
- //判断最后一个结束时间
- if (timeList.getLast().equals("23:59:59")) {
- timeList.removeLast();
- } else {
- timeList.addLast("23:59:59");
- }
- //事件段为空,则全天作为一个时间段
- if (timeList.size() == 0) {
- timeList.add("00:00:00");
- timeList.add("23:59:59");
+ if (timeList.size() > 0) {
+ if ("00:00:00".equals(timeList.getFirst())) {
+ timeList.removeFirst();
+ } else {
+ timeList.addFirst("00:00:00");
+ }
+ //判断最后一个结束时间
+ if ("23:59:59".equals(timeList.getLast())) {
+ timeList.removeLast();
+ } else {
+ timeList.addLast("23:59:59");
+ }
+ //事件段为空,则全天作为一个时间段
+ if (timeList.size() == 0) {
+ timeList.add("00:00:00");
+ timeList.add("23:59:59");
+ }
+
}
return timeList;
--
Gitblit v1.9.3