From 71dbac60afa54d2642c3471c080686da56579ca0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 09 九月 2023 16:37:13 +0800
Subject: [PATCH] 流媒体优化

---
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |   89 +++++++++++++++++++++++++++-----------------
 1 files changed, 54 insertions(+), 35 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 68386dd..4ad799a 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,15 +1,13 @@
 package com.ruoyi.inspect.service.impl;
 
-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.common.utils.uuid.IdUtils;
 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.hiksdk.config.MinioClientSingleton;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
 import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
 import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
@@ -23,7 +21,6 @@
 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;
 
@@ -34,7 +31,7 @@
  * @date 2023-05-30
  */
 @Service
-@Slf4j(topic = "PatrolInspectionTask")
+@Slf4j(topic = "patrolInspectionTask")
 public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
     @Resource
     private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
@@ -96,6 +93,7 @@
     @Transactional
     @Override
     public int insertArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
+        ardVideoInspectTask.setId(IdUtils.simpleUUID());
         ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
         ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
         ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
@@ -229,7 +227,7 @@
                         //寮�濮嬩笅涓�姝ラ
                         videoInspectTask.setCurrentStepId(nextStepId);
                         startRunStep(videoInspectTask);
-                    }else{
+                    } else {
                         //鏈繃鏈熷皾璇曞紩瀵硷紝寮曞澶辫触娓呯┖褰撳墠姝ラ寮�濮嬫椂闂达紝鏍囪涓柇
                         tryGuide(videoInspectTask);
                     }
@@ -340,7 +338,9 @@
                                 //寮�濮嬩笅涓�姝ラ
                                 videoInspectTask.setCurrentStepId(nextStepId);
                                 startRunStep(videoInspectTask);
-                            }else{tryGuide(videoInspectTask);}
+                            } else {
+                                tryGuide(videoInspectTask);
+                            }
                         }
                     }
                 } else {
@@ -414,7 +414,7 @@
         try {
             String currentStepId = ardVideoInspectTask.getCurrentStepId();
             if (StringUtils.isNull(currentStepId)) {
-                log.info("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
+                log.debug("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
                 return;
             }
             log.debug("宸℃姝ラ锛�" + currentStepId + "灏濊瘯寮�濮�");
@@ -439,6 +439,11 @@
                     targetPositon[2] = ardAlarmpointsWell.getAltitude();
                     /*鑾峰彇鐩告満鍧愭爣*/
                     ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+                    if(StringUtils.isNull(cameras))
+                    {
+                        log.debug("鎵句笉鍒扮浉鏈�:"+cameraId);
+                        return;
+                    }
                     double[] cameraPositon = new double[3];
                     cameraPositon[0] = cameras.getLongitude();
                     cameraPositon[1] = cameras.getLatitude();
@@ -446,15 +451,14 @@
                     /*鎺у埗鐩告満宸℃*/
                     CameraCmd cmd = new CameraCmd();
                     cmd.setCameraId(cameraId);
-                    cmd.setChannelNum(channel);
+                    cmd.setChanNo(channel);
                     cmd.setTargetPosition(targetPositon);
                     cmd.setOperator("sys_patrol_inspect");
-                    cmd.setExpired(step.getRecordingTime()*60);
+                    cmd.setExpired(step.getRecordingTime() * 60);
                     boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
                     if (setTargetPosition) {
                         /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
-                        cmd.setEnable(true);//鍚姩褰曞儚
-                        hikClientService.recordToMinio(cmd);
+                        hikClientService.recordStart(cmd);
                     } else {
                         /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
                         ardVideoInspectTask.setCurrentStepStartTime("");
@@ -466,12 +470,13 @@
             log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
         }
     }
+
     //灏濊瘯鎺у埗寮曞
     private void tryGuide(ArdVideoInspectTask ardVideoInspectTask) {
         try {
             String currentStepId = ardVideoInspectTask.getCurrentStepId();
             if (StringUtils.isNull(currentStepId)) {
-                log.info("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
+                log.debug("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
                 return;
             }
             log.debug("宸℃姝e父锛屽皾璇曞紩瀵硷細" + currentStepId);
@@ -492,6 +497,11 @@
                     targetPositon[2] = ardAlarmpointsWell.getAltitude();
                     /*鑾峰彇鐩告満鍧愭爣*/
                     ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+                    if(StringUtils.isNull(cameras))
+                    {
+                        log.debug("鎵句笉鍒扮浉鏈�:"+cameraId);
+                        return;
+                    }
                     double[] cameraPositon = new double[3];
                     cameraPositon[0] = cameras.getLongitude();
                     cameraPositon[1] = cameras.getLatitude();
@@ -499,15 +509,17 @@
                     /*鎺у埗鐩告満宸℃*/
                     CameraCmd cmd = new CameraCmd();
                     cmd.setCameraId(cameraId);
-                    cmd.setChannelNum(channel);
+                    cmd.setChanNo(channel);
                     cmd.setTargetPosition(targetPositon);
                     cmd.setOperator("sys_patrol_inspect");
-                    cmd.setExpired(step.getRecordingTime()*60);
+                    cmd.setExpired(step.getRecordingTime() * 60);
                     boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
                     if (!setTargetPosition) {
                         /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
                         ardVideoInspectTask.setCurrentStepStartTime("");
                         ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+                    } else {
+                        log.debug("寮曞鎴愬姛!");
                     }
                 }
             }
@@ -515,6 +527,7 @@
             log.error("宸℃灏濊瘯寮曞寮傚父锛�" + ex.getMessage());
         }
     }
+
     //姝ラ鍋滄
     private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
         try {
@@ -535,13 +548,11 @@
                 /*鍋滄褰曞儚*/
                 CameraCmd cmd = new CameraCmd();
                 cmd.setCameraId(cameraId);
-                cmd.setChannelNum(channel);
+                cmd.setChanNo(channel);
                 cmd.setOperator("sys_patrol_inspect");
-                cmd.setEnable(false);//鍋滄褰曞儚
                 cmd.setRecordBucketName("record");
-                cmd.setRecordObjectName("inspect");
-                cmd.setUploadMinio(true);
-                String url=  hikClientService.recordToMinio(cmd);
+                cmd.setRecordObjectName("inspect_" + IdUtils.fastSimpleUUID());
+                String url = hikClientService.recordStopToMinio(cmd);
                 /*鎻掑叆宸℃璁板綍*/
                 ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
                 ardVideoInspectRecord.setStepId(step.getId());
@@ -634,6 +645,11 @@
         return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId);
     }
 
+    /**
+     * 鑾峰彇鐩告満鐨勭┖闂叉椂娈�
+     * @param cameraId
+     * @return
+     */
     public List getCameraIdleTimeList(String cameraId) {
         LinkedList<String> timeList = new LinkedList();
         List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId);
@@ -643,21 +659,24 @@
             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");
+        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");
+            }
+            //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
+            if (timeList.size() == 0) {
+                timeList.add("00:00:00");
+                timeList.add("23:59:59");
+            }
+
         }
 
         return timeList;

--
Gitblit v1.9.3