From c3e4465b7ac9a90ecc00a58883fcf80c5c7beb81 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 31 五月 2023 12:01:35 +0800
Subject: [PATCH] 优化
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 145 ++++++++++++++++++++++++++++++++---------------
1 files changed, 98 insertions(+), 47 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 75aeef6..a889fd7 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
@@ -7,16 +7,20 @@
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.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* @Description: 宸℃浠诲姟
@@ -33,13 +37,14 @@
IArdVideoInspectTaskService ardVideoInspectTaskService;
@Resource
IArdAlarmpointsWellService ardAlarmpointsWellService;
-
+ @Resource
+ IArdVideoInspectRecordService ardVideoInspectRecordService;
@Resource
IArdCamerasService ardCamerasService;
@Resource
IHikClientService hikClientService;
- public void scanRun() {
+ public void scanRun(){
/*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
log.info("寮�濮嬫壂鎻忔墍鏈夊彲鎵ц浠诲姟");
ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
@@ -52,7 +57,12 @@
log.info("婊¤冻鏃堕棿");
/*褰撳墠浠诲姟鐨勫贰妫�姝ラ*/
List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskService.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- Integer setpNum=ardVideoInspectTaskStepList.size();//姝ラ鏁伴噺
+ Map<Integer, Object> sortMap = new HashMap<>();//鎺掑簭map
+ Map<String, Object> stepMap = new HashMap<>();//IDmap
+ for (ArdVideoInspectTaskStep step : ardVideoInspectTaskStepList) {
+ sortMap.put(step.getOrderNumber(), step);
+ stepMap.put(step.getId(), step);
+ }
/*鑾峰彇褰撳墠浠诲姟姝e湪鎵ц鐨勬楠ゅ拰褰撳墠姝ラ寮�濮嬬殑鏃堕棿*/
String currentStepId = videoInspectTask.getCurrentStepId();
String cameraId = videoInspectTask.getCameraId();
@@ -60,20 +70,21 @@
String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
/*濡傛灉褰撳墠姝ラ鏈壘鍒帮紝鍒欎粠1寮�濮�*/
if (StringUtils.isNull(currentStepId)) {
- String wellId = ardVideoInspectTaskStepList.get(0).getWellId();//鑾峰彇绗竴涓楠ょ殑浜曞彿
+ ArdVideoInspectTaskStep step = (ArdVideoInspectTaskStep) sortMap.get(1);
+ 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();
+ 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();
+ cameraPositon[0] = cameras.getLongitude();
+ cameraPositon[1] = cameras.getLatitude();
+ cameraPositon[2] = cameras.getAltitude();
/*鎺у埗鐩告満宸℃*/
CameraCmd cmd = new CameraCmd();
cmd.setCameraId(cameraId);
@@ -81,60 +92,100 @@
cmd.setCamPosition(cameraPositon);
cmd.setTargetPosition(targetPositon);
cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(ardVideoInspectTaskStepList.get(0).getRecordingTime());
+ cmd.setExpired(step.getRecordingTime());
boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
- if(setTargetPosition)
- {
+ if (setTargetPosition) {
/*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
cmd.setEnable(true);//鍚姩褰曞儚
- hikClientService.record(cmd);
+ hikClientService.recordToMinio(cmd);
/*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
- ArdVideoInspectTask avit=new ArdVideoInspectTask();
+ ArdVideoInspectTask avit = new ArdVideoInspectTask();
avit.setId(videoInspectTask.getId());
avit.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
avit.setCurrentStepStartTime(DateUtils.getTime());
- //TODO with int i = ardVideoInspectTaskService.updateArdVideoInspectTaskWithCurrentStepInfo(avit);
- // log.info("鏇存柊缁撴灉"+i);
+ ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit);
}
}
- }
- else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/
- {
- Optional<Integer> recordingTime = ardVideoInspectTaskStepList.stream()
- .filter(ardVideoInspectTaskStep -> ardVideoInspectTaskStep.getId().equals(currentStepId))
- .map(ArdVideoInspectTaskStep::getRecordingTime)
- .findFirst();
- if (recordingTime.isPresent()) {
- System.out.println("鎵惧埌浜嗗尮閰嶇殑瀵硅薄锛屽悕绉颁负: " + recordingTime.get());
- /*鑾峰彇鍒板綋鍓嶆楠ょ殑鎸佺画鏃堕棿*/
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (stepMap.containsKey(currentStepId)) {
+ /*鑾峰彇褰撳墠姝ラ淇℃伅*/
+ ArdVideoInspectTaskStep currentStep = (ArdVideoInspectTaskStep) stepMap.get(currentStepId);
+ /*鑾峰彇鍒板綋鍓嶆楠ょ殑寮�濮嬪拰缁撴潫鏃堕棿*/
Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
- Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate,recordingTime.get());
- /*鍒ゆ柇鏃堕棿鏄惁杩囨湡*/
- if(!DateUtils.TimeCompare(currentStepStartDate,currentStepStopDate))
- {
- /*宸茶繃鏈�,鍋滄褰曞儚锛屾墽琛屼笅涓�姝ラ*/
+ Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, currentStep.getRecordingTime());
+ /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (!DateUtils.TimeCompare(currentStepStartDate, currentStepStopDate)) {
+ /*宸茶繃鏈�,鍋滄褰曞儚*/
CameraCmd cmd = new CameraCmd();
cmd.setCameraId(cameraId);
cmd.setChannelNum(channel);
cmd.setOperator("sys_patrol_inspect");
cmd.setEnable(false);//鍋滄褰曞儚
- String record = hikClientService.record(cmd);
+ 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);
+ String url= MinioClientSingleton.domainUrl+ "/" +cmd.getRecordBucketName()+ "/"+recordName;
+ hikClientService.recordToMinio(cmd);
/*鏇存柊宸℃璁板綍*/
+ ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
+ ardVideoInspectRecord.setStepId(currentStepId);
+ ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartDate));
+ ardVideoInspectRecord.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStopDate));
+ ardVideoInspectRecord.setRecordFilePath(url);
+ ardVideoInspectRecordService.insertArdVideoInspectRecord(ardVideoInspectRecord);
- log.info(record);
+ /*鍒囨崲涓嬩竴姝ラ*/
+ Integer orderNumber = currentStep.getOrderNumber();
+ /*鍒ゆ柇褰撳墠姝ラ搴忓彿鏄惁灏忎簬姝ラ鎬绘暟*/
+ if (orderNumber < stepMap.size()) {
+ /*灏忎簬鍒欐墽琛屼笅涓�姝ラ*/
+ orderNumber++;
+ } else {
+ /*鍚﹀垯浠�1寮�濮嬫墽琛�*/
+ orderNumber = 1;
+ }
+ ArdVideoInspectTaskStep step = (ArdVideoInspectTaskStep) sortMap.get(orderNumber);
+ 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();
+ /*鎺у埗鐩告満宸℃*/
+ log.info("鎸囧悜" + ardAlarmpointsWell.getWellId() + "鍧愭爣:" + targetPositon);
+ 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(videoInspectTask.getId());
+ avit.setCurrentStepId(step.getId());
+ avit.setCurrentStepStartTime(DateUtils.getTime());
+ ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit);
+ }
+ }
}
- } else {
- System.out.println("鏈壘鍒板尮閰嶇殑瀵硅薄");
}
-
}
- /*鍚﹀垯鍒ゆ柇褰撳墠姝ラ寮�濮嬫椂闂达紝鍒ゆ柇鏄惁鍒版湡*/
- /*鏈埌鏈�*/
- /*蹇界暐*/
- /*宸插埌鏈�*/
- /*缁撴潫褰曞儚锛岃浆鍒颁笅涓�涓楠わ紝
- 鎺у埗浜戝彴鎸囧悜鍏宠仈浜曞潗鏍囷紝骞跺紑濮嬪綍鍍忥紝鏇存柊褰撳墠姝ラ鍜屽綋鍓嶆楠ゅ紑濮嬫椂闂�/
- */
}
}
}
--
Gitblit v1.9.3