| | |
| | | return false; |
| | | } |
| | | |
| | | NavigateMapUtils navigateMapUtils = SpringUtils.getBean(NavigateMapUtils.class); |
| | | WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class); |
| | | WrkMast wrkMast = wrkMastMapper.selectByWorkNo(wrkNo.intValue()); |
| | | |
| | |
| | | } |
| | | |
| | | checkIOSta(commands, commandStep);//检测小车是否进出提升机输送站 |
| | | |
| | | NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); |
| | | |
| | | boolean isLock = false;//是否解锁路径 |
| | | //取出命令 |
| | |
| | | // nodes.addAll(command.getNodes()); |
| | | // } |
| | | if (nodes != null) { |
| | | boolean result = navigateMapData.writeNavigateNodeToRedisMap(nodes, false);//解锁路径 |
| | | NavigateNode targetNode = assignCommand.getNodes().get(assignCommand.getNodes().size() - 1);//最终节点 |
| | | NavigateNode node = nodes.get(nodes.size() - 1); |
| | | if (!(targetNode.getX() == node.getX() && targetNode.getY() == node.getY())) { |
| | | nodes.remove(nodes.size() - 1);//剔除尾节点 |
| | | } |
| | | boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(shuttleProtocol.getCurrentLocNo()), nodes, false);//解锁路径 |
| | | if (!result) { |
| | | return false;//解锁失败 |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | if (command.getRequest().getBody().get("requestType").equals("move")) { |
| | | ArrayList<int[]> whiteList = new ArrayList<>();//设置节点的白名单 |
| | | if (wrkMast != null && ((wrkMast.getIoType() > 100 && wrkMast.getIoType() < 200) || wrkMast.getIoType() == 11)) { |
| | | //出库任务,不检测首节点 |
| | | int[] startArr = NavigatePositionConvert.positionToXY(wrkMast.getSourceLocNo());//开始节点 |
| | | whiteList.add(startArr); |
| | | } |
| | | |
| | | //解锁过路径,只检测下一段路径是否可走(当前路径已经被锁定无需再检测) |
| | | if (isLock) { |
| | | //只检测下一段路径是否可走(当前路径已经被锁定无需再检测) |
| | | //检测路径是否可行走 |
| | | if (!checkPath(nextNodes == null ? command.getNodes() : nextNodes, null, whiteList)) { |
| | | return false; |
| | | } |
| | | }else { |
| | | //检测当前路径和下一段路径 |
| | | //检测路径是否可行走 |
| | | if (!checkPath(command.getNodes(), nextNodes, whiteList)) { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //锁定路径,锁定当前路径和下一步路径 |
| | | List<NavigateNode> nodes = command.getNodes(); |
| | | if (nextNodes != null) { |
| | | nodes.addAll(nextNodes); |
| | | } |
| | | if (nodes != null) { |
| | | boolean result = navigateMapData.writeNavigateNodeToRedisMap(nodes, true);//所使用的路径进行锁定禁用 |
| | | if (!result) { |
| | | return false;//路径锁定失败 |
| | | } |
| | | } |
| | | } |
| | | // if (command.getRequest().getBody().get("requestType").equals("move")) { |
| | | // ArrayList<int[]> whiteList = new ArrayList<>();//设置节点的白名单 |
| | | // if (wrkMast != null && ((wrkMast.getIoType() > 100 && wrkMast.getIoType() < 200) || wrkMast.getIoType() == 11)) { |
| | | // //出库任务,不检测首节点 |
| | | // int[] startArr = NavigatePositionConvert.positionToXY(wrkMast.getSourceLocNo());//开始节点 |
| | | // whiteList.add(startArr); |
| | | // } |
| | | // |
| | | // //解锁过路径,只检测下一段路径是否可走(当前路径已经被锁定无需再检测) |
| | | // if (isLock) { |
| | | // //只检测下一段路径是否可走(当前路径已经被锁定无需再检测) |
| | | // //检测路径是否可行走 |
| | | // if (!checkPath(nextNodes == null ? command.getNodes() : nextNodes, null, whiteList)) { |
| | | // return false; |
| | | // } |
| | | // }else { |
| | | // //检测当前路径和下一段路径 |
| | | // //检测路径是否可行走 |
| | | // if (!checkPath(command.getNodes(), nextNodes, whiteList)) { |
| | | // return false; |
| | | // } |
| | | // } |
| | | // |
| | | // //锁定路径,锁定当前路径和下一步路径 |
| | | // List<NavigateNode> nodes = command.getNodes(); |
| | | // if (nextNodes != null) { |
| | | // nodes.addAll(nextNodes); |
| | | // } |
| | | // if (nodes != null) { |
| | | // boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(shuttleProtocol.getCurrentLocNo()), nodes, true);//所使用的路径进行锁定禁用 |
| | | // if (!result) { |
| | | // return false;//路径锁定失败 |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | //可执行命令 |
| | | if (!write(command, assignCommand)) { |