luxiaotao1123
2021-03-19 53dbbd7be6a6ed00d65276a8707680955f9912b9
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -145,11 +145,28 @@
    @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("修改单据状态失败");
@@ -201,6 +218,20 @@
    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;
@@ -228,26 +259,26 @@
    @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("删除拣货单失败");
        }