#
luxiaotao1123
2021-03-18 87f88b6150021429a3a645c6c93a901c174b7dd0
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -64,22 +64,31 @@
            if (!update) {
                throw new CoolException("修改托盘资料档失败");
            }
            // 更新货位库存明细
            LocDetl locDetl = new LocDetl();
            locDetl.setLocNo(node.getName());
            locDetl.setNodeId(node.getId());
            locDetl.setZpallet(param.getZpallet());
            locDetl.setAnfme(comb.getAnfme());
            VersionUtils.setLocDetl(locDetl, comb);
            locDetl.setStatus(1);
            locDetl.setCreateBy(userId);
            locDetl.setCreateTime(now);
            locDetl.setUpdateBy(userId);
            locDetl.setUpdateTime(now);
            boolean insert = locDetlService.insert(locDetl);
            if (!insert) {
                throw new CoolException("新增库存明细档失败");
            LocDetl locDetl = locDetlService.getLocDetl(node.getId(), comb.getMatnr());
            if (locDetl == null) {
                // 更新货位库存明细
                locDetl = new LocDetl();
                locDetl.setLocNo(node.getName());
                locDetl.setNodeId(node.getId());
                locDetl.setZpallet(param.getZpallet());
                locDetl.setAnfme(comb.getAnfme());
                VersionUtils.setLocDetl(locDetl, comb);
                locDetl.setStatus(1);
                locDetl.setCreateBy(userId);
                locDetl.setCreateTime(now);
                locDetl.setUpdateBy(userId);
                locDetl.setUpdateTime(now);
                boolean insert = locDetlService.insert(locDetl);
                if (!insert) {
                    throw new CoolException("新增库存明细档失败");
                }
            } else {
                if (!locDetlService.incrementStock(node.getId(), comb.getMatnr(), comb.getAnfme())) {
                    throw new CoolException("新增库存明细档失败");
                }
            }
        }
        return R.ok();
    }
@@ -108,6 +117,18 @@
    }
    @Override
    public R stockOutPreview(StockOutParam param, Long userId) {
        List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>()
                .eq("number", param.getNumber())
                .eq("status", 1)
        );
        OrderStoDto dto = new OrderStoDto();
        dto.setNumber(param.getNumber());
        dto.setCustOrders(custOrders);
        return R.ok().add(mainService.stockOutPreview(dto));
    }
    @Override
    public R stockOut(StockOutParam param, Long userId) {
        List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>()
                .eq("number", param.getNumber())
@@ -118,7 +139,7 @@
        dto.setCustOrders(custOrders);
        // 开始整理出库数据
        mainService.stockOutProcess(dto);
        return R.ok();
        return R.ok("生成拣货单成功");
    }
    @Override
@@ -129,7 +150,10 @@
            return R.error("保存数据失败");
        }
        // todo:修改库存数量
        // 修改单据状态
        if (!custOrderService.updateStatus(param.getNumber(), 4)) {
            throw new CoolException("修改单据状态失败");
        }
        return R.ok();
    }
@@ -173,10 +197,27 @@
    }
    @Override
    @Transactional
    public R completePakout(String wrkNo, Long userId) {
        Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo));
        if (null != pakout) {
            if (pakoutService.stockOutComplete(wrkNo, null, userId)) {
                boolean complete = true;
                List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", pakout.getDocNum()));
                for (Pakout item : pakouts) {
                    if (item.getWrkSts() != 3) {
                        complete = false;
                        break;
                    }
                }
                if (complete) {
                    // 修改单据状态
                    if (!custOrderService.updateStatus(pakout.getDocNum(), 4)) {
                        throw new CoolException("修改单据状态失败");
                    }
                }
                return R.ok("拣货单已完成");
            }
        }
@@ -210,12 +251,24 @@
        if (!pakoutService.delete(new EntityWrapper<Pakout>().eq("wrk_no", pakout.getWrkNo()))) {
            throw new CoolException("删除拣货单失败");
        }
        // 取消销售订单
        List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", pakout.getDocNum()));
        if (Cools.isEmpty(pakouts)){
            // 修改单据状态
            if (!custOrderService.updateStatus(pakout.getDocNum(), 3)) {
                throw new CoolException("修改单据状态失败");
            }
        }
        return R.ok("拣货单已取消");
    }
    @Override
    @Transactional
    public R initOrder(InitOrderParam param, Long userId) {
        if (custOrderService.selectCount(new EntityWrapper<CustOrder>().eq("number", param.getNumber()).ne("bType_id", param.getCustomerTypeId())) > 0) {
            return R.error("抱歉单号已存在,请修改单号");
        }
        Date now = new Date();
        for (PakinMatDto dto : param.getList()){
            Mat mat = matService.selectByMatnr(dto.getMatnr());