|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断是否为浅库位 | 
|---|
|  |  |  | * 判断是否为浅库位  并存在深库位 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo) { | 
|---|
|  |  |  | if (slaveProperties.isDoubleDeep()) { | 
|---|
|  |  |  | int row = getRow(locNo); | 
|---|
|  |  |  | return !slaveProperties.getDoubleLocs().contains(row); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | if (!slaveProperties.getDoubleLocs().contains(row)){ | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//判断是否为左浅库位 | 
|---|
|  |  |  | if (deepLocLeft){ | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return isDeepLocRight(slaveProperties, row+1);//判断是否为右浅库位 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断是否为浅库位 | 
|---|
|  |  |  | * 判断是否为浅库位  并存在深库位 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row) { | 
|---|
|  |  |  | if (slaveProperties.isDoubleDeep()) { | 
|---|
|  |  |  | return !slaveProperties.getDoubleLocs().contains(row); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | if (!slaveProperties.getDoubleLocs().contains(row)){ | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//判断是否为左浅库位 | 
|---|
|  |  |  | if (deepLocLeft){ | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return isDeepLocRight(slaveProperties, row+1);//判断是否为右浅库位 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 深库位对应的浅库位号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) { | 
|---|
|  |  |  | //        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); | 
|---|
|  |  |  | int row = getRow(deepLoc); | 
|---|
|  |  |  | int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | int shallowRow = remainder == 1 ? (row + 1) : (row - 1); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row);//判断是否为左深库位 | 
|---|
|  |  |  | int shallowRow = deepLocLeft? (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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    /** | 
|---|
|  |  |  | //     * 获取 深库位对应的浅库位号   双伸+单双伸  煜星定制 | 
|---|
|  |  |  | //     */ | 
|---|
|  |  |  | //    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); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 深库位排对应的浅库位排 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) { | 
|---|
|  |  |  | int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | return remainder == 1 ? (deepRow + 1) : (deepRow - 1); | 
|---|
|  |  |  | //        int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, deepRow);//判断是否为左深库位 | 
|---|
|  |  |  | return deepLocLeft ? (deepRow + 1) : (deepRow - 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 浅库位对应的深库位号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { | 
|---|
|  |  |  | //        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); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//判断是否为左浅库位 | 
|---|
|  |  |  | int shallowRow = deepLocLeft? (row - 1) : (row + 1); | 
|---|
|  |  |  | return zerofill(String.valueOf(shallowRow), 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    /** | 
|---|
|  |  |  | //     * 获取 浅库位对应的深库位号  双伸+单双伸  煜星定制 | 
|---|
|  |  |  | //     */ | 
|---|
|  |  |  | //    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); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 浅库位排对应的深库位排 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { | 
|---|
|  |  |  | int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (remainder == 2) { | 
|---|
|  |  |  | targetRow = shallowRow - 1; | 
|---|
|  |  |  | } else if (remainder == 3) { | 
|---|
|  |  |  | targetRow = shallowRow + 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException(shallowRow + "不是浅库位排,系统繁忙"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return targetRow; | 
|---|
|  |  |  | //        int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | //        int targetRow; | 
|---|
|  |  |  | //        if (remainder == 2) { | 
|---|
|  |  |  | //            targetRow = shallowRow - 1; | 
|---|
|  |  |  | //        } else if (remainder == 3) { | 
|---|
|  |  |  | //            targetRow = shallowRow + 1; | 
|---|
|  |  |  | //        } else { | 
|---|
|  |  |  | //            throw new RuntimeException(shallowRow + "不是浅库位排,系统繁忙"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        return targetRow; | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1);//判断是否为左浅库位 | 
|---|
|  |  |  | return deepLocLeft? (shallowRow - 1) : (shallowRow + 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|