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