| | |
| | | return; |
| | | } |
| | | |
| | | List<Long> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList()); |
| | | // List<Long> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList()); |
| | | for (Task t : taskList) { |
| | | String resultAgvNo = allocateService.execute(t |
| | | // inbound |
| | | , (task, agvNo) -> { |
| | | , (task, agvNo, sta) -> { |
| | | Long agvId = agvService.getAgvId(agvNo); |
| | | |
| | | List<Travel> travelList = travelService.list(new LambdaQueryWrapper<Travel>() |
| | | .eq(Travel::getAgvId, agvId) |
| | | .eq(Travel::getState, TravelStateType.RUNNING.toString()) |
| | | .orderByDesc(Travel::getCreateTime)); |
| | | if (Cools.isEmpty(travelList)) { |
| | | throw new BusinessException("[Agv: " + agvNo + "]allocate inbound failed to find travel"); |
| | | } |
| | | Travel travel = travelList.get(0); |
| | | |
| | | List<Segment> currSegments = segmentService.list(new LambdaQueryWrapper<Segment>() |
| | | .eq(Segment::getAgvId, agvId) |
| | | .eq(Segment::getTravelId, travel.getId()) |
| | | ); |
| | | // load segment |
| | | Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA); |
| | | |
| | | |
| | | // place segment |
| | | |
| | | task.setAgvId(agvId); |
| | | task.setTaskSts(TaskStsType.ASSIGN.val()); |
| | | task.setIoTime(now); |
| | | task.setUpdateTime(now); |
| | | if (!taskService.updateById(task)) { |
| | | throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update"); |
| | | } |
| | | } |
| | | // normal |
| | | , (task, agvNo) -> { |
| | | if (Cools.isEmpty(agvNo)) { |
| | | return; |
| | | } |
| | | task.setAgvId(agvService.getAgvId(agvNo)); |
| | | , (task, agvNo, sta) -> { |
| | | Long agvId = agvService.getAgvId(agvNo); |
| | | task.setAgvId(agvId); |
| | | task.setTaskSts(TaskStsType.WAITING.val()); |
| | | task.setIoTime(now); |
| | | task.setUpdateTime(now); |