From 8dcb6801a19f08af6c7baaf6a1b9105c8b4dc58b Mon Sep 17 00:00:00 2001 From: liusuyi <13324259@qq.com> Date: 星期三, 31 五月 2023 21:31:38 +0800 Subject: [PATCH] 增加手动巡检 --- ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java | 35 + ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 460 ++++++++++++++++------------ ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 422 +++++++++++++++++++++++-- ruoyi-admin/src/main/resources/application-ard.yml | 2 ruoyi-admin/src/main/resources/application.yml | 4 5 files changed, 673 insertions(+), 250 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java index 9765b4c..4f070de 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java @@ -1,19 +1,19 @@ package com.ruoyi.inspect.service; import java.util.List; + import com.ruoyi.inspect.domain.ArdVideoInspectTask; /** * 瑙嗛宸℃浠诲姟Service鎺ュ彛 - * + * * @author ruoyi * @date 2023-05-30 */ -public interface IArdVideoInspectTaskService -{ +public interface IArdVideoInspectTaskService { /** * 鏌ヨ瑙嗛宸℃浠诲姟 - * + * * @param id 瑙嗛宸℃浠诲姟涓婚敭 * @return 瑙嗛宸℃浠诲姟 */ @@ -21,7 +21,7 @@ /** * 鏌ヨ瑙嗛宸℃浠诲姟鍒楄〃 - * + * * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟 * @return 瑙嗛宸℃浠诲姟闆嗗悎 */ @@ -29,7 +29,7 @@ /** * 鏂板瑙嗛宸℃浠诲姟 - * + * * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟 * @return 缁撴灉 */ @@ -37,15 +37,17 @@ /** * 淇敼瑙嗛宸℃浠诲姟 - * + * * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟 * @return 缁撴灉 */ public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask); + public int updateArdVideoInspectTaskNoUpdater(ArdVideoInspectTask ardVideoInspectTask); + /** * 鎵归噺鍒犻櫎瑙嗛宸℃浠诲姟 - * + * * @param ids 闇�瑕佸垹闄ょ殑瑙嗛宸℃浠诲姟涓婚敭闆嗗悎 * @return 缁撴灉 */ @@ -53,9 +55,24 @@ /** * 鍒犻櫎瑙嗛宸℃浠诲姟淇℃伅 - * + * * @param id 瑙嗛宸℃浠诲姟涓婚敭 * @return 缁撴灉 */ public int deleteArdVideoInspectTaskById(String id); + + /** + * 鑷姩宸℃浠诲姟 + */ + public void autoTaskRun(); + + /** + * 鎵嬪姩宸℃浠诲姟 + */ + public void manualTaskRun(); + + /** + * 宸℃浠诲姟 + */ + public void taskRun(); } 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 ce253a1..126e3bc 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,35 @@ package com.ruoyi.inspect.service.impl; -import java.util.List; - import com.ruoyi.common.utils.DateUtils; +import java.text.SimpleDateFormat; +import java.util.*; +import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; +import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; +import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; +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.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.mapper.ArdVideoInspectRecordMapper; +import com.ruoyi.inspect.service.IArdVideoInspectRecordService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; 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 +38,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 +79,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,30 +96,32 @@ * @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); } + /** * 鎵归噺鍒犻櫎瑙嗛宸℃浠诲姟 * * @param ids 闇�瑕佸垹闄ょ殑瑙嗛宸℃浠诲姟涓婚敭 * @return 缁撴灉 */ - @Transactional + @Transactional @Override public int deleteArdVideoInspectTaskByIds(String[] ids) { - ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids); + ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids); return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskByIds(ids); } @@ -104,31 +131,342 @@ * @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() { + /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/ + ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask(); + ardVideoInspectTask.setInspectMode("鎵嬪姩"); + ardVideoInspectTask.setMenualSwitch("寮�"); + List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask); + for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) { + /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/ + List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.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 /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ { + if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) { + //褰撳墠浠诲姟鍚姩鏃堕棿涓簄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(); + if (StringUtils.isNull(currentStepId)) { + videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId()); + startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠� + } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ { + if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) { + //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ + startRunStep(videoInspectTask); + } else { + boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/ + if (expird) { + //鍋滄褰曞儚 + stopRunStep(videoInspectTask); + //鍒囨崲姝ラ + String nextStepId = changeNextStep(videoInspectTask); + //寮�濮嬩笅涓�姝ラ + videoInspectTask.setCurrentStepId(nextStepId); + startRunStep(videoInspectTask); + } + } + } + } + } + } + @Override + public void taskRun() { + /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/ + 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(); + if (StringUtils.isNull(currentStepId)) { + videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId()); + startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠� + } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ { + if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) { + //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ + 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(null); + 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 ""; + } } diff --git a/ruoyi-admin/src/main/resources/application-ard.yml b/ruoyi-admin/src/main/resources/application-ard.yml index 3c47288..d1f8fbe 100644 --- a/ruoyi-admin/src/main/resources/application-ard.yml +++ b/ruoyi-admin/src/main/resources/application-ard.yml @@ -1,6 +1,6 @@ # minio閰嶇疆 minio: - endpoint: http://192.168.1.15:9001 + endpoint: http://192.168.1.55:9001 accessKey: admin secretKey: xzx12345 # forest閰嶇疆 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 7150798..fa2b341 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -70,13 +70,13 @@ # redis 閰嶇疆 redis: # 鍦板潃 - host: 192.168.1.15 + host: 192.168.1.55 # 绔彛锛岄粯璁や负6379 port: 6379 # 鏁版嵁搴撶储寮� database: 0 # 瀵嗙爜 - password: 5959932 + password: # 杩炴帴瓒呮椂鏃堕棿 timeout: 10s lettuce: 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..291f326 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 @@ -35,205 +35,273 @@ @Resource IArdVideoInspectTaskService ardVideoInspectTaskService; - @Resource - IArdAlarmpointsWellService ardAlarmpointsWellService; - @Resource - IArdVideoInspectRecordService ardVideoInspectRecordService; - @Resource - IArdCamerasService ardCamerasService; - @Resource - IHikClientService hikClientService; + //宸℃浠诲姟 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); - } - } - } - } + ardVideoInspectTaskService.taskRun(); } - //姝ラ寮�濮� - 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); - } - } - } - } + //鑷姩宸℃浠诲姟 +// 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 /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ { +// if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) { +// //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ +// startRunStep(videoInspectTask); +// } else { +// boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/ +// if (expird) { +// //鍋滄褰曞儚 +// stopRunStep(videoInspectTask); +// //鍒囨崲姝ラ +// String nextStepId = changeNextStep(videoInspectTask); +// //寮�濮嬩笅涓�姝ラ +// videoInspectTask.setCurrentStepId(nextStepId); +// startRunStep(videoInspectTask); +// } +// } +// } +// } +// } +// } - //姝ラ鍋滄 - 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 ""; - } +// //鎵嬪姩宸℃浠诲姟 +// public void ManualTaskRun(String taskId) { +// Timer timer = new Timer(); +// // 5s鍚庢墽琛� +// // timer.schedule(new MyTask(), 5000); +// // 椹笂鎵ц浠诲姟,姣忛殧2000鎵ц涓�娆� +// timerTask = new TimerTask() { +// @Override +// public void run() { +// ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskService.selectArdVideoInspectTaskById(taskId); +// /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/ +// List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskService.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList(); +// if (ardVideoInspectTaskStepList.size() == 0) { +// log.error("褰撳墠浠诲姟娌℃湁鍙戠幇鎵ц姝ラ"); +// return; +// } +// videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList); +// String currentStepId = videoInspectTask.getCurrentStepId(); +// if (StringUtils.isNull(currentStepId)) { +// videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId()); +// startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠� +// } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ { +// if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) { +// //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ +// startRunStep(videoInspectTask); +// } else { +// boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/ +// if (expird) { +// //鍋滄褰曞儚 +// stopRunStep(videoInspectTask); +// //鍒囨崲姝ラ +// String nextStepId = changeNextStep(videoInspectTask); +// //寮�濮嬩笅涓�姝ラ +// videoInspectTask.setCurrentStepId(nextStepId); +// startRunStep(videoInspectTask); +// } +// } +// } +// } +// }; +// timer.scheduleAtFixedRate(timerTask, new Date(), 2000); +// } +// +// //姝ラ寮�濮� +// 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 = 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); +// } else { +// cmd.setEnable(false);//鍋滄褰曞儚 +// hikClientService.recordToMinio(cmd); +// /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/ +// ArdVideoInspectTask avit = new ArdVideoInspectTask(); +// avit.setId(ardVideoInspectTask.getId()); +// avit.setCurrentStepId(step.getId()); +// avit.setCurrentStepStartTime(null); +// ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(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); +// ardVideoInspectRecordService.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); +// ardVideoInspectTaskService.updateArdVideoInspectTaskNoUpdater(avit); +// log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�" + nextStepId); +// return nextStepId; +// } +// } catch (Exception ex) { +// log.error("宸℃姝ラ鍒囨崲寮傚父锛�" + ex.getMessage()); +// } +// return ""; +// } } -- Gitblit v1.9.3