From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseInvoiceMapper.java |   51 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseInvoiceMapper.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseInvoiceMapper.java
index cdbef63..304daa2 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseInvoiceMapper.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseInvoiceMapper.java
@@ -5,10 +5,9 @@
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.invoice.ErpPurchaseInvoicePageReqVO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseInvoiceDO;
-import cn.iocoder.yudao.module.erp.enums.ErpPurchaseInvoiceAuditStatusEnum;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.List;
 
@@ -24,34 +23,56 @@
         return selectOne(ErpPurchaseInvoiceDO::getNo, no);
     }
 
-    default int updateByIdAndStatus(Long id, Integer status, ErpPurchaseInvoiceDO updateObj) {
-        return update(updateObj, new LambdaUpdateWrapper<ErpPurchaseInvoiceDO>()
-                .eq(ErpPurchaseInvoiceDO::getId, id).eq(ErpPurchaseInvoiceDO::getAuditStatus, status));
-    }
-
     default PageResult<ErpPurchaseInvoiceDO> selectPage(ErpPurchaseInvoicePageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
                 .likeIfPresent(ErpPurchaseInvoiceDO::getNo, reqVO.getNo())
                 .eqIfPresent(ErpPurchaseInvoiceDO::getSupplierId, reqVO.getSupplierId())
                 .eqIfPresent(ErpPurchaseInvoiceDO::getPurchaseOrderId, reqVO.getPurchaseOrderId())
-                .eqIfPresent(ErpPurchaseInvoiceDO::getAuditStatus, reqVO.getAuditStatus())
                 .orderByDesc(ErpPurchaseInvoiceDO::getId));
     }
 
-    default List<ErpPurchaseInvoiceDO> selectListByOrderIdAndStatus(Long orderId, Collection<Integer> auditStatuses) {
+    default List<ErpPurchaseInvoiceDO> selectListByOrderId(Long orderId) {
         return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
-                .eq(ErpPurchaseInvoiceDO::getPurchaseOrderId, orderId)
-                .in(ErpPurchaseInvoiceDO::getAuditStatus, auditStatuses));
+                .eq(ErpPurchaseInvoiceDO::getPurchaseOrderId, orderId));
     }
 
-    default List<ErpPurchaseInvoiceDO> selectListBySupplierIdAndStatus(Long supplierId, Collection<Integer> auditStatuses) {
+    default List<ErpPurchaseInvoiceDO> selectListBySupplierId(Long supplierId) {
+        return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
+                .eq(ErpPurchaseInvoiceDO::getSupplierId, supplierId));
+    }
+
+    default List<ErpPurchaseInvoiceDO> selectListByOrderIds(Collection<Long> orderIds) {
+        return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
+                .in(ErpPurchaseInvoiceDO::getPurchaseOrderId, orderIds));
+    }
+
+    default List<ErpPurchaseInvoiceDO> selectListByItemReceiptId(Long itemReceiptId) {
+        return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
+                .eq(ErpPurchaseInvoiceDO::getItemReceiptId, itemReceiptId));
+    }
+
+    /**
+     * 鎸変緵搴斿晢涓庡紑绁ㄦ椂闂磋寖鍥存煡璇㈡潵绁紙渚涘簲鍟嗗線鏉ワ級
+     */
+    default List<ErpPurchaseInvoiceDO> selectListBySupplierIdAndInvoiceTimeBetween(Long supplierId,
+                                                                                  LocalDateTime beginTime,
+                                                                                  LocalDateTime endTime) {
         return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
                 .eq(ErpPurchaseInvoiceDO::getSupplierId, supplierId)
-                .in(ErpPurchaseInvoiceDO::getAuditStatus, auditStatuses));
+                .geIfPresent(ErpPurchaseInvoiceDO::getInvoiceTime, beginTime)
+                .leIfPresent(ErpPurchaseInvoiceDO::getInvoiceTime, endTime)
+                .orderByAsc(ErpPurchaseInvoiceDO::getInvoiceTime)
+                .orderByAsc(ErpPurchaseInvoiceDO::getId));
     }
 
-    default Long selectCountByAudit() {
-        return selectCount(ErpPurchaseInvoiceDO::getAuditStatus, ErpPurchaseInvoiceAuditStatusEnum.PROCESS.getStatus());
+    /**
+     * 鎸夊紑绁ㄦ椂闂磋寖鍥存煡璇㈠叏閮ㄤ緵搴斿晢鐨勬潵绁紙渚涘簲鍟嗗線鏉ユ眹鎬伙級
+     */
+    default List<ErpPurchaseInvoiceDO> selectListByInvoiceTimeBetween(LocalDateTime beginTime,
+                                                                      LocalDateTime endTime) {
+        return selectList(new LambdaQueryWrapperX<ErpPurchaseInvoiceDO>()
+                .geIfPresent(ErpPurchaseInvoiceDO::getInvoiceTime, beginTime)
+                .leIfPresent(ErpPurchaseInvoiceDO::getInvoiceTime, endTime));
     }
 
 }

--
Gitblit v1.9.3