From e62c1e7ff1fa9623ac3f8e6aa35ad44b725a21ed Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 10 七月 2024 17:52:40 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java       |    7 ++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java      |   49 ++++++++++++++++++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java                |    3 +
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |   15 ++++++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java       |   15 ++++---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java          |    3 +
 zy-asrs-flow/src/pages/map/components/configSettings.jsx                         |   12 ++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java        |   11 +++--
 8 files changed, 96 insertions(+), 19 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/components/configSettings.jsx b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
index 32e5015..46d132c 100644
--- a/zy-asrs-flow/src/pages/map/components/configSettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
@@ -110,6 +110,7 @@
             message.success(intl.formatMessage({ id: 'common.success', defaultMessage: '鎿嶄綔鎴愬姛' }));
         }
 
+        console.log(values);
         props.onSubmit({ ...values }, confirmSettings);
     }
 
@@ -280,6 +281,17 @@
                                         }}
                                     />
                                 </Form.Item>
+                                <Form.Item
+                                    name='conveyorHasGo'
+                                    label={intl.formatMessage({ id: 'map.settings.conveyor.hasGo', defaultMessage: '灏忚溅鍙蛋' })}
+                                    valuePropName="checked"
+                                >
+                                    <Checkbox
+                                        style={{
+                                            width: '50%',
+                                        }}
+                                    />
+                                </Form.Item>
                             </>
                         )}
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
index 5b85e2a..c3125f1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java
@@ -13,8 +13,9 @@
      * -1 绂佺敤
      * 0 瀛愯建閬�
      * 3 姣嶈建閬�
-     * 4 鍏呯數妗�
+     * 4 杈撻�佺珯鐐�
      * 5 鍏呯數妗�
+     * 6 灏忚溅鍙蛋杈撻�佺珯鐐�
      * 66 绌挎杞﹀潗鏍�
      * 67 鎻愬崌鏈哄潗鏍�
      * -999 閿佸畾鑺傜偣
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java
new file mode 100644
index 0000000..45615c9
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java
@@ -0,0 +1,49 @@
+package com.zy.asrs.wcs.core.model.enums;
+
+public enum MapNodeType {
+
+    DISABLE(-1, "绂佺敤"),
+    NORMAL_PATH(0, "璐т綅"),
+    START_POINT(1, "璧风偣"),
+    TARGET_POINT(2, "缁堢偣"),
+    MAIN_PATH(3, "姣嶈建"),
+    CONVEYOR(4, "杈撻�佺珯鐐�"),
+    CHARGE(5, "鍏呯數妗�"),
+    CONVEYOR_CAR_GO(6, "灏忚溅鍙蛋杈撻�佺珯鐐�"),
+    CAR(66, "灏忚溅"),
+    LIFT(67, "鎻愬崌鏈�"),
+    LOCK(-999, "閿佸畾鑺傜偣"),
+    ;
+
+    public Integer id;
+    public String desc;
+
+    MapNodeType(Integer id, String desc) {
+        this.id = id;
+        this.desc = desc;
+    }
+
+    public static MapNodeType get(Short id) {
+        if (null == id) {
+            return null;
+        }
+        for (MapNodeType type : MapNodeType.values()) {
+            if (type.id.equals(id.intValue())) {
+                return type;
+            }
+        }
+        return null;
+    }
+
+    public static MapNodeType get(MapNodeType type) {
+        if (null == type) {
+            return null;
+        }
+        for (MapNodeType type1 : MapNodeType.values()) {
+            if (type1 == type) {
+                return type1;
+            }
+        }
+        return null;
+    }
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index c2592f2..b84fccf 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -306,6 +306,17 @@
                         mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
                         mapNode.setXBase(object.getInteger("refx"));
                         mapNode.setYBase(object.getInteger("refy"));
+
+                        if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+                            //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
+                            if (object.containsKey("conveyorHasGo")) {
+                                if(object.getBoolean("conveyorHasGo")) {
+                                    //灏忚溅鍙蛋
+                                    mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
+                                }
+                            }
+                        }
+
                         nodes.add(mapNode);
                     }
 
