From a80f963dab5990420daada6361066965bbb0f3c2 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 20 三月 2026 10:07:08 +0800
Subject: [PATCH] refactor(sales): 添加售后处理对已经发货的产品添加过滤

---
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                  |   10 ++++++----
 src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java            |    3 +--
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   11 ++++-------
 3 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
index 8dfb5f9..69140f3 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -5,7 +5,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.home.dto.IncomeExpenseAnalysisDto;
 import com.ruoyi.sales.dto.SalesLedgerDto;
 import com.ruoyi.sales.dto.SalesTrendDto;
@@ -85,5 +84,5 @@
             "</script>")
     List<SalesTrendDto> statisticsTable(@Param("statisticsTableDto")StatisticsTableDto statisticsTableDto);
 
-    IPage<SalesLedgerDto> listSalesLedger(Page page,@Param("ew") SalesLedgerDto salesLedgerDto);
+    IPage<SalesLedgerDto> listSalesLedgerAndShipped(Page page, @Param("ew") SalesLedgerDto salesLedgerDto);
 }
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 8f13c5e..c8da4ca 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -9,7 +9,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.service.AccountIncomeService;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
@@ -27,19 +26,15 @@
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
 import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductionProductMainService;
-import com.ruoyi.production.service.impl.ProductionProductMainServiceImpl;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysDeptMapper;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.sales.dto.*;
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.*;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
 import com.ruoyi.sales.service.ISalesLedgerService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -465,7 +460,7 @@
 
     @Override
     public IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page) {
-        IPage<SalesLedgerDto> salesLedgerDtoIPage = salesLedgerMapper.listSalesLedger(page, salesLedgerDto);
+        IPage<SalesLedgerDto> salesLedgerDtoIPage = salesLedgerMapper.listSalesLedgerAndShipped(page, salesLedgerDto);
         for (SalesLedgerDto salesLedger : salesLedgerDtoIPage.getRecords()) {
             LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
             productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
@@ -485,15 +480,17 @@
                         .last("limit 1"));
                 if (shippingInfo != null) {
                     product.setShippingStatus(shippingInfo.getStatus());
-
                 }
             }
+            // 杩囨护鍙繚鐣欏彂璐ц褰�
+            products = products.stream().filter(product -> "宸插彂璐�".equals(product.getShippingStatus())).collect(Collectors.toList());
             if (!products.isEmpty()) {
                 salesLedger.setHasChildren(true);
                 salesLedger.setProductData(products);
             }
         }
 
+
         return salesLedgerDtoIPage;
     }
 
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 85f62c0..71ad49f 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -111,14 +111,16 @@
         FROM sales_ledger
         GROUP BY customer_name
     </select>
-    <select id="listSalesLedger" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
-        select * from
+    <select id="listSalesLedgerAndShipped" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
+        select distinct sl.id as 'disId', sl.* from
         sales_ledger sl
-        <where>
+        left join sales_ledger_product slp on sl.id = slp.sales_ledger_id
+        left join shipping_info si on slp.id = si.sales_ledger_product_id
+        where si.status = '宸插彂璐�'
             <if test="ew.customerName != null and ew.customerName != '' ">
             and sl.customer_name like concat('%',#{ew.customerName},'%')
             </if>
-        </where>
+        order by sl.execution_date desc
     </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3