From b68518c7a9e7dbb0c384d4020b48e3af7db74963 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 22 十二月 2025 17:23:36 +0800
Subject: [PATCH] yys  保养计划定时生成,销售台账返回生产状态

---
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 49 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 083feea..35985d8 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -10,15 +10,15 @@
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
+import com.ruoyi.production.pojo.SalesLedgerWork;
 import com.ruoyi.sales.dto.InvoiceLedgerDto;
 import com.ruoyi.sales.dto.SalesLedgerDto;
 import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
 import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
 import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
-import com.ruoyi.sales.pojo.InvoiceLedger;
-import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
-import com.ruoyi.sales.pojo.ReceiptPayment;
-import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.*;
 import com.ruoyi.sales.service.ICommonFileService;
 import com.ruoyi.sales.service.ISalesLedgerService;
 import lombok.AllArgsConstructor;
@@ -28,10 +28,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -57,6 +54,12 @@
 
     @Autowired
     private ReceiptPaymentMapper receiptPaymentMapper;
+
+    @Autowired
+    private SalesLedgerProductMapper salesLedgerProductMapper;
+
+    @Autowired
+    private SalesLedgerWorkMapper salesLedgerWorkMapper;
 
     /**
      * 鏌ヨ閿�鍞彴璐﹀垪琛�
@@ -205,9 +208,6 @@
         }
         List<Long> salesLedgerIds = iPage.getRecords().stream().map(SalesLedger::getId).collect(Collectors.toList());
         List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds);
-        if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){
-            return iPage;
-        }
         // 璁$畻鍥炴閲戦锛屽緟鍥炴閲戦
         List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(new LambdaQueryWrapper<InvoiceRegistrationProduct>()
                 .in(InvoiceRegistrationProduct::getSalesLedgerId, salesLedgerIds));
@@ -218,6 +218,42 @@
         if(!CollectionUtils.isEmpty(invoiceLedgers)){
             receiptPayments = receiptPaymentMapper.selectList(new LambdaQueryWrapper<ReceiptPayment>()
                     .in(ReceiptPayment::getInvoiceLedgerId, invoiceLedgers.stream().map(InvoiceLedger::getId).collect(Collectors.toList())));
+        }
+        // 鑾峰彇閿�鍞骇鍝佹暟閲�
+        List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper
+                .selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
+                        .eq(SalesLedgerProduct::getType, 1)
+                        .in(SalesLedgerProduct::getSalesLedgerId, salesLedgerIds));
+        Map<Long, BigDecimal> salesLedgerProductCountMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(salesLedgerProducts)) {
+            salesLedgerProductCountMap = salesLedgerProducts
+                    .stream()
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.groupingBy(
+                            SalesLedgerProduct::getSalesLedgerId,
+                            Collectors.reducing(
+                                    BigDecimal.ZERO,
+                                    SalesLedgerProduct::getQuantity,
+                                    BigDecimal::add
+                            )
+                    ));
+        }
+        // 鑾峰彇閿�鍞骇鍝佺敓浜ф姤宸ユ暟閲�
+        List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(new LambdaQueryWrapper<SalesLedgerWork>()
+                .in(SalesLedgerWork::getSalesLedgerId, salesLedgerIds));
+        Map<Long, BigDecimal> salesLedgerWorkCountMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(salesLedgerWorks)) {
+            salesLedgerWorkCountMap = salesLedgerWorks
+                    .stream()
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.groupingBy(
+                            SalesLedgerWork::getSalesLedgerId,
+                            Collectors.reducing(
+                                    BigDecimal.ZERO,
+                                    SalesLedgerWork::getFinishedNum,
+                                    BigDecimal::add
+                            )
+                    ));
         }
         for (SalesLedger salesLedger : iPage.getRecords()) {
             boolean existFlag = false;
@@ -257,6 +293,8 @@
                 salesLedger.setNoInvoiceAmountTotal(salesLedger.getContractAmount());
             }
             salesLedger.setInvoiceTotal(invoiceTotal);
+            // 鍒ゆ柇鏄惁鏄敓浜у畬鎴�
+            salesLedger.setProductionStatus(salesLedgerProductCountMap.get(salesLedger.getId()) == null ? "鏈紑濮�" : salesLedgerProductCountMap.get(salesLedger.getId()).compareTo(salesLedgerWorkCountMap.get(salesLedger.getId())) > 0 ? "鐢熶骇涓�" : "宸插畬鎴�");
         }
         if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) {
             if (salesLedgerDto.getStatus()) {

--
Gitblit v1.9.3