@@ -328,7 +339,7 @@
                         //瀛樺湪绌虹己鑺傜偣锛岃嚜鍔ㄨˉ瓒�
                         for (int i = defaultBay; i < node.getBay(); i++) {
                             MapNode mapNode = new MapNode();
-                            mapNode.setValue(-1);
+                            mapNode.setValue(MapNodeType.DISABLE.id);
                             mapNode.setTop(1000);
                             mapNode.setBottom(1000);
                             mapNode.setLeft(1000);
@@ -355,7 +366,7 @@
                 ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘
 
                 MapNode mapNode = new MapNode();
-                mapNode.setValue(-1);
+                mapNode.setValue(MapNodeType.DISABLE.id);
                 mapNode.setTop(1000);
                 mapNode.setBottom(1000);
                 mapNode.setLeft(1000);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
index bc5372f..d27a157 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
@@ -9,6 +9,7 @@
 import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
 import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.model.MapNode;
+import com.zy.asrs.wcs.core.model.enums.MapNodeType;
 import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
 import com.zy.asrs.wcs.core.service.LocService;
 import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
@@ -157,7 +158,7 @@
                     //瀛樺湪绌虹己鑺傜偣锛岃嚜鍔ㄨˉ瓒�
                     for (int i = defaultBay; i < node.getBay(); i++) {
                         MapNode mapNode = new MapNode();
-                        mapNode.setValue(-1);
+                        mapNode.setValue(MapNodeType.DISABLE.id);
                         mapNode.setTop(1000);
                         mapNode.setBottom(1000);
                         mapNode.setLeft(1000);
@@ -184,7 +185,7 @@
             ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘
 
             MapNode mapNode = new MapNode();
-            mapNode.setValue(-1);
+            mapNode.setValue(MapNodeType.DISABLE.id);
             mapNode.setTop(1000);
             mapNode.setBottom(1000);
             mapNode.setLeft(1000);
@@ -312,12 +313,12 @@
                             || loc.getLocSts$().equals("D")
                             || loc.getLocSts$().equals("X")
                     ) {
-                        mapNode.setValue(-1);//绂佺敤鑺傜偣
+                        mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣
                     }
                 } else if (mapType == NavigationMapType.NORMAL.id) {
                     //杩囨护搴撲綅鐘舵�乆
                     if (loc.getLocSts$().equals("X")) {
-                        mapNode.setValue(-1);//绂佺敤鑺傜偣
+                        mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣
                     }
                 }
 
@@ -334,7 +335,7 @@
                 int y = points[1];
                 List<MapNode> list = lists.get(x);
                 MapNode mapNode = list.get(y);
-                mapNode.setValue(66);//璁剧疆涓鸿溅杈嗕唬鐮�66
+                mapNode.setValue(MapNodeType.CAR.id);//璁剧疆涓鸿溅杈嗕唬鐮�66
                 //鏇存柊list
                 list.set(y, mapNode);
                 lists.set(x, list);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
index 6c72996..fb4052f 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
 import com.zy.asrs.wcs.core.model.MapNode;
 import com.zy.asrs.wcs.core.model.NavigateNode;
