gaoluyang
2026-10-16 7081c41bc3beb0ab49a22974ea4b010ae6854afe
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
@@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.erp.service.sale;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportExcelVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportRespVO;
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.dal.dataobject.sale.ErpSaleOrderDO;
@@ -15,7 +18,7 @@
/**
 * ERP 销售订单 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface ErpSaleOrderService {
@@ -43,20 +46,18 @@
    void updateSaleOrderStatus(Long id, Integer status);
    /**
     * 提交销售订单审批
     * 作废销售订单
     *
     * @param id 编号
     * @param userId 用户编号
     */
    void submitSaleOrder(Long id, Long userId);
    void cancelSaleOrder(Long id);
    /**
     * 更新销售订单的审批状态
     * 重新启用销售订单
     *
     * @param id 编号
     * @param bpmResult BPM 审批结果
     */
    void updateSaleOrderAuditStatus(Long id, Integer bpmResult);
    void enableSaleOrder(Long id);
    /**
     * 更新销售订单的出库数量
@@ -65,14 +66,6 @@
     * @param outCountMap 出库数量 Map:key 销售订单项编号;value 出库数量
     */
    void updateSaleOrderOutCount(Long id, Map<Long, BigDecimal> outCountMap);
    /**
     * 更新销售订单的退货数量
     *
     * @param orderId 编号
     * @param returnCountMap 退货数量 Map:key 销售订单项编号;value 退货数量
     */
    void updateSaleOrderReturnCount(Long orderId, Map<Long, BigDecimal> returnCountMap);
    /**
     * 删除销售订单
@@ -123,4 +116,26 @@
     */
    List<ErpSaleOrderItemDO> getSaleOrderItemListByOrderIds(Collection<Long> orderIds);
    /**
     * 更新销售订单的出库状态
     *
     * 根据明细出库数量自动计算订单状态:
     * - 所有明细都完成出库 → 全部出库状态
     * - 部分明细完成出库 → 部分出库状态
     * - 无明细出库 → 未出库状态
     *
     * @param orderId 订单编号
     */
    void updateSaleOrderOutStatus(Long orderId);
    /**
     * 导入销售订单
     *
     * @param importOrders 导入的销售订单列表(一行一条明细)
     * @param importReqVO  导入参数
     * @return 导入结果
     */
    ErpSaleOrderImportRespVO importSaleOrderList(List<ErpSaleOrderImportExcelVO> importOrders,
                                                ErpSaleOrderImportReqVO importReqVO);
}