/**
 * @filename:PurchaseOrderInvoiceCommodityService 2024-09-21
 * @project KJT v1.0.0 Copyright(c) 2024 wanglang Co. Ltd. All right reserved.
 */
package com.trade.service.trade.purchaseorder.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.trade.service.trade.purchaseorder.domain.PurchaseOrderInvoiceCommodity;
import com.trade.service.trade.purchaseorder.dto.InvoiceCommodityDto;

import java.util.List;

/**
 * @Description:采购订单发票商品信息服务层
 * @version: v1.0.0
 * @author: wanglang
 */
public interface PurchaseOrderInvoiceCommodityService extends IService<PurchaseOrderInvoiceCommodity> {

    /**
     * 根据发票id获取发票商品信息
     * 
     * @param invoiceId 发票id
     * @param commodityCodes 商品编码
     * @return 发票商品信息
     */
    List<PurchaseOrderInvoiceCommodity> getInvoiceCommodityByInvoiceId(Long invoiceId, List<String> commodityCodes);

    /**
     * 根据发票id获取发票商品信息
     * 
     * @param invoiceId 发票id
     * @return 发票商品信息
     */
    List<InvoiceCommodityDto> getByInvoiceId(Long invoiceId);

    /**
     * 根据发票id获取发票商品信息
     *
     * @param invoiceId 发票id
     * @param lineNumbers 行号
     * @return 发票商品信息
     */
    List<PurchaseOrderInvoiceCommodity> getInvoiceCommodityByLineNumbers(Long invoiceId, List<String> lineNumbers);

    /**
     * 根据发票id获取发票商品信息
     *
     * @param invoiceId 发票id
     * @return 发票商品信息
     */
    List<PurchaseOrderInvoiceCommodity> getInfoByInvoiceId(Long invoiceId);
}
