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