From 747ae61edd8ee8a1a0ecb6cad69e51edc9d24d55 Mon Sep 17 00:00:00 2001
From: zhang_nuo <zhang_12370@163.com>
Date: 星期二, 22 九月 2026 12:16:12 +0800
Subject: [PATCH] fix(aftersalesservice): 修复售后工单列表空指针异常
---
src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 42 insertions(+), 2 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 a141327..cab1fcd 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
@@ -44,14 +44,22 @@
private final SysUserMapper sysUserMapper;
private final ISalesLedgerProductService salesLedgerProductService;
private final ISalesLedgerService salesLedgerService;
+ private final com.ruoyi.sales.mapper.ShippingInfoMapper shippingInfoMapper;
@Override
public IPage<AfterSalesServiceNewDto> listPage(Page page, AfterSalesServiceNewDto afterSalesService) {
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
- SysDept sysDept = sysDeptMapper.selectDeptById(tenantId);
+ String deptName = null;
+ if (tenantId != null) {
+ SysDept sysDept = sysDeptMapper.selectDeptById(tenantId);
+ if (sysDept != null) {
+ deptName = sysDept.getDeptName();
+ }
+ }
IPage<AfterSalesServiceNewDto> afterSalesServiceIPage = afterSalesServiceMapper.listPage(page, afterSalesService);
+ String finalDeptName = deptName;
afterSalesServiceIPage.getRecords().forEach(item -> {
- item.setDeptName(sysDept.getDeptName());
+ item.setDeptName(finalDeptName);
});
return afterSalesServiceIPage;
}
@@ -81,6 +89,38 @@
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.getProductModelQuantities())) {
+ String[] quantities = afterSalesService.getProductModelQuantities().split(",");
+ for (int i = 0; i < collect.size(); i++) {
+ Long productId = collect.get(i);
+ for (SalesLedgerProduct product : list) {
+ if (product.getId().equals(productId)) {
+ if (i < quantities.length && StringUtils.isNotEmpty(quantities[i])) {
+ product.setQuantity(new java.math.BigDecimal(quantities[i]));
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ for (SalesLedgerProduct product : list) {
+ com.ruoyi.sales.pojo.ShippingInfo shippingInfo = shippingInfoMapper.selectOne(
+ new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.ruoyi.sales.pojo.ShippingInfo>()
+ .eq(com.ruoyi.sales.pojo.ShippingInfo::getSalesLedgerProductId, product.getId())
+ .orderByDesc(com.ruoyi.sales.pojo.ShippingInfo::getCreateTime)
+ .last("limit 1")
+ );
+ if (shippingInfo != null) {
+ product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
+ product.setShippingDate(shippingInfo.getShippingDate());
+ product.setShippingStatus(shippingInfo.getStatus());
+ product.setExpressCompany(shippingInfo.getExpressCompany());
+ product.setExpressNumber(shippingInfo.getExpressNumber());
+ }
+ }
+
AfterSalesServiceNewDto afterSalesServiceNewDto = new AfterSalesServiceNewDto();
BeanUtils.copyProperties(afterSalesService, afterSalesServiceNewDto);
SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
--
Gitblit v1.9.3