‘liusuyi’
2024-04-13 32174535f5cd608c87992a9cdec259a803af63e4
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;
@@ -116,7 +117,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);
    }
@@ -184,14 +185,9 @@
        }
        if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
            for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
                if (ardVideoInspectTaskStep.getId() == null) {
                    //新的步骤,添加
                    ardVideoInspectTaskStep.setId(IdUtils.simpleUUID());
                    ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep);
                } else {
                    //已有步骤,更新
                    ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep);
                }
            }
        }
    }
@@ -458,10 +454,18 @@
                    cmd.setTargetPosition(new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()});
                    cmd.setOperator("sys_patrol_inspect");
                    cmd.setExpired(step.getRecordingTime());//秒为单位
                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd).get("code").equals(200);
                    if (setTargetPosition) {
                        /*控制相机巡检成功,开始录像*/
                        cameraSdkService.recordStart(cmd);
                        //region 通知前端
                        Map<String, Object> message = new HashMap<>();
                        Map<String, String> data = new HashMap<>();
                        data.put("cameraId", cmd.getCameraId());
                        data.put("wellId", well.getWellId());
                        message.put("70000", data);
                        WebSocketUtils.sendMessageAll(message);
                        //endregion
                    } else {
                        /*控制失败,当前步骤启动时间置null*/
                        ardVideoInspectTask.setCurrentStepStartTime("");
@@ -515,13 +519,21 @@
                    cmd.setTargetPosition(new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()});
                    cmd.setOperator("sys_patrol_inspect");
                    cmd.setExpired(step.getRecordingTime());//秒为单位
                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
                    boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd).get("code").equals(200);
                    if (!setTargetPosition) {
                        /*控制失败,当前步骤启动时间置null*/
                        ardVideoInspectTask.setCurrentStepStartTime("");
                        ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
                    } else {
                        log.debug("引导成功!");
                        //region 通知前端
                        Map<String, Object> message = new HashMap<>();
                        Map<String, String> data = new HashMap<>();
                        data.put("cameraId", cmd.getCameraId());
                        data.put("wellId", well.getWellId());
                        message.put("70000", data);
                        WebSocketUtils.sendMessageAll(message);
                        //endregion
                    }
                }
            }
@@ -657,32 +669,35 @@
    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.size() > 0) {
            if ("00:00:00".equals(timeList.getFirst())) {
                timeList.removeFirst();
            } else {
                timeList.addFirst("00:00:00");
        //事件段为空,则全天作为一个时间段
        if (usedPeriods.size() == 0) {
            timeList.add("00:00:00");
            timeList.add("23:59:59");
        }else{
            for (Map p :
                    usedPeriods) {
                timeList.add((String) p.get("start_time"));
                timeList.add((String) p.get("end_time"));
            }
            //判断最后一个结束时间
            if ("23:59:59".equals(timeList.getLast())) {
                timeList.removeLast();
            } else {
                timeList.addLast("23:59:59");
            }
            //事件段为空,则全天作为一个时间段
            if (timeList.size() == 0) {
                timeList.add("00:00:00");
                timeList.add("23:59:59");
            }
            //判断第一个起始点
            if (timeList.size() > 0) {
                if ("00:00:00".equals(timeList.getFirst())) {
                    timeList.removeFirst();
                } else {
                    timeList.addFirst("00:00:00");
                }
                //判断最后一个结束时间
                if ("23:59:59".equals(timeList.getLast())) {
                    timeList.removeLast();
                } else {
                    timeList.addLast("23:59:59");
                }
            }
        }
        return timeList;
    }
}