From c6ef8fb06f8f75ece7e4d6669af01bebb051d217 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 03 六月 2023 17:20:56 +0800 Subject: [PATCH] 优化巡检 --- ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 82 insertions(+), 24 deletions(-) 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 b9329bb..4116465 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 @@ -2,10 +2,10 @@ import java.text.SimpleDateFormat; import java.util.*; - import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.constant.Global; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; @@ -13,6 +13,8 @@ import com.ruoyi.device.hiksdk.service.IHikClientService; import com.ruoyi.inspect.domain.ArdVideoInspectRecord; import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper; +import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper; +import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.ruoyi.common.utils.StringUtils; @@ -38,6 +40,8 @@ @Resource private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper; @Resource + private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper; + @Resource private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; @Resource private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper; @@ -49,12 +53,14 @@ @PostConstruct public void initTask() { List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask()); - /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�*/ for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) { + /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/ if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) { ardVideoInspectTask.setMenualSwitch("鍏�"); - ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } + ardVideoInspectTask.setCurrentStepId(""); + ardVideoInspectTask.setCurrentStepStartTime(""); + ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } } @@ -108,7 +114,7 @@ public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) { ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername()); ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate()); - ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId()); + // ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId()); insertArdVideoInspectTaskStep(ardVideoInspectTask); return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } @@ -169,11 +175,13 @@ 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); + if (ardVideoInspectTaskStep.getId() == null) { + //鏂扮殑姝ラ,娣诲姞 + ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep); + } else { + //宸叉湁姝ラ,鏇存柊 + ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep); + } } } } @@ -227,6 +235,7 @@ List<String> menualCameraId = new ArrayList<>(); ArdVideoInspectTask menualTask = new ArdVideoInspectTask(); menualTask.setInspectMode("鎵嬪姩"); + menualTask.setMenualSwitch("寮�"); List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask); if (menualTasks.size() > 0) { for (ArdVideoInspectTask task : menualTasks) { @@ -264,6 +273,7 @@ List<String> menualCameraId = new ArrayList<>(); ArdVideoInspectTask menualTask = new ArdVideoInspectTask(); menualTask.setInspectMode("鎵嬪姩"); + menualTask.setMenualSwitch("寮�"); List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask); if (menualTasks.size() > 0) { for (ArdVideoInspectTask task : menualTasks) { @@ -319,6 +329,22 @@ } } } else { + if(Global.task_record.contains(videoInspectTask.getId())) + { + /*鍋滄褰曞儚*/ + CameraCmd cmd = new CameraCmd(); + cmd.setCameraId(videoInspectTask.getCameraId()); + cmd.setChannelNum(videoInspectTask.getChannel()); + cmd.setOperator("sys_patrol_inspect"); + cmd.setEnable(false);//鍋滄褰曞儚 + String uuid = UUID.randomUUID().toString().replace("-", ""); + String time = new SimpleDateFormat("yyyyMMdd").format(new Date()); + String recordName = videoInspectTask.getCameraId() + "/" + time + "/" + uuid + ".mp4"; + cmd.setRecordBucketName("record"); + cmd.setRecordObjectName(recordName); + cmd.setUploadMinio(true); + hikClientService.recordToMinio(cmd); + } if (StringUtils.isEmpty(videoInspectTask.getCurrentStepId()) || StringUtils.isEmpty(videoInspectTask.getCurrentStepStartTime())) { continue; } @@ -423,25 +449,24 @@ cmd.setExpired(step.getRecordingTime()); boolean setTargetPosition = hikClientService.setTargetPosition(cmd); if (setTargetPosition) { - /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/ - cmd.setEnable(true);//鍚姩褰曞儚 - hikClientService.recordToMinio(cmd); + if(!Global.task_record.contains(ardVideoInspectTask.getId())) + { + /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/ + cmd.setEnable(true);//鍚姩褰曞儚 + hikClientService.recordToMinio(cmd); + Global.task_record.add(ardVideoInspectTask.getId()); + } /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/ - ArdVideoInspectTask avit = new ArdVideoInspectTask(); - avit.setId(ardVideoInspectTask.getId()); - avit.setCurrentStepId(step.getId()); - avit.setCurrentStepStartTime(DateUtils.getTime()); - ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit); + ardVideoInspectTask.setCurrentStepId(step.getId()); + ardVideoInspectTask.setCurrentStepStartTime(DateUtils.getTime()); + ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } else { cmd.setEnable(false);//鍋滄褰曞儚 cmd.setUploadMinio(true); hikClientService.recordToMinio(cmd); /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/ - ArdVideoInspectTask avit = new ArdVideoInspectTask(); - avit.setId(ardVideoInspectTask.getId()); - avit.setCurrentStepId(step.getId()); - avit.setCurrentStepStartTime(""); - ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit); + ardVideoInspectTask.setCurrentStepStartTime(""); + ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } } } @@ -449,7 +474,6 @@ log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage()); } } - //姝ラ鍋滄 private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) { try { @@ -480,6 +504,7 @@ cmd.setRecordObjectName(recordName); cmd.setUploadMinio(true); hikClientService.recordToMinio(cmd); + Global.task_record.remove(ardVideoInspectTask.getId()); /*鎻掑叆宸℃璁板綍*/ ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord(); ardVideoInspectRecord.setStepId(step.getId()); @@ -564,4 +589,37 @@ } return ""; } -} + + public List getTaskUsedCameraPeriods(String cameraId) { + return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId); + } + + public List getCameraIdleTimeList(String cameraId) { + LinkedList<String> timeList = new LinkedList(); + List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId); + for (Map p : + usedPeriods) { + timeList.add((String) p.get("start_time")); + timeList.add((String) p.get("end_time")); + } + //鍒ゆ柇绗竴涓捣濮嬬偣 + if (timeList.getFirst().equals("00:00:00")) { + timeList.removeFirst(); + } else { + timeList.addFirst("00:00:00"); + } + //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂� + if (timeList.getLast().equals("23:59:59")) { + timeList.removeLast(); + } else { + timeList.addLast("23:59:59"); + } + //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存 + if (timeList.size() == 0) { + timeList.add("00:00:00"); + timeList.add("23:59:59"); + } + + return timeList; + } +} \ No newline at end of file -- Gitblit v1.9.3