| | |
| | | // task |
| | | for (Task task : taskList) { |
| | | task.setTaskSts(TaskStsType.ASSIGN.val()); |
| | | task.setStartTime(now); |
| | | task.setUpdateTime(now); |
| | | if (!taskService.updateById(task)) { |
| | | throw new BusinessException(task.getUuid() + "任务更新失败"); |
| | |
| | | * 根据分片生成动作 ( 车辆可能已经做过一些任务了,正在等待下一段任务 ) |
| | | */ |
| | | @Transactional |
| | | public synchronized void generateAction(Long agvId, List<Segment> segmentList, List<String> pathList) { |
| | | public synchronized void generateAction(Long agvId, List<Segment> segmentList, List<String> pathList, Date algoStartTime) { |
| | | try { |
| | | if (Cools.isEmpty(agvId, segmentList)) { return; } |
| | | Date now = new Date(); |
| | |
| | | assert agvSpeedType != null; |
| | | |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(agvId); |
| | | assert agvDetail != null; |
| | | |
| | | List<Action> actionList = new ArrayList<>(); |
| | | // start node |
| | |
| | | nextDirection = workDirection; |
| | | reverse = true; |
| | | } |
| | | if (!lastDirection.equals(nextDirection) || actionList.size() == 0) { |
| | | if (!lastDirection.equals(nextDirection) || actionList.isEmpty()) { |
| | | // turn |
| | | actionList.add(new Action( |
| | | null, // 编号 |
| | |
| | | item.setGroupId(groupId); |
| | | item.setState(SegmentStateType.RUNNING.toString()); |
| | | item.setUpdateTime(now); |
| | | if (null != algoStartTime) { |
| | | item.setAlgoTime((int) (now.getTime() - algoStartTime.getTime())); |
| | | } |
| | | if (!segmentService.updateById(item)) { |
| | | throw new CoolException("更新Segment失败"); |
| | | } |