xiaoyi
6 天以前 a57dceb3e6bc02e28a86f4de66f593706452c2b4
yudao-module-erp-api/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApi.java
@@ -2,12 +2,16 @@
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderCreateReqDTO;
import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderItemRespDTO;
import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderRespDTO;
import java.math.BigDecimal;
import java.util.List;
/**
 * ERP 销售订单 API 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface ErpSaleOrderApi {
@@ -29,6 +33,9 @@
     */
    CommonResult<ErpSaleOrderRespDTO> getSaleOrder(Long id);
    /** 在调用方事务中锁定并校验可用于发货的销售订单。 */
    CommonResult<ErpSaleOrderRespDTO> lockSaleOrderForNotice(Long id, String orderNo);
    /**
     * 根据合同编号获取销售订单
     *
@@ -37,4 +44,52 @@
     */
    CommonResult<ErpSaleOrderRespDTO> getSaleOrderByContractId(Long contractId);
}
    /**
     * 获取销售订单明细列表
     *
     * @param orderId 订单编号
     * @return 明细列表
     */
    CommonResult<List<ErpSaleOrderItemRespDTO>> getSaleOrderItemList(Long orderId);
    /**
     * 获取销售订单明细
     *
     * @param id 明细编号
     * @return 明细
     */
    CommonResult<ErpSaleOrderItemRespDTO> getSaleOrderItem(Long id);
    /**
     * 更新销售订单明细的出库数量
     *
     * @param orderItemId 明细编号
     * @param outCount    出库数量增量
     */
    CommonResult<Boolean> updateOrderItemOutCount(Long orderItemId, BigDecimal outCount);
    /**
     * 更新销售订单的出库状态
     *
     * @param orderId 订单编号
     */
    CommonResult<Boolean> updateOrderOutStatus(Long orderId);
    /**
     * 更新销售订单的出库状态为指定值
     *
     * @param orderId   订单编号
     * @param outStatus 出库状态
     */
    CommonResult<Boolean> updateOrderOutStatusTo(Long orderId, Integer outStatus);
    /**
     * 作废销售订单(供售后/退单流程联动)
     *
     * <p>订单已存在未取消的 MPS 计划时会抛出业务异常,由调用方提示用户先处理计划。
     *
     * @param orderId 订单编号
     */
    CommonResult<Boolean> cancelSaleOrder(Long orderId);
}