yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
@@ -3,6 +3,8 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportExcelVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO;
import jakarta.validation.Valid;
@@ -15,7 +17,7 @@
/**
 * ERP 销售订单 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface ErpSaleOrderService {
@@ -28,6 +30,14 @@
    Long createSaleOrder(@Valid ErpSaleOrderSaveReqVO createReqVO);
    /**
     * 导入销售订单(导入后为“未提交”状态,可继续编辑或提交审批)
     *
     * @param importList 导入数据(每一行 = 一条明细,相同销售单编号合并为一张订单)
     * @return 导入结果
     */
    ErpSaleOrderImportRespVO importSaleOrderList(List<ErpSaleOrderImportExcelVO> importList);
    /**
     * 更新销售订单
     *
     * @param updateReqVO 更新信息
@@ -35,12 +45,30 @@
    void updateSaleOrder(@Valid ErpSaleOrderSaveReqVO updateReqVO);
    /**
     * 更新销售订单的状态
     * 提交销售订单审批(协同办公 BPM)
     *
     * 未提交或已驳回的销售订单可提交,提交后进入协同办公审批流程
     *
     * @param id 编号
     * @param status 状态
     * @param processDefinitionKey 流程定义的标识
     * @param userId 提交人编号
     */
    void updateSaleOrderStatus(Long id, Integer status);
    void submitSaleOrder(Long id, String processDefinitionKey, Long userId);
    /**
     * 更新销售订单的审批状态(协同办公审批结果回调)
     *
     * @param id 编号
     * @param bpmResult BPM 审批结果(通过/驳回/取消)
     */
    void updateSaleOrderAuditStatus(Long id, Integer bpmResult);
    /**
     * 获得销售订单审批流程定义列表
     *
     * @return 流程定义列表(id/key/name)
     */
    List<Map<String, Object>> getSaleOrderApproveProcessDefinitionList();
    /**
     * 作废销售订单