#
Junjie
2024-07-10 e62c1e7ff1fa9623ac3f8e6aa35ad44b725a21ed
#
7个文件已修改
1个文件已添加
115 ■■■■ 已修改文件
zy-asrs-flow/src/pages/map/components/configSettings.jsx 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/MapNode.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
                            </>
                        )}
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 锁定节点
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MapNodeType.java
New file
@@ -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;
    }
}
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);
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) {
                    //过滤库位状态X
                    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);
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());
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);
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;
            }
        }