| | |
| | | @Service |
| | | public class TransferStationHandler { |
| | | |
| | | private static final long LOAD_DELAY_MS = 15000L; // load ( inbound ) delay timeout |
| | | private static final long LOAD_DELAY_MS = 60000L; // load ( inbound ) delay timeout |
| | | private static final long PLACE_DELAY_MS = 15000L; // place ( outbound ) delay timeout |
| | | |
| | | @Autowired |
| | |
| | | private CodeService codeService; |
| | | @Autowired |
| | | private StaService staService; |
| | | @Autowired |
| | | private TravelService travelService; |
| | | |
| | | /** |
| | | * 取货(入库):在取完第一个货的时候,担心滚筒输送线会有下一个货物,所以建议AGV在原地等待一段时间 |
| | |
| | | if (prePosType.equals(TaskPosDto.PosType.ORI_STA)) { |
| | | |
| | | // 背篓未满才等 |
| | | Integer backpack = agvService.getBackpack(agvId); |
| | | List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId); |
| | | if (usedBackpacks.size() >= backpack) { |
| | | Integer backpackCap = agvService.getBackpack(agvId); |
| | | List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId); // todo:vincent 拿不到数据 |
| | | if (usedBackpacks.size() >= backpackCap) { |
| | | return false; |
| | | } |
| | | |
| | | // sign waiting |
| | | if (currSeg.getRollerWaiting() == 0) { |
| | | currSeg.setRollerWaiting(1); |
| | | segmentService.updateById(currSeg); |
| | | } |
| | | // mark roller waiting |
| | | travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId()); |
| | | // if (currSeg.getRollerWaiting() == 0) { |
| | | // currSeg.setRollerWaiting(1); |
| | | // segmentService.updateById(currSeg); |
| | | // } |
| | | |
| | | // timeout |
| | | return (now - preEndTime) < LOAD_DELAY_MS; |
| | |
| | | return false; |
| | | } |
| | | |
| | | // sign waiting |
| | | if (currSeg.getRollerWaiting() == 0) { |
| | | currSeg.setRollerWaiting(1); |
| | | segmentService.updateById(currSeg); |
| | | } |
| | | // mark roller waiting |
| | | travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId()); |
| | | // if (currSeg.getRollerWaiting() == 0) { |
| | | // currSeg.setRollerWaiting(1); |
| | | // segmentService.updateById(currSeg); |
| | | // } |
| | | |
| | | // timeout |
| | | return (now - preEndTime) < PLACE_DELAY_MS; |