| | |
| | | |
| | | public void movLoc(WrkMast wrkMast) { |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | if (Objects.isNull(locMast)) { |
| | | throw new CoolException("目标库位不存在!!"); |
| | | } |
| | | Date now = new Date(); |
| | | Long operatorUser = wrkMast.getModiUser(); |
| | | if (Objects.isNull(operatorUser)) { |
| | | operatorUser = wrkMast.getAppeUser(); |
| | | } |
| | | // 默认目标库位是空板 |
| | | String locSts = "D"; |
| | | // 库位移转判断是否为空板移转 |
| | | if (wrkMast.getEmptyMk().equals("N")) { |
| | | if ("N".equals(wrkMast.getEmptyMk())) { |
| | | locSts = "F"; |
| | | // 转移库存明细数据: 库存号 由工作档源库位变为目标库位 |
| | | if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) { |
| | | // exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | log.info("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | List<LocDetl> sourceDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo())); |
| | | for (LocDetl sourceDetl : sourceDetls) { |
| | | LocDetl targetDetl = locDetlService.selectItem(wrkMast.getLocNo(), sourceDetl.getMatnr(), sourceDetl.getBatch(), sourceDetl.getBrand(), |
| | | sourceDetl.getStandby1(), sourceDetl.getStandby2(), sourceDetl.getStandby3(), sourceDetl.getBoxType1(), |
| | | sourceDetl.getBoxType2(), sourceDetl.getBoxType3()); |
| | | if (null != targetDetl && !Objects.equals(targetDetl.getId(), sourceDetl.getId())) { |
| | | Double targetQty = targetDetl.getAnfme() == null ? 0D : targetDetl.getAnfme(); |
| | | Double sourceQty = sourceDetl.getAnfme() == null ? 0D : sourceDetl.getAnfme(); |
| | | targetDetl.setAnfme(Math.round((targetQty + sourceQty) * 10000) / 10000.0); |
| | | targetDetl.setAreaId(locMast.getAreaId()); |
| | | targetDetl.setAreaName(locMast.getAreaName()); |
| | | targetDetl.setModiTime(now); |
| | | if (!Objects.isNull(operatorUser)) { |
| | | targetDetl.setModiUser(operatorUser); |
| | | } |
| | | if (!locDetlService.updateById(targetDetl)) { |
| | | throw new CoolException("库位移转 ===>> 合并库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | if (!locDetlService.deleteById(sourceDetl.getId())) { |
| | | throw new CoolException("库位移转 ===>> 删除源库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | } else { |
| | | sourceDetl.setLocNo(wrkMast.getLocNo()); |
| | | sourceDetl.setAreaId(locMast.getAreaId()); |
| | | sourceDetl.setAreaName(locMast.getAreaName()); |
| | | sourceDetl.setModiTime(now); |
| | | if (!Objects.isNull(operatorUser)) { |
| | | sourceDetl.setModiUser(operatorUser); |
| | | } |
| | | if (!locDetlService.updateById(sourceDetl)) { |
| | | throw new CoolException("库位移转 ===>> 转移库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 修改源库位状态 ==> O |
| | | LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); |
| | | if (null != sourceLoc) { |
| | | if (null == sourceLoc) { |
| | | throw new CoolException("源库位不存在!!"); |
| | | } |
| | | sourceLoc.setBarcode(""); |
| | | sourceLoc.setLocSts("O"); |
| | | sourceLoc.setModiTime(now); |
| | | sourceLoc.setIoTime(now); |
| | | if (!locMastService.updateById(sourceLoc)) { |
| | | // exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | log.info("库位移转 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | throw new CoolException("库位移转 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | // 修改目标库位状态 ==> .locSts |
| | | locMast.setLocSts(locSts); |
| | |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | | // exceptionHandle("库位移转 ===>> 修改目标库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | log.info("库位移转 ===>> 修改目标库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | throw new CoolException("库位移转 ===>> 修改目标库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | |