自动化立体仓库 - WMS系统
skyouc
2 天以前 e350fc16a0655dee101b3198cfa6bd6a6b56877c
src/main/java/com/zy/asrs/utils/OrderExcelListener.java
@@ -48,16 +48,17 @@
    /**
     * 单据导入实现
     * @author Ryan
     * @date 2026/1/8 17:25
     *
     * @param data
     * @param context 
     * @author Ryan
     * @date 2026/1/8 17:25
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void invoke(OrderExcel data, AnalysisContext context) {
        OrderService orderService = (OrderService) SpringUtils.getBean(OrderService.class);
        OrderDetlService detlService = (OrderDetlService) SpringUtils.getBean(OrderDetlService.class);
        OrderService orderService = SpringUtils.getBean(OrderService.class);
        OrderDetlService detlService = SpringUtils.getBean(OrderDetlService.class);
        MatService matService = SpringUtils.getBean(MatService.class);
        DocTypeService docTypeService = SpringUtils.getBean(DocTypeService.class);
        Date now = new Date();
@@ -77,6 +78,15 @@
        Order order = new Order();
        order.setOrderNo(data.getOrderNo());
        if (Objects.isNull(data.getOrderNo())) {
            throw new CoolException("单据编码不能为空!!");
        }
        order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", data.getOrderNo()));
        if (!Objects.isNull(order)) {
            //订单已存在,只添加明细
        } else {
            order = new Order();
            order.setOrderNo(data.getOrderNo());
        order.setDocType(docType.getDocId());
        order.setUuid(UUID.randomUUID().toString());
        order.setCreateTime(now);
@@ -89,6 +99,7 @@
        if (!orderService.insert(order)) {
            throw new CoolException("订单创建失败!!");
        }
        }
        if (Objects.isNull(data.getMatnr())) {
            throw new CoolException("物料编码不能为空!");
        }
@@ -96,16 +107,27 @@
        if (Objects.isNull(mat)) {
            throw new CoolException("物料[" + data.getMatnr() + "]不存在!!");
        }
        OrderDetl orderDetl = detlService.selectOne(new EntityWrapper<OrderDetl>()
                .eq("matnr", data.getMatnr())
                .eq("batch", data.getBatch())
                .eq("barcode", data.getBarcode())
                .eq("order_no", order.getOrderNo()));
        if (!Objects.isNull(orderDetl)) {
            return;
        }
        OrderDetl detl = new OrderDetl();
        detl.setOrderNo(data.getOrderNo());
        detl.setOrderId(order.getId());
        detl.setMatnr(data.getMatnr());
        detl.setMaktx(mat.getMaktx());
        detl.setQty(data.getQty());
        detl.setUnit(data.getUnit());
        detl.setBrand(data.getBrand());
        detl.setSpecs(data.getSpecs());
        detl.setBatch(Objects.isNull(data.getBatch()) ? "1" : data.getBatch());
        detl.setVolume(data.getVolume());
        detl.setSafeQty(data.getSafeQty());
        detl.setVolume(mat.getVolume());
        detl.setSafeQty(mat.getSafeQty());
        detl.setAnfme(data.getAnfme());
        detl.setBarcode(data.getBarcode());
        detl.setUpdateTime(now);