package com.jwipc.contract.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jwipc.contract.entity.ContractPaymentApply;
import com.jwipc.contract.entity.ContractPaymentApplyDetail;
import com.jwipc.contract.model.po.AttachmentManualCheckPO;
import com.jwipc.contract.model.po.ContractPaymentApplyPO;
import com.jwipc.contract.model.query.ContractPaymentApplyHeadQuery;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 资产合同付款申请主表 服务类
 * </p>
 *
 * @author WT
 * @since 2024-03-08
 */
public interface IContractPaymentApplyService extends IService<ContractPaymentApply> {

    List<ContractPaymentApplyPO> selectListByPage(Page<ContractPaymentApply> dbPage, ContractPaymentApplyHeadQuery query);

    List<ContractPaymentApply> findDataStatusByIdList(List<Long> appIdList);
    List<ContractPaymentApply> findDataStatusByContractList(String contractNo,String paymentType);
    List<AttachmentManualCheckPO> getByBusinessIdAndTypeList(Long id);

//    List<PaymentCodApply> findAppDetailByAccountStatementNo(String accountStatementNo);
//
//    List<PaymentCodApply> findDataBySupplierAndAmount(String supplierCode, BigDecimal applyPaymentAmount, Integer monthNum);

    /**
     * 根据供应商、合同号、金额查询
     *
     * @param supplierCode
     * @param contractNo
     * @param budOutMoney
     * @return
     */
    List<ContractPaymentApplyDetail> findDataBySupplierAndAccountAndAmount(String supplierCode, String contractNo, BigDecimal budOutMoney, Long id);

    /**
     * 根据合同编号查询在途合同请款信息
     * @param contractCode 合同编号
     * @return 在途合同请款信息
     */
    List<ContractPaymentApply> findUnderPaymentByContractCode(String contractCode);
}
