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">