自动化立体仓库 - WMS系统
#
lsh
2024-05-20 1053f15fecff14e486b734d83426fe6f26f9b7cf
src/main/java/com/zy/asrs/utils/Utils.java
@@ -125,6 +125,32 @@
        int shallowRow = remainder == 1 ? (row + 1) : (row - 1);
        return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
    }
    /**
     * 获取 深库位对应的浅库位号   双伸+单双伸  煜星定制
     */
    public static String getShallowLoc5(SlaveProperties slaveProperties, String deepLoc,Integer whsType) {
        if (whsType==9){
            int row = getRow(deepLoc);
            int shallowRow;
            if (row == 21) {
                shallowRow = row + 1;
            } else if (row == 24) {
                shallowRow = row - 1;
            } else if (row == 25) {
                shallowRow = row;
            } else if (row == 27) {
                shallowRow = row - 1;
            } else {
                throw new RuntimeException(row + "不是深库位,系统繁忙");
            }
            return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
        }else {
            int row = getRow(deepLoc);
            int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
            int shallowRow = remainder == 1 ? (row + 1) : (row - 1);
            return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
        }
    }
    /**
     * 获取 深库位排对应的浅库位排
@@ -149,6 +175,40 @@
            throw new RuntimeException(shallowLoc + "不是浅库位,系统繁忙");
        }
        return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
    }
    /**
     * 获取 浅库位对应的深库位号  双伸+单双伸  煜星定制
     */
    public static String getDeepLoc5(SlaveProperties slaveProperties, String shallowLoc,Integer whsType) {
        if (whsType==9){
            int row = getRow(shallowLoc);
            int targetRow;
            if (row == 22) {
                targetRow = row - 1;
            } else if (row == 23) {
                targetRow = row + 1;
            } else if (row == 25) {
                targetRow = row;
            } else if (row == 26) {
                targetRow = row + 1;
            } else {
                throw new RuntimeException(shallowLoc + "不是浅库位,系统繁忙");
            }
            return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
        } else {
            int row = getRow(shallowLoc);
            int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
            int targetRow;
            if (remainder == 2) {
                targetRow = row - 1;
            } else if (remainder == 3) {
                targetRow = row + 1;
            } else {
                throw new RuntimeException(shallowLoc + "不是浅库位,系统繁忙");
            }
            return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
        }
    }
    /**
@@ -240,22 +300,22 @@
        return 0;
    }
    public static boolean BooleanWhsTypeStaIoType(Integer whsType) {  //查询相似物料开关
        if (whsType == 1 || whsType==3 || whsType==4) {
    public static boolean BooleanWhsTypeStaIoType(Integer whsType) {  //查询相似物料开关   //是否深浅库位开关
        if (whsType == 1 || whsType==3 || whsType==4  || whsType == 9) {
            return true;
        }
        return false;
    }
    public static boolean BooleanWhsTypeSta(Integer whsType) {
        if (whsType == 1 || whsType == 2 || whsType == 5 || whsType==3 || whsType==4) {
        if (whsType == 1 || whsType == 2 || whsType == 5 || whsType==3 || whsType==4 || whsType == 9) {
            return true;
        }
        return false;
    }
    public static boolean BooleanWhsTypeSta(Integer whsType, Integer staDescId) {
        if ((whsType == 1 || whsType == 5 || whsType == 2 || whsType==3 || whsType==4) && staDescId != 11 && staDescId != 111) {
        if ((whsType == 1 || whsType == 5 || whsType == 2 || whsType==3 || whsType==4 || whsType == 9) && staDescId != 11 && staDescId != 111) {
            return true;
        }
        return false;
@@ -290,6 +350,8 @@
                return LocNecessaryParametersDoubleExtension4(whsType, curRow, crnNumber); //未完善
            case 5://双工位单伸库位(4排货架)
                return LocNecessaryParametersDoubleExtension5(whsType, curRow, crnNumber); //已完善
            case 9://前双伸 后左单右双(小单大双)  煜星定制
                return LocNecessaryParametersDoubleExtension9(whsType, curRow, crnNumber); //已完善
            default:
                return LocNecessaryParametersMove(whsType, curRow, crnNumber);//moveCrnNo
        }
@@ -505,6 +567,33 @@
        }
        return necessaryParameters;
    }
    public static int[] LocNecessaryParametersDoubleExtension9(Integer whsType, Integer curRow, Integer crnNumber) {
        int[] necessaryParameters = new int[]{0, 0, 0, 0};
        if (BooleanWhsTypeSta(whsType)) {
            necessaryParameters[0] = crnNumber; // 轮询次数
            //满板正常入库
            if (curRow.equals(21)) {
                necessaryParameters[1] = 25;    //curRow   最深库位排
                necessaryParameters[2] = 7;     //crnNo     堆垛机号
                necessaryParameters[3] = 25;    //nearRow  最浅库位排
            } else if (curRow.equals(25)) {
                necessaryParameters[1] = 24;    //curRow   最深库位排
                necessaryParameters[2] = 6;     //crnNo     堆垛机号
                necessaryParameters[3] = 23;    //nearRow  最浅库位排
            } else if (curRow.equals(24)) {
                necessaryParameters[1] = 27;    //curRow   最深库位排
                necessaryParameters[2] = 7;     //crnNo     堆垛机号
                necessaryParameters[3] = 26;    //nearRow  最浅库位排
            } else if (curRow.equals(27)) {
                necessaryParameters[1] = 21;    //curRow   最深库位排
                necessaryParameters[2] = 6;     //crnNo     堆垛机号
                necessaryParameters[3] = 22;    //nearRow  最浅库位排
            } else {
                throw new CoolException("库位排号异常:排号:" + curRow);
            }
        }
        return necessaryParameters;
    }
    public static void main(String[] args) {