package com.jianshui.invoice.service; import com.alibaba.fastjson.JSONObject; import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.invoice.domain.BillInfo; import com.jianshui.invoice.domain.Invoice; import com.jianshui.invoice.domain.Redinfo; import com.jianshui.invoice.domain.dto.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * 发票服务接口 */ public interface IInvoiceApiService { /** * 发票开具 * * @param billInfo * @return */ public HXResponse addInvoice(BillInfo billInfo, Companyservice companyservice) throws IllegalAccessException, InstantiationException; /** * 发票失败重开接口 * * @param */ public AjaxResult reInvoice(BillInfo billInfo, Companyservice companyservice); /** * 单个发票查询接口 * * @param billInfo * @return */ public HXResponse queryInvoice(QueryBillInfoDTO billInfo, Companyservice companyservice); /** * 批量发票查询接口 * * @param billInfo * @return */ public HXResponse batchQueryInvoices(BillInfo billInfo, String byWhat, Companyservice companyservice); /** * 范围查询发票接口 * * @param queryJson * @return */ public HXResponse scopeQueryInvoices(JSONObject queryJson, Companyservice companyservice); /** * 申请/上传 红字发票 * * @param redinfo */ public HXResponse uploadRedInfo(Redinfo redinfo, Companyservice companyservice); /** * 红字信息申请查询 * * @param redinfo */ public AjaxResult queryRedInfo(Redinfo redinfo, Companyservice companyservice); /** * 红字信息表下载 */ public HXResponse downloadRedInfo(DownloadRedInfoDTO redinfo, Companyservice companyservice); /** * 发票作废 * * @param invoice * @return AjaxResult */ public HXResponse deprecateInvoice(JSONObject invoice, Companyservice companyservice); /** * 发票作废结果查询 * * @param invoice * @param companyservice * @return */ public HXResponse deprecateQueryInvoice(DeprecateQueryInvoiceDTO invoice, Companyservice companyservice); /** * 打印接口 * * @param invoice * @return */ public AjaxResult printInvoice(Invoice invoice, Companyservice companyservice); public HXResponse queryPrinter(QueryPrinterDTO queryPrinterDTO, Companyservice companyservice); /** * 推送消息 * * @return */ public HXResponse pushData(BillInfo billInfo, Companyservice companyservice); /** * 批量打印 * * @param billInfos * @return */ public HXResponse batchPrint(PrintDTO printDTO, Companyservice companyservice); /** * 同步发票库存 * * @param companyservice * @return */ public AjaxResult syncStockInfo(Companyservice companyservice); /** * 发票签章 * * @param signESealDTO * @param companyservice * @return */ public HXResponse signInvoice(SignESealDTO signESealDTO, Companyservice companyservice); /** * 发票专用章图片生成 * * @param createESealDTO * @param companyservice * @return */ public HXResponse createESeal(CreateESealDTO createESealDTO, Companyservice companyservice); /** * 发票专用章导入注册 * * @param createESealDTO * @param companyservice * @return */ public HXResponse registerESeal(RegisterESealDTO createESealDTO, Companyservice companyservice); /** * 月度汇总信息查询 * * @param summaryReportQueryDTO * @param companyservice * @return */ public AjaxResult SummaryReport(SummaryReportQueryDTO summaryReportQueryDTO, Companyservice companyservice); /** * 回调处理 * * @param request * @return */ public Object callback(HttpServletRequest request); /** * 开票回调 * * @param request * @return */ public Object addCallback(HttpServletRequest request); /** * 作废回调 * * @param request * @return */ public Object decryptCallback(HttpServletRequest request); }