| | |
| | | task.setAgvId(agv.getId()); |
| | | task.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); |
| | | List<Task> lastTasks = taskService.list(new LambdaQueryWrapper<Task>().orderByDesc(Task::getId)); |
| | | task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum())); |
| | | task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum())); // todo |
| | | |
| | | task.setTaskType(param.getTaskMode().val()); |
| | | task.setTaskSts(TaskStsType.WAITING.val()); |
| | |
| | | private AgvAreaDispatcher agvAreaDispatcher; |
| | | @Autowired |
| | | private SegmentService segmentService; |
| | | @Autowired |
| | | private TravelService travelService; |
| | | |
| | | /** |
| | | * get available agv list which is idle |
| | |
| | | // if (taskCnt == 0) { |
| | | // continue; |
| | | // } |
| | | // in TransferStationHandler.hasDelayAtSta |
| | | |
| | | // in TransferStationHandler.hasDelayAtSta todo |
| | | Travel runningTravel = travelService.findRunningTravel(agvId); |
| | | if (null == runningTravel) { |
| | | continue; |
| | | } |
| | | segmentService.hasRollerWaitingNow(runningTravel.getId(), agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA) |
| | | Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA); |
| | | if (null == currSeg) { |
| | | continue; |
| | |
| | | |
| | | List<Integer> selectUsedBackpacks(Long travelId, Long agvId); |
| | | |
| | | Segment hasRollerWaitingNow(Long travelId, Long agvId, Long codeId, TaskPosDto.PosType posType); |
| | | |
| | | Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType); |
| | | |
| | | Boolean isRollerWaiting(Long agvId); |
| | |
| | | |
| | | void finishAll(Long agvId); |
| | | |
| | | Travel findRunningTravel(Long agvId); |
| | | |
| | | } |
| | |
| | | return this.baseMapper.selectUsedBackpacks(agvId, travelId); |
| | | } |
| | | |
| | | @Override |
| | | @Override // todo |
| | | public Segment hasRollerWaitingNow(Long travelId, Long agvId, Long codeId, TaskPosDto.PosType posType) { |
| | | List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>() |
| | | .eq(Segment::getTravelId, travelId) |
| | | .eq(Segment::getAgvId, agvId) |
| | | .eq(Segment::getState, SegmentStateType.WAITING.toString()) |
| | | .eq(Segment::getEndNode, codeId) |
| | | .eq(Segment::getPosType, posType.toString()) |
| | | .eq(Segment::getRollerWaiting, 1) |
| | | .orderByDesc(Segment::getId) |
| | | ); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | @Override //todo |
| | | public Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType) { |
| | | List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>() |
| | | .eq(Segment::getAgvId, agvId) |
| | |
| | | return segments.get(0); |
| | | } |
| | | |
| | | @Override |
| | | @Override // todo |
| | | public Boolean isRollerWaiting(Long agvId) { |
| | | return 0 < this.count(new LambdaQueryWrapper<Segment>() |
| | | .eq(Segment::getAgvId, agvId) |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public Travel findRunningTravel(Long agvId) { |
| | | return this.getOne(new LambdaQueryWrapper<Travel>() |
| | | .eq(Travel::getAgvId, agvId) |
| | | .eq(Travel::getState, TravelStateType.RUNNING.toString()) |
| | | .orderByDesc(Travel::getCreateTime) |
| | | .last("limit 1") |
| | | ); |
| | | } |
| | | |
| | | } |