| | |
| | | @Override |
| | | @Transactional |
| | | public R stockOutComplete(StockConfirmParam param, Long userId) { |
| | | List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>() |
| | | .eq("doc_num", param.getNumber()) |
| | | .in("wrk_sts", 1, 2)); |
| | | // 修改库存数量 |
| | | for (Pakout pakout : pakouts) { |
| | | LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); |
| | | if (pakout.getAnfme()>=locDetl.getAnfme()) { |
| | | // 删除库存明细 |
| | | if (!locDetlService.removeStock(locDetl.getNodeId(), pakout.getMatnr())) { |
| | | throw new CoolException("删除库存明细失败"); |
| | | } |
| | | } else { |
| | | // 修改库存明细数量 |
| | | if (!locDetlService.reduceStock(locDetl.getNodeId(), pakout.getMatnr(), pakout.getAnfme())) { |
| | | throw new CoolException("修改库存明细数量失败"); |
| | | } |
| | | } |
| | | } |
| | | // 修改出库单状态 |
| | | if (!pakoutService.stockOutComplete(param.getWrkNo(), param.getNumber(), userId)) { |
| | | return R.error("保存数据失败"); |
| | | } |
| | | // todo:修改库存数量 |
| | | // 修改单据状态 |
| | | if (!custOrderService.updateStatus(param.getNumber(), 4)) { |
| | | throw new CoolException("修改单据状态失败"); |
| | |
| | | public R completePakout(String wrkNo, Long userId) { |
| | | Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo)); |
| | | if (null != pakout) { |
| | | // 修改库存数量 |
| | | LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); |
| | | if (pakout.getAnfme()>=locDetl.getAnfme()) { |
| | | // 删除库存明细 |
| | | if (!locDetlService.removeStock(locDetl.getNodeId(), pakout.getMatnr())) { |
| | | throw new CoolException("删除库存明细失败"); |
| | | } |
| | | } else { |
| | | // 修改库存明细数量 |
| | | if (!locDetlService.reduceStock(locDetl.getNodeId(), pakout.getMatnr(), pakout.getAnfme())) { |
| | | throw new CoolException("修改库存明细数量失败"); |
| | | } |
| | | } |
| | | // 修改拣货单状态 |
| | | if (pakoutService.stockOutComplete(wrkNo, null, userId)) { |
| | | |
| | | boolean complete = true; |
| | |
| | | @Transactional |
| | | public R cancelPakout(String wrkNo, Long userId) { |
| | | Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo)); |
| | | if (null != pakout) { |
| | | LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); |
| | | if (locDetl == null) { |
| | | LocDetl oldLocDetl = new LocDetl(); |
| | | VersionUtils.setLocDetl(oldLocDetl, pakout); |
| | | oldLocDetl.setCreateTime(new Date()); |
| | | oldLocDetl.setCreateBy(userId); |
| | | oldLocDetl.setUpdateTime(new Date()); |
| | | oldLocDetl.setUpdateBy(userId); |
| | | if (!locDetlService.insert(oldLocDetl)) { |
| | | throw new CoolException("恢复库存明细失败"); |
| | | } |
| | | } else { |
| | | if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) { |
| | | throw new CoolException("恢复库存明细失败"); |
| | | } |
| | | } |
| | | } else { |
| | | return R.error("拣货单已失效,取消失败!"); |
| | | } |
| | | // if (null != pakout) { |
| | | // LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); |
| | | // if (locDetl == null) { |
| | | // LocDetl oldLocDetl = new LocDetl(); |
| | | // VersionUtils.setLocDetl(oldLocDetl, pakout); |
| | | // oldLocDetl.setCreateTime(new Date()); |
| | | // oldLocDetl.setCreateBy(userId); |
| | | // oldLocDetl.setUpdateTime(new Date()); |
| | | // oldLocDetl.setUpdateBy(userId); |
| | | // if (!locDetlService.insert(oldLocDetl)) { |
| | | // throw new CoolException("恢复库存明细失败"); |
| | | // } |
| | | // } else { |
| | | // if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) { |
| | | // throw new CoolException("恢复库存明细失败"); |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return R.error("拣货单已失效,取消失败!"); |
| | | // } |
| | | if (!pakoutService.delete(new EntityWrapper<Pakout>().eq("wrk_no", pakout.getWrkNo()))) { |
| | | throw new CoolException("删除拣货单失败"); |
| | | } |