|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断是否为浅库位 | 
|---|
|  |  |  | * 判断是否为浅库位  并存在深库位 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row);//判断是否为左深库位 | 
|---|
|  |  |  | int shallowRow = deepLocLeft? (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()); | 
|---|
|  |  |  | //        return remainder == 1 ? (deepRow + 1) : (deepRow - 1); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, deepRow);//判断是否为左深库位 | 
|---|
|  |  |  | return deepLocLeft ? (deepRow + 1) : (deepRow - 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断是否为左深库位 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static boolean isDeepLocLeft(SlaveProperties slaveProperties, Integer row) { | 
|---|
|  |  |  | if (slaveProperties.isDoubleDeep()) { | 
|---|
|  |  |  | return slaveProperties.getDoubleLocsLeft().contains(row); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断是否为右深库位 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static boolean isDeepLocRight(SlaveProperties slaveProperties, Integer row) { | 
|---|
|  |  |  | if (slaveProperties.isDoubleDeep()) { | 
|---|
|  |  |  | return slaveProperties.getDoubleLocsRight().contains(row); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 浅库位对应的深库位号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|