package com.dxhy.core.tab.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.dxhy.core.tab.entity.*;

/**
 * @author user
 */

@Mapper
public interface TabDao {
    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param result
     * @return java.util.List<com.dxhy.core.tab.entity.CollectTabInvoice>
     */
    List<CollectTabInvoice> getInvoiceList(@Param("taxno") String taxpayerCode, @Param("startDate") List<String> result,
        @Param("dxhyAdmin") String dxhyAdmin, @Param("dxhyTertiary") String dxhyTertiary);

    /**
     * ǩ���б�
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param result
     * @return java.util.List<com.dxhy.core.tab.entity.InvoiceScan>
     */
    List<InvoiceScan> getQsList(@Param("taxno") String taxpayerCode, @Param("startDate") List<String> result);

    /**
     * ��֤��Ϣ
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param result
     * @return java.util.List<com.dxhy.core.tab.entity.InvoiceRz>
     */
    List<InvoiceRz> getRzList(@Param("taxno") String taxpayerCode, @Param("startDate") List<String> result);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @return java.util.List<com.dxhy.core.tab.entity.LaterInvoice>
     */
    List<LaterInvoice> getLaterInvoice(@Param("taxno") String taxpayerCode);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @return java.util.List<com.dxhy.core.tab.entity.AbnormalInvoice>
     */
    List<AbnormalInvoice> getAbnormalInvoice(@Param("taxno") String taxpayerCode);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param year
     * @return java.util.List<com.dxhy.core.tab.entity.PuInvoice>
     */
    List<PuInvoice> getPuInvoice(@Param("taxno") String taxpayerCode, @Param("year") int year);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param string
     * @return com.dxhy.core.tab.entity.CollectTabInvoice
     */
    CollectTabInvoice getReInvoice(@Param("taxno") String taxpayerCode, @Param("month") String string);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param string
     * @return com.dxhy.core.tab.entity.CollecTaxTabInvoice
     */
    CollecTaxTabInvoice getReTaxInvoice(@Param("taxno") String taxpayerCode, @Param("month") String string);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @return java.lang.String
     */
    String getSq(@Param("taxno") String taxpayerCode);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param taxDqsq
     * @return java.util.List<com.dxhy.core.tab.entity.RzInfo>
     */
    List<RzInfo> getRzDq(@Param("taxno") String taxpayerCode, @Param("month") String taxDqsq);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @param taxDqsq
     * @return java.lang.String
     */
    String getAllAmount(@Param("taxno") String taxpayerCode, @Param("month") String taxDqsq);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @return java.lang.String
     */
    String getName(@Param("taxno") String taxpayerCode);

    /**
     * ��������
     *
     * @author �¸���
     * @date 2020/10/30
     * @param taxpayerCode
     * @return int
     */
    int getCount(@Param("taxno") String taxpayerCode);

}
