| | |
| | | int backpackLev = 0; |
| | | int backpack = agvService.getBackpack(agvId); |
| | | List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId); |
| | | for (int lev = 0; lev < backpack; lev++) { |
| | | for (int lev = 1; lev <= backpack; lev++) { |
| | | if (!usedBackpacks.contains(lev)) { |
| | | backpackLev = lev; |
| | | break; |
| | |
| | | // place segment |
| | | TaskTypeType taskType = Objects.requireNonNull(TaskTypeType.get(task.getTaskTypeEl())); |
| | | TaskPosDto.PosType posType; |
| | | Code endCode; |
| | | Long endCodeId; |
| | | switch (taskType) { |
| | | case STA_TO_LOC: |
| | | posType = TaskPosDto.PosType.DEST_LOC; |
| | | Loc destLoc = locService.getById(task.getDestLoc()); |
| | | endCode = codeService.getCacheById(destLoc.getCode()); |
| | | endCodeId = destLoc.getCode(); |
| | | break; |
| | | case STA_TO_STA: |
| | | posType = TaskPosDto.PosType.DEST_STA; |
| | | Sta destSta = staService.getById(task.getDestSta()); |
| | | endCode = codeService.getCacheById(destSta.getCode()); |
| | | endCodeId = destSta.getCode(); |
| | | break; |
| | | default: |
| | | throw new BusinessException("[Agv:" + agvNo + "] allocate inbound only supports STA_TO_LOC/STA_TO_STA"); |
| | |
| | | placeSeg.setAgvId(agvId); |
| | | placeSeg.setTaskId(task.getId()); |
| | | placeSeg.setSerial(); |
| | | placeSeg.setEndNode(endCode.getId()); |
| | | placeSeg.setEndNode(endCodeId); |
| | | placeSeg.setPosType(posType.toString()); |
| | | placeSeg.setState(SegmentStateType.INIT.toString()); |
| | | loadSeg.setBackpack(backpackLev); |
| | | placeSeg.setBackpack(backpackLev); |
| | | placeSeg.setCreateTime(now); |
| | | placeSeg.setUpdateTime(now); |
| | | if (!segmentService.save(placeSeg)) { |