From c4c6484a6e6d18e56ec6791db3585aae39c8584d Mon Sep 17 00:00:00 2001
From: zhangjian <zhangjianrock@163.com>
Date: 星期五, 02 六月 2023 09:13:46 +0800
Subject: [PATCH] 视频巡检任务 单独更新

---
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |  132 ++++++++++++++++++++++++++------------------
 1 files changed, 78 insertions(+), 54 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 126e3bc..3f1c570 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,25 +2,18 @@
 
 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 com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +22,7 @@
 import com.ruoyi.inspect.domain.ArdVideoInspectTask;
 import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
 
+import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
 /**
@@ -51,6 +45,20 @@
     @Resource
     private IHikClientService hikClientService;
 
+    @PostConstruct
+    public void initTask()
+    {
+        List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
+        /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�*/
+        for(ArdVideoInspectTask ardVideoInspectTask:ardVideoInspectTasks)
+        {
+            if(ardVideoInspectTask.getInspectMode().equals("鎵嬪姩"))
+            {
+                ardVideoInspectTask.setMenualSwitch("鍏�");
+                ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+            }
+        }
+    }
     /**
      * 鏌ヨ瑙嗛宸℃浠诲姟
      *
@@ -101,9 +109,22 @@
     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);
+    }
+
+    /**
+     * 淇敼瑙嗛宸℃浠诲姟,bu鏇存柊姝ラ
+     *
+     * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int updateArdVideoInspectTaskSingle(ArdVideoInspectTask ardVideoInspectTask) {
+        ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
+        ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
         return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
     }
 
@@ -158,43 +179,37 @@
         }
     }
 
-
     /**
      * 鎵嬪姩宸℃浠诲姟
      */
     @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;
+    public void manualTaskRun(String TaskId) {
+        ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+        if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
+            return;
+        }
+        String currentStepId = videoInspectTask.getCurrentStepId();
+        String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+        if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+            //浠�1鍙锋楠ゅ紑濮�
+            videoInspectTask.setCurrentStepId(videoInspectTask.getArdVideoInspectTaskStepList().get(0).getId());
+            if(InspectionTaskManager.taskMap.containsKey(TaskId)) {
+                startRunStep(videoInspectTask);
             }
-            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锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+        } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+            if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+                //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+                startRunStep(videoInspectTask);
+            } else {
+                boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+                if (expird) {
+                    //鍋滄褰曞儚
+                    stopRunStep(videoInspectTask);
+                    //鍒囨崲姝ラ
+                    String nextStepId = changeNextStep(videoInspectTask);
+                    //寮�濮嬩笅涓�姝ラ
+                    videoInspectTask.setCurrentStepId(nextStepId);
                     startRunStep(videoInspectTask);
-                } else {
-                    boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
-                    if (expird) {
-                        //鍋滄褰曞儚
-                        stopRunStep(videoInspectTask);
-                        //鍒囨崲姝ラ
-                        String nextStepId = changeNextStep(videoInspectTask);
-                        //寮�濮嬩笅涓�姝ラ
-                        videoInspectTask.setCurrentStepId(nextStepId);
-                        startRunStep(videoInspectTask);
-                    }
                 }
             }
         }
@@ -213,7 +228,7 @@
             /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
             boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
             if (timeCompare) {
-                log.info("鑷姩浠诲姟鍚姩锛�" + videoInspectTask.getId());
+                //log.info("鑷姩浠诲姟鍚姩锛�" + videoInspectTask.getId());
                 /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
                 List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
                 if (ardVideoInspectTaskStepList.size() == 0) {
@@ -221,15 +236,18 @@
                 }
                 videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
                 String currentStepId = videoInspectTask.getCurrentStepId();
-                if (StringUtils.isNull(currentStepId)) {
+                String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+                if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+                    //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
                     videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
-                    startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
+                    startRunStep(videoInspectTask);
                 } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
-                    if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) {
-                        //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+                    if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+                        //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
                         startRunStep(videoInspectTask);
                     } else {
-                        boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+                        //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
+                        boolean expird = isExpirdStep(videoInspectTask);
                         if (expird) {
                             //鍋滄褰曞儚
                             stopRunStep(videoInspectTask);
@@ -244,9 +262,11 @@
             }
         }
     }
+    /**
+     * 鑷姩鎵嬪姩鍚堝苟锛屾壂搴撴柟寮忥紝鐩墠涓嶄娇鐢�
+     */
     @Override
     public void taskRun() {
-        /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
         ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
         List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
         for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
@@ -266,13 +286,15 @@
                 continue;
             }
             videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
-            String currentStepId = videoInspectTask.getCurrentStepId();
-            if (StringUtils.isNull(currentStepId)) {
+            String currentStepId = videoInspectTask.getCurrentStepId();//褰撳墠姝ラid
+            String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();//褰撳墠姝ラ鍚姩鏃堕棿
+            if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+                //寮�濮嬬涓�涓楠�
                 videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
-                startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
-            } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
-                if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) {
-                    //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+                startRunStep(videoInspectTask);
+            } else {
+                if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+                    //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
                     startRunStep(videoInspectTask);
                 } else {
                     boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
@@ -341,12 +363,13 @@
                         ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
                     } 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(null);
+                        avit.setCurrentStepStartTime("");
                         ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
                     }
                 }
@@ -384,6 +407,7 @@
                 String recordName = cameraId + "/" + time + "/" + uuid + ".mp4";
                 cmd.setRecordBucketName("record");
                 cmd.setRecordObjectName(recordName);
+                cmd.setUploadMinio(true);
                 hikClientService.recordToMinio(cmd);
                 /*鎻掑叆宸℃璁板綍*/
                 ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();

--
Gitblit v1.9.3