#
Junjie
2024-04-30 d66dc4c24233969c7649692aa37c53a8ad4c272c
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.utils;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wcs.core.model.NavigateNode;
import java.util.ArrayList;
@@ -18,14 +19,16 @@
    public NavigateSolution() {
        //载入地图
        NavigateMapData mapData = new NavigateMapData();
        NavigateMapData mapData = SpringUtils.getBean(NavigateMapData.class);
        mapData.setLev(1);
        int[][] data = mapData.getData();
        this.map = data;
    }
    public NavigateSolution(Integer mapType, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
        //载入地图指定层高地图
        NavigateMapData mapData = new NavigateMapData(lev);
        NavigateMapData mapData = SpringUtils.getBean(NavigateMapData.class);
        mapData.setLev(lev);
        int[][] data = mapData.getDataFromRedis(mapType, whitePoints, shuttlePoints);
        if (data == null) {
            data = mapData.getData(mapType, whitePoints, shuttlePoints);
@@ -158,19 +161,23 @@
    }
    public boolean is_valid(int x, int y) {
        // 如果结点的位置小于0,则不合法
        if (map[x][y] < 0) return false;
        for (NavigateNode node : Exist) {
            //如果结点出现过,不合法
            if (node.getX() == x && node.getY() == y) {
                return false;
        try {
            // 如果结点的位置小于0,则不合法
            if (map[x][y] < 0) return false;
            for (NavigateNode node : Exist) {
                //如果结点出现过,不合法
                if (node.getX() == x && node.getY() == y) {
                    return false;
                }
                if (is_exist(new NavigateNode(x, y))) {
                    return false;
                }
            }
            if (is_exist(new NavigateNode(x, y))) {
                return false;
            }
            //以上情况都没有则合法
            return true;
        } catch (Exception e) {
            return false;
        }
        //以上情况都没有则合法
        return true;
    }
    public boolean is_exist(NavigateNode node)