From 48e8e81666b2d0f49b931cb7b93729355758f2ae Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 24 九月 2026 19:24:02 +0800
Subject: [PATCH] fix(aftersalesservice): 解决售后工单查询中的空指针异常

---
 src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 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 a9e4f43..60472af 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
@@ -95,9 +95,19 @@
     @Override
     public AfterSalesServiceNewDto getAfterSalesServiceNewDtoById(Long id) {
         AfterSalesService afterSalesService = afterSalesServiceMapper.selectById(id);
-        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 (afterSalesService == null) {
+            throw new RuntimeException("鍞悗宸ュ崟涓嶅瓨鍦�");
+        }
+        // 宸ュ崟鍙互涓嶅叧鑱斾骇鍝侊紙鍙嶉鐧昏瀵煎叆銆佸巻鍙叉暟鎹兘鏄┖锛夛紝姝ゅ蹇呴』瀹归敊
+        List<Long> collect = StringUtils.isEmpty(afterSalesService.getProductModelIds())
+                ? new ArrayList<>()
+                : Arrays.stream(afterSalesService.getProductModelIds().split(","))
+                        .filter(StringUtils::isNotEmpty)
+                        .map(Long::valueOf)
+                        .collect(Collectors.toList());
+        List<SalesLedgerProduct> list = collect.isEmpty()
+                ? new ArrayList<>()
+                : salesLedgerProductService.list(new QueryWrapper<SalesLedgerProduct>().lambda().in(SalesLedgerProduct::getId, collect));
 
         if (StringUtils.isNotEmpty(afterSalesService.getProductModelQuantities())) {
             String[] quantities = afterSalesService.getProductModelQuantities().split(",");
@@ -133,7 +143,12 @@
         AfterSalesServiceNewDto afterSalesServiceNewDto = new AfterSalesServiceNewDto();
         BeanUtils.copyProperties(afterSalesService, afterSalesServiceNewDto);
         SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
-        BeanUtils.copyProperties(byId, salesLedgerDto);
+        if (afterSalesService.getSalesLedgerId() != null) {
+            SalesLedger byId = salesLedgerService.getById(afterSalesService.getSalesLedgerId());
+            if (byId != null) {
+                BeanUtils.copyProperties(byId, salesLedgerDto);
+            }
+        }
         salesLedgerDto.setProductData( list);
         afterSalesServiceNewDto.setSalesLedgerDto(salesLedgerDto);
         return afterSalesServiceNewDto;

--
Gitblit v1.9.3