+import com.zy.asrs.wcs.core.model.enums.MapNodeType;
 import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
 import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,10 +58,10 @@
                 for (NavigateNode node : nodes) {
                     List<MapNode> listX = listsHasShuttle.get(node.getX());
                     MapNode mapNode = listX.get(node.getY());
-                    if (mapNode.getValue() == -999) {
+                    if (mapNode.getValue() == MapNodeType.LOCK.id) {
                         return false;//璺緞琚攣瀹氳繃锛岀姝㈠啀娆¢攣瀹�
                     }
-                    if (mapNode.getValue() == 66) {
+                    if (mapNode.getValue() == MapNodeType.CAR.id) {
                         return false;//璺緞瀛樺湪灏忚溅锛岀姝㈤攣瀹�
                     }
                 }
@@ -77,7 +78,7 @@
                 List<MapNode> listX = lists.get(node.getX());
                 MapNode mapNode = listX.get(node.getY());
                 if (lock) {
-                    mapNode.setValue(-999);//绂佺敤搴撲綅
+                    mapNode.setValue(MapNodeType.LOCK.id);//绂佺敤搴撲綅
                 } else {
                     //鑾峰彇鍘熷鑺傜偣鏁版嵁
                     List<MapNode> rows = realMap.get(node.getX());
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 4cbfc4a..7ae2a85 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
@@ -4,6 +4,7 @@
 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;
 
@@ -17,7 +18,7 @@
  */
 public class NavigateSolution {
 
-    // -1 -> 澧欏锛� 0 -> 璐т綅锛� 1 -> 璧风偣  2 -> 缁堢偣  3-> 姣嶈建  4->杈撻�佺珯鐐�  5->鍏呯數妗�  66->灏忚溅  67->鎻愬崌鏈�
+    // -1 -> 澧欏锛� 0 -> 璐т綅锛� 1 -> 璧风偣  2 -> 缁堢偣  3-> 姣嶈建  4->杈撻�佺珯鐐�  5->鍏呯數妗� 6->灏忚溅鍙蛋杈撻�佺珯鐐�  66->灏忚溅  67->鎻愬崌鏈�
 
     int[][] map = {{}};
 
@@ -138,7 +139,7 @@
 //        }
 
         if (mapDirection.equals("x")) {//姣嶈建x鏂瑰悜
-            if (map[x][y] == 3) {
+            if (map[x][y] == MapNodeType.MAIN_PATH.id) {
                 //姣嶈建鎵嶈兘杩涜涓婁笅绉诲姩
                 if (is_valid(x + 1, y))
                 {
@@ -152,8 +153,8 @@
                 }
             }
 
-            if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5 || map[x][y] == 67) {
-                //瀛愯建鍜屾瘝杞ㄣ�佽緭閫佺嚎銆佸厖鐢垫々銆佹彁鍗囨満鎵嶈兘杩涜宸﹀彸绉诲姩
+            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);
@@ -166,7 +167,7 @@
                 }
             }
         }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))
                 {
@@ -180,8 +181,8 @@
                 }
             }
 
-            if (map[x][y] == 0 || map[x][y] == 3 || map[x][y] == 4 || map[x][y] == 5 || map[x][y] == 67) {
-                //瀛愯建鍜屾瘝杞ㄣ�佽緭閫佺嚎銆佸厖鐢垫々銆佹彁鍗囨満鎵嶈兘杩涜涓婁笅绉诲姩
+            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);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
index 1f21489..6792085 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
@@ -3,6 +3,7 @@
 import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.wcs.core.model.MapNode;
 import com.zy.asrs.wcs.core.model.NavigateNode;
+import com.zy.asrs.wcs.core.model.enums.MapNodeType;
 import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
 
 import java.util.ArrayList;
@@ -254,7 +255,7 @@
         int[][] map = solution.map;
         for (NavigateNode node : path) {
             int value = map[node.getX()][node.getY()];
-            if (value != 0 && value != 3 && value != 5) {//姣嶈建閬�3銆佸瓙杞ㄩ亾0銆佸厖鐢垫々5
+            if (value != MapNodeType.NORMAL_PATH.id && value != MapNodeType.MAIN_PATH.id && value != MapNodeType.CHARGE.id && value != MapNodeType.CONVEYOR_CAR_GO.id) {//姣嶈建閬�3銆佸瓙杞ㄩ亾0銆佸厖鐢垫々5銆佸皬杞﹀彲璧拌緭閫佺珯
                 return false;
             }
         }

--
Gitblit v1.9.1