| | |
| | | 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; |
| | |
| | | |
| | | 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); |
| | |
| | | } |
| | | |
| | | 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) |