From 8c94232e63a6f28682e629dbfa92873d3cbf964a Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期五, 22 九月 2023 11:11:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 223 +------------------------------------------------------
1 files changed, 7 insertions(+), 216 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
index e51cd61..675ff00 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
@@ -1,26 +1,10 @@
package com.ruoyi.quartz.task;
-import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
-import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
-import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
-import com.ruoyi.inspect.domain.ArdVideoInspectTask;
-import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
-import com.ruoyi.inspect.service.IArdVideoInspectRecordService;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
-
import javax.annotation.Resource;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.*;
+
/**
* @Description: 宸℃浠诲姟
@@ -30,210 +14,17 @@
* @Version: 1.0
**/
@Component("PatrolInspectionTask")
-@Slf4j(topic = "PatrolInspectionTask")
public class PatrolInspectionTask {
@Resource
IArdVideoInspectTaskService ardVideoInspectTaskService;
- @Resource
- IArdAlarmpointsWellService ardAlarmpointsWellService;
- @Resource
- IArdVideoInspectRecordService ardVideoInspectRecordService;
- @Resource
- IArdCamerasService ardCamerasService;
- @Resource
- IHikClientService hikClientService;
+ /**
+ * 瀹氭椂宸℃浠诲姟
+ * 鍒樿嫃涔�
+ * 2023/8/9 9:18:42
+ */
public void scanRun() {
- /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
- ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
- ardVideoInspectTask.setInspectMode("鑷姩");
- List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskService.selectArdVideoInspectTaskList(ardVideoInspectTask);
- for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
- /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
- boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
- if (timeCompare) {
- /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskService.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- if (ardVideoInspectTaskStepList.size() == 0) {
- continue;
- }
- videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
- String currentStepId = videoInspectTask.getCurrentStepId();
- if (StringUtils.isNull(currentStepId)) {
- videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
- startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
- } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
- boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (expird) {
- /*宸茶繃鏈�,鍋滄褰曞儚*/
-
- stopRunStep(videoInspectTask);
- /*鍒囨崲涓嬩竴姝�*/
- String nextStepId = changeNextStep(videoInspectTask);
- /*寮�濮�*/
- videoInspectTask.setCurrentStepId(nextStepId);
- startRunStep(videoInspectTask);
- }
- }
- }
- }
- }
-
- //姝ラ寮�濮�
- private void startRunStep(ArdVideoInspectTask ardVideoInspectTask) {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- if(StringUtils.isNull(currentStepId))
- {
- log.info("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
- return;
- }
- log.info("姝ラ锛�" + 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 = ardAlarmpointsWellService.selectArdAlarmpointsWellById(wellId);
- double[] targetPositon = new double[3];
- targetPositon[0] = ardAlarmpointsWell.getLongitude();
- targetPositon[1] = ardAlarmpointsWell.getLatitude();
- targetPositon[2] = ardAlarmpointsWell.getAltitude();
- /*鑾峰彇鐩告満鍧愭爣*/
- ArdCameras cameras = ardCamerasService.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.setCamPosition(cameraPositon);
- cmd.setTargetPosition(targetPositon);
- cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime());
- boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
- if (setTargetPosition) {
- /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
- cmd.setEnable(true);//鍚姩褰曞儚
- hikClientService.recordToMinio(cmd);
- /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
- ArdVideoInspectTask avit = new ArdVideoInspectTask();
- avit.setId(ardVideoInspectTask.getId());
- avit.setCurrentStepId(step.getId());
- avit.setCurrentStepStartTime(DateUtils.getTime());
- ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit);
- }
- }
- }
- }
-
- //姝ラ鍋滄
- private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- log.info("姝ラ锛�" + currentStepId + "鍋滄");
- if(StringUtils.isNull(currentStepId))
- {
- log.info("褰撳墠鍋滄宸℃姝ラid涓虹┖");
- return;
- }
- String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
- 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();
- /*鍋滄褰曞儚*/
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(cameraId);
- 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);
- hikClientService.recordToMinio(cmd);
- /*鎻掑叆宸℃璁板綍*/
- ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
- ardVideoInspectRecord.setStepId(step.getId());
- Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
- 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);
- ardVideoInspectRecordService.insertArdVideoInspectRecord(ardVideoInspectRecord);
- }
- }
-
- //姝ラ鍒ゆ柇鏄惁杩囨湡
- private boolean isExpirdStep(ArdVideoInspectTask ardVideoInspectTask) {
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
- /*鑾峰彇褰撳墠浠诲姟姝e湪鎵ц鐨勬楠ゅ拰褰撳墠姝ラ寮�濮嬬殑鏃堕棿*/
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTaskStepList.stream()
- .filter(ardVideoInspectTaskStep -> ardVideoInspectTaskStep.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- /*鑾峰彇褰撳墠姝ラ淇℃伅*/
- ArdVideoInspectTaskStep currentStep = objectOptional.get();
- /*鑾峰彇鍒板綋鍓嶆楠ょ殑寮�濮嬪拰缁撴潫鏃堕棿*/
- Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
- Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, currentStep.getRecordingTime());
- /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (!DateUtils.TimeCompare(currentStepStartDate, currentStepStopDate)) {
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
-
- }
-
- //姝ラ鍒囨崲
- private String changeNextStep(ArdVideoInspectTask ardVideoInspectTask) {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- ArdVideoInspectTaskStep step = objectOptional.get();
- Integer currentStepOrderNumber = step.getOrderNumber();
- /*鍒ゆ柇褰撳墠姝ラ搴忓彿鏄惁灏忎簬姝ラ鎬绘暟*/
- if (currentStepOrderNumber < ardVideoInspectTask.getArdVideoInspectTaskStepList().size()) {
- /*灏忎簬鍒欐墽琛屼笅涓�姝ラ*/
- currentStepOrderNumber++;
- } else {
- /*鍚﹀垯浠�1寮�濮嬫墽琛�*/
- currentStepOrderNumber = 1;
- }
- Integer nextStepOrderNumber = currentStepOrderNumber;
- /*鏇存柊褰撳墠浠诲姟鍒囨崲鏂版楠�*/
- ArdVideoInspectTask avit = new ArdVideoInspectTask();
- avit.setId(ardVideoInspectTask.getId());
- String nextStepId = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getOrderNumber() == nextStepOrderNumber)
- .map(ArdVideoInspectTaskStep::getId)
- .findFirst()
- .orElse(null);
- avit.setCurrentStepId(nextStepId);
- ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit);
- log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�"+nextStepId);
- return nextStepId;
- }
- return "";
+ ardVideoInspectTaskService.autoTaskRun();
}
}
--
Gitblit v1.9.3