From 845956ecf4749c2d6c278bdc9638efb934a63419 Mon Sep 17 00:00:00 2001
From: zhangjian <zhangjianrock@163.com>
Date: 星期六, 03 六月 2023 11:44:49 +0800
Subject: [PATCH] 视频巡检任务 单独更新

---
 ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java         |    3 +
 ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java       |   22 +++---
 ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java            |    2 
 ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java    |   42 ++++++++------
 ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml                  |    7 ++
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |   51 ++++++++++++++--
 ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml              |    3 
 7 files changed, 92 insertions(+), 38 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
index eca36f8..b62c1b4 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -47,6 +48,8 @@
     private HikClientServiceImpl sdk;
     @Resource
     private IArdCamerasService ardCamerasService;
+    @Resource
+    private IArdVideoInspectTaskService ardVideoInspectTaskService;
 
     /**
      * 鏌ヨ鐩告満璁惧鍒楄〃
@@ -99,9 +102,7 @@
             log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛锛�" + camera.getLoginId());
             camera.setUpdateBy(SecurityUtils.getUsername());
             ardCamerasService.updateArdCameras(camera);
-        }
-        else
-        {
+        } else {
             log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触锛�" + camera.getLoginId());
         }
         return toAjax(ardCamerasService.insertArdCameras(camera));
@@ -116,17 +117,14 @@
     @PutMapping
     public AjaxResult edit(@RequestBody ArdCameras camera) {
         int i = ardCamerasService.updateArdCameras(camera);
-        if(i>0)
-        {
+        if (i > 0) {
             ArdCameras cameras = ardCamerasService.selectArdCamerasById(camera.getId());
             sdk.loginOut(cameras.getId());
             camera = sdk.login(cameras);
             if (camera.getLoginId() >= 0) {
                 log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛锛�" + camera.getLoginId());
                 ardCamerasService.updateArdCameras(camera);
-            }
-            else
-            {
+            } else {
                 log.info("鐩告満" + camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触锛�" + camera.getLoginId());
             }
         }
@@ -142,10 +140,11 @@
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable String[] ids) {
         for (String id : ids) {
-               sdk.loginOut(id);
-            }
+            sdk.loginOut(id);
+        }
         return toAjax(ardCamerasService.deleteArdCamerasByIds(ids));
     }
+
     @GetMapping("/options")
     @ApiOperation("閫夋嫨鐩告満鏁版嵁")
     public List options(ArdCameras ardCameras) {
@@ -156,7 +155,8 @@
             option.put("value", item.getId());
             option.put("label", item.getName());
             option.put("channel", item.getChannel());
-           // option.put("description", item.getOilProduction());
+            List timeList = ardVideoInspectTaskService.getCameraIdleTimeList(item.getId());
+            option.put("idleTimeList", timeList);//绌洪棽鏃堕棿娈�
             options.add(option);
         }
         return options;
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java
index d36f021..f86dbfb 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java
@@ -25,14 +25,13 @@
 
 /**
  * 瑙嗛宸℃浠诲姟Controller
- * 
+ *
  * @author ruoyi
  * @date 2023-05-30
  */
 @RestController
 @RequestMapping("/inspect/task")
