| | |
| | | |
| | | List<Long> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList()); |
| | | for (Task task : taskList) { |
| | | Agv agv = allocateService.execute(task, () => { |
| | | |
| | | String agvNo = allocateService.execute(task, new AllocateSupport() { |
| | | @Override |
| | | public void success(Task task, String agvNo) { |
| | | if (Cools.isEmpty(agvNo)) { |
| | | return; |
| | | } |
| | | task.setAgvId(agvService.getAgvId(agvNo)); |
| | | task.setTaskSts(TaskStsType.WAITING.val()); |
| | | task.setIoTime(now); |
| | | task.setUpdateTime(now); |
| | | if (!taskService.updateById(task)) { |
| | | throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update"); |
| | | } |
| | | } |
| | | }); |
| | | if (null == agv) { |
| | | if (Cools.isEmpty(agvNo)) { |
| | | // log.warn("Task[{}] has an issue, because it failed to check out agv which is idle...", task.getSeqNum()); |
| | | continue; |
| | | } |
| | | task.setAgvId(agv.getId()); |
| | | task.setAgvId(agvService.getAgvId(agvNo)); |
| | | task.setTaskSts(TaskStsType.WAITING.val()); |
| | | task.setIoTime(now); |
| | | task.setUpdateTime(now); |