|  |  |  | 
|---|
|  |  |  | public class CommonService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkMastService wrkMastService; | 
|---|
|  |  |  | private TaskWrkService taskWrkService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkLastnoService wrkLastnoService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | System.out.println(Arith.remainder(1, 4)); | 
|---|
|  |  |  | System.out.println("0200201".substring(0, 2)); | 
|---|
|  |  |  | String locNo = "0800201"; | 
|---|
|  |  |  | int row = Integer.parseInt(locNo.substring(0, 2)); | 
|---|
|  |  |  | double remainder = Arith.remainder(row, 4); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (remainder == 1) { | 
|---|
|  |  |  | // 得到当前库位的外围库位 | 
|---|
|  |  |  | targetRow = row + 1; | 
|---|
|  |  |  | } else if (remainder == 0) { | 
|---|
|  |  |  | // 得到当前库位的内围库位 | 
|---|
|  |  |  | targetRow = row - 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String zerofill = zerofill(String.valueOf(targetRow), 2) + locNo.substring(2); | 
|---|
|  |  |  | System.out.println(zerofill); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String zerofill(String msg, Integer count) { | 
|---|
|  |  |  | if (msg.length() == count) { | 
|---|
|  |  |  | return msg; | 
|---|
|  |  |  | } else if (msg.length() > count) { | 
|---|
|  |  |  | return msg.substring(0, 16); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | StringBuilder msgBuilder = new StringBuilder(msg); | 
|---|
|  |  |  | for (int i = 0; i < count - msg.length(); ++i) { | 
|---|
|  |  |  | msgBuilder.insert(0, "0"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return msgBuilder.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 生成工作号 wrkMk 0:入库 1 - 3000 ; 1:拣料/并板/盘点 3001 - 6000 ; 2: 出库 6001 -9000 ; 3:其他 9001 -9999 | 
|---|
|  |  |  | * @return workNo(工作号) | 
|---|
|  |  |  | 
|---|
|  |  |  | int workNo = wrkLastno.getWrkNo(); | 
|---|
|  |  |  | int sNo = wrkLastno.getSNo(); | 
|---|
|  |  |  | int eNo = wrkLastno.getENo(); | 
|---|
|  |  |  | workNo = workNo>=eNo ? sNo : workNo+1; | 
|---|
|  |  |  | workNo = workNo >= eNo ? sNo : workNo + 1; | 
|---|
|  |  |  | while (true) { | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectById(workNo); | 
|---|
|  |  |  | if (null != wrkMast) { | 
|---|
|  |  |  | workNo = workNo>=eNo ? sNo : workNo+1; | 
|---|
|  |  |  | TaskWrk taskWrk = taskWrkService.selectByWrkNo(workNo); | 
|---|
|  |  |  | if (null != taskWrk) { | 
|---|
|  |  |  | workNo = workNo >= eNo ? sNo : workNo + 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 修改序号记录 | 
|---|
|  |  |  | if (workNo > 0){ | 
|---|
|  |  |  | if (workNo > 0) { | 
|---|
|  |  |  | wrkLastno.setWrkNo(workNo); | 
|---|
|  |  |  | wrkLastnoService.updateById(wrkLastno); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (workNo == 0) { | 
|---|
|  |  |  | throw new CoolException("生成工作号失败,请联系管理员"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (wrkMastService.selectById(workNo)!=null) { | 
|---|
|  |  |  | if (taskWrkService.selectByWrkNo(workNo) != null) { | 
|---|
|  |  |  | throw new CoolException("生成工作号" + workNo + "在工作档中已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return workNo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 检索库位号 | 
|---|
|  |  |  | 
|---|
|  |  |  | if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo()); | 
|---|
|  |  |  | String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); | 
|---|
|  |  |  | // 检测目标库位是否为空库位 | 
|---|
|  |  |  | LocMast shallowLoc = locMastService.selectById(shallowLocNo); | 
|---|
|  |  |  | if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { | 
|---|
|  |  |  | 
|---|
|  |  |  | Shelves shelves = new Shelves(rowCount, crn_qty); | 
|---|
|  |  |  | // 1-4排 | 
|---|
|  |  |  | if (whsType == 1) { | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i ++) { | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i++) { | 
|---|
|  |  |  | curRow = shelves.start(curRow); | 
|---|
|  |  |  | if (curRow < 0) { | 
|---|
|  |  |  | throw new CoolException("检索库位失败,请联系管理员"); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 5-8排 | 
|---|
|  |  |  | // 5-8排 | 
|---|
|  |  |  | } else if (whsType == 2) { | 
|---|
|  |  |  | curRow = curRow - 4; | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i ++) { | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i++) { | 
|---|
|  |  |  | curRow = shelves.start(curRow); | 
|---|
|  |  |  | if (curRow < 0) { | 
|---|
|  |  |  | throw new CoolException("检索库位失败,请联系管理员"); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 126空板入 1-8排 | 
|---|
|  |  |  | // 126空板入 1-8排 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i ++) { | 
|---|
|  |  |  | for (int i = 0; i < shelves.group; i++) { | 
|---|
|  |  |  | curRow = shelves.start(curRow); | 
|---|
|  |  |  | if (curRow < 0) { | 
|---|
|  |  |  | throw new CoolException("检索库位失败,请联系管理员"); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); | 
|---|
|  |  |  | if (!staNo.getAutoing().equals("Y")) { | 
|---|
|  |  |  | throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用"); | 
|---|
|  |  |  | throw new CoolException("目标站" + staDesc.getCrnStn() + "不可用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 更新库位排号 | 
|---|
|  |  |  | rowLastno.setCurrentRow(curRow); | 
|---|
|  |  |  | 
|---|
|  |  |  | startupDto.setStaNo(staNo.getDevNo()); | 
|---|
|  |  |  | startupDto.setLocNo(locNo); | 
|---|
|  |  |  | return startupDto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | System.out.println(Arith.remainder(1, 4)); | 
|---|
|  |  |  | System.out.println("0200201".substring(0, 2)); | 
|---|
|  |  |  | String locNo = "0800201"; | 
|---|
|  |  |  | int row = Integer.parseInt(locNo.substring(0, 2)); | 
|---|
|  |  |  | double remainder = Arith.remainder(row, 4); | 
|---|
|  |  |  | int targetRow; | 
|---|
|  |  |  | if (remainder == 1) { | 
|---|
|  |  |  | // 得到当前库位的外围库位 | 
|---|
|  |  |  | targetRow =  row + 1; | 
|---|
|  |  |  | } else if (remainder == 0) { | 
|---|
|  |  |  | // 得到当前库位的内围库位 | 
|---|
|  |  |  | targetRow =  row - 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String zerofill = zerofill(String.valueOf(targetRow), 2)+locNo.substring(2); | 
|---|
|  |  |  | System.out.println(zerofill); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String zerofill(String msg, Integer count) { | 
|---|
|  |  |  | if (msg.length() == count) { | 
|---|
|  |  |  | return msg; | 
|---|
|  |  |  | } else if (msg.length() > count) { | 
|---|
|  |  |  | return msg.substring(0, 16); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | StringBuilder msgBuilder = new StringBuilder(msg); | 
|---|
|  |  |  | for(int i = 0; i < count - msg.length(); ++i) { | 
|---|
|  |  |  | msgBuilder.insert(0, "0"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return msgBuilder.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|