| | |
| | | |
| | | import com.core.common.Arith; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import com.zy.common.service.CommonService; |
| | | |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 通过库位号获取 列 |
| | | */ |
| | | public static int getBay(String locNo) { |
| | | if (!Cools.isEmpty(locNo)) { |
| | | return Integer.parseInt(locNo.substring(2, 5)); |
| | | } |
| | | throw new RuntimeException("库位解析异常"); |
| | | } |
| | | |
| | | /** |
| | | * 通过库位号获取 层 |
| | | */ |
| | | public static int getLev(String locNo) { |
| | | if (!Cools.isEmpty(locNo)) { |
| | | return Integer.parseInt(locNo.substring(5, 7)); |
| | | } |
| | | throw new RuntimeException("库位解析异常"); |
| | | } |
| | | |
| | | /** |
| | | * 当检索到双深库位的浅库位时,如果深库位无货,则放入对应的深库位 |
| | | */ |
| | | public static void toDeepIfEmptyByShallow(String shallowLoc) { |
| | |
| | | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | SlaveProperties slaveProperties = new SlaveProperties(); |
| | | slaveProperties.setDoubleDeep(true); |
| | | List<Integer> list = new ArrayList<>(); |
| | | list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12); |
| | | slaveProperties.setDoubleLocs(list); |
| | | slaveProperties.setGroupCount(4); |
| | | Integer deepRow = getDeepRow(slaveProperties, 6); |
| | | System.out.println(deepRow); |
| | | // public static void main(String[] args) { |
| | | // SlaveProperties slaveProperties = new SlaveProperties(); |
| | | // slaveProperties.setDoubleDeep(true); |
| | | // List<Integer> list = new ArrayList<>(); |
| | | // list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12); |
| | | // slaveProperties.setDoubleLocs(list); |
| | | // slaveProperties.setGroupCount(4); |
| | | // Integer deepRow = getDeepRow(slaveProperties, 6); |
| | | // System.out.println(deepRow); |
| | | // |
| | | // } |
| | | |
| | | // 外侧方向的货位 优先入库方向/优先出库方向 ===>> 反之 |
| | | public static List<String> getGroupOutsideLocCrn(String locNo,boolean pakin){ |
| | | int row = getRow(locNo); |
| | | List<String> result = new ArrayList<>(); |
| | | result.add(locNo); |
| | | |
| | | // result.add(zerofill(String.valueOf(32), 2) + locNo.substring(2)); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | public static boolean BooleanWhsTypeSta(Integer whsType){ |
| | | if (whsType==1){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static int RowCount(Integer whsType,Integer curRow){ |
| | | return LocNecessaryParameters(whsType, curRow)[0]; |
| | | } |
| | | public static int getCurRow(Integer whsType,Integer curRow){ |
| | | return LocNecessaryParameters(whsType, curRow)[1]; |
| | | } |
| | | public static int getCrnNo(Integer whsType,Integer curRow){ |
| | | return LocNecessaryParameters(whsType, curRow)[2]; |
| | | } |
| | | public static int getNearRow(Integer whsType,Integer curRow){ |
| | | return LocNecessaryParameters(whsType, curRow)[3]; |
| | | } |
| | | |
| | | //库位排号分配 |
| | | public static int[] LocNecessaryParameters(Integer whsType,Integer curRow){ |
| | | int[] necessaryParameters=new int[]{0,0,0,0}; |
| | | if (BooleanWhsTypeSta(whsType)){ |
| | | necessaryParameters[0] = 6; |
| | | switch (curRow){ //满板正常入库 |
| | | case 24: |
| | | necessaryParameters[1] = 1; //curRow 最深库位排 |
| | | necessaryParameters[2] = 1; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 2; //nearRow 最浅库位排 |
| | | break; |
| | | case 21: |
| | | necessaryParameters[1] = 4; //curRow 最深库位排 |
| | | necessaryParameters[2] = 1; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 3; //nearRow 最浅库位排 |
| | | break; |
| | | default: |
| | | curRow=curRow+4; |
| | | if (curRow<1 || curRow>24){ |
| | | 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); |
| | | } |
| | | } |
| | | }else {//空板不入1号 |
| | | necessaryParameters[0] = 5; |
| | | switch (curRow){ |
| | | case 24: |
| | | necessaryParameters[1] = 5; //curRow 最深库位排 |
| | | necessaryParameters[2] = 2; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 6; //nearRow 最浅库位排 |
| | | break; |
| | | case 21: |
| | | necessaryParameters[1] = 8; //curRow 最深库位排 |
| | | necessaryParameters[2] = 2; //crnNo 堆垛机号 |
| | | necessaryParameters[3] = 7; //nearRow 最浅库位排 |
| | | break; |
| | | default: |
| | | curRow=curRow+4; |
| | | if (curRow<5 || curRow>24){ |
| | | 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; |
| | | } |
| | | } |