自动化立体仓库 - WMS系统
13
zhang
2025-05-26 1a0409e260b79b030f79a4fad995078a7f1b945c
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -24,6 +24,7 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
@@ -70,16 +71,14 @@
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) {
                if (nccSaleXsfhmxWms.getFstatusflag() == 2 && nccSaleXsfhmxWms.getBdr() == 0 && nccSaleXsfhmxWms.getHdr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
                    detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
                    orderDetails.add(detlDto);
                    log.info("NccSaleXsfhmxWms数据:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
                    i++;
                }
                detlDto = new DetlDto();
                detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
                detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
                orderDetails.add(detlDto);
                log.info("NccSaleXsfhmxWms数据:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
                i++;
                nccSaleXsfhmxWms.setWmsFlag(1);
                param.setOrderNo(nccSaleXsfhmxWms.getVbillcode());
            }
@@ -99,25 +98,23 @@
     *
     * @return
     */
    public ReturnT<String> start2(List<NccScZkmxbWms> wmsFlag) {
    public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) {
        try {
            OpenOrderPakinParam param = new OpenOrderPakinParam();
            param.setOrderType("转库");
            param.setOrderType("转库-入库");
            DetlDto detlDto;
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
                log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if ( nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                    detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
                    detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
                    orderDetails.add(detlDto);
                    i++;
                }
                detlDto = new DetlDto();
                detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
                detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
                orderDetails.add(detlDto);
                i++;
                nccScZkmxbWms.setWmsFlag(1);
                param.setOrderNo(nccScZkmxbWms.getVbillcode());
            }
@@ -132,6 +129,41 @@
        return SUCCESS;
    }
    /**
     * 转库,包含出库
     *
     * @return
     */
    public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) {
        try {
            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
            param.setOrderType("转库-出库");
            DetlDto detlDto;
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
                log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                detlDto = new DetlDto();
                detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
                detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
                orderDetails.add(detlDto);
                i++;
                nccScZkmxbWms.setWmsFlag(1);
                param.setOrderNo(nccScZkmxbWms.getVbillcode());
            }
            param.setOrderDetails(orderDetails);
            openService.pakoutOrderCreate(param);
            nccScZkmxbWmsService.updateBatchById(wmsFlag);
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
    /**
     * 采购到货
@@ -147,15 +179,14 @@
            long i = 1;
            for (NccCgCgdhdWms nccCgCgdhdWms : wmsFlag) {
                log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
                if (nccCgCgdhdWms.getBdr() == 0 && nccCgCgdhdWms.getHdr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                    detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                    orderDetails.add(detlDto);
                    i++;
                }
                detlDto = new DetlDto();
                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                orderDetails.add(detlDto);
                i++;
                nccCgCgdhdWms.setWmsFlag(1);
                param.setOrderNo(nccCgCgdhdWms.getVbillcode());
            }
@@ -182,26 +213,27 @@
            InventoryCheckOrderDetl checkOrderDetl = null;
            for (NccCkPddWms nccScZkmxbWms : wmsFlag) {
                log.info("NccCkPddWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) {
                    Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
                    if (Cools.isEmpty(mat)) {
                        throw new CoolException(nccScZkmxbWms.getWlbm() + "编号商品检索失败,请先添加商品");
                    }
                    List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()).eq("batch", nccScZkmxbWms.getVbatchcode()));
                    if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
                        throw new CoolException(nccScZkmxbWms.getWlbm() + "盘点单的明细重复了");
                    }
                    checkOrderDetl = new InventoryCheckOrderDetl();
                    checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
                    checkOrderDetl.setMaktx(mat.getMaktx());
                    checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
                    checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
                    checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
                    inventoryCheckOrderDetlService.insert(checkOrderDetl);
                Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
                if (Cools.isEmpty(mat)) {
                    throw new CoolException(nccScZkmxbWms.getWlbm() + "编号商品检索失败,请先添加商品");
                }
                List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()).eq("batch", nccScZkmxbWms.getVbatchcode()));
                if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
                    //throw new CoolException(nccScZkmxbWms.getWlbm() + "盘点单的明细重复了");
                }
                checkOrderDetl = new InventoryCheckOrderDetl();
                checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
                checkOrderDetl.setMaktx(mat.getMaktx());
                checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
                checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
                checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
                inventoryCheckOrderDetlService.insert(checkOrderDetl);
                nccScZkmxbWms.setWmsFlag(1);
                param.setOrderNo(nccScZkmxbWms.getVbillcode());
                param.setCreateBy(nccScZkmxbWms.getPdrmc());
            }
            param.setCreateTime(new Date());
            param.setStatus("1");
            inventoryCheckOrderService.insert(param);
            nccCkPddWmsService.updateBatchById(wmsFlag);
@@ -212,7 +244,6 @@
        }
        return SUCCESS;
    }
    /**
@@ -229,16 +260,14 @@
            long i = 1;
            for (NccSaleDbddWms nccCgCgdhdWms : wmsFlag) {
                log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
                if (nccCgCgdhdWms.getDr() == 0 ) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                    detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
                    detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                    orderDetails.add(detlDto);
                    i++;
                }
                detlDto = new DetlDto();
                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                orderDetails.add(detlDto);
                i++;
                nccCgCgdhdWms.setWmsFlag(1);
                param.setOrderNo(nccCgCgdhdWms.getVbillcode());
            }