From 32174535f5cd608c87992a9cdec259a803af63e4 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 13 四月 2024 13:35:35 +0800
Subject: [PATCH] 增加视频巡检兴趣点上报

---
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |  146 +++++++++++++++++++++++++++---------------------
 1 files changed, 81 insertions(+), 65 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 e5ff050..50701bc 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,6 +1,8 @@
 package com.ruoyi.inspect.service.impl;
 
 import java.util.*;
+
+import com.ruoyi.alarm.global.domain.GuidePoint;
 import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
 import com.ruoyi.common.utils.DateUtils;
@@ -9,10 +11,10 @@
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
 import com.ruoyi.device.camera.service.ICameraSdkService;
-import com.ruoyi.utils.sdk.hiksdk.service.IHikClientService;
 import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
 import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
 import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.utils.StringUtils;
@@ -22,6 +24,7 @@
 import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
 import com.ruoyi.inspect.domain.ArdVideoInspectTask;
 import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
@@ -114,7 +117,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);
     }
@@ -182,14 +185,9 @@
         }
         if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
             for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
-                if (ardVideoInspectTaskStep.getId() == null) {
                     //鏂扮殑姝ラ,娣诲姞
                     ardVideoInspectTaskStep.setId(IdUtils.simpleUUID());
                     ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep);
-                } else {
-                    //宸叉湁姝ラ,鏇存柊
-                    ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep);
-                }
             }
         }
     }
@@ -434,33 +432,40 @@
                 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);
-                    if(StringUtils.isNull(cameras))
-                    {
-                        log.debug("鎵句笉鍒扮浉鏈�:"+cameraId);
+                    ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
+                    if (StringUtils.isNull(well)) {
+                        log.debug("鎵句笉鍒颁簳:" + well.getWellId());
                         return;
                     }
-                    double[] cameraPositon = new double[3];
-                    cameraPositon[0] = cameras.getLongitude();
-                    cameraPositon[1] = cameras.getLatitude();
-                    cameraPositon[2] = cameras.getAltitude();
+                    log.debug("鎵惧埌浜�:" + well.getWellId());
+                    GuidePoint guidePoint = new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude());
+                    log.debug("鎵惧埌浜曞潗鏍�:" + well.getLongitude() + "-" + well.getLatitude() + "-" + well.getAltitude());
+                    /*鑾峰彇鐩告満鍧愭爣*/
+                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+                    if (StringUtils.isNull(cameras)) {
+                        log.debug("鎵句笉鍒扮浉鏈�:" + cameraId);
+                        return;
+                    }
+                    log.debug("鎵惧埌鐩告満:" + cameraId);
                     /*鎺у埗鐩告満宸℃*/
                     CameraCmd cmd = new CameraCmd();
                     cmd.setCameraId(cameraId);
                     cmd.setChanNo(channel);
-                    cmd.setTargetPosition(targetPositon);
+                    cmd.setTargetPosition(new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()});
                     cmd.setOperator("sys_patrol_inspect");
-                    cmd.setExpired(step.getRecordingTime() * 60);
-                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    cmd.setExpired(step.getRecordingTime());//绉掍负鍗曚綅
+                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd).get("code").equals(200);
                     if (setTargetPosition) {
                         /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
                         cameraSdkService.recordStart(cmd);
+                        //region 閫氱煡鍓嶇
+                        Map<String, Object> message = new HashMap<>();
+                        Map<String, String> data = new HashMap<>();
+                        data.put("cameraId", cmd.getCameraId());
+                        data.put("wellId", well.getWellId());
+                        message.put("70000", data);
+                        WebSocketUtils.sendMessageAll(message);
+                        //endregion
                     } else {
                         /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
                         ardVideoInspectTask.setCurrentStepStartTime("");
@@ -492,36 +497,43 @@
                 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);
-                    if(StringUtils.isNull(cameras))
+                    ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
+                    if(StringUtils.isNull(well))
                     {
-                        log.debug("鎵句笉鍒扮浉鏈�:"+cameraId);
+                        log.debug("鎵句笉鍒颁簳:" + well.getWellId());
                         return;
                     }
