package com.dxhy.extend.service.bb;

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

import com.dxhy.extend.entity.ExtIndexInvoiceChartStatisticsModel;
import com.dxhy.extend.entity.ExtIndexInvoiceCollectionCountModel;
import com.dxhy.extend.entity.ExtIndexInvoiceMonthInformationModel;
import com.dxhy.extend.entity.ExtIndexInvoiceTaskRemindingModel;

/**
 * @author Bobby
 * @date 2018/4/16 首页-业务层
 */
public interface ExtIndexStatisticsService {

    /**
     * 税号
     *
     * @param orgs
     *            税号
     * @return 返回
     */
    Integer getOrgType(List<String> orgs);

    /**
     * 今日发票采集情况
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return list集合
     */
    List<ExtIndexInvoiceCollectionCountModel> getInvoiceCollectionSituationMap(Map<String, Object> params);

    /*
      今日发票采集情况

      @param schemaLabel
     *            mycat逻辑数据库名字
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return list集合
     *//*
                    *
                    * List<ExtIndexInvoiceCollectionCountModel> getInvoiceCollectionSituation(String
                    * schemaLabel, Map<String, Object> params);
                    */

    /**
     * 今日发票采集列表
     *
     * @param params
     *            {invoiceType:发票类型}
     * @param curr
     *            分页
     * @param size
     *            条数
     * @return 结果集合 @
     */
    String getInvoiceCollectionSituationList(Map<String, Object> params, int curr, int size);

    /**
     * 今日缴款书采集列表
     *
     * @param params
     *            {invoiceType:发票类型}
     * @param curr
     *            分页
     * @param size
     *            条数
     * @return 结果集合
     */
    String getCustomsCollectionSituationList(Map<String, Object> params, int curr, int size);

    /**
     * 今日发票签收情况
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return 返回
     */

    Map<String, Object> getInvoiceScanningSituation(Map<String, Object> params);

    /**
     * 今日发票扫描列表
     *
     * @param params
     *            {start:当天0点时间，end:当前时间}
     * @param curr
     *            分页
     * @param size
     *            条数
     * @return 返回
     */
    String getInvoiceScanningSituationList(Map<String, Object> params, int curr, int size);

    /**
     * 今日发票认证情况
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return 返回
     */

    Map<String, Object> getInvoiceAuthenticationSituation(Map<String, Object> params);

    /**
     * 今日退税认证情况
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return 返回
     */

    Map<String, Object> getDrawbackAuthenticationSituation(Map<String, Object> params);

    /**
     * 今日发票认证列表
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @param curr
     *            分页
     * @param size
     *            条数
     *
     * @return 返回
     */
    String getInvoiceAuthenticationSituationList(Map<String, Object> params, int curr, int size);

    /**
     * 认证后异常列表
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @param curr
     *            分页
     * @param size
     *            条数
     * @return 返回
     */
    String getRzhycList(Map<String, Object> params, int curr, int size);

    /**
     * 签收后异常列表
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @param curr
     *            分页
     * @param size
     *            条数
     * @return 返回
     */
    String getQshycList(Map<String, Object> params, int curr, int size);

    /**
     * 本月新增发票信息（新增、认证、发票金额（未税）、发票税额）
     *
     * @param params
     *            {startDate:当天凌晨时间，endDate:当前时间}
     * @return 返回
     */
    ExtIndexInvoiceMonthInformationModel getInvoiceInformationOfMonth(Map<String, Object> params);

    /**
     * 本月发票新增、认证成功、认证失败图表
     *
     * @param params
     *            查询条件
     * @return 返回
     */
    List<ExtIndexInvoiceChartStatisticsModel> getInvoiceChartStatistics(Map<String, Object> params);

    /**
     * 任务提醒
     *
     * @param params
     *            查询条件
     * @return 返回
     */
    List<ExtIndexInvoiceTaskRemindingModel> getInvoiceTaskReminding(Map<String, Object> params);

    /**
     * 本月发票新增、认证成功、认证失败图表
     *
     * @param params
     *            查询条件
     * @return 返回
     */
    List<ExtIndexInvoiceChartStatisticsModel> getInvoiceChartStatisticsYear(Map<String, Object> params);

    /**
     * 本月认证发票列表
     *
     * @param params
     *            参数
     * @param size
     *            条数
     * @param curr
     *            分页
     * @return 结果集合
     */
    String getCurrentMonthAuthList(Map<String, Object> params, int curr, int size);

}
