#
luxiaotao1123
2021-06-29 cc2b7c021293f25748711617ef182b2d15192dbd
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -17,6 +17,7 @@
import zy.cloud.wms.common.service.MainService;
import zy.cloud.wms.common.service.asrs.AsrsService;
import zy.cloud.wms.common.service.asrs.entity.Result1;
import zy.cloud.wms.common.service.erp.ErpR;
import zy.cloud.wms.common.service.erp.ErpService;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
@@ -67,7 +68,11 @@
    public R stockPakin(PakinParam param, Long userId) {
        Node node = nodeService.selectByUuid(param.getNodeId());
        if (node == null) {
            node = nodeService.selectById(param.getNodeId());
            try {
                node = nodeService.selectById(param.getNodeId());
            } catch (Exception e) {
                return R.error("货位不存在");
            }
        }
        if (node == null) {
            return R.error("货位不存在");
@@ -128,8 +133,9 @@
            billDto.setQty(dto.getCount());
            dtos.add(billDto);
        }
        if (!erpService.uploadBill(dtos, docId, docNum)) {
            throw new CoolException("无法上报至erp");
        ErpR erpR = erpService.uploadBill(dtos, docId, docNum);
        if (!erpR.getSuccess()) {
            throw new CoolException("无法上报至erp:"+erpR.getMsg());
        }
        return R.ok("入库成功");
@@ -260,8 +266,9 @@
            billDto.setQty(comb.getAnfme());
            dtos.add(billDto);
        }
        if (!erpService.uploadBill(dtos, param.getDocType(), docNum)) {
            throw new CoolException("无法上报至erp");
        ErpR erpR = erpService.uploadBill(dtos, param.getDocType(), docNum);
        if (!erpR.getSuccess()) {
            throw new CoolException("无法上报至erp:"+erpR.getMsg());
        }
        return R.ok();
    }
@@ -616,32 +623,61 @@
            }
        }
        // 直接增加库存
        LocDetl locDetl = locDetlService.getLocDetl(param.getNode_id(), param.getMatnr());
        if (locDetl == null) {
            // 更新货位库存明细
            locDetl = new LocDetl();
            locDetl.setLocNo(node.getName());
            locDetl.setNodeId(node.getId());
            locDetl.setAnfme(anfme);
            VersionUtils.setLocDetl(locDetl, mat);
            locDetl.setStatus(1);
            locDetl.setCreateBy(userId);
            locDetl.setCreateTime(new Date());
            locDetl.setUpdateBy(userId);
            locDetl.setUpdateTime(new Date());
            boolean insert = locDetlService.insert(locDetl);
            if (!insert) {
                throw new CoolException("新增库存明细档失败");
            }
        } else {
            if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), anfme)) {
                throw new CoolException("新增库存明细档失败");
//        LocDetl locDetl = locDetlService.getLocDetl(param.getNode_id(), param.getMatnr());
//        if (locDetl == null) {
//            // 更新货位库存明细
//            locDetl = new LocDetl();
//            locDetl.setLocNo(node.getName());
//            locDetl.setNodeId(node.getId());
//            locDetl.setAnfme(anfme);
//            VersionUtils.setLocDetl(locDetl, mat);
//            locDetl.setStatus(1);
//            locDetl.setCreateBy(userId);
//            locDetl.setCreateTime(new Date());
//            locDetl.setUpdateBy(userId);
//            locDetl.setUpdateTime(new Date());
//            boolean insert = locDetlService.insert(locDetl);
//            if (!insert) {
//                throw new CoolException("新增库存明细档失败");
//            }
//        } else {
//            if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), anfme)) {
//                throw new CoolException("新增库存明细档失败");
//            }
//        }
        return R.ok("补仓成功,等待立库调拨");
    }
    @Override
    public R asrsStockTransferLocMode(AsrsTransferParam param, Long userId) {
        if (Cools.isEmpty(param.getNode_id(), param.getMatnr(), param.getSafe_qua(), param.getAmount())) {
            return R.error("数量错误");
        }
        Node node = nodeService.selectById(param.getNode_id());
        Mat mat = matService.selectByMatnr(param.getMatnr());
        if (node == null || mat == null) {
            return R.error();
        }
        double anfme = Arith.subtract(2, param.getSafe_qua(), param.getAmount());
        List<StockTransferParam> params = new ArrayList<>();
        StockTransferParam transferParam = new StockTransferParam();
        transferParam.setMatnr(param.getMatnr());
        transferParam.setAnfme(anfme);
        transferParam.setAllotNo(param.getNode_id()+ "_" +param.getMatnr());
        transferParam.setLocNo(param.getLocNo());
        params.add(transferParam);
        Result1 result = asrsService.stockTransferLocMode(params);
        if (result.getCode() == 500) {
            if (Cools.isEmpty(result.getData())) {
                throw new CoolException(result.getMsg());
            } else {
                throw new CodeCoolException("20001-" + result.getData());
            }
        }
        return R.ok("补仓成功,等待立库调拨");
    }
    @Override
    public R stockCheck(StoCheckParam param, Long userId) {
@@ -816,9 +852,11 @@
        String docNum = null;
        Long docId = null;
        switch (check.getSettle()) {
            case 1:    // 盘盈
                docNum = "CS-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
                docId = 14L; // 报溢单
            case 1:    // 盘盈 todo 前期用采购单上报
//                docNum = "CS-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
//                docId = 14L; // 报溢单
                docNum = "PU-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
                docId = 34L; // 采购单
                break;
            case 2:    // 盘亏
                docNum = "CD-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15);
@@ -842,8 +880,9 @@
        billDto.setMatnr(check.getMatnr());
        billDto.setQty(Math.abs(check.getDiffQty()));
        dtos.add(billDto);
        if (!erpService.uploadBill(dtos, docId.intValue(), docNum)) {
            throw new CoolException("无法上报至erp");
        ErpR erpR = erpService.uploadBill(dtos, docId.intValue(), docNum);
        if (!erpR.getSuccess()) {
            throw new CoolException("无法上报至erp:"+erpR.getMsg());
        }
        return R.ok();
    }