| | |
| | | int backpackLev = 0; |
| | | int backpack = agvService.getBackpack(agvId); |
| | | List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId); |
| | | if (usedBackpacks.size() == backpackLev) { |
| | | if (usedBackpacks.size() >= backpack) { |
| | | throw new CoolException("[Agv:" + agvNo + "] allocate inbound segment failed: no idle backpack to use"); |
| | | } |
| | | for (int lev = 1; lev <= backpack; lev++) { |
| | |
| | | throw new BusinessException("failed to locate new destination in sorted list"); |
| | | } |
| | | |
| | | // 后继点 |
| | | TaskPosDto afterTaskPos = ((idx + 1) < destPosList.size()) ? destPosList.get(idx + 1) : null; |
| | | // 后继点 todo |
| | | if (idx + 1 == destPosList.size()) { |
| | | placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1; |
| | | } else { |
| | | TaskPosDto afterTaskPos = destPosList.get(idx); |
| | | Segment afterSeg = destSegList.stream() |
| | | .filter(destSeg -> Objects.equals(destSeg.getId(), afterTaskPos.getSegId())) |
| | | .findFirst() |
| | | .orElse(null); |
| | | if (null == afterSeg) { |
| | | placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1; |
| | | } else { |
| | | placeSegSerial = afterSeg.getSerial(); |
| | | } |
| | | } |
| | | |
| | | // todo |
| | | TaskPosDto afterTaskPos = (idx + 1) <= destPosList.size() ? destPosList.get(idx) : null; |
| | | if (null == afterTaskPos) { |
| | | // loadSeg is the last one |
| | | placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1; |