package com.dxhy.sign.dao;

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.sign.entity.TDxInvoice;
import com.dxhy.sign.model.QsInvoiceCount;

/**
 *
 * 发票扫描表dao
 *
 * @author jiaohongyang
 * @date 2019年3月26日 下午6:02:48
 */
@Mapper
public interface SignInvoiceDao extends BaseMapper<TDxInvoice> {

    /**
     * 今日头条签收发票记录查询接口
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     * @since 1.0
     */
    List<TDxInvoice> selectQsfpListJrtt(Map<String, Object> pramsMap);

    /**
     * 今日头条签收查询合计
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    QsInvoiceCount selectQsfpListCountJrtt(Map<String, Object> pramsMap);

    /**
     * 签收发票记录查询接口
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     * @since 1.0
     */
    List<TDxInvoice> selectQsfpList(Map<String, Object> pramsMap);

    /**
     * 签收查询合计
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    QsInvoiceCount selectQsfpListCount(Map<String, Object> pramsMap);

    /**
     * 签收发票记录查询接口
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     * @since 1.0
     */
    List<TDxInvoice> selectElecInvoice(Map<String, Object> pramsMap);

    /**
     * 电票查询合计
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    QsInvoiceCount selectElecInvoiceCount(Map<String, Object> pramsMap);

    /**
     * 查询是否有推送艺龙结算的权限
     *
     * @param uuid
     *            请求参数
     * @return 返回结果
     */
    TDxInvoice queryByUuid(@Param("uuid") String uuid, @Param("dxhyAdmin") String dxhyAdmin);

    /**
     * 每日优鲜签收查询
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    List<TDxInvoice> selectQsfpListMryx(Map<String, Object> pramsMap);

    /**
     * 每日优鲜签收查询
     *
     * @param pramsMap
     *            请求参数
     * @return 返回结果
     */
    QsInvoiceCount selectQsfpListCountMryx(Map<String, Object> pramsMap);

    /**
     * 取消底账关联结算信息
     *
     * @param uuids
     *            uuid
     */
    void cancelRecodSettle(@Param("uuids") List<String> uuids);

    /**
     * 取消扫描关联结算信息
     *
     * @param uuids
     *            uuid
     */
    void cancelSettle(@Param("uuids") List<String> uuids);

    /**
     * 修改底账关联结算单号
     *
     * @param pramsMap
     *            请求参数
     */
    void saveRecodSettlementNo(Map<String, Object> pramsMap);

    /**
     * 修改扫描关联结算单号
     *
     * @param pramsMap
     *            请求参数
     */
    void saveSettlementNo(Map<String, Object> pramsMap);

    /**
     * 转移签收人
     *
     * @param pramsMap
     *            请求参数
     */
    void updateRecodUser(Map<String, Object> pramsMap);

    /**
     * 转移签收人
     *
     * @param pramsMap
     *            请求参数
     */
    void updateUser(Map<String, Object> pramsMap);

    /**
     * 取消签收
     *
     * @param invoice
     *            取消签收参数
     */
    void qxqs(TDxInvoice invoice);
}
