云
2026-10-28 dd637406e18a7afbf08d323c6ece913fe545b7ad
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -285,6 +285,10 @@
            }
            ErpSaleOrderSaveReqVO.Item itemVO = new ErpSaleOrderSaveReqVO.Item();
            itemVO.setProductId(item.getId());
            if (row.getReelNo() != null && row.getReelNo().length() > 128) {
                throw new IllegalArgumentException("产品[" + row.getProductCode() + "]的盘号不能超过128个字符");
            }
            itemVO.setReelNo(row.getReelNo());
            itemVO.setProductUnitId(item.getUnitMeasureId());
            // 单价:未填写时取物料的销售价(与页面选产品后的默认值一致)
            itemVO.setProductPrice(row.getProductPrice() != null ? row.getProductPrice()
@@ -401,6 +405,16 @@
        }
        // 4. 创建 BPM 流程实例(审批在协同办公完成)
        // 全局免审批:业务校验通过后直接执行审批通过逻辑,无需流程模型。
        if (processInstanceApi.isGlobalAutoApprove()) {
            saleOrderMapper.updateById(new ErpSaleOrderDO()
                    .setId(id)
                    .setStatus(ErpAuditStatus.APPROVING.getStatus())
                    .setProcessInstanceId(""));
            updateSaleOrderAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
            return;
        }
        String processInstanceId = processInstanceApi.createProcessInstance(userId,
                new BpmProcessInstanceCreateReqDTO()
                        .setProcessDefinitionKey(processDefinitionKey)
@@ -558,6 +572,7 @@
        createReqDTO.setSaleOrderId(saleOrder.getId());
        createReqDTO.setSaleOrderNo(saleOrder.getNo());
        createReqDTO.setSaleOrderItemId(item.getId());
        createReqDTO.setReelNo(item.getReelNo());
        createReqDTO.setMdmItemId(item.getProductId());
        createReqDTO.setProductName(productName);
        createReqDTO.setQuantity(item.getCount());
@@ -733,8 +748,7 @@
    @Override
    public PageResult<ErpSaleOrderDO> getSaleOrderPage(ErpSaleOrderPageReqVO pageReqVO) {
        List<Long> permittedCustomerIds = customerApi.getPermittedCustomerIds();
        return saleOrderMapper.selectPage(pageReqVO, permittedCustomerIds);
        return saleOrderMapper.selectPage(pageReqVO);
    }
    // ==================== 订单项 ====================