-                    double[] cameraPositon = new double[3];
-                    cameraPositon[0] = cameras.getLongitude();
-                    cameraPositon[1] = cameras.getLatitude();
-                    cameraPositon[2] = cameras.getAltitude();
+                    log.debug("鎵惧埌浜�:" + well.getWellId());
+                    GuidePoint guidePoint = new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude());
+                    /*鑾峰彇鐩告満鍧愭爣*/
+                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+                    if (StringUtils.isNull(cameras)) {
+                        log.debug("鎵句笉鍒扮浉鏈�:" + cameraId);
+                        return;
+                    }
+                    log.debug("鎵惧埌鐩告満:" + cameraId);
                     /*鎺у埗鐩告満宸℃*/
                     CameraCmd cmd = new CameraCmd();
                     cmd.setCameraId(cameraId);
                     cmd.setChanNo(channel);
-                    cmd.setTargetPosition(targetPositon);
+                    cmd.setTargetPosition(new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()});
                     cmd.setOperator("sys_patrol_inspect");
-                    cmd.setExpired(step.getRecordingTime() * 60);
-                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+                    cmd.setExpired(step.getRecordingTime());//绉掍负鍗曚綅
+                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd).get("code").equals(200);
                     if (!setTargetPosition) {
                         /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
                         ardVideoInspectTask.setCurrentStepStartTime("");
                         ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
                     } else {
                         log.debug("寮曞鎴愬姛!");
+                        //region 閫氱煡鍓嶇
+                        Map<String, Object> message = new HashMap<>();
+                        Map<String, String> data = new HashMap<>();
+                        data.put("cameraId", cmd.getCameraId());
+                        data.put("wellId", well.getWellId());
+                        message.put("70000", data);
+                        WebSocketUtils.sendMessageAll(message);
+                        //endregion
                     }
                 }
             }
@@ -553,7 +565,7 @@
                 cmd.setChanNo(channel);
                 cmd.setOperator("sys_patrol_inspect");
                 cmd.setRecordBucketName("record");
-                cmd.setRecordObjectName("inspect_" + IdUtils.fastSimpleUUID());
+                cmd.setRecordObjectName("inspectGuide/" + DateUtils.getDateYYYYMMDD() + "/" + IdUtils.fastSimpleUUID());
                 String url = cameraSdkService.recordStopToMinio(cmd);
                 /*鎻掑叆宸℃璁板綍*/
                 ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
@@ -564,7 +576,7 @@
                     ardVideoInspectRecord.setWellName(ardAlarmpointsWell.getWellId());
                 }
                 Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
-                Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, step.getRecordingTime());
+                Date currentStepStopDate = DateUtils.addSeconds(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));
                 ardVideoInspectRecord.setRecordFilePath(url);
@@ -590,7 +602,7 @@
                 ArdVideoInspectTaskStep currentStep = objectOptional.get();
                 /*鑾峰彇鍒板綋鍓嶆楠ょ殑寮�濮嬪拰缁撴潫鏃堕棿*/
                 Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
-                Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, currentStep.getRecordingTime());
+                Date currentStepStopDate = DateUtils.addSeconds(currentStepStartDate, currentStep.getRecordingTime());
                 /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
                 if (!DateUtils.TimeCompare(currentStepStartDate, currentStepStopDate)) {
                     return true;
@@ -650,38 +662,42 @@
 
     /**
      * 鑾峰彇鐩告満鐨勭┖闂叉椂娈�
+     *
      * @param cameraId
      * @return
      */
     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.size() > 0) {
-            if ("00:00:00".equals(timeList.getFirst())) {
-                timeList.removeFirst();
-            } else {
-                timeList.addFirst("00:00:00");
+        //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
+        if (usedPeriods.size() == 0) {
+            timeList.add("00:00:00");
+            timeList.add("23:59:59");
+        }else{
+            for (Map p :
+                    usedPeriods) {
+                timeList.add((String) p.get("start_time"));
+                timeList.add((String) p.get("end_time"));
             }
-            //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂�
-            if ("23:59:59".equals(timeList.getLast())) {
-                timeList.removeLast();
-            } else {
-                timeList.addLast("23:59:59");
-            }
-            //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
-            if (timeList.size() == 0) {
-                timeList.add("00:00:00");
-                timeList.add("23:59:59");
-            }
+            //鍒ゆ柇绗竴涓捣濮嬬偣
+            if (timeList.size() > 0) {
+                if ("00:00:00".equals(timeList.getFirst())) {
+                    timeList.removeFirst();
+                } else {
+                    timeList.addFirst("00:00:00");
+                }
+                //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂�
+                if ("23:59:59".equals(timeList.getLast())) {
+                    timeList.removeLast();
+                } else {
+                    timeList.addLast("23:59:59");
+                }
 
+
+            }
         }
 
+
         return timeList;
     }
 }

--
Gitblit v1.9.3