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