package com.jwipc.finance.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwipc.finance.entity.InvoicedApplyDetail;
import com.jwipc.finance.model.po.CreatePcaDetailPO;
import com.jwipc.finance.model.po.InvoicedApplyItemPO;

import java.util.List;

/**
 * <p>
 * 对账模块-开票申请明细 服务类
 * </p>
 *
 * @author shenyang.ou
 * @since 2024-03-04
 */
public interface IInvoicedApplyDetailService extends IService<InvoicedApplyDetail> {

    /**
     * 获取已经存在开票申请中的对账单明细ID
     *
     * @param supplierCode 供应商编码
     * @param companyCode  公司编码
     * @return 结果
     */
    List<Long> findExistAsdIdByQuery(String supplierCode, String companyCode);

    /**
     * 提供采购确认时获取开票申请明细数据
     *
     * @param iaId 开票申请单ID
     * @return 结果
     */
    List<InvoicedApplyItemPO> providePurchaseConfirm(Long iaId);

    /**
     * 根据开票申请ID获取开票申请明细
     *
     * @param iaId 开票申请单ID
     * @param iaIdList 开票申请单ID集合
     * @return 结果
     */
    List<InvoicedApplyDetail> findByInvoiceApplyId(Long iaId, List<Long> iaIdList);

    /**
     * 根据明细ID获取数据
     *
     * @param iadIdList 开票申请明细ID
     * @return 结果
     */
    List<InvoicedApplyDetail> findByIdList(List<Long> iadIdList);

    /**
     * 查询贷项凭证数量
     * @param invoiceNo
     * @return
     */
    List<InvoicedApplyDetail> findByInvoiceNo(String invoiceNo);

    List<CreatePcaDetailPO> queryCodApplyInvoiceById(Long id);
    List<CreatePcaDetailPO> queryCodApplyInvoiceByAccountStatementNo(String accountStatementNo);

    List<CreatePcaDetailPO> queryCodApplyInvoiceListByAccountStatementNo(String accountStatementNo,String createTime);
}
