|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 如果没有相近物料,则按规则轮询货架 | 
|---|
|  |  |  | if (null == locMast){ | 
|---|
|  |  |  | switch (curRow){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | curRow=curRow+2; | 
|---|
|  |  |  | crnNo=(curRow+1)/2; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 7: | 
|---|
|  |  |  | crnNo=1; | 
|---|
|  |  |  | curRow=2; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 13: | 
|---|
|  |  |  | crnNo=6; | 
|---|
|  |  |  | curRow=14; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | curRow=curRow+2; | 
|---|
|  |  |  | crnNo=curRow/2; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 8: | 
|---|
|  |  |  | crnNo=1; | 
|---|
|  |  |  | curRow=1; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 14: | 
|---|
|  |  |  | crnNo=6; | 
|---|
|  |  |  | curRow=13; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 9: | 
|---|
|  |  |  | crnNo=5; | 
|---|
|  |  |  | curRow=12; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 10: | 
|---|
|  |  |  | crnNo=5; | 
|---|
|  |  |  | curRow=11; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 11: | 
|---|
|  |  |  | crnNo=5; | 
|---|
|  |  |  | curRow=9; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 12: | 
|---|
|  |  |  | crnNo=5; | 
|---|
|  |  |  | curRow=10; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 15: | 
|---|
|  |  |  | crnNo=7; | 
|---|
|  |  |  | curRow=18; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 16: | 
|---|
|  |  |  | crnNo=7; | 
|---|
|  |  |  | curRow=17; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 17: | 
|---|
|  |  |  | crnNo=7; | 
|---|
|  |  |  | curRow=15; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 18: | 
|---|
|  |  |  | crnNo=7; | 
|---|
|  |  |  | curRow=16; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | throw new CoolException("根据入库站获取库位排号分配失败,入库站:" + sourceStaNo); | 
|---|
|  |  |  | curRow = getCurRow(curRow); | 
|---|
|  |  |  | if (curRow == 0){ | 
|---|
|  |  |  | crnNo = 0; | 
|---|
|  |  |  | }else if( curRow <= 8 && curRow > 0){ | 
|---|
|  |  |  | crnNo=(curRow+1)/2; | 
|---|
|  |  |  | }else if (curRow <= 12 && curRow >= 9){ | 
|---|
|  |  |  | crnNo=5; | 
|---|
|  |  |  | }else if (curRow <= 14 && curRow >= 13){ | 
|---|
|  |  |  | crnNo=6; | 
|---|
|  |  |  | }else if (curRow <= 18 && curRow >= 15){ | 
|---|
|  |  |  | crnNo=7; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (curRow!=0 && !basCrnpService.checkSiteError(crnNo, true)) { | 
|---|
|  |  |  | crnNo = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据入库站获取库位排号分配 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private Integer getWhsType(Integer sourceStaNo, int times) { | 
|---|
|  |  |  | if (times >= 16) { | 
|---|
|  |  |  | return 4; | 
|---|
|  |  |  | private Integer getCurRow(Integer curRow) { | 
|---|
|  |  |  | boolean sign=false; | 
|---|
|  |  |  | int count=0; | 
|---|
|  |  |  | while (!sign){ | 
|---|
|  |  |  | count=count+1; | 
|---|
|  |  |  | if (count==5){ | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | switch (curRow){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | curRow=curRow+2; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 7: | 
|---|
|  |  |  | curRow=2; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 8: | 
|---|
|  |  |  | curRow=1; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 13: | 
|---|
|  |  |  | return 14; | 
|---|
|  |  |  | case 14: | 
|---|
|  |  |  | return 13; | 
|---|
|  |  |  | case 9: | 
|---|
|  |  |  | return 12; | 
|---|
|  |  |  | case 10: | 
|---|
|  |  |  | return 11; | 
|---|
|  |  |  | case 11: | 
|---|
|  |  |  | return 9; | 
|---|
|  |  |  | case 12: | 
|---|
|  |  |  | return 10; | 
|---|
|  |  |  | case 15: | 
|---|
|  |  |  | return 18; | 
|---|
|  |  |  | case 16: | 
|---|
|  |  |  | return 17; | 
|---|
|  |  |  | case 17: | 
|---|
|  |  |  | return 15; | 
|---|
|  |  |  | case 18: | 
|---|
|  |  |  | return 16; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | throw new CoolException("库位排号异常:排号:"+curRow); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sign = basCrnpService.checkSiteError((curRow+1)/2, true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | switch (sourceStaNo) { | 
|---|
|  |  |  | case 173: | 
|---|
|  |  |  | case 176: | 
|---|
|  |  |  | case 180: | 
|---|
|  |  |  | case 185: | 
|---|
|  |  |  | return 1; | 
|---|
|  |  |  | case 189: | 
|---|
|  |  |  | case 194: | 
|---|
|  |  |  | case 198: | 
|---|
|  |  |  | case 202: | 
|---|
|  |  |  | return 2; | 
|---|
|  |  |  | case 206: | 
|---|
|  |  |  | //            case 211: | 
|---|
|  |  |  | //            case 215: | 
|---|
|  |  |  | //            case 219: | 
|---|
|  |  |  | //            case 223: | 
|---|
|  |  |  | case 227: | 
|---|
|  |  |  | return 3; | 
|---|
|  |  |  | case 305: | 
|---|
|  |  |  | case 303: | 
|---|
|  |  |  | case 301: | 
|---|
|  |  |  | return 4; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | throw new CoolException("根据入库站获取库位排号分配失败,入库站:" + sourceStaNo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return curRow; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|