| | |
| | | |
| | | Travel travel = travelService.getById(segment.getTravelId()); |
| | | Agv agv = agvService.getById(travel.getAgvId()); |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(travel.getAgvId()); |
| | | long endNode = segment.getEndNode(); |
| | | |
| | | // valid ---------------------------------------------------- |
| | |
| | | } |
| | | |
| | | // checkout path |
| | | Code startCode = codeService.getCacheById(agvDetail.getRecentCode()); |
| | | Code startCode = agvDetailService.getCurrentCode(travel.getAgvId()); |
| | | Code endCode = codeService.getCacheById(endNode); |
| | | long startTime = System.currentTimeMillis(); |
| | | // long startTime = System.currentTimeMillis(); |
| | | List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment); |
| | | // System.out.println("checkoutPath: " + (System.currentTimeMillis() - startTime)); |
| | | if (Cools.isEmpty(pathList)) { |
| | |
| | | insertSeg.setPosType(TaskPosDto.PosType.MOVE.toString()); |
| | | insertSeg.setState(SegmentStateType.WAITING.toString()); |
| | | if (!segmentService.save(insertSeg)) { |
| | | log.error("Segment [{}] failed to save !!!", segment.getTravelId() + " - " + segment.getSerial()); |
| | | log.error("Segment [{}] failed to save !!!", insertSeg.getTravelId() + " - " + insertSeg.getSerial()); |
| | | } |
| | | segmentList.add(insertSeg); |
| | | |
| | |
| | | interrupt = true; |
| | | } else { |
| | | if (nextStep.getEndNode() == endNode) { |
| | | |
| | | segmentList.add(nextStep); |
| | | // remove sta action seg |
| | | if (!nextStep.getPosType().equals(TaskPosDto.PosType.ORI_STA.toString()) |
| | | && !nextStep.getPosType().equals(TaskPosDto.PosType.DEST_STA.toString())) { |
| | | segmentList.add(nextStep); |
| | | } |
| | | } else { |
| | | interrupt = true; |
| | | } |
| | |
| | | |
| | | mapService.lockPath(null, pathList, agv.getUuid()); |
| | | |
| | | startTime = System.currentTimeMillis(); |
| | | // startTime = System.currentTimeMillis(); |
| | | mainService.generateAction(segment.getAgvId(), segmentList, pathList, now); |
| | | // System.out.println("generateAction: " + (System.currentTimeMillis() - startTime)); |
| | | |
| | |
| | | if (!blockVehicleDto.isAvoidable()) { |
| | | continue; |
| | | } |
| | | Long agvId = agvService.getAgvId(blockVehicleDto.getVehicle()); |
| | | // 当前vehicle正在进行避让作业 |
| | | if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(blockVehicleDto.getVehicle(), null))) { |
| | | if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(agvId, null))) { |
| | | continue; |
| | | } |
| | | // 当前vehicle正在进行滚筒输送线等待 |
| | | if (segmentService.isRollerWaiting(agvId)) { |
| | | continue; |
| | | } |
| | | return blockVehicleDto.getVehicle(); |