package com.dxhy.core.job.service;

import java.util.List;

import com.dxhy.core.job.entity.*;

/**
 * @author user
 */

public interface InvoiceInterfaceService {
    /**
     * 发送请求
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param type
     * @param taxno
     * @param linkName
     * @param aceId
     * @param aceKey
     * @param company
     * @return void
     */
    void sendRequest(String type, String taxno, String linkName, String aceId, String aceKey, String company);

    /**
     * 发送统计请求
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param taxno
     * @param db
     * @param aceId
     * @param aceKey
     * @return void
     */
    void sendStateRequest(String taxno, String db, String aceId, String aceKey);

    /**
     * 发送勾选采集请求
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param string
     * @param db
     * @param aceId
     * @param aceKey
     * @return void
     */
    void sendSelectRequest(String string, String db, String aceId, String aceKey);

    /**
     * 获取税号
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param
     * @return java.util.List<com.dxhy.core.job.entity.TAcOrg>
     */
    List<TAcOrg> getOrgTaxno();

    /**
     * 查询未解析log
     * 
     * @param taxno
     *            税号
     * @param type
     *            类型
     * @return 返回
     */
    List<TDxHttpLog> getNotParseHttpLogs(String taxno, String type);

    /**
     * 查询税号信息
     *
     * @param type
     *            类型
     * @return 税号
     */
    List<String> getNotParseTaxnos(String type);

    /**
     * 更新状态
     *
     * @param logs
     *            日志信息
     */
    void updateNotParseHttpLogsStatus(List<TDxHttpLog> logs);

    /**
     * 发票解析
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param db
     * @param taxno
     * @return void
     */
    void subscribe(String taxno, String db);

    /**
     * 功能描述
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param
     * @return java.util.List<com.dxhy.core.job.entity.TAcOrg>
     */
    List<TAcOrg> getTaxnoForQpm();

    /**
     * 判断发票是否存在
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param invoiceInfo
     * @param db
     * @param sourceSystem
     * @return boolean
     */
    boolean isExistInvoice(TDxRecordInvoiceJobEntity invoiceInfo, String db, String sourceSystem);

    /**
     * 判断发票是否存在
     * 
     * @param invoice
     * @param db
     * @param sourceSystem
     * @return boolean
     */
    boolean isExistSaleInvoice(TDxSaleRecordInvoiceJobEntity invoice, String db, String sourceSystem);

    List<TAcOrg> getTaxnoForDown();

    List<TDxHttpLogInvoiceDown> getHttpLog();
}
