package com.ruoyi.cwgl.service; import java.util.List; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.cwgl.domain.InvoiceManage; import com.ruoyi.cwgl.domain.PayableBillManagement; import com.ruoyi.cwgl.domain.ReceivableBillManagement; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cwgl.domain.dto.CallbackReceiptDto; /** * 发票管理Service接口 * * @author ruoyi * @date 2025-12-26 */ public interface IInvoiceManageService extends IService { /** * 查询发票管理 * * @param id 发票管理ID * @return 发票管理 */ public InvoiceManage selectInvoiceManageById(Integer id); /** * 查询发票管理 记录数 * * @param invoiceManage 发票管理 * @return 发票管理集合 */ public int selectInvoiceManageCount(InvoiceManage invoiceManage); /** * 查询发票管理列表 * * @param invoiceManage 发票管理 * @return 发票管理集合 */ public List selectInvoiceManageList(InvoiceManage invoiceManage); /** * 查询发票管理列表 异步 导出 * * @param invoiceManage 发票管理 * @param exportKey 导出功能的唯一标识 * @return 发票管理集合 */ public void export(InvoiceManage invoiceManage, String exportKey) ; /** * 新增发票管理 * * @param invoiceManage 发票管理 * @return 结果 */ public int insertInvoiceManage(InvoiceManage invoiceManage); /** * 新增发票管理[批量] * * @param invoiceManages 发票管理 * @return 结果 */ public int insertInvoiceManageBatch(List invoiceManages); /** * 修改发票管理 * * @param invoiceManage 发票管理 * @return 结果 */ public int updateInvoiceManage(InvoiceManage invoiceManage); /** * 修改发票管理[批量] * * @param invoiceManages 发票管理 * @return 结果 */ public int updateInvoiceManageBatch(List invoiceManages); /** * 批量删除发票管理 * * @param ids 需要删除的数据ID * @return 结果 */ public int deleteInvoiceManageByIds(String ids); /** * 批量删除发票管理 * * @param ids 需要删除的数据ID * @return 结果 */ public int deleteInvoiceManageByIds(Integer[] ids); /** * 删除发票管理信息 * * @param id 发票管理ID * @return 结果 */ public int deleteInvoiceManageById(Integer id); /** * 新增发票明细信息 * * @param invoiceManage 发票管理对象 */ public void insertInvoiceDetail(InvoiceManage invoiceManage); /** * 申请开票 * @param id * @return */ AjaxResult applyInvoice(Integer id); /** * 应收账单申请开票 * @param invoiceManage 发票管理对象 * @param id 应收账单ID * @return 结果 */ AjaxResult applyReceivableInvoice(InvoiceManage invoiceManage, Integer id); /** * 应付账单申请开票 * @param invoiceManage 发票管理对象 * @param id 应付账单ID * @return 结果 */ AjaxResult applyPayableInvoice(InvoiceManage invoiceManage, Integer id); /** * 开票回调接口 - 普通发票 * @param callbackReceiptDto */ void invoicingSuccess(CallbackReceiptDto callbackReceiptDto); /** * 开票回调接口 - 应付账单 * @param callbackReceiptDto */ void invoicingSuccessPayable(CallbackReceiptDto callbackReceiptDto); /** * 开票回调接口 - 应收账单 * @param callbackReceiptDto */ void invoicingSuccessReceivable(CallbackReceiptDto callbackReceiptDto); }