#
luxiaotao1123
2021-03-25 4976563e692c610f2a8e2ba472424114340ff6a7
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -529,15 +529,68 @@
            }
        }
        return R.ok();
    }
    @Override
    @Transactional
    public R stockCheckAuditing(Long checkId, Long userId) {
        Check check = checkService.selectById(checkId);
        if (null == check) {
            return R.error("盘点记录已失效");
        }
        Date now = new Date();
        // 1.修改库存数量
        if (check.getOriQty() != 0 && check.getCekQty() != 0) {
            // 更新库存明细
            if (check.getSettle() == 1) {
                if (!locDetlService.incrementStock(check.getNodeId(), check.getMatnr(), Math.abs(check.getDiffQty()))) {
                    throw new CoolException("修改库存明细数量失败");
                }
            } else if (check.getSettle() == 2) {
                if (!locDetlService.reduceStock(check.getNodeId(), check.getMatnr(), Math.abs(check.getDiffQty()))) {
                    throw new CoolException("修改库存明细数量失败");
                }
            }
        }
        // 2.删除库存
        if (check.getOriQty() != 0 && check.getCekQty() == 0) {
            if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("node_id", check.getNodeId()).eq("matnr", check.getMatnr()))) {
                throw new CoolException("删除库存明细数量失败");
            }
        }
        // 3.新增库存
        if (check.getOriQty() == 0 && check.getCekQty() != 0) {
            Mat mat = matService.selectByMatnr(check.getMatnr());
            if (mat == null) {
                throw new CoolException("商品数据异常,请联系管理员");
            }
            // 更新货位库存明细
            LocDetl locDetl = new LocDetl();
            locDetl.setLocNo(check.getLocNo());
            locDetl.setNodeId(check.getNodeId());
//            locDetl.setZpallet(param.getZpallet());
            locDetl.setAnfme(check.getCekQty());
            VersionUtils.setLocDetl(locDetl, mat);
            locDetl.setStatus(1);
            locDetl.setCreateBy(userId);
            locDetl.setCreateTime(now);
            locDetl.setUpdateBy(userId);
            locDetl.setUpdateTime(now);
            if (!locDetlService.insert(locDetl)) {
                throw new CoolException("新增库存明细失败");
            }
        }
        // 修改盘点记录
        check.setStatus(2);
        check.setUpdateBy(userId);
        check.setUpdateTime(now);
        if (!checkService.updateById(check)) {
            throw new CoolException("修改盘点记录状态失败");
        }
        return R.ok();
    }