src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -59,8 +59,6 @@ private CommonService commonService; @Autowired private MatService matService; @Autowired private BomMatService bomMatService; // 商品上架 @RequestMapping("/mat/onSale/auth") @@ -120,38 +118,6 @@ return R.ok("组托成功"); } @RequestMapping("/comb/checkBom") @ManagerAuth(memo = "校验Bom") public R checkBom(@RequestBody CheckBom checkBom){ BomMat bomMat = new BomMat(); // 没有输入bom号正常组托 if (Cools.isEmpty(checkBom.getBomCode())) { return R.ok(); } if (Cools.isEmpty(checkBom.getMatnr())) { return R.ok().add(bomMat); } else { // 检查是否在bom清单内 bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("unit_num", checkBom.getBomCode()).eq("element_num", checkBom.getMatnr())); if (Cools.isEmpty(bomMat)) { throw new CoolException("当前物料" + checkBom.getMatnr() + "不在Bom清单内"); } else { // 检查库存中是否有当前bom的物料 Double bomQyt = locDetlService.getBomQyt(checkBom.getBomCode(), checkBom.getMatnr()); if (!Cools.isEmpty(bomQyt)) { bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQyt); } Double bomQty = wrkDetlService.getBomQty(checkBom.getBomCode(), checkBom.getMatnr()); if (!Cools.isEmpty(bomQty)) { bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQty); } // 检查工作档中是否有当前bom的物料 } } return R.ok().add(bomMat); } @RequestMapping("/pack/get/auth") @ManagerAuth src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -79,8 +79,6 @@ private DocTypeService docTypeService; @Autowired private MatV2Service matV2Service; @Autowired private BomMatService bomMatService; @Override @Transactional @@ -292,25 +290,6 @@ waitPakin.setBrand("组件"); } else { waitPakin.sync(mat); } // 校验是否为bom入库 bom入库的数量不能超过库存原有数量 if (!Cools.isEmpty(param.getBomCode())) { BomMat bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("unit_num", param.getBomCode()).eq("element_num", detlDto.getMatnr())); Double bomQyt = locDetlService.getBomQyt(param.getBomCode(), detlDto.getMatnr()); if (!Cools.isEmpty(bomQyt)) { bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQyt); } Double bomQty = wrkDetlService.getBomQty(param.getBomCode(), detlDto.getMatnr()); if (!Cools.isEmpty(bomQty)) { bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQty); } if (bomMat.getZpalletAnfme() == 0.0D) { throw new CoolException(detlDto.getMatnr() + "当前物料已入最大数量"); } else { if (bomMat.getZpalletAnfme() < detlDto.getAnfme()) { throw new CoolException(detlDto.getMatnr() + "当前物料最多可入" + bomMat.getZpalletAnfme() + "件"); } } } waitPakin.setBatch(detlDto.getBatch()); waitPakin.setZpallet(param.getBarcode()); // 托盘码 src/main/java/com/zy/common/service/CommonService.java
@@ -98,6 +98,7 @@ @Transactional public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) { // whsType = getWhsType(sourceStaNo, times); StartupDto startupDto = new StartupDto(); @@ -107,6 +108,7 @@ throw new CoolException("数据异常,请联系管理员"); } // ===============>>>> 开始执行 // ===============>>>> 开始执行 int curRow = rowLastno.getCurrentRow(); int sRow = rowLastno.getsRow(); @@ -118,14 +120,60 @@ // 目标库位 LocMast locMast = null; // 靠近摆放规则 --- 同天同规格物料 if (!Cools.isEmpty(matNos)) { List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow); for (String locNo : locNos) { if (Utils.isShallowLoc(slaveProperties, locNo)) { continue; } String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo); // 检测目标库位是否为空库位 LocMast shallowLoc = locMastService.selectById(shallowLocNo); if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) { if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) { locMast = shallowLoc; crnNo = locMast.getCrnNo(); break; } } } } } // 靠近摆放规则 --- 空托 if (staDescId == 10) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow)); if (locMasts.size() > 0) { for (LocMast loc : locMasts) { if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) { continue; } String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); // 检测目标库位是否为空库位 LocMast shallowLoc = locMastService.selectById(shallowLocNo); if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { if (shallowLoc.getLocType1()<locTypeDto.getLocType1()){ continue; } if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) { locMast = shallowLoc; crnNo = locMast.getCrnNo(); break; } } } } } // 如果没有相近物料,则按规则轮询货架 if (null == locMast) { Shelves shelves = new Shelves(rowCount, crn_qty); int divides = (int) Arith.divides(1, curRow - 1, 2); curRow = (int) Arith.remainder(curRow, 2); int divides = (int) Arith.divides(1, curRow - 1, 4); curRow = (int) Arith.remainder(curRow, 4); if (curRow == 0) { curRow = 2; curRow = 4; } for (int i = 0; i < shelves.group; i ++) { curRow = shelves.start(curRow); @@ -136,7 +184,7 @@ crnNo1 = crnNo1 + divides*1; if (basCrnpService.checkSiteError(crnNo1, true)) { crnNo = crnNo1; curRow = curRow + divides*2; curRow = curRow + divides*4; break; } } @@ -193,9 +241,13 @@ // 目标库位 ===>> 深库位, 则校验其浅库位是否为 O if (null != locMast && Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) { LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast.getLocNo())); if (!Cools.isEmpty(shallowLoc)) { if (!shallowLoc.getLocSts().equals("O")) { locMast = null; } } } } } @@ -209,10 +261,10 @@ } // 轻货物找轻库位为空时,可以去找重库位仓 if (locTypeDto.getLocType1() == 2) { locTypeDto.setLocType1((short) 1); return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times); } // if (locTypeDto.getLocType1() == 1) { // locTypeDto.setLocType1((short) 1); // return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times); // } log.error("系统没有空库位!!! 尺寸规格: {}, 轮询次数:{}", JSON.toJSONString(locTypeDto), times); throw new CoolException("没有空库位"); }