From a7d5e6c4a45ca1f7bb1560ef4e76f4c1680c41db Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期六, 18 五月 2024 10:43:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java | 94 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 70 insertions(+), 24 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java index 677c6f0..9fc734c 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java @@ -1,7 +1,10 @@ package com.zy.asrs.wcs.core.utils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.SpringUtils; import com.zy.asrs.wcs.core.model.NavigateNode; +import com.zy.asrs.wcs.system.entity.Dict; +import com.zy.asrs.wcs.system.service.DictService; import java.util.ArrayList; import java.util.List; @@ -13,7 +16,7 @@ */ public class NavigateSolution { - // -1 -> 澧欏锛� 1 -> 璧风偣 2 -> 缁堢偣 3-> 姣嶈建 4->绔欑偣 + // -1 -> 澧欏锛� 0 -> 璐т綅锛� 1 -> 璧风偣 2 -> 缁堢偣 3-> 姣嶈建 4->绔欑偣 int[][] map = {{}}; @@ -97,6 +100,18 @@ public ArrayList<NavigateNode> extend_current_node(NavigateNode current_node) { + //榛樿鍦板浘姣嶈建鏂瑰悜x + String mapDirection = "x"; + DictService dictService = SpringUtils.getBean(DictService.class); + if (dictService != null) { + Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>() + .eq(Dict::getFlag, "direction_map") + .eq(Dict::getStatus, 1)); + if (dict != null) { + mapDirection = dict.getValue(); + } + } + //鑾峰彇褰撳墠缁撶偣鐨剎, y int x = current_node.getX(); int y = current_node.getY(); @@ -129,31 +144,62 @@ // neighbour_node.add(node); // } // } - if (map[x][y] == 3) { - //姣嶈建鎵嶈兘杩涜宸﹀彸绉诲姩 - if (is_valid(x, y + 1)) - { - NavigateNode node = new NavigateNode(x, y + 1); - neighbour_node.add(node); - } - if (is_valid(x, y - 1)) - { - NavigateNode node = new NavigateNode(x, y - 1); - neighbour_node.add(node); - } - } - 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); - neighbour_node.add(node); + if (mapDirection.equals("x")) {//姣嶈建x鏂瑰悜 + if (map[x][y] == 3) { + //姣嶈建鎵嶈兘杩涜涓婁笅绉诲姩 + if (is_valid(x + 1, y)) + { + NavigateNode node = new NavigateNode(x + 1, y); + neighbour_node.add(node); + } + if (is_valid(x - 1, y)) + { + NavigateNode node = new NavigateNode(x -1, y); + neighbour_node.add(node); + } } - if (is_valid(x - 1, y)) - { - NavigateNode node = new NavigateNode(x -1, y); - neighbour_node.add(node); + + if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5) { + //瀛愯建鍜屾瘝杞ㄣ�佽緭閫佺嚎銆佸厖鐢垫々鎵嶈兘杩涜宸﹀彸绉诲姩 + if (is_valid(x, y + 1)) + { + NavigateNode node = new NavigateNode(x, y + 1); + neighbour_node.add(node); + } + if (is_valid(x, y - 1)) + { + NavigateNode node = new NavigateNode(x, y - 1); + neighbour_node.add(node); + } + } + }else if (mapDirection.equals("y")) {//姣嶈建y鏂瑰悜 + if (map[x][y] == 3) { + //姣嶈建鎵嶈兘杩涜宸﹀彸绉诲姩 + if (is_valid(x, y + 1)) + { + NavigateNode node = new NavigateNode(x, y + 1); + neighbour_node.add(node); + } + if (is_valid(x, y - 1)) + { + NavigateNode node = new NavigateNode(x, y - 1); + neighbour_node.add(node); + } + } + + 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); + neighbour_node.add(node); + } + if (is_valid(x - 1, y)) + { + NavigateNode node = new NavigateNode(x -1, y); + neighbour_node.add(node); + } } } -- Gitblit v1.9.1