From e4d7da0fc500395f70f13d6c46bd7227c8644ec4 Mon Sep 17 00:00:00 2001 From: liusuyi <13324259@qq.com> Date: 星期三, 29 十一月 2023 21:18:59 +0800 Subject: [PATCH] 增加雷达引导相机跟踪 --- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 223 +------------------------------------------------------ 1 files changed, 7 insertions(+), 216 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 e51cd61..675ff00 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 @@ -1,26 +1,10 @@ package com.ruoyi.quartz.task; -import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; -import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.StringUtils; -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.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; + /** * @Description: 宸℃浠诲姟 @@ -30,210 +14,17 @@ * @Version: 1.0 **/ @Component("PatrolInspectionTask") -@Slf4j(topic = "PatrolInspectionTask") public class PatrolInspectionTask { @Resource IArdVideoInspectTaskService ardVideoInspectTaskService; - @Resource - IArdAlarmpointsWellService ardAlarmpointsWellService; - @Resource - IArdVideoInspectRecordService ardVideoInspectRecordService; - @Resource - IArdCamerasService ardCamerasService; - @Resource - IHikClientService hikClientService; + /** + * 瀹氭椂宸℃浠诲姟 + * 鍒樿嫃涔� + * 2023/8/9 9:18:42 + */ public void scanRun() { - /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/ - ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask(); - ardVideoInspectTask.setInspectMode("鑷姩"); - List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskService.selectArdVideoInspectTaskList(ardVideoInspectTask); - for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) { - /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/ - boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime()); - if (timeCompare) { - /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/ - List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskService.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList(); - if (ardVideoInspectTaskStepList.size() == 0) { - continue; - } - videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList); - String currentStepId = videoInspectTask.getCurrentStepId(); - if (StringUtils.isNull(currentStepId)) { - videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId()); - 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) { - 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 ""; + ardVideoInspectTaskService.autoTaskRun(); } } -- Gitblit v1.9.3