From 9a5e89b5cd2c89e1ec94279647505a40fccc56f8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 21 五月 2026 17:30:49 +0800
Subject: [PATCH] feat(home): 添加生产看板功能并优化订单查询性能

---
 src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java |   84 ++++++++++++++---------------------------
 1 files changed, 29 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java b/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
index 2ec6003..006438c 100644
--- a/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
@@ -5,18 +5,14 @@
 import com.ruoyi.ai.context.AiSessionUserContext;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
-import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.pojo.PurchaseLedger;
-import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
 import com.ruoyi.procurementrecord.mapper.InboundManagementMapper;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
 import com.ruoyi.procurementrecord.pojo.InboundManagement;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
+import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import dev.langchain4j.agent.tool.P;
@@ -27,15 +23,9 @@
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Comparator;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Component
@@ -47,8 +37,6 @@
     private static final int MAX_LIMIT = 30;
 
     private final PurchaseLedgerMapper purchaseLedgerMapper;
-    private final PaymentRegistrationMapper paymentRegistrationMapper;
-    private final InvoicePurchaseMapper invoicePurchaseMapper;
     private final PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
     private final SalesLedgerProductMapper salesLedgerProductMapper;
     private final ProcurementRecordMapper procurementRecordMapper;
@@ -56,16 +44,12 @@
     private final AiSessionUserContext aiSessionUserContext;
 
     public PurchaseAgentTools(PurchaseLedgerMapper purchaseLedgerMapper,
-                              PaymentRegistrationMapper paymentRegistrationMapper,
-                              InvoicePurchaseMapper invoicePurchaseMapper,
                               PurchaseReturnOrdersMapper purchaseReturnOrdersMapper,
                               SalesLedgerProductMapper salesLedgerProductMapper,
                               ProcurementRecordMapper procurementRecordMapper,
                               InboundManagementMapper inboundManagementMapper,
                               AiSessionUserContext aiSessionUserContext) {
         this.purchaseLedgerMapper = purchaseLedgerMapper;
-        this.paymentRegistrationMapper = paymentRegistrationMapper;
-        this.invoicePurchaseMapper = invoicePurchaseMapper;
         this.purchaseReturnOrdersMapper = purchaseReturnOrdersMapper;
         this.salesLedgerProductMapper = salesLedgerProductMapper;
         this.procurementRecordMapper = procurementRecordMapper;
@@ -131,22 +115,24 @@
         DateRange range = resolveDateRange(startDate, endDate, timeRange);
 
         List<PurchaseLedger> ledgers = queryLedgers(loginUser, range);
-        List<PaymentRegistration> payments = queryPayments(loginUser, range);
-        List<InvoicePurchase> invoices = queryInvoices(loginUser, range);
+//        List<PaymentRegistration> payments = queryPayments(loginUser, range);
+//        List<InvoicePurchase> invoices = queryInvoices(loginUser, range);
         List<PurchaseReturnOrders> returns = queryReturns(loginUser, range);
 
         BigDecimal contractAmount = ledgers.stream()
                 .map(PurchaseLedger::getContractAmount)
                 .filter(Objects::nonNull)
                 .reduce(BigDecimal.ZERO, BigDecimal::add);
-        BigDecimal paymentAmount = payments.stream()
-                .map(PaymentRegistration::getCurrentPaymentAmount)
-                .filter(Objects::nonNull)
-                .reduce(BigDecimal.ZERO, BigDecimal::add);
-        BigDecimal invoiceAmount = invoices.stream()
-                .map(InvoicePurchase::getInvoiceAmount)
-                .filter(Objects::nonNull)
-                .reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal paymentAmount = BigDecimal.ZERO;
+//        BigDecimal paymentAmount = payments.stream()
+//                .map(PaymentRegistration::getCurrentPaymentAmount)
+//                .filter(Objects::nonNull)
+//                .reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal invoiceAmount = BigDecimal.ZERO;
+//        BigDecimal invoiceAmount = invoices.stream()
+//                .map(InvoicePurchase::getInvoiceAmount)
+//                .filter(Objects::nonNull)
+//                .reduce(BigDecimal.ZERO, BigDecimal::add);
         BigDecimal returnAmount = returns.stream()
                 .map(PurchaseReturnOrders::getTotalAmount)
                 .filter(Objects::nonNull)
@@ -157,8 +143,10 @@
         summary.put("startDate", range.start().toString());
         summary.put("endDate", range.end().toString());
         summary.put("ledgerCount", ledgers.size());
-        summary.put("paymentCount", payments.size());
-        summary.put("invoiceCount", invoices.size());
+        summary.put("paymentCount", 0);
+//        summary.put("paymentCount", payments.size());
+//        summary.put("invoiceCount", invoices.size());
+        summary.put("invoiceCount", 0);
         summary.put("returnCount", returns.size());
         summary.put("contractAmount", contractAmount);
         summary.put("paymentAmount", paymentAmount);
@@ -437,13 +425,14 @@
     }
 
     private BigDecimal sumPaymentAmount(LoginUser loginUser, Long purchaseLedgerId) {
-        LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
-        applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
-        wrapper.eq(PaymentRegistration::getPurchaseLedgerId, purchaseLedgerId);
-        return defaultList(paymentRegistrationMapper.selectList(wrapper)).stream()
-                .map(PaymentRegistration::getCurrentPaymentAmount)
-                .filter(Objects::nonNull)
-                .reduce(BigDecimal.ZERO, BigDecimal::add);
+//        LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
+//        applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
+//        wrapper.eq(PaymentRegistration::getPurchaseLedgerId, purchaseLedgerId);
+//        return defaultList(paymentRegistrationMapper.selectList(wrapper)).stream()
+//                .map(PaymentRegistration::getCurrentPaymentAmount)
+//                .filter(Objects::nonNull)
+//                .reduce(BigDecimal.ZERO, BigDecimal::add);
+        return BigDecimal.ZERO;
     }
 
     private Map<String, Object> toReturnItem(PurchaseReturnOrders item) {
@@ -476,21 +465,6 @@
         return BigDecimal.ZERO;
     }
 
-    private List<PaymentRegistration> queryPayments(LoginUser loginUser, DateRange range) {
-        LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
-        applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
-        wrapper.ge(PaymentRegistration::getPaymentDate, toDate(range.start()))
-                .lt(PaymentRegistration::getPaymentDate, toExclusiveEndDate(range.end()));
-        return defaultList(paymentRegistrationMapper.selectList(wrapper));
-    }
-
-    private List<InvoicePurchase> queryInvoices(LoginUser loginUser, DateRange range) {
-        LambdaQueryWrapper<InvoicePurchase> wrapper = new LambdaQueryWrapper<>();
-        applyTenantFilter(wrapper, loginUser.getTenantId(), InvoicePurchase::getTenantId);
-        wrapper.ge(InvoicePurchase::getIssueDate, range.start())
-                .le(InvoicePurchase::getIssueDate, range.end());
-        return defaultList(invoicePurchaseMapper.selectList(wrapper));
-    }
 
     private List<PurchaseReturnOrders> queryReturns(LoginUser loginUser, DateRange range) {
         LambdaQueryWrapper<PurchaseReturnOrders> wrapper = new LambdaQueryWrapper<>();

--
Gitblit v1.9.3