From 3c83bac9f2f447b6f1c77fa53d9df9e7c20d6041 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 18 四月 2026 10:38:06 +0800
Subject: [PATCH] feat: 退货台账客户列表返回已发货客户

---
 src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java           |    8 +++-----
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java    |    8 ++++++++
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   17 +++++++++++++++++
 src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java         |    6 ++++--
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                 |    7 ++++++-
 5 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 2bddc2b..8a11486 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -403,4 +404,11 @@
         return AjaxResult.success();
     }
 
+    @GetMapping("/shippedCustomers")
+    @ApiOperation("宸插彂璐у鎴峰悕鍗�")
+    public AjaxResult shippedCustomers() {
+        List<Customer> list = salesLedgerService.shippedCustomers();
+        return AjaxResult.success(list);
+    }
+
 }
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
index b9f8d03..89c32c3 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
@@ -1,17 +1,12 @@
 package com.ruoyi.sales.dto;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.pojo.SalesLedgerProductProcess;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.util.List;
 
 @Data
@@ -67,6 +62,9 @@
     @ApiModelProperty(value = "閫�璐ф�绘暟")
     private BigDecimal totalReturnNum;
 
+    @ApiModelProperty("浜у搧瑙勬牸-鍗曚綅(product_model)")
+    private String productModelUnit;
+
     @ApiModelProperty("閿�鍞骇鍝侀澶栧姞宸�")
     private List<SalesLedgerProductProcess> salesProductProcessList;
 
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
index 2e36906..807a830 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -3,9 +3,8 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
+import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.common.enums.SaleEnum;
-import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.sales.dto.*;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.SalesLedgerProcessRoute;
@@ -68,4 +67,7 @@
     List<SalesLabelDto> salesLabel(Long salesLedgerId);
 
     void salesStock(SalesProductStockDto dto);
+
+    List<Customer> shippedCustomers();
+
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index c270773..11d6224 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -1694,4 +1694,21 @@
         ledger.setStockStatus(allStocked ? 2 : (hasStocked ? 1 : 0));
         baseMapper.updateById(ledger);
     }
+
+    @Override
+    public List<Customer> shippedCustomers() {
+        List<SalesLedger> ledgers = list(Wrappers.<SalesLedger>lambdaQuery()
+                .eq(SalesLedger::getDeliveryStatus, 5)
+                .isNotNull(SalesLedger::getCustomerId)
+                .select(SalesLedger::getCustomerId));
+        if (CollectionUtils.isEmpty(ledgers)) {
+            return Collections.emptyList();
+        }
+        Set<Long> customerIds = ledgers.stream()
+                .map(SalesLedger::getCustomerId)
+                .collect(Collectors.toCollection(LinkedHashSet::new));
+        return customerMapper.selectList(Wrappers.<Customer>lambdaQuery()
+                .in(Customer::getId, customerIds)
+                .orderByAsc(Customer::getCustomerName));
+    }
 }
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 82c67b2..1134c45 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -58,13 +58,17 @@
         FROM shipping_info s
                  LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
     </select>
+
     <select id="getReturnManagementDtoById" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto">
         SELECT
         slp.*,
         GREATEST(slp.quantity - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
-        COALESCE(rs.total_return_num, 0) AS total_return_num
+        COALESCE(rs.total_return_num, 0) AS total_return_num,
+        pm.unit AS product_model_unit,
+        pm.thickness AS thickness
         FROM shipping_info si
         LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1
+        LEFT JOIN product_model pm ON slp.product_model_id = pm.id
         LEFT JOIN (
         SELECT
         return_sale_ledger_product_id,
@@ -81,6 +85,7 @@
             </if>
         </where>
     </select>
+
     <select id="getShippingInfoByCustomerName" resultType="com.ruoyi.sales.pojo.ShippingInfo">
         select * from shipping_info si
         left join sales_ledger sl on si.sales_ledger_id = sl.id

--
Gitblit v1.9.3