package com.dxhy.manage.dao;

import java.util.List;

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

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dxhy.manage.entity.SysDeptEntity;
import com.dxhy.manage.model.BlocNumModel;
import com.dxhy.manage.model.CollectNumModel;

/**
 * 部门管理
 *
 * @author jiaohongyang
 */
@Mapper
public interface SellersStatDao extends BaseMapper<SysDeptEntity> {
    /**
     * 查询
     *
     * @param userId
     *            userId
     * @return 返回
     */
    List<SysDeptEntity> queryList(String userId);

    /**
     * 查询
     *
     * @param deptId
     *            deptId
     * @return 返回
     */
    List<SysDeptEntity> queryTaxnoList(@Param("deptId") String deptId);

    /**
     * 查询
     *
     * @param company
     *            company
     * @return 返回
     */
    List<String> queryAllTable(@Param("company") String company);

    /**
     * 查询
     *
     * @param company
     *            company
     * @param table
     *            table
     * @return 返回
     */
    List<String> getTaxnoes(@Param("company") String company, @Param("table") String table);

    /**
     * 查询
     *
     * @param company
     *            company
     * @return 返回
     */
    String getDataBase(@Param("company") String company);

    /**
     * 查询
     *
     * @param taxno
     *            taxno
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @return 返回
     */
    List<CollectNumModel> getCollectNumByTaxno(@Param("list") List<SysDeptEntity> taxno,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    /**
     * 查询
     *
     * @param taxno
     *            taxno
     * @return 返回
     */
    String getTaxName(@Param("taxno") String taxno);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param year
     *            year
     * @return 返回
     */
    BlocNumModel getTaxnoYearTotal(@Param("list") List<String> sbList, @Param("beginDate") String beginDate,
        @Param("endDate") String endDate, @Param("year") String year);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param month
     *            month
     * @return 返回
     */
    BlocNumModel getTaxnoMonthTotal(@Param("list") List<String> sbList, @Param("beginDate") String beginDate,
        @Param("endDate") String endDate, @Param("month") String month);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @return 返回
     */
    List<CollectNumModel> getConfirmTotalByDate(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @return 返回
     */
    List<CollectNumModel> getConfirmTotalByBelongDate(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param year
     *            year
     * @return 返回
     */
    BlocNumModel getTaxnoYearConfirmTotalByBelong(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("year") String year);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param year
     *            year
     * @return 返回
     */
    BlocNumModel getTaxnoYearConfirmTotalByDate(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("year") String year);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param month
     *            month
     * @return 返回
     */
    BlocNumModel getTaxnoMonthConfirmTotalByBelong(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("month") String month);

    /**
     * 查询
     *
     * @param sbList
     *            sbList
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @param month
     *            month
     * @return 返回
     */
    BlocNumModel getTaxnoMonthConfirmTotalByDate(@Param("list") List<String> sbList,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("month") String month);

    /**
     * 查询
     *
     * @param company
     *            company
     * @return 返回
     */
    List<CollectNumModel> getAllOrgInfo(String company);

    /**
     * 查询
     *
     * @param company
     *            company
     * @return 返回
     */
    List<SysDeptEntity> getSysDept(@Param("company") String company);

    /**
     * 查询
     *
     * @param taxno
     *            taxno
     * @return 返回
     */
    SysDeptEntity getTaxNameByTaxno(String taxno);

    /**
     * 查询
     *
     * @param entity
     *            entity
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @return 返回
     */
    CollectNumModel getConfirmTotalByDateTaxno(@Param("entity") SysDeptEntity entity,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    /**
     * 查询
     *
     * @param entity
     *            entity
     * @param beginDate
     *            beginDate
     * @param endDate
     *            endDate
     * @return 返回
     */
    CollectNumModel getConfirmTotalByBelongDateTaxno(@Param("entity") SysDeptEntity entity,
        @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    int getTaxnoesCount(@Param("company") String company);
}
