|  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 如果没有相近物料,则按规则轮询货架 | 
 |  |  |         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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |