zhangjian
2023-06-03 845956ecf4749c2d6c278bdc9638efb934a63419
视频巡检任务 单独更新
已修改7个文件
130 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/controller/ArdVideoInspectTaskController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/mapper/ArdVideoInspectTaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskStepMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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));
    }
}
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);
}
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);
}
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;
    }
}
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>
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">