-public class ArdVideoInspectTaskController extends BaseController
-{
+public class ArdVideoInspectTaskController extends BaseController {
     @Autowired
     private IArdVideoInspectTaskService ardVideoInspectTaskService;
 
@@ -41,8 +40,7 @@
      */
     @PreAuthorize("@ss.hasPermi('inspect:task:list')")
     @GetMapping("/list")
-    public TableDataInfo list(ArdVideoInspectTask ardVideoInspectTask)
-    {
+    public TableDataInfo list(ArdVideoInspectTask ardVideoInspectTask) {
         startPage();
         List<ArdVideoInspectTask> list = ardVideoInspectTaskService.selectArdVideoInspectTaskList(ardVideoInspectTask);
         return getDataTable(list);
@@ -54,8 +52,7 @@
     @PreAuthorize("@ss.hasPermi('inspect:task:export')")
     @Log(title = "瑙嗛宸℃浠诲姟", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ArdVideoInspectTask ardVideoInspectTask)
-    {
+    public void export(HttpServletResponse response, ArdVideoInspectTask ardVideoInspectTask) {
         List<ArdVideoInspectTask> list = ardVideoInspectTaskService.selectArdVideoInspectTaskList(ardVideoInspectTask);
         ExcelUtil<ArdVideoInspectTask> util = new ExcelUtil<ArdVideoInspectTask>(ArdVideoInspectTask.class);
         util.exportExcel(response, list, "瑙嗛宸℃浠诲姟鏁版嵁");
@@ -66,10 +63,22 @@
      */
     @PreAuthorize("@ss.hasPermi('inspect:task:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") String id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") String id) {
         return success(ardVideoInspectTaskService.selectArdVideoInspectTaskById(id));
     }
+
+/*
+    */
+/**
+     * 鑾峰彇瑙嗛宸℃浠诲姟璇︾粏淇℃伅
+     *//*
+
+    @PreAuthorize("@ss.hasPermi('inspect:task:edit')")
+    @GetMapping(value = "/getTaskUsedCameraPeriods")
+    public AjaxResult getTaskUsedCameraPeriods(String cameraId) {
+        return success(ardVideoInspectTaskService.getTaskUsedCameraPeriods(cameraId));
+    }
+*/
 
     /**
      * 鏂板瑙嗛宸℃浠诲姟
@@ -77,8 +86,7 @@
     @PreAuthorize("@ss.hasPermi('inspect:task:add')")
     @Log(title = "瑙嗛宸℃浠诲姟", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody ArdVideoInspectTask ardVideoInspectTask)
-    {
+    public AjaxResult add(@RequestBody ArdVideoInspectTask ardVideoInspectTask) {
         ardVideoInspectTask.setId(UUID.randomUUID().toString());
         return toAjax(ardVideoInspectTaskService.insertArdVideoInspectTask(ardVideoInspectTask));
     }
@@ -89,18 +97,17 @@
     @PreAuthorize("@ss.hasPermi('inspect:task:edit')")
     @Log(title = "瑙嗛宸℃浠诲姟", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody ArdVideoInspectTask ardVideoInspectTask)
-    {
+    public AjaxResult edit(@RequestBody ArdVideoInspectTask ardVideoInspectTask) {
         return toAjax(ardVideoInspectTaskService.updateArdVideoInspectTask(ardVideoInspectTask));
     }
+
     /**
      * 鍙慨鏀硅棰戝贰妫�浠诲姟,涓嶆洿鏂版楠�
      */
     @PreAuthorize("@ss.hasPermi('inspect:task:edit')")
     @Log(title = "鍙慨鏀硅棰戝贰妫�浠诲姟,涓嶆洿鏂版楠�", businessType = BusinessType.UPDATE)
     @PostMapping("/update")
-    public AjaxResult updateArdVideoInspectTaskSingle(@RequestBody ArdVideoInspectTask ardVideoInspectTask)
-    {
+    public AjaxResult updateArdVideoInspectTaskSingle(@RequestBody ArdVideoInspectTask ardVideoInspectTask) {
         return toAjax(ardVideoInspectTaskService.updateArdVideoInspectTaskSingle(ardVideoInspectTask));
     }
 
@@ -109,9 +116,8 @@
      */
     @PreAuthorize("@ss.hasPermi('inspect:task:remove')")
     @Log(title = "瑙嗛宸℃浠诲姟", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable String[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
         return toAjax(ardVideoInspectTaskService.deleteArdVideoInspectTaskByIds(ids));
     }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java b/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java
index 7de26c1..d7f98e1 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java
@@ -84,4 +84,6 @@
      * @return 缁撴灉
      */
     public int deleteArdVideoInspectTaskStepByTaskId(String id);
+
+    public List getTaskUsedCameraPeriods(String cameraId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
index ba1fe73..7f63b69 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
@@ -85,4 +85,7 @@
      * 宸℃浠诲姟
      */
     public void taskRun();
+    //鑾峰彇鐩告満宸蹭娇鐢ㄦ椂娈�
+    public List getTaskUsedCameraPeriods(String cameraId);
+    public List getCameraIdleTimeList(String cameraId);
 }
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 c35cc97..aecf1ad 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,7 +2,6 @@
 
 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;
@@ -13,6 +12,7 @@
 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 lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.utils.StringUtils;
@@ -37,6 +37,8 @@
 public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
     @Resource
     private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
+    @Resource
+    private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper;
     @Resource
     private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
     @Resource
@@ -108,7 +110,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 +171,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);
+                }
             }
         }
     }
@@ -566,4 +570,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;
+    }
 }
diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
index f98fe8e..8b9dc65 100644
--- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
@@ -155,4 +155,11 @@
             ( #{item.taskId}, #{item.deptId}, #{item.userId},  #{item.orderNumber}, #{item.recordingTime}, #{item.wellId})
         </foreach>
     </insert>
+
+    <!--鏌ヨ浠诲姟涓浉鏈哄凡浣跨敤鏃舵-->
+    <select id="getTaskUsedCameraPeriods" parameterType="String" resultType="java.util.HashMap">
+        select t.start_time,t.end_time from ard_video_inspect_task t
+        where t.camera_id=#{startMonth}
+        ORDER BY t.start_time
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml
index 7cb49a8..a97c646 100644
--- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml
+++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml
@@ -62,12 +62,11 @@
         <trim prefix="SET" suffixOverrides=",">
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="userId != null">user_id = #{userId},</if>
-            <if test="id != null">id = #{id},</if>
             <if test="orderNumber != null">order_number = #{orderNumber},</if>
             <if test="recordingTime != null">recording_time = #{recordingTime},</if>
             <if test="wellId != null">well_id = #{wellId},</if>
         </trim>
-        where task_id = #{taskId}
+        where id = #{id}
     </update>
 
     <delete id="deleteArdVideoInspectTaskStepByTaskId" parameterType="String">

--
Gitblit v1.9.3