gaoluyang
5 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceService.java
@@ -1,11 +1,13 @@
package cn.iocoder.yudao.module.erp.service.purchase;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.invoice.ErpPurchaseInvoiceItemReceiptRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.invoice.ErpPurchaseInvoicePageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.invoice.ErpPurchaseInvoiceSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseInvoiceDO;
import jakarta.validation.Valid;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -42,14 +44,6 @@
    void deletePurchaseInvoice(Long id);
    /**
     * 更新来票的状态(审核/反审核)
     *
     * @param id 编号
     * @param status 状态
     */
    void updatePurchaseInvoiceStatus(Long id, Integer status);
    /**
     * 获得来票
     *
     * @param id 编号
@@ -84,28 +78,36 @@
    PageResult<ErpPurchaseInvoiceDO> getPurchaseInvoicePage(ErpPurchaseInvoicePageReqVO pageReqVO);
    /**
     * 根据采购订单编号和审批状态获得来票列表
     * 根据采购订单编号获得来票列表
     *
     * @param orderId 采购订单编号
     * @param auditStatuses 审批状态集合
     * @return 来票列表
     */
    List<ErpPurchaseInvoiceDO> getPurchaseInvoiceListByOrderIdAndStatus(Long orderId, Collection<Integer> auditStatuses);
    List<ErpPurchaseInvoiceDO> getPurchaseInvoiceListByOrderId(Long orderId);
    /**
     * 根据供应商编号和审批状态获得来票列表
     * 根据供应商编号获得来票列表
     *
     * @param supplierId 供应商编号
     * @param auditStatuses 审批状态集合
     * @return 来票列表
     */
    List<ErpPurchaseInvoiceDO> getPurchaseInvoiceListBySupplierIdAndStatus(Long supplierId, Collection<Integer> auditStatuses);
    List<ErpPurchaseInvoiceDO> getPurchaseInvoiceListBySupplierId(Long supplierId);
    /**
     * 获得待审核来票数量
     * 根据采购订单编号列表,统计每个订单的来票金额合计(用于计算剩余可开票金额)
     *
     * @return 数量
     * @param orderIds 采购订单编号列表
     * @return Map<采购订单编号, 来票金额合计>
     */
    Long getAuditInvoiceCount();
    Map<Long, BigDecimal> getPurchaseInvoicePriceSumMapByOrderIds(Collection<Long> orderIds);
    /**
     * 获得来票可选的入库单列表(按采购订单过滤,含入库金额、已来票金额、可来票金额)
     *
     * @param purchaseOrderId 采购订单编号
     * @param excludeInvoiceId 需排除的来票编号(编辑时排除自身),可为空
     * @return 入库单列表
     */
    List<ErpPurchaseInvoiceItemReceiptRespVO> getItemReceiptListForInvoice(Long purchaseOrderId, Long excludeInvoiceId);
}