package com.dxhy.base.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

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

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dxhy.base.entity.BaseTDxDkCount;
import com.dxhy.base.entity.BaseTDxRecordInvoice;

/**
 *
 *
 * 底账表dao
 *
 * @author peipei.li
 * @date 2019-04-23
 */
@SuppressWarnings("AlibabaClassNamingShouldBeCamel")
@Mapper
public interface BaseTDxRecordInvoiceDao extends BaseMapper<BaseTDxRecordInvoice> {

    /**
     * 修改密码
     *
     * @param password
     *            密码
     * @param taxno
     *            税号
     */
    void updatePassword(@Param("password") String password, @Param("taxno") String taxno);
    /**
     * 更新密码
     * @return void
     */
    void updatePwd(@Param("password") String password, @Param("taxno") String taxno);

    /**
     * 根据购方税号和采集日期查询发票信息
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     *
     */
    List<BaseTDxRecordInvoice> selectCjmxByGfshAndCjrq(Map<String, Object> pramsMap);

    /**
     *
     * 查询未补明细发票
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     *
     */
    List<BaseTDxRecordInvoice> selectWbfpmx(Map<String, Object> pramsMap);

    /**
     *
     * 查询未补明细发票合计信息
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     *
     */
    List<BaseTDxRecordInvoice> selectWbfpmxHj(Map<String, Object> pramsMap);

    /**
     * 根据uuid更新明细是否存在标志
     *
     * @param uuid
     *            uuid
     *
     *
     */
    void updateDetailYesornoByUuid(String uuid);

    /**
     * 手工勾选查询
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectSggxcx(Map<String, Object> pramsMap);

    /**
     * 手工查询合计信息
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectHj(Map<String, Object> pramsMap);

    /**
     * 查询一键认证信息
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectRzhAll(Map<String, Object> pramsMap);

    /**
     * 查询一键认证合计信息
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectRzhAllHj(Map<String, Object> pramsMap);

    /**
     * 获取已经抵扣统计的税号
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxDkCount> selectDksh(Map<String, Object> pramsMap);

    /**
     * 查询勾选未确认,发送认证的发票
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectBeforeTj(Map<String, Object> pramsMap);

    /**
     * 查询勾选未确认,发送认证出口转内销的发票
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectExportBeforeTj(Map<String, Object> pramsMap);

    /**
     * 查询勾选未确认,发送认证的海关缴款书
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectCustomsBeforeTj(Map<String, Object> pramsMap);

    /**
     * 查询勾选未确认,发送认证出口转内销的海关缴款书
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectExportCustomsBeforeTj(Map<String, Object> pramsMap);

    /**
     * 统计前查询逾期申请处理状态中的数据
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectYqBeforeTj(Map<String, Object> pramsMap);

    /**
     * 勾选更新底账信息
     *
     * @param pramsMap
     *            请求参数
     */
    void updateGx(Map<String, Object> pramsMap);

    /**
     * 撤销勾选更新底账
     *
     * @param pramsMap
     *            请求参数
     */
    void updateCxGx(Map<String, Object> pramsMap);

    /**
     * 查询
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<BaseTDxRecordInvoice> selectZngx(Map<String, Object> pramsMap);

    /**
     * 合计税号已抵扣的税额
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    BaseTDxRecordInvoice selectDkse(Map<String, Object> pramsMap);

    /**
     * 查询税号海关缴款书已认证抵扣税额合计
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    BigDecimal selectCustomsDkse(Map<String, Object> pramsMap);

    List<BaseTDxRecordInvoice> selectInTellingCheck(Map<String, Object> pramsMap);

    void updateSuspendType(Map<String,Object> pramsMap);

    List<String> findSuspendStatus(@Param("uuids") List<String> uuids);

    List<BaseTDxRecordInvoice> selectChooseHj(Map<String,Object> pramsMap);
}
