From 4d8bb57c9eb3fda399fd7b9e9de7ecbf754244f7 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 20 五月 2024 08:53:26 +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