| | |
| | | String jamAgvNo = jamVehicleList.get(0); |
| | | if (mapDataDispatcher.queryCodeListFromDynamicNode(null, jamAgvNo).size() > 1 && pathList.size() <= MIN_SLICE_PATH_LENGTH) { |
| | | pathList.clear(); |
| | | // return pathList; |
| | | } |
| | | } |
| | | |
| | |
| | | * avoidPathList include wave node and dynamic node |
| | | */ |
| | | private boolean notifyVehicleAvoid(String agvNo, String agvPosCode, List<String> avoidPathList, String sponsor, Jam jam) { |
| | | |
| | | assert avoidPathList.size() >= 2; |
| | | Agv agv = agvService.selectByUuid(agvNo); |
| | | if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) { |
| | | log.warn("{}号车辆避让失败,存在进行中任务!!!", agvNo); |
| | | return false; |
| | | } |
| | | |
| | | int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, agvPosCode); |
| | | |
| | | RetreatNavigateNode startNode = new RetreatNavigateNode(startMapIdx[0], startMapIdx[1], agvPosCode); |
| | | |
| | | assert avoidPathList.size() >= 2; |
| | | RetreatNavigateNode finalNode = retreatNavigateService.execute(agvNo, startNode, avoidPathList, sponsor, jam); |
| | | if (null == finalNode) { |
| | | log.warn("{}号车辆避让失败,检索避让点失败!!!", agvNo); |
| | | return false; |
| | | } |
| | | |
| | | Date now = new Date(); |
| | | String endCodeData = finalNode.getCodeData(); |
| | | Agv agv = agvService.selectByUuid(agvNo); |
| | | Code endCode = codeService.selectByData(endCodeData); |
| | | |
| | | jam.setAvoCode(endCode.getId()); |
| | | |
| | | if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) { |
| | | log.warn("{}号车辆避让失败,存在进行中任务!!!", agvNo); |
| | | return false; |
| | | } |
| | | |
| | | List<Segment> waitingSegList = segmentService.getByAgvAndState(agv.getId(), SegmentStateType.WAITING.toString()); |
| | | if (!Cools.isEmpty(waitingSegList)) { |
| | | |
| | | // revert |
| | | Date now = new Date(); |
| | | for (Segment seg : waitingSegList) { |
| | | seg.setState(SegmentStateType.INIT.toString()); |
| | | seg.setUpdateTime(now); |