| | |
| | | @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) { |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(workNo); |
| | | if (null != taskWrk) { |
| | | workNo = workNo>=eNo ? sNo : workNo+1; |
| | | 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 (taskWrkService.selectByWrkNo(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(); |
| | | } |
| | | } |
| | | |
| | | } |