| | |
| | | |
| | | import com.core.common.Arith; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | |
| | | import java.text.DecimalFormat; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 判断是否为左深库位 |
| | | */ |
| | | 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 boolean isShallowLoc(SlaveProperties slaveProperties, String locNo){ |
| | |
| | | public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) { |
| | | int row = getRow(deepLoc); |
| | | int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); |
| | | int shallowRow ; |
| | | if (row == 15 || row == 9) { |
| | | shallowRow = row + 1; |
| | | } else if (row == 12 || row==18) { |
| | | shallowRow = row - 1; |
| | | } else { |
| | | throw new RuntimeException(row + "不是浅库位,系统繁忙"); |
| | | } |
| | | int shallowRow = remainder == 1 ? (row + 1) : (row - 1); |
| | | return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); |
| | | } |
| | | |
| | |
| | | int row = getRow(shallowLoc); |
| | | int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); |
| | | int targetRow; |
| | | if (row == 10 || row == 16) { |
| | | if (remainder == 2) { |
| | | targetRow = row - 1; |
| | | } else if (row == 11 || row == 17) { |
| | | } else if (remainder == 3) { |
| | | targetRow = row + 1; |
| | | } else { |
| | | throw new RuntimeException(row + "不是浅库位排,系统繁忙"); |
| | | 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 (shallowRow == 10 || shallowRow == 16) { |
| | | if (remainder == 2) { |
| | | targetRow = shallowRow - 1; |
| | | } else if (shallowRow == 11 || shallowRow == 17) { |
| | | } else if (remainder == 3) { |
| | | targetRow = shallowRow + 1; |
| | | } else { |
| | | throw new RuntimeException(shallowRow + "不是浅库位排,系统繁忙"); |
| | |
| | | System.out.println(deepRow); |
| | | |
| | | } |
| | | |
| | | public static boolean BooleanWhsTypeSta(Integer whsType){ |
| | | if (whsType==1){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static boolean BooleanWhsTypeSta(Integer whsType, Integer staDescId){ |
| | | if (whsType==1 && staDescId!=11 && staDescId!=111){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static int RowCount(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | return LocNecessaryParameters(whsType, curRow,crnNumber)[0]; |
| | | } |
| | | public static int getCurRow(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | return LocNecessaryParameters(whsType, curRow,crnNumber)[1]; |
| | | } |
| | | public static int getCrnNo(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | return LocNecessaryParameters(whsType, curRow,crnNumber)[2]; |
| | | } |
| | | public static int getNearRow(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | return LocNecessaryParameters(whsType, curRow,crnNumber)[3]; |
| | | } |
| | | |
| | | //库位排号分配 |
| | | public static int[] LocNecessaryParameters(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | return LocNecessaryParametersDoubleExtension(whsType, curRow,crnNumber); |
| | | } |
| | | |
| | | //经典双伸库位 |
| | | public static int[] LocNecessaryParametersDoubleExtension(Integer whsType,Integer curRow,Integer crnNumber){ |
| | | int[] necessaryParameters=new int[]{0,0,0,0}; |
| | | if (BooleanWhsTypeSta(whsType)){ |
| | | necessaryParameters[0] = crnNumber; |
| | | //满板正常入库 |
| | | if (curRow.equals(crnNumber*4)){ |
| | | necessaryParameters[1] = 1; //curRow 最深库位排 |
| | | necessaryParameters[2] = 1; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 2; //nearRow 最浅库位排 |
| | | }else if (curRow.equals(crnNumber*4-3)){ |
| | | necessaryParameters[1] = 4; //curRow 最深库位排 |
| | | necessaryParameters[2] = 1; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 3; //nearRow 最浅库位排 |
| | | }else { |
| | | curRow=curRow+4; |
| | | if (curRow<1 || curRow > (crnNumber*4)){ |
| | | throw new CoolException("库位排号异常:排号:"+curRow); |
| | | } |
| | | if ((curRow-1)%4==0){ |
| | | necessaryParameters[1] = curRow; //curRow 最深库位排 |
| | | necessaryParameters[2] = (curRow+3)/4; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = curRow+1; //nearRow 最浅库位排 |
| | | }else if (curRow%4==0){ |
| | | necessaryParameters[1] = curRow; //curRow 最深库位排 |
| | | necessaryParameters[2] = curRow/4; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = curRow-1; //nearRow 最浅库位排 |
| | | }else { |
| | | throw new CoolException("库位排号异常:排号:"+curRow); |
| | | } |
| | | } |
| | | } |
| | | return necessaryParameters; |
| | | } |
| | | } |