package com.dxhy.jxpt.baseService.sign.service.singletable;

import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.service.MpBaseService;
import com.dxhy.api.model.invoice.TDxRecordInvoice;
import com.dxhy.api.model.sign.TDxRecordInvoiceDetail;
import com.dxhy.api.model.sign.TDxVehicleSaleInvoice;

import java.util.List;

/**
 *
 * 保存发票查验结果业务处理接口
 *
 * @author peipei.li
 * @date 2019-05-09
 */
public interface SignSaveInvoiceInfoService extends MpBaseService<TDxRecordInvoice> {

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

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

    /**
     * 根据查验结果获取机动车表数据
     *
     * @param queryInvoiceResult
     *            请求参数
     * @return 返回结果
     * @since 1.0
     */
    TDxVehicleSaleInvoice getVehicleSaleInvoice(JSONObject queryInvoiceResult);

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

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

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

}
