From 33622e473a5e51f13a16ef5c6c39be3bcc9e9155 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期四, 30 十月 2025 21:27:25 +0800
Subject: [PATCH] 增加条码的持久化逻辑

---
 src/main/java/com/gs/xiaomi/service/BCS101Service.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gs/xiaomi/service/BCS101Service.java b/src/main/java/com/gs/xiaomi/service/BCS101Service.java
index d7baca5..48fd565 100644
--- a/src/main/java/com/gs/xiaomi/service/BCS101Service.java
+++ b/src/main/java/com/gs/xiaomi/service/BCS101Service.java
@@ -6,9 +6,12 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gs.xiaomi.dto.BCS101Request;
 import com.gs.xiaomi.dto.BCS101Response;
+import com.gs.xiaomi.dto.CartonListItemDto;
 import com.gs.xiaomi.dto.SnListItemDto;
+import com.gs.xiaomi.entity.CartonListItem;
 import com.gs.xiaomi.entity.DeliveryMain;
 import com.gs.xiaomi.entity.SnListItem;
+import com.gs.xiaomi.util.CartonListItemConverter;
 import com.gs.xiaomi.util.SnListItemConverter;
 import lombok.RequiredArgsConstructor;
 import org.slf4j.Logger;
@@ -29,6 +32,7 @@
     private final BCS101ApiService bcs101ApiService;
     private final DeliveryMainService deliveryMainService;
     private final SnListItemService snListItemService;
+    private final CartonListItemService cartonListItemService;
 
     /**
      * 鏍规嵁閫佽揣鍗曞彿鑾峰彇BCS101鏉$爜鏁版嵁骞舵寔涔呭寲
@@ -104,6 +108,37 @@
                 } else {
                     log.warn("銆怋CS101鏁版嵁鍚屾銆戝搷搴斾腑娌℃湁SN鏁版嵁, 閫佽揣鍗�: {}", asn);
                 }
+
+                // 鑾峰彇cartonList鏁版嵁
+                List<CartonListItemDto> cartonList = response.getBody().getCartonList();
+
+                if (cartonList != null && !cartonList.isEmpty()) {
+                    log.info("銆怋CS101鏁版嵁鍚屾銆戣幏鍙栧埌 {} 鏉$鏁版嵁锛屽紑濮嬫寔涔呭寲...", cartonList.size());
+
+                    // 杞崲DTO涓篍ntity锛屽苟璁剧疆鍏宠仈淇℃伅
+                    List<CartonListItem> cartonEntityList = CartonListItemConverter.toEntityList(
+                            cartonList,
+                            deliveryMain.getId(),      // deliveryMainId - 閫佽揣鍗曚富琛↖D
+                            deliveryMain.getZzasn()    // zzasn - 閫佽揣鍗曞彿
+                    );
+
+                    // 鍏堝垹闄よ閫佽揣鍗曞凡鏈夌殑绠辨暟鎹紙閬垮厤閲嶅锛�
+                    cartonListItemService.lambdaUpdate()
+                            .eq(CartonListItem::getZzasn, deliveryMain.getZzasn())
+                            .remove();
+
+                    // 鎵归噺淇濆瓨鍒版暟鎹簱
+                    boolean cartonSaved = cartonListItemService.saveBatch(cartonEntityList);
+
+                    if (cartonSaved) {
+                        log.info("銆怋CS101鏁版嵁鍚屾鎴愬姛銆戞垚鍔熶繚瀛� {} 鏉$鏁版嵁鍒版暟鎹簱, 閫佽揣鍗�: {}", cartonEntityList.size(), asn);
+                    } else {
+                        log.error("銆怋CS101鏁版嵁鍚屾澶辫触銆戜繚瀛樼鏁版嵁澶辫触, 閫佽揣鍗�: {}", asn);
+                        throw new RuntimeException("淇濆瓨绠辨暟鎹け璐�");
+                    }
+                } else {
+                    log.warn("銆怋CS101鏁版嵁鍚屾銆戝搷搴斾腑娌℃湁绠辨暟鎹�, 閫佽揣鍗�: {}", asn);
+                }
             } else {
                 log.error("銆怋CS101鏁版嵁鍚屾澶辫触銆戞帴鍙h皟鐢ㄥけ璐�, 閫佽揣鍗�: {}, 閿欒: {}", asn, response.getErrorDesc());
                 throw new RuntimeException("BCS101鎺ュ彛璋冪敤澶辫触: " + response.getErrorDesc());

--
Gitblit v1.9.3