自动化立体仓库 - WCS系统
#
Junjie
2023-08-02 88a1fbd68cfb38c921fbf83c92d17b38a4a5975a
src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -222,10 +222,41 @@
    /**
     * 获取中间点到目标点行走距离
     */
    public static Integer getMiddleToDistDistance(List<NavigateNode> path, Integer distance) {
        //中间路径
        NavigateNode middlePath = path.get(path.size() - distance);
        return middlePath.getMoveDistance();
    public static Integer getMiddleToDistDistance(List<NavigateNode> path, NavigateNode middlePath) {
        //最后一条节点不计算进行走距离
        NavigateNode lastPath = path.get(path.size() - 1);
        //总距离
        int allDistance = 0;
        boolean flag = false;
        for (NavigateNode navigateNode : path) {
            if (!flag && navigateNode.equals(middlePath)) {
                flag = true;
            }
            if (navigateNode.equals(lastPath)) {
                continue;//最后一条节点不计算进行走距离
            }
            if (flag) {
                allDistance += navigateNode.getMoveDistance();
            }
        }
        return allDistance;
    }
    /**
     * 检测路径是否可用(可走)
     */
    public static boolean checkPathIsAvailable(List<NavigateNode> path, Integer shuttleNo, Integer lev) {
        NavigateSolution solution = new NavigateSolution(NavigationMapType.DFX.id, lev, null, Utils.getShuttlePoints(shuttleNo, lev));//获取无白名单地图(该地图包含小车坐标)
        int[][] map = solution.map;
        for (NavigateNode node : path) {
            int value = map[node.getX()][node.getY()];
            if (value != 0 && value != 3) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {