package com.yifu.cloud.plus.v1.ekp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.icbc.api.DefaultIcbcClient;
import com.icbc.api.IcbcApiException;
import com.icbc.api.response.MybankEnterprisePayQpayentResponseV1;
import com.icbc.api.response.MybankEnterpriseTradeQhisdResponseV1;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelNoTaxVo;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseIdNameNoVo;

import java.util.List;
import java.util.Map;

/**
 * 聚富通到账通知交易流水查询
 *
 * @author huyc
 * @date 2024-05-23 11:21:56
 */
public interface IcbcTransactionFlowQueryService extends IService<EkpSocialInfo> {

	R getIcbcTransactionFlow();

	R getIcbcTransactionFlowNew() throws IcbcApiException;

	R getIcbcTransactionFlowYesterdayInner() throws IcbcApiException;

	R saveIcbcManagerCard();

	/**
	 * @Description: 根据银行卡号查询银行信息
	 * @Author: huyc
	 * @Date: 2024-11-12
	 * @return: R
	 **/
	R<EkpBankCodeSet> querybankinfo(String cardNo);

	/**
	 * @Description: 查询账单明细文件名
	 * @Author: huyc
	 * @Date: 2024-12-12
	 * @return: R
	 **/
	R getEnterprisePayDowninstr();

	/**
	 * @Description: 电子回单下载功能
	 * @Author: huyc
	 * @Date: 2024-12-13
	 * @return: R
	 **/
	R getMeatebillreceive();

	R executePayment();

	// 工行非税支付
	// type 0 对公; 1 对私.
	R<String> submitIcbcToNoTax(String totalAmt, String totalCount, String wxNo
			, List<EkpBankExcelNoTaxVo> detailList, int type, String fdId);

	R submitSearch();

	// 查询非扣税结果
	MybankEnterprisePayQpayentResponseV1 getResultNoTax(EkpBankResultVo task, String tranDate, String tranTime, String seqNo, DefaultIcbcClient client);

	// 获取非扣税单号对应的流水号，用来查询回单文件
	void getIcbcChuZhangLiuShui(String tranDate, Map<String, BaseIdNameNoVo> returnMap) throws IcbcApiException;

}
