From f36efaba44f2108f551336336e437be58c270313 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 31 五月 2023 17:02:49 +0800
Subject: [PATCH] 提交光电自动定时巡检
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 299 ++++++++++++++++++++++++++++---------------------
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 21 ++-
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/HCNetSDK.java | 9 +
3 files changed, 196 insertions(+), 133 deletions(-)
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 a714686..8ffb5d9 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
@@ -10,6 +10,7 @@
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
import com.ruoyi.device.hiksdk.common.global.globalVariable;
import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.domain.recordInfo;
import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil;
import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK;
@@ -1293,7 +1294,6 @@
}
@Override
- @SdkOperate
public void recordToMinio(CameraCmd cmd) {
try {
String cameraId = cmd.getCameraId();
@@ -1304,6 +1304,17 @@
}
Integer userId = globalVariable.loginMap.get(cameraId);
String path = "";
+ //寮哄埗I甯х粨鏋勪綋瀵硅薄
+ HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞�
+ netDvrIFrame.read();
+ netDvrIFrame.dwChannel = channelNum; //鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆
+ netDvrIFrame.byStreamType = 0;
+ netDvrIFrame.dwSize = netDvrIFrame.size();
+ netDvrIFrame.write();
+
+ if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){
+ log.error("寮哄埗I甯� 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
+ }
//棰勮鍙傛暟
NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO();
previewinfo.read();
@@ -1319,8 +1330,7 @@
if (!user_real_Map.containsKey(userId)) {
lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
if (lRealHandle == -1) {
- int iErr = hCNetSDK.NET_DVR_GetLastError();
- log.error("鍙栨祦澶辫触" + iErr);
+ log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
return;
}
log.info("鍙栨祦鎴愬姛");
@@ -1339,7 +1349,7 @@
user_real_Map.put(userId, info);
}
recordInfo info = user_real_Map.get(userId);
- if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 1, info.getRecordPath())) {
+ if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 2, info.getRecordPath())) {
log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
return;
}
@@ -1356,10 +1366,9 @@
String ObjectName = cmd.getRecordObjectName();
String ContentType = "video/MP4";
FileInputStream stream = new FileInputStream(info.getRecordPath());
- String url = "";
boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType);
if (b) {
- log.info("涓婁紶鏂囦欢鎴愬姛!" + BucketName + "/" + ObjectName);
+ log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/"+ BucketName + "/" + ObjectName);
user_real_Map.remove(userId);
}
}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/HCNetSDK.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/HCNetSDK.java
index 2959708..ebc20ec 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/HCNetSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/HCNetSDK.java
@@ -10242,7 +10242,14 @@
boolean NET_DVR_InquiryRecordTimeSpan(int lUserID, int dwChannel, NET_DVR_RECORD_TIME_SPAN_INQUIRY lpInquiry, NET_DVR_RECORD_TIME_SPAN lpResult);
boolean NET_DVR_StartGetDevState(NET_DVR_CHECK_DEV_STATE pParams);
-
+ //寮哄埗I甯у弬鏁扮粨鏋勪綋銆�
+ public static class NET_DVR_I_FRAME extends HIKSDKStructure{
+ public int dwSize;
+ public byte[] sStreamID = new byte[32]; //娴両Ds SDK 涓 STREAM_ID_LEN杩涜浜嗗畾涔夛紝璧嬪��32
+ public int dwChannel;//閫氶亾鍙�
+ public byte byStreamType; //鐮佹祦绫诲瀷锛�0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-鐮佹祦3锛�3-铏氭嫙鐮佹祦锛屼互姝ょ被鎺�
+ public byte[] byRes = new byte[63]; //淇濈暀锛岀疆涓�0 鎸夌収SDK瑕佹眰杩涜瀵瑰簲璧嬪��
+ }
//gps鐩稿叧缁撴瀯瀹氫箟
public static class TimeSegParam extends HIKSDKStructure {
//GPS鏁版嵁鏌ユ壘璧峰鏃堕棿
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 a889fd7..e51cd61 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
@@ -44,9 +44,8 @@
@Resource
IHikClientService hikClientService;
- public void scanRun(){
+ public void scanRun() {
/*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
- log.info("寮�濮嬫壂鎻忔墍鏈夊彲鎵ц浠诲姟");
ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
ardVideoInspectTask.setInspectMode("鑷姩");
List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskService.selectArdVideoInspectTaskList(ardVideoInspectTask);
@@ -54,139 +53,187 @@
/*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
if (timeCompare) {
- log.info("婊¤冻鏃堕棿");
- /*褰撳墠浠诲姟鐨勫贰妫�姝ラ*/
+ /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskService.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- 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);
+ if (ardVideoInspectTaskStepList.size() == 0) {
+ continue;
}
- /*鑾峰彇褰撳墠浠诲姟姝e湪鎵ц鐨勬楠ゅ拰褰撳墠姝ラ寮�濮嬬殑鏃堕棿*/
+ videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
String currentStepId = videoInspectTask.getCurrentStepId();
- String cameraId = videoInspectTask.getCameraId();
- Integer channel = videoInspectTask.getChannel();
- String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
- /*濡傛灉褰撳墠姝ラ鏈壘鍒帮紝鍒欎粠1寮�濮�*/
if (StringUtils.isNull(currentStepId)) {
- 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();
- /*鑾峰彇鐩告満鍧愭爣*/
- 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(videoInspectTask.getId());
- avit.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
- avit.setCurrentStepStartTime(DateUtils.getTime());
- ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit);
- }
- }
+ videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+ startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
} 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, 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 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);
+ boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (expird) {
+ /*宸茶繃鏈�,鍋滄褰曞儚*/
- /*鍒囨崲涓嬩竴姝ラ*/
- 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);
- }
- }
- }
+ 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 "";
+ }
}
--
Gitblit v1.9.3