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 | 132 ++++++++++++++++++++++++++++---------------- 1 files changed, 84 insertions(+), 48 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 ec09940..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 @@ -16,10 +16,11 @@ 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: 宸℃浠诲姟 @@ -56,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(); @@ -64,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); @@ -85,38 +92,30 @@ 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.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: " + 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); @@ -130,26 +129,63 @@ String url= MinioClientSingleton.domainUrl+ "/" +cmd.getRecordBucketName()+ "/"+recordName; hikClientService.recordToMinio(cmd); /*鏇存柊宸℃璁板綍*/ - ArdVideoInspectRecord ardVideoInspectRecord=new ArdVideoInspectRecord(); + 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(record); + 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); - } - } else { - System.out.println("鏈壘鍒板尮閰嶇殑recordingTime"); - } + /*鍒囨崲涓嬩竴姝ラ*/ + 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); + } + } + } + } } - /*鍚﹀垯鍒ゆ柇褰撳墠姝ラ寮�濮嬫椂闂达紝鍒ゆ柇鏄惁鍒版湡*/ - /*鏈埌鏈�*/ - /*蹇界暐*/ - /*宸插埌鏈�*/ - /*缁撴潫褰曞儚锛岃浆鍒颁笅涓�涓楠わ紝 - 鎺у埗浜戝彴鎸囧悜鍏宠仈浜曞潗鏍囷紝骞跺紑濮嬪綍鍍忥紝鏇存柊褰撳墠姝ラ鍜屽綋鍓嶆楠ゅ紑濮嬫椂闂�/ - */ } } } -- Gitblit v1.9.3