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 |  313 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 221 insertions(+), 92 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 3f1c570..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
@@ -5,6 +5,7 @@
 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;
@@ -12,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;
@@ -37,6 +40,8 @@
     @Resource
     private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
     @Resource
+    private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper;
+    @Resource
     private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
     @Resource
     private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper;
@@ -46,19 +51,19 @@
     private IHikClientService hikClientService;
 
     @PostConstruct
-    public void initTask()
-    {
+    public void initTask() {
         List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
-        /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�*/
-        for(ArdVideoInspectTask ardVideoInspectTask:ardVideoInspectTasks)
-        {
-            if(ardVideoInspectTask.getInspectMode().equals("鎵嬪姩"))
-            {
+        for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) {
+            /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/
+            if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) {
                 ardVideoInspectTask.setMenualSwitch("鍏�");
-                ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
             }
+            ardVideoInspectTask.setCurrentStepId("");
+            ardVideoInspectTask.setCurrentStepStartTime("");
+            ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
         }
     }
+
     /**
      * 鏌ヨ瑙嗛宸℃浠诲姟
      *
@@ -109,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);
     }
@@ -170,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);
+                }
             }
         }
     }
@@ -184,35 +191,76 @@
      */
     @Override
     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);
+        try {
+            ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+            if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
+                return;
             }
-        } 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);
+            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);
+                }
+            } 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);
+                    }
+                }
+            }
+        } catch (Exception ex) {
+            log.error("鎵嬪姩宸℃寮傚父锛�" + ex.getMessage());
+        }
+    }
+
+    /**
+     * 鍒ゆ柇褰撳墠鎵嬪姩浠诲姟鑳藉惁寮�鍚�
+     */
+    @Override
+    public boolean isEnablemanualTask(String TaskId) {
+        /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
+        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) {
+                if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
+                    continue;
+                }
+                if (!menualCameraId.contains(task.getCameraId())) {
+                    menualCameraId.add(task.getCameraId());
                 }
             }
         }
+        /*鍒ゆ柇鐩告満鏄惁宸茬粡琚汉鎵嬪姩鎺у埗*/
+        ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+        if (StringUtils.isNull(videoInspectTask)) {
+            return false;
+        }
+        String cameraId = videoInspectTask.getCameraId();
+        if (StringUtils.isEmpty(cameraId)) {
+            return false;
+        }
+        if (menualCameraId.contains(cameraId)) {
+            /*濡傛灉褰撳墠浠诲姟鍏宠仈鐨勭浉鏈哄凡缁忔湁浜烘墜鍔ㄦ帶鍒讹紝鍒欎笉鍏佽鎺у埗*/
+            return false;
+        }
+        return true;
     }
 
     /**
@@ -220,48 +268,97 @@
      */
     @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();
-                String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
-                if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
-                    //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
-                    videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
-                    startRunStep(videoInspectTask);
-                } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
-                    if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
-                        //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
-                        startRunStep(videoInspectTask);
-                    } else {
-                        //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
-                        boolean expird = isExpirdStep(videoInspectTask);
-                        if (expird) {
-                            //鍋滄褰曞儚
-                            stopRunStep(videoInspectTask);
-                            //鍒囨崲姝ラ
-                            String nextStepId = changeNextStep(videoInspectTask);
-                            //寮�濮嬩笅涓�姝ラ
-                            videoInspectTask.setCurrentStepId(nextStepId);
-                            startRunStep(videoInspectTask);
-                        }
+        try {
+            /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
+            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) {
+                    if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
+                        continue;
+                    }
+                    if (!menualCameraId.contains(task.getCameraId())) {
+                        menualCameraId.add(task.getCameraId());
                     }
                 }
             }
+
+            /*鎵弿鎵�鏈夎嚜鍔ㄤ换鍔�*/
+            ArdVideoInspectTask autoTask = new ArdVideoInspectTask();
+            autoTask.setInspectMode("鑷姩");
+            List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(autoTask);
+            for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
+                /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
+                boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
+                if (timeCompare) {
+                    if (menualCameraId.contains(videoInspectTask.getCameraId())) {
+                        /*鑻ュ綋鍓嶇浉鏈烘鍦ㄦ湁浠诲姟鎵嬪姩鎵ц锛屽垯涓嶆墽琛�*/
+                        continue;
+                    }
+                    /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
+                    List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
+                    if (ardVideoInspectTaskStepList.size() == 0) {
+                        continue;
+                    }
+                    videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+                    String currentStepId = videoInspectTask.getCurrentStepId();
+                    String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+                    if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
+                        //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
+                        videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+                        startRunStep(videoInspectTask);
+                    } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+                        if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
+                            //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+                            startRunStep(videoInspectTask);
+                        } else {
+                            //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
+                            boolean expird = isExpirdStep(videoInspectTask);
+                            if (expird) {
+                                //鍋滄褰曞儚
+                                stopRunStep(videoInspectTask);
+                                //鍒囨崲姝ラ
+                                String nextStepId = changeNextStep(videoInspectTask);
+                                //寮�濮嬩笅涓�姝ラ
+                                videoInspectTask.setCurrentStepId(nextStepId);
+                                startRunStep(videoInspectTask);
+                            }
+                        }
+                    }
+                } 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;
+                    }
+                    /*杩囨湡鐨勪换鍔℃竻绌哄綋鍓嶆楠や俊鎭�*/
+                    videoInspectTask.setCurrentStepId("");
+                    videoInspectTask.setCurrentStepStartTime("");
+                    ardVideoInspectTaskMapper.updateArdVideoInspectTask(videoInspectTask);
+                }
+            }
+        } catch (Exception ex) {
+            log.error("鑷姩宸℃浠诲姟寮傚父锛�" + ex.getMessage());
         }
     }
+
     /**
      * 鑷姩鎵嬪姩鍚堝苟锛屾壂搴撴柟寮忥紝鐩墠涓嶄娇鐢�
      */
@@ -288,12 +385,12 @@
             videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
             String currentStepId = videoInspectTask.getCurrentStepId();//褰撳墠姝ラid
             String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();//褰撳墠姝ラ鍚姩鏃堕棿
-            if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+            if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
                 //寮�濮嬬涓�涓楠�
                 videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
                 startRunStep(videoInspectTask);
             } else {
-                if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+                if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
                     //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
                     startRunStep(videoInspectTask);
                 } else {
@@ -352,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);
                     }
                 }
             }
@@ -378,7 +474,6 @@
             log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
         }
     }
-
     //姝ラ鍋滄
     private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
         try {
@@ -409,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());
@@ -493,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