yudao-module-erp-api/src/main/java/cn/iocoder/yudao/module/erp/api/purchase/ErpPurchaseOrderApi.java
@@ -1,16 +1,19 @@
package cn.iocoder.yudao.module.erp.api.purchase;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderCreateReqDTO;
import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderItemRespDTO;
import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ERP 采购订单 API 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface ErpPurchaseOrderApi {
@@ -75,4 +78,31 @@
     */
    CommonResult<Boolean> updateOrderInStatus(Long orderId);
    /**
     * 创建采购订单(RPC 调用)
     *
     * @param createReqDTO 创建信息
     * @return 订单编号
     */
    CommonResult<Long> createPurchaseOrder(ErpPurchaseOrderCreateReqDTO createReqDTO);
    /**
     * 按来源查询采购订单明细列表(用于追溯来源工单的采购情况)
     *
     * @param sourceType 来源类型
     * @param sourceId   来源单据编号
     * @return 采购订单明细列表
     */
    CommonResult<List<ErpPurchaseOrderItemRespDTO>> getPurchaseOrderItemListBySource(Integer sourceType, Long sourceId);
    /**
     * 批量获取物料的采购加权平均单价(仅统计已审核采购订单)
     *
     * 计算方式:SUM(明细总价) / SUM(明细数量);无有效采购记录时返回空 Map
     *
     * @param productIds 物料编号集合(mdm_item.id)
     * @return 物料编号 → 加权平均单价
     */
    CommonResult<Map<Long, BigDecimal>> getItemAveragePurchasePriceMap(Collection<Long> productIds);
}