From 86379aae223a16fed59d46f915ade96ef987b8d2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 28 六月 2026 18:39:24 +0800
Subject: [PATCH] fix: 不合格预警设置为一个月
---
src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java | 69 ++++++++++++++++++++++++++++------
1 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
index d744ece..8f3cb12 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.aftersalesservice.dto.AfterSalesProductDto;
import com.ruoyi.aftersalesservice.dto.AfterSalesServiceNewDto;
import com.ruoyi.aftersalesservice.dto.CountDto;
import com.ruoyi.aftersalesservice.mapper.AfterSalesServiceMapper;
@@ -28,9 +29,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -61,8 +60,54 @@
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
SysDept sysDept = sysDeptMapper.selectDeptById(tenantId);
IPage<AfterSalesServiceNewDto> afterSalesServiceIPage = afterSalesServiceMapper.listPage(page, afterSalesService);
+
+ List<Long> allSalesLedgerIds = afterSalesServiceIPage.getRecords().stream()
+ .map(AfterSalesServiceNewDto::getSalesLedgerId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+
+ Map<Long, List<SalesLedgerProduct>> salesLedgerProductsMap;
+ if (!allSalesLedgerIds.isEmpty()) {
+ List<SalesLedgerProduct> allProducts = salesLedgerProductService.list(
+ new QueryWrapper<SalesLedgerProduct>().lambda()
+ .in(SalesLedgerProduct::getSalesLedgerId, allSalesLedgerIds)
+ );
+ salesLedgerProductsMap = allProducts.stream()
+ .collect(Collectors.groupingBy(SalesLedgerProduct::getSalesLedgerId));
+ } else {
+ salesLedgerProductsMap = new HashMap<>();
+ }
+
afterSalesServiceIPage.getRecords().forEach(item -> {
item.setDeptName(sysDept.getDeptName());
+
+ try {
+ if (org.apache.commons.lang3.StringUtils.isNotEmpty(item.getAfterSalesProducts())) {
+ List<AfterSalesProductDto> afterSalesProductList = JSON.parseArray(item.getAfterSalesProducts(), AfterSalesProductDto.class);
+ List<Long> selectedIds = afterSalesProductList.stream().map(AfterSalesProductDto::getId).collect(Collectors.toList());
+
+ if (!selectedIds.isEmpty()) {
+ List<SalesLedgerProduct> ledgerProducts = salesLedgerProductsMap.getOrDefault(item.getSalesLedgerId(), new java.util.ArrayList<>());
+ List<SalesLedgerProduct> matchedProducts = ledgerProducts.stream()
+ .filter(p -> selectedIds.contains(p.getId()))
+ .collect(Collectors.toList());
+
+ matchedProducts.forEach(p -> {
+ afterSalesProductList.stream()
+ .filter(ap -> ap.getId().equals(p.getId()))
+ .findFirst()
+ .ifPresent(ap -> p.setAfterSalesQuantity(ap.getAfterSalesQuantity()));
+ });
+
+ SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
+ salesLedgerDto.setProductData(matchedProducts);
+ item.setSalesLedgerDto(salesLedgerDto);
+ }
+ }
+ } catch (Exception e) {
+ log.error("瑙f瀽鍞悗浜у搧澶辫触", e);
+ }
});
return afterSalesServiceIPage;
}
@@ -70,7 +115,7 @@
@Override
public boolean addAfterSalesServiceDto(AfterSalesServiceNewDto afterSalesServiceNewDto) {
afterSalesServiceNewDto.setStatus(1);
- if (afterSalesServiceNewDto.getProductModelIdList() != null && !afterSalesServiceNewDto.getProductModelIdList().isEmpty() ) {
+ if (afterSalesServiceNewDto.getProductModelIdList() != null && !afterSalesServiceNewDto.getProductModelIdList().isEmpty()) {
String productModelIds = afterSalesServiceNewDto.getProductModelIdList().stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
@@ -80,14 +125,14 @@
afterSalesServiceNewDto.setAfterSalesProducts(JSON.toJSONString(afterSalesServiceNewDto.getAfterSalesProductList()));
}
SysUser sysUser = sysUserMapper.selectUserById(afterSalesServiceNewDto.getCheckUserId());
- if(sysUser == null) throw new RuntimeException("瀹℃牳浜轰笉瀛樺湪");
+ if (sysUser == null) throw new RuntimeException("瀹℃牳浜轰笉瀛樺湪");
afterSalesServiceNewDto.setCheckNickName(sysUser.getNickName());
if (StringUtils.isEmpty(afterSalesServiceNewDto.getAfterSalesServiceNo())) {
String string = OrderUtils.countAfterServiceTodayByCreateTime(afterSalesServiceMapper, "SH_");
afterSalesServiceNewDto.setAfterSalesServiceNo(string);
}
boolean saved = this.save(afterSalesServiceNewDto);
-
+
if (saved && afterSalesServiceNewDto.getSalesLedgerId() != null) {
try {
SalesLedger salesLedger = salesLedgerService.getById(afterSalesServiceNewDto.getSalesLedgerId());
@@ -95,10 +140,10 @@
Long entryUserId = Long.parseLong(salesLedger.getEntryPerson());
String webPath = "/customerService/afterSalesHandling?afterSalesServiceNo=" + afterSalesServiceNewDto.getAfterSalesServiceNo();
sysNoticeService.simpleNoticeByUser(
- "鏂板鍞悗鍗曢�氱煡",
- "鎮ㄥ綍鍏ョ殑閿�鍞鍗曟湁涓�鏉℃柊鐨勫敭鍚庤褰曪紝鍞悗鍗曞彿锛�" + afterSalesServiceNewDto.getAfterSalesServiceNo(),
- Collections.singletonList(entryUserId),
- webPath
+ "鏂板鍞悗鍗曢�氱煡",
+ "鎮ㄥ綍鍏ョ殑閿�鍞鍗曟湁涓�鏉℃柊鐨勫敭鍚庤褰曪紝鍞悗鍗曞彿锛�" + afterSalesServiceNewDto.getAfterSalesServiceNo(),
+ Collections.singletonList(entryUserId),
+ webPath
);
}
} catch (Exception e) {
@@ -114,7 +159,7 @@
SalesLedger byId = salesLedgerService.getById(afterSalesService.getSalesLedgerId());
List<Long> collect = Arrays.stream(afterSalesService.getProductModelIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
List<SalesLedgerProduct> list = salesLedgerProductService.list(new QueryWrapper<SalesLedgerProduct>().lambda().in(SalesLedgerProduct::getId, collect));
-
+
if (StringUtils.isNotEmpty(afterSalesService.getAfterSalesProducts())) {
List<com.ruoyi.aftersalesservice.dto.AfterSalesProductDto> afterSalesProductList = com.alibaba.fastjson2.JSON.parseArray(afterSalesService.getAfterSalesProducts(), com.ruoyi.aftersalesservice.dto.AfterSalesProductDto.class);
for (SalesLedgerProduct product : list) {
@@ -131,7 +176,7 @@
BeanUtils.copyProperties(afterSalesService, afterSalesServiceNewDto);
SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
BeanUtils.copyProperties(byId, salesLedgerDto);
- salesLedgerDto.setProductData( list);
+ salesLedgerDto.setProductData(list);
afterSalesServiceNewDto.setSalesLedgerDto(salesLedgerDto);
return afterSalesServiceNewDto;
}
--
Gitblit v1.9.3