LSH
2023-07-18 48020b340d4bce51660fa5b412085e4d4cd769f1
#完善路径工具类
1个文件已修改
1个文件已添加
113 ■■■■ 已修改文件
src/main/java/com/zy/asrs/utils/RouteUtils.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/RouteCollectCountType.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -1,17 +1,12 @@
package com.zy.asrs.utils;
import com.core.common.Arith;
import com.core.common.Cools;
import com.zy.core.properties.SlaveProperties;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static java.util.stream.Collectors.toList;
import com.zy.core.enums.RouteCollectCountType;
/**
 * Created by vincent on 2020/8/27
 * Created by Monkey D. Luffy on 2023/7/18
 */
public class RouteUtils {
@@ -38,11 +33,11 @@
        }
    }
    // 获取当前小车未行走的路线
    // 获取当前小车未行走的路线集合
    public static List<Integer> getRoute(Integer groupStart,Integer groupEnd){
        boolean sign = groupStart < groupEnd;
        List<Integer> result = new ArrayList<>();
        List<Integer> groupRoute = new ArrayList<>();
        List<Integer> groupRoute = null;
        if (sign){
            groupRoute = TRACK_POSITION_POSITIVE_SEQUENCE;
        }else {
@@ -67,15 +62,61 @@
        }
        return result;
    }
    // 外侧方向的货位  优先入库方向/优先出库方向 ===>> 反之
    public static List<String> getGroupOutsideLoc(String locNo,Integer crnNo){
        List<String> result = new ArrayList<>();
        return result;
    //是否有交集
    public static boolean getRouteBoolean(List<Integer> groupCurrent,List<Integer> groupOther){
        for (Integer positionCurrent : groupCurrent){
            for (Integer positionOther : groupOther){
                if (positionCurrent.equals(positionOther)){
                    return true;
                }
            }
        }
        return false;
    }
    //集合运算
    public static List<Integer> getRouteIntersection(List<Integer> groupCurrent, List<Integer> groupOther, RouteCollectCountType routeCollectCountType){
        switch (routeCollectCountType){
            case INTERSECTION:
                //交集
                return groupCurrent.stream().filter(item -> groupOther.contains(item)).collect(toList());
            case DIFFERENCESET:
                //差集
                return groupCurrent.stream().filter(item -> !groupOther.contains(item)).collect(toList());
            case UNION:
                //并集
                groupCurrent.addAll(groupOther);
                return groupCurrent;
            case DEDUPLICATIONUNION:
                //去重并集
                groupCurrent.addAll(groupOther);
                return groupCurrent.stream().distinct().collect(toList());
            default:
                return null;
        }
    }
    public static void main(String[] arge){
        List<Integer> routeCurrent = getRoute(2, 9);  //获取当前小车路径
        List<Integer> routeOther = getRoute(12, 5);  //获取其它小车路径
        System.out.println("当前小车路径:\t"+routeCurrent);
        System.out.println("其它小车路径:\t"+routeOther);
        boolean routeBoolean = getRouteBoolean(routeCurrent, routeOther);  //是否有交集
        System.out.println("是否有交集:\t"+routeBoolean);
        List<Integer> routeIntersection = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.INTERSECTION);//交集
        System.out.println("路径交集:\t"+routeIntersection);
        List<Integer> routeIntersection1 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DIFFERENCESET);//差集
        System.out.println("路径差集:\t"+routeIntersection1);
        List<Integer> routeIntersection2 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.UNION);//并集
        System.out.println("路径并集:\t"+routeIntersection2);
        List<Integer> routeIntersection3 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DEDUPLICATIONUNION);//去重并集
        System.out.println("路径去重并集:\t"+routeIntersection3);
    }
}
src/main/java/com/zy/core/enums/RouteCollectCountType.java
New file
@@ -0,0 +1,42 @@
package com.zy.core.enums;
public enum RouteCollectCountType {
    INTERSECTION(0, "交集"),   // 交集
    DIFFERENCESET(1, "差集"),   // 差集
    UNION(2, "并集"),  //并集
    DEDUPLICATIONUNION(3, "去重并集"),  //去重并集
    ;
    public Integer id;
    public String desc;
    RouteCollectCountType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
    }
    public static RouteCollectCountType get(Short id) {
        if (null == id) {
            return null;
        }
        for (RouteCollectCountType type : RouteCollectCountType.values()) {
            if (type.id.equals(id.intValue())) {
                return type;
            }
        }
        return null;
    }
    public static RouteCollectCountType get(RouteCollectCountType type) {
        if (null == type) {
            return null;
        }
        for (RouteCollectCountType crnLiftPosType : RouteCollectCountType.values()) {
            if (crnLiftPosType == type) {
                return crnLiftPosType;
            }
        }
        return null;
    }
}