自动化立体仓库 - WCS系统
Junjie
2024-11-23 e039dbc9aa07fabb13be9673cbb7dfccfecda870
src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -1,8 +1,10 @@
package com.zy.common.utils;
import com.core.common.SpringUtils;
import com.zy.common.model.NavigateNode;
import java.util.ArrayList;
import java.util.List;
import java.util.PriorityQueue;
/**
@@ -16,15 +18,20 @@
    public NavigateSolution() {
        //载入地图
        NavigateMapData mapData = new NavigateMapData();
        int[][] data = mapData.getData();
        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
        navigateMapData.setLev(1);
        int[][] data = navigateMapData.getData();
        this.map = data;
    }
    public NavigateSolution(Integer mapType) {
        //载入地图
        NavigateMapData mapData = new NavigateMapData();
        int[][] data = mapData.getData(mapType);
    public NavigateSolution(Integer mapType, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
        //载入地图指定层高地图
        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
        navigateMapData.setLev(lev);
        int[][] data = navigateMapData.getDataFromRedis(mapType, whitePoints, shuttlePoints);
        if (data == null) {
            data = navigateMapData.getData(mapType, whitePoints, shuttlePoints);
        }
        this.map = data;
    }
@@ -135,8 +142,8 @@
            }
        }
        if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4) {
            //子轨和母轨、输送线才能进行上下移动
        if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5) {
            //子轨和母轨、输送线、充电桩才能进行上下移动
            if (is_valid(x + 1, y))
            {
                NavigateNode node = new NavigateNode(x + 1, y);
@@ -204,7 +211,7 @@
        拿到父节点和下一节点
        通过判断父节点和下一节点的x数据和y数据都不相同时,则表明当前坐标是一个拐点
         */
        return 2;
        return 10;
    }
    //------------------A*启发函数-end------------------//