自动化立体仓库 - WMS系统
#
LSH
2023-03-27 b50a2e2df1c0fab844dc194ae58f01cf906e32b8
src/main/java/com/zy/asrs/utils/Utils.java
@@ -183,32 +183,32 @@
            }
            return result;
        }
        if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
            List<String> result = new ArrayList<>();
            for (Integer row0 : CommonService.FIRST_GROUP_ROW_LIST_SHORT) {
                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
            }
            return result;
        }
        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
            List<String> result = new ArrayList<>();
            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
            }
            return result;
        }
        throw new RuntimeException("库位解析异常");
    }
    public static Integer getOutLayerRow(String locNo, Boolean pakin){
        int row = getRow(locNo);
        // 入库
        if (pakin) {
            if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
                return 17;
            } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
                return 18;
            } else {
                return -1;
//                throw new RuntimeException("库位解析异常");
            }
        // 出库
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            return 4;
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
            return 5;
        } else {
            if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
                return 2;
            } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
                return 30;
            } else {
                return -1;
//                throw new RuntimeException("库位解析异常");
            }
            return -1;
        }
    }
@@ -216,8 +216,12 @@
    public static List<Integer> getGroupLoc(Integer row){
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            return CommonService.FIRST_GROUP_ROW_LIST;
        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
            return CommonService.FIRST_GROUP_ROW_LIST_SHORT;
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
            return CommonService.SECOND_GROUP_ROW_LIST;
        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
            return CommonService.THIRD_GROUP_ROW_LIST;
        } else {
            throw new RuntimeException("库位解析异常");
        }
@@ -228,14 +232,28 @@
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
                if (integer < row) {
            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){
            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){
            List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST);
            Collections.reverse(clone);
@@ -246,10 +264,63 @@
                    break;
                }
            }
        } else {
//            throw new RuntimeException("库位解析异常");
        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){
            for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        }
        return result;
    }
    // 外侧方向的货位  优先入库方向/优先出库方向
    public static List<String> getGroupOuterLocIoPri(String locNo){
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){
            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST_SHORT) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){
            for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){
            List<Integer> clone = Arrays.asList(new Integer[CommonService.THIRD_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, CommonService.THIRD_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        }
        return result;
    }
    public static void main(String[] args) {
        System.out.println(JSON.toJSONString(getGroupOuterLoc("0200101")));
    }
    // 内侧方向的货位  优先入库方向/优先出库方向 ===>> 反之
@@ -267,8 +338,30 @@
                    break;
                }
            }
        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) {
            List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
@@ -288,9 +381,31 @@
    public static List<String> getGroupOutsideLoc(String locNo){
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
            for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
@@ -314,10 +429,6 @@
            Collections.reverse(result);
        }
        return result;
    }
    public static void main(String[] args) {
        System.out.println(JSON.toJSONString(getGroupOutsideLoc("0500201")));
    }
}