| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.framework.common.SpringUtils; |
| | | import com.zy.asrs.framework.exception.CoolException; |
| | | import com.zy.asrs.wcs.core.model.NavigateNode; |
| | | import com.zy.asrs.wcs.core.model.enums.MapNodeType; |
| | | import com.zy.asrs.wcs.system.entity.Dict; |
| | | import com.zy.asrs.wcs.system.service.DictService; |
| | | |
| | |
| | | */ |
| | | public class NavigateSolution { |
| | | |
| | | // -1 -> 墙壁, 0 -> 货位, 1 -> 起点 2 -> 终点 3-> 母轨 4->站点 |
| | | // -1 -> 墙壁, 0 -> 货位, 1 -> 起点 2 -> 终点 3-> 母轨 4->输送站点 5->充电桩 6->小车可走输送站点 66->小车 67->提升机 |
| | | |
| | | int[][] map = {{}}; |
| | | |
| | |
| | | mapData.setLev(lev); |
| | | int[][] data = mapData.getDataFromRedis(mapType, whitePoints, shuttlePoints); |
| | | if (data == null) { |
| | | data = mapData.getData(mapType, whitePoints, shuttlePoints); |
| | | throw new CoolException("地图未载入!"); |
| | | } |
| | | this.map = data; |
| | | } |
| | |
| | | // } |
| | | |
| | | if (mapDirection.equals("x")) {//母轨x方向 |
| | | if (map[x][y] == 3) { |
| | | if (map[x][y] == MapNodeType.MAIN_PATH.id) { |
| | | //母轨才能进行上下移动 |
| | | if (is_valid(x + 1, y)) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5) { |
| | | //子轨和母轨、输送线、充电桩才能进行左右移动 |
| | | if (map[x][y] == MapNodeType.NORMAL_PATH.id || map[x][y] == MapNodeType.MAIN_PATH.id || map[x][y] == MapNodeType.CONVEYOR_CAR_GO.id || map[x][y] == MapNodeType.CHARGE.id || map[x][y] == MapNodeType.LIFT.id) { |
| | | //子轨和母轨、小车可走输送线、充电桩、提升机才能进行左右移动 |
| | | if (is_valid(x, y + 1)) |
| | | { |
| | | NavigateNode node = new NavigateNode(x, y + 1); |
| | |
| | | } |
| | | } |
| | | }else if (mapDirection.equals("y")) {//母轨y方向 |
| | | if (map[x][y] == 3) { |
| | | if (map[x][y] == MapNodeType.MAIN_PATH.id) { |
| | | //母轨才能进行左右移动 |
| | | if (is_valid(x, y + 1)) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5) { |
| | | //子轨和母轨、输送线、充电桩才能进行上下移动 |
| | | if (map[x][y] == MapNodeType.NORMAL_PATH.id || map[x][y] == MapNodeType.MAIN_PATH.id || map[x][y] == MapNodeType.CONVEYOR_CAR_GO.id || map[x][y] == MapNodeType.CHARGE.id || map[x][y] == MapNodeType.LIFT.id) { |
| | | //子轨和母轨、小车可走输送线、充电桩、提升机才能进行上下移动 |
| | | if (is_valid(x + 1, y)) |
| | | { |
| | | NavigateNode node = new NavigateNode(x + 1, y); |