|  |  |  | 
|---|
|  |  |  | return (float) Arith.multiplys(2, f, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static int armStaNo(int armNo,int staNo) { | 
|---|
|  |  |  | switch (armNo){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 7; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 8; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 5; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 6; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 3; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 4; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 1; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 2; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 11; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 12; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | switch (staNo){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | return 13; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return 14; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return 101; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return 102; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String zerofill(String msg, Integer count) { | 
|---|
|  |  |  | if (msg.length() == count) { | 
|---|
|  |  |  | return msg; | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row); | 
|---|
|  |  |  | boolean deepLocRight = isDeepLocRight(slaveProperties, row); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (deepLocLeft) { | 
|---|
|  |  |  | targetRow = row + 1; | 
|---|
|  |  |  | } else if (deepLocRight) { | 
|---|
|  |  |  | targetRow = row - 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException(deepLoc + "不是浅库位,系统繁忙"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return zerofill(String.valueOf(targetRow), 2) + deepLoc.substring(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { | 
|---|
|  |  |  | int row = getRow(shallowLoc); | 
|---|
|  |  |  | int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1); | 
|---|
|  |  |  | boolean deepLocRight = isDeepLocRight(slaveProperties, row+1); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (remainder == 2) { | 
|---|
|  |  |  | if (deepLocLeft) { | 
|---|
|  |  |  | targetRow = row - 1; | 
|---|
|  |  |  | } else if (remainder == 3) { | 
|---|
|  |  |  | } else if (deepLocRight) { | 
|---|
|  |  |  | targetRow = row + 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException(shallowLoc + "不是浅库位,系统繁忙"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    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); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 浅库位排对应的深库位排 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { | 
|---|
|  |  |  | int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); | 
|---|
|  |  |  | boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1); | 
|---|
|  |  |  | boolean deepLocRight = isDeepLocRight(slaveProperties, shallowRow+1); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (remainder == 2) { | 
|---|
|  |  |  | if (deepLocLeft) { | 
|---|
|  |  |  | targetRow = shallowRow - 1; | 
|---|
|  |  |  | } else if (remainder == 3) { | 
|---|
|  |  |  | } else if (deepLocRight) { | 
|---|
|  |  |  | targetRow = shallowRow + 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new RuntimeException(shallowRow + "不是浅库位排,系统繁忙"); | 
|---|
|  |  |  | throw new RuntimeException(shallowRow + "不是浅库位,系统繁忙"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return targetRow; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (curRow < sRow || curRow > (crnNumber * 4 + sRow - 1)) { | 
|---|
|  |  |  | throw new CoolException("库位排号异常:排号:" + curRow); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ((curRow - sRow) % 4 == 0) { | 
|---|
|  |  |  | if ((curRow - (sRow-1)) % 4 == 0) { | 
|---|
|  |  |  | necessaryParameters[1] = curRow;    //curRow   最深库位排 | 
|---|
|  |  |  | necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo - 1;     //crnNo     堆垛机号 | 
|---|
|  |  |  | necessaryParameters[3] = curRow + 1;    //nearRow  最浅库位排 | 
|---|
|  |  |  | } else if ((curRow - sRow + 1) % 4 == 0) { | 
|---|
|  |  |  | necessaryParameters[1] = curRow;    //curRow   最深库位排 | 
|---|
|  |  |  | necessaryParameters[2] = (curRow - sRow + 1) / 4 + sCrnNo - 1;     //crnNo     堆垛机号 | 
|---|
|  |  |  | necessaryParameters[2] = (curRow - (sRow-1)) / 4 + sCrnNo - 1;     //crnNo     堆垛机号 | 
|---|
|  |  |  | necessaryParameters[3] = curRow - 1;    //nearRow  最浅库位排 | 
|---|
|  |  |  | } else if ((curRow - (sRow-1)-1) % 4 == 0) { | 
|---|
|  |  |  | necessaryParameters[1] = curRow;    //curRow   最深库位排 | 
|---|
|  |  |  | necessaryParameters[2] = (curRow - (sRow-1)-1) / 4 + sCrnNo;     //crnNo     堆垛机号 | 
|---|
|  |  |  | necessaryParameters[3] = curRow + 1;    //nearRow  最浅库位排 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new CoolException("库位排号异常:排号:" + curRow); | 
|---|
|  |  |  | } | 
|---|