From eb0f13efdbd48b88411b4ff214bb92169202d157 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 01 六月 2023 16:39:15 +0800
Subject: [PATCH] 优化光电巡检手动控制
---
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 424 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 379 insertions(+), 45 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 4a7f905..853a2c7 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,19 +1,27 @@
package com.ruoyi.inspect.service.impl;
-import java.util.List;
- import com.ruoyi.common.utils.DateUtils;
-
-import org.springframework.beans.factory.annotation.Autowired;
+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.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;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
- import java.util.ArrayList;
-
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import org.springframework.transaction.annotation.Transactional;
- import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.transaction.annotation.Transactional;
+import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
import com.ruoyi.inspect.domain.ArdVideoInspectTask;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+import javax.annotation.Resource;
/**
* 瑙嗛宸℃浠诲姟Service涓氬姟灞傚鐞�
@@ -22,9 +30,18 @@
* @date 2023-05-30
*/
@Service
+@Slf4j
public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
- @Autowired
+ @Resource
private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
+ @Resource
+ private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
+ @Resource
+ private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper;
+ @Resource
+ private ArdCamerasMapper ardCamerasMapper;
+ @Resource
+ private IHikClientService hikClientService;
/**
* 鏌ヨ瑙嗛宸℃浠诲姟
@@ -54,15 +71,15 @@
* @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
* @return 缁撴灉
*/
- @Transactional
+ @Transactional
@Override
public int insertArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
- ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
- ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
- ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
- int rows = ardVideoInspectTaskMapper.insertArdVideoInspectTask(ardVideoInspectTask);
- insertArdVideoInspectTaskStep(ardVideoInspectTask);
- return rows;
+ ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
+ ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
+ ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
+ int rows = ardVideoInspectTaskMapper.insertArdVideoInspectTask(ardVideoInspectTask);
+ insertArdVideoInspectTaskStep(ardVideoInspectTask);
+ return rows;
}
/**
@@ -71,14 +88,19 @@
* @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
* @return 缁撴灉
*/
- @Transactional
+ @Transactional
@Override
public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
- ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
- ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId())
- ;
- insertArdVideoInspectTaskStep(ardVideoInspectTask);
+ ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
+ ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
+ ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId())
+ ;
+ insertArdVideoInspectTaskStep(ardVideoInspectTask);
+ return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+ }
+
+ @Override
+ public int updateArdVideoInspectTaskNoUpdater(ArdVideoInspectTask ardVideoInspectTask) {
return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
}
@@ -88,10 +110,10 @@
* @param ids 闇�瑕佸垹闄ょ殑瑙嗛宸℃浠诲姟涓婚敭
* @return 缁撴灉
*/
- @Transactional
+ @Transactional
@Override
public int deleteArdVideoInspectTaskByIds(String[] ids) {
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids);
+ ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids);
return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskByIds(ids);
}
@@ -101,31 +123,343 @@
* @param id 瑙嗛宸℃浠诲姟涓婚敭
* @return 缁撴灉
*/
- @Transactional
+ @Transactional
@Override
public int deleteArdVideoInspectTaskById(String id) {
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(id);
+ ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(id);
return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskById(id);
}
- /**
- * 鏂板瑙嗛宸℃姝ラ淇℃伅
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟瀵硅薄
- */
- public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) {
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
- String id = ardVideoInspectTask.getId();
- if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
- List<ArdVideoInspectTaskStep> list = new ArrayList<ArdVideoInspectTaskStep>();
- for (ArdVideoInspectTaskStep ardVideoInspectTaskStep :ardVideoInspectTaskStepList)
- {
- ardVideoInspectTaskStep.setTaskId(id);
- list.add(ardVideoInspectTaskStep);
- }
- if (list.size() > 0) {
- ardVideoInspectTaskMapper.batchArdVideoInspectTaskStep(list);
+ /**
+ * 鏂板瑙嗛宸℃姝ラ淇℃伅
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟瀵硅薄
+ */
+ public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) {
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
+ String id = ardVideoInspectTask.getId();
+ if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
+ List<ArdVideoInspectTaskStep> list = new ArrayList<ArdVideoInspectTaskStep>();
+ for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
+ ardVideoInspectTaskStep.setTaskId(id);
+ list.add(ardVideoInspectTaskStep);
+ }
+ if (list.size() > 0) {
+ ardVideoInspectTaskMapper.batchArdVideoInspectTaskStep(list);
+ }
+ }
+ }
+
+ /**
+ * 鎵嬪姩宸℃浠诲姟
+ */
+ @Override
+ public void manualTaskRun(String TaskId) {
+ ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+ if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
+ return;
+ }
+ String currentStepId = videoInspectTask.getCurrentStepId();
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+ if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+ //浠�1鍙锋楠ゅ紑濮�
+ videoInspectTask.setCurrentStepId(videoInspectTask.getArdVideoInspectTaskStepList().get(0).getId());
+ if(InspectionTaskManager.taskMap.containsKey(TaskId)) {
+ startRunStep(videoInspectTask);
+ }
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
+ startRunStep(videoInspectTask);
}
}
}
+ }
+
+ /**
+ * 鑷姩宸℃浠诲姟
+ */
+ @Override
+ public void autoTaskRun() {
+ /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
+ ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
+ ardVideoInspectTask.setInspectMode("鑷姩");
+ List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
+ for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
+ /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
+ boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
+ if (timeCompare) {
+ //log.info("鑷姩浠诲姟鍚姩锛�" + videoInspectTask.getId());
+ /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
+ if (ardVideoInspectTaskStepList.size() == 0) {
+ continue;
+ }
+ videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+ String currentStepId = videoInspectTask.getCurrentStepId();
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+ if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+ //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
+ videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+ startRunStep(videoInspectTask);
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
+ boolean expird = isExpirdStep(videoInspectTask);
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
+ startRunStep(videoInspectTask);
+ }
+ }
+ }
+ }
+ }
+ }
+ /**
+ * 鑷姩鎵嬪姩鍚堝苟锛屾壂搴撴柟寮忥紝鐩墠涓嶄娇鐢�
+ */
+ @Override
+ public void taskRun() {
+ ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
+ List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
+ for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
+ if (videoInspectTask.getInspectMode().equals("鑷姩")) {
+ boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
+ if (!timeCompare) {
+ continue;
+ }
+ } else {
+ if (videoInspectTask.getMenualSwitch().equals("鍏�")) {
+ continue;
+ }
+ }
+ /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
+ if (ardVideoInspectTaskStepList.size() == 0) {
+ continue;
+ }
+ videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+ String currentStepId = videoInspectTask.getCurrentStepId();//褰撳墠姝ラid
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();//褰撳墠姝ラ鍚姩鏃堕棿
+ if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+ //寮�濮嬬涓�涓楠�
+ videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+ startRunStep(videoInspectTask);
+ } else {
+ if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ 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) {
+ try {
+ 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 = 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.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());
+ ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ } else {
+ cmd.setEnable(false);//鍋滄褰曞儚
+ hikClientService.recordToMinio(cmd);
+ /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
+ ArdVideoInspectTask avit = new ArdVideoInspectTask();
+ avit.setId(ardVideoInspectTask.getId());
+ avit.setCurrentStepId(step.getId());
+ avit.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
+ }
+ }
+
+ //姝ラ鍋滄
+ private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ 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);
+ ardVideoInspectRecordMapper.insertArdVideoInspectRecord(ardVideoInspectRecord);
+ }
+ } catch (Exception ex) {
+ log.error("宸℃鍋滄寮傚父:" + ex.getMessage());
+ }
+ }
+
+ //姝ラ鍒ゆ柇鏄惁杩囨湡
+ private boolean isExpirdStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ 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;
+ }
+ } catch (Exception ex) {
+ log.error("鍒ゆ柇宸℃姝ラ杩囨湡寮傚父锛�" + ex.getMessage());
+ return false;
+ }
+ }
+
+ //姝ラ鍒囨崲
+ private String changeNextStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ 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);
+ ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�" + nextStepId);
+ return nextStepId;
+ }
+ } catch (Exception ex) {
+ log.error("宸℃姝ラ鍒囨崲寮傚父锛�" + ex.getMessage());
+ }
+ return "";
+ }
}
--
Gitblit v1.9.3