package com.dxhy.extend.dao;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.dxhy.extend.model.AccountInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dxhy.extend.model.CompanyPoolIndexVO;
import com.dxhy.extend.model.PieDataVO;
import com.dxhy.extend.model.YearStatVO;

/**
 * @author dxhy
 */
@Mapper
public interface ExtCompanyIndexDao extends BaseMapper<CompanyPoolIndexVO> {

    /**
     * 进项票池统计
     *
     * @param taxno
     *            税号
     * @param currMonth
     *            月份
     * @return 返回
     */
    CompanyPoolIndexVO getJxTotalByTaxno(@Param("taxno") String taxno, @Param("currMonth") String currMonth);

    /**
     * 销项票池统计
     *
     * @param taxno
     *            税号
     * @param currMonth
     *            月份
     * @return 返回
     */
    CompanyPoolIndexVO getXxTotalByTaxno(@Param("taxno") String taxno, @Param("currMonth") String currMonth);

    /**
     * 进项票池查询
     *
     * @param taxnos
     *            税号
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return 返回
     */
    List<YearStatVO> getJxYearStat(@Param("taxnos") String[] taxnos, @Param("startTime") String startTime,
        @Param("endTime") String endTime);

    /**
     * 销项票池查询
     *
     * @param taxnos
     *            税号
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return 返回
     */
    List<YearStatVO> getXxYearStat(@Param("taxnos") String[] taxnos, @Param("startTime") String startTime,
        @Param("endTime") String endTime);

    /**
     * 进项查询
     *
     * @param arr
     *            税号
     * @param currMonth
     *            月份
     * @return 返回
     */
    List<PieDataVO> getJxInvoiceType(@Param("taxnos") String[] arr, @Param("currMonth") String currMonth);

    JSONObject getJxRiskCollect(@Param("taxnos") String[] arr, @Param("currMonth") String currMonth);

    JSONObject getXxRiskCollect(@Param("taxnos") String[] arr, @Param("currMonth") String currMonth);

    List<AccountInfoVO> getJxAccount(@Param("taxnos") String[] arr, @Param("currMonth") String currMonth);

    List<AccountInfoVO> getXxAccount(@Param("taxnos") String[] arr, @Param("currMonth") String currMonth);
}
