package com.dxhy.portrait.business.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.service.MpBaseService;
import com.dxhy.portrait.business.entity.TDxRecordInvoice;
import com.dxhy.portrait.business.entity.TDxRecordInvoiceDetail;
import com.dxhy.portrait.business.entity.TDxVehicleSaleInvoice;

/**
 *
 * **************************************************************************** 保存发票查验结果业务处理接口
 *
 * @author xuyongyun
 * @date 2019年5月8日
 ******************************************************************************
 */
public interface ISaveInvoiceInfoService extends MpBaseService<TDxRecordInvoice> {

    /**
     * 保存查验返回的发票信息
     *
     * @param queryInvoiceResult
     *            查验结果
     * @param qsType
     *            签收方式
     * @param userId
     *            签收人账号
     * @param dbName
     *            数据库名称
     * 
     */
    void saveQueryInvoiceResult(JSONObject queryInvoiceResult, String userId, String qsType, String dbName);

    /**
     * 根据查验结果获取底账明细表数据
     *
     * @param queryInvoiceResult
     * @return
     * 
     */
    List<TDxRecordInvoiceDetail> getRecordInvoiceDetail(JSONObject queryInvoiceResult);

    /**
     * 根据查验结果获取机动车表数据
     *
     * @param queryInvoiceResult
     * @return
     * 
     */
    TDxVehicleSaleInvoice getVehicleSaleInvoice(JSONObject queryInvoiceResult);

    /**
     * 根据查验结果获取底账表数据
     *
     * @param queryInvoiceResult
     * @param qsType
     *            签收方式
     * @param userId
     *            签收人账号
     *
     * @return
     * 
     */
    TDxRecordInvoice getRecordInvoice(JSONObject queryInvoiceResult, String userId, String qsType);

    /**
     * 根据底账表返回发票明细信息
     *
     * @param invoiceRecord
     * @param dbName
     *            数据库名称
     * @return
     * 
     */
    JSONObject createInvoiceInfo(TDxRecordInvoice invoiceRecord, String dbName);

    /**
     * 根据查验结果获取二手车表数据
     *
     * @param queryInvoiceResult
     * @return
     *
     */
    TDxVehicleSaleInvoice vehicleInvoice(JSONObject queryInvoiceResult);

}
