package com.dxhy.domestic.dao;

import java.util.List;

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

import com.dxhy.domestic.entity.TdxRecordInvoice;
import com.dxhy.domestic.model.dto.AuthenticationCheckConditionDTO;
import com.dxhy.domestic.model.dto.AuthenticationConditionDTO;
import com.dxhy.domestic.model.dto.QuerySummaryDTO;
import com.dxhy.domestic.model.vo.AuthenticationCheckListVO;
import com.dxhy.domestic.model.vo.ManualAuthenticationListVO;

/**
 * @author dxhy
 */
@Mapper
public interface DomesticRecordInvoiceDao {

    /**
     * 待填
     * 
     * @param id
     *            id
     * @return int
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 待填
     * 
     * @param record
     *            record
     * @return int
     */
    int insert(TdxRecordInvoice record);

    /**
     * 待填
     * 
     * @param record
     *            record
     * @return int
     */
    int insertSelective(TdxRecordInvoice record);

    /**
     * 待填
     * 
     * @param id
     *            id
     * @return TdxRecordInvoice
     */
    TdxRecordInvoice selectByPrimaryKey(Long id);

    /**
     * 待填
     * 
     * @param record
     *            record
     * @return int
     */
    int updateByPrimaryKeySelective(TdxRecordInvoice record);

    /**
     * 待填
     * 
     * @param record
     *            record
     * @return int
     */
    int updateByPrimaryKey(TdxRecordInvoice record);

    /**
     * 待填
     * 
     * @param bo
     *            bo
     * @return CommonListResponseVO
     */
    QuerySummaryDTO selectTotalAmount(AuthenticationConditionDTO bo);

    /**
     * 待填
     * 
     * @param dto
     *            dto
     * @return List<ManualAuthenticationListVO>
     */
    List<ManualAuthenticationListVO> selectByAuthenticationCondition(AuthenticationConditionDTO dto);

    /**
     * 待填
     * 
     * @param uuidList
     *            uuidList
     * @return List<TdxRecordInvoice>
     */
    List<TdxRecordInvoice> selectByUuidList(@Param("uuidList") List<String> uuidList);

    /**
     * 待填
     * 
     * @param dto
     *            dto
     * @return List<AuthenticationCheckListVO>
     */
    List<AuthenticationCheckListVO> selectByAuthenticationCheckCondition(AuthenticationCheckConditionDTO dto);

    /**
     * 待填
     * 
     * @param dto
     *            dto
     * @return CommonListResponseVO
     */
    QuerySummaryDTO selectTotalAmountByAuthenticationCheck(AuthenticationCheckConditionDTO dto);
}