From 684e4306a08feeae188070f264148e6765da8dcf Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 19:25:15 +0800
Subject: [PATCH] feat(account): 更新往来付款回款流水表及接口

---
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 351f1c9..9007342 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -36,6 +36,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -48,6 +49,10 @@
 @RequiredArgsConstructor
 public class ShippingInfoServiceImpl extends ServiceImpl<ShippingInfoMapper, ShippingInfo> implements ShippingInfoService {
 
+    /**
+     * listPage 鐨勮鏉ユ簮鏍囪锛歴hipping=鍙戣揣鍗曪紝oilOut=閿�鍞被娌瑰搧鍑哄簱
+     */
+    private static final String SOURCE_OIL_OUT = "oilOut";
 
     private final ShippingInfoMapper shippingInfoMapper;
 
@@ -69,10 +74,26 @@
         IPage<ShippingInfoDto> listPage = shippingInfoMapper.listPage(page, req);
         listPage.getRecords().forEach(item -> {
             item.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, item.getId()));
+            // 娌瑰搧鍑哄簱琛屾病鏈� shipping_product_detail锛屾壒鍙锋槑缁嗗彧鑳界敱鍑哄簱璁板綍鑷韩瀛楁鏋勯��
+            if (SOURCE_OIL_OUT.equals(item.getSource())) {
+                item.setBatchNoList(buildOilOutBatchNoList(item));
+            }
         });
         return listPage;
     }
 
+    /**
+     * 娌瑰搧鍑哄簱琛岀殑鎵瑰彿鏄庣粏锛屼緵鍙戣揣鍙拌处璇︽儏寮规鐨勩�屾壒鍙枫�嶆槑缁嗚〃灞曠ず
+     */
+    private List<ShippingProductDetailDto> buildOilOutBatchNoList(ShippingInfoDto item) {
+        ShippingProductDetailDto detail = new ShippingProductDetailDto();
+        detail.setBatchNo(item.getOutBatchNo());
+        detail.setProductName(item.getProductName());
+        detail.setSpecificationModel(item.getSpecificationModel());
+        detail.setDeliveryQuantity(item.getTotalQuantity());
+        return Collections.singletonList(detail);
+    }
+
     @Override
     public boolean deductStock(ShippingInfoDto req) {
         ShippingInfo byId = this.getById(req.getId());

--
Gitblit v1.9.3