From 58ca88b5008448532f19dca8bf030ceeba347bd5 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 28 四月 2026 19:05:32 +0800
Subject: [PATCH] 修复移库任务下发给wcs

---
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 84ea570..4f89dbc 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -74,9 +74,10 @@
      * 璋冨害鍣ㄥ彧璐熻矗浠庡伐浣滄。涓寫鍑衡�滃綋鍓嶅厑璁镐笅鍙戔�濈殑浠诲姟锛屽苟灏嗗叾杞崲鎴� WCS 鎺ュ彛闇�瑕佺殑鎶ユ枃缁撴瀯锛�
      * 鍑哄簱浠诲姟鎸� userNo -> batchSeq 鍒嗗眰姹囨�诲悗涓茶涓嬪彂锛岀‘淇濆悓涓� userNo 涓嬪墠涓�涓� batchSeq 瀹屾垚鍚庡啀鍙戜笅涓�涓��
      * <p>
-     * 褰撳墠鎵归噺涓嬪彂鐨勫綊骞剁淮搴︽槸锛�
-     * 1. WCS鎺ュ彛璺緞锛堝叆搴�/鍑哄簱/绉诲簱涓嶈兘娣峰彂锛夛紱
-     * 2. 鍑哄簱浠诲姟鎸� work_mast.user_no -> work_mast.batch_seq 鍒嗗眰姹囨�伙紝骞舵寜 batchSeq 鑷劧鍗囧簭涓嬪彂銆�
+     * 褰撳墠涓嬪彂瑙勫垯鏄細
+     * 1. 鍏ュ簱浠诲姟鎸� WCS 鎺ュ彛鎵归噺涓嬪彂锛�
+     * 2. 绉诲簱浠诲姟鎸夊崟鏉′换鍔′笅鍙戯紱
+     * 3. 鍑哄簱浠诲姟鎸� work_mast.user_no -> work_mast.batch_seq 鍒嗗眰姹囨�伙紝骞舵寜 batchSeq 鑷劧鍗囧簭涓嬪彂銆�
      *
      * @author Ryan
      * @date 2026/1/10 14:42
@@ -93,6 +94,7 @@
         }
 
         List<WorkTaskParams> paramsList = new ArrayList<>();
+        List<WorkTaskParams> moveParamsList = new ArrayList<>();
         Map<String, LinkedHashMap<String, List<WorkTaskParams>>> outboundTasksByUserNo = new LinkedHashMap<>();
         for (WrkMast wrkMast : wrkMasts) {
             // 鍑哄簱绫讳换鍔★紙ioType > 100锛夐粯璁ら渶瑕� ERP 纭锛涙湭纭鐨勪换鍔″湪杩欓噷鐩存帴璺宠繃銆�
@@ -114,11 +116,20 @@
                         .computeIfAbsent(batchSeq, key -> new ArrayList<>())
                         .add(params);
             } else {
-                paramsList.add(buildWorkTaskParams(wrkMast));
+                WorkTaskParams params = buildWorkTaskParams(wrkMast);
+                if (isMovePublishTask(params)) {
+                    moveParamsList.add(params);
+                } else {
+                    paramsList.add(params);
+                }
             }
         }
 
         if (publishTaskChunks(paramsList)) {
+            return;
+        }
+
+        if (publishMoveTasksOneByOne(moveParamsList)) {
             return;
         }
 
@@ -191,6 +202,10 @@
         return wrkMast != null && Objects.equals(wrkMast.getIoType(), 101);
     }
 
+    private boolean isMovePublishTask(WorkTaskParams params) {
+        return params != null && "move".equalsIgnoreCase(params.getType());
+    }
+
     private int compareBatchSeqNatural(String left, String right) {
         String safeLeft = Cools.isEmpty(left) ? "" : left;
         String safeRight = Cools.isEmpty(right) ? "" : right;
@@ -250,6 +265,21 @@
         return false;
     }
 
+    private boolean publishMoveTasksOneByOne(List<WorkTaskParams> moveParamsList) {
+        if (moveParamsList == null || moveParamsList.isEmpty()) {
+            return false;
+        }
+        for (WorkTaskParams params : moveParamsList) {
+            R r = wcsApiService.pubWrkToWcs(params);
+            if (isWcsSuccess(r)) {
+                return true;
+            }
+            log.warn("绉诲簱浠诲姟涓嬪彂鍒癢CS澶辫触, taskNo={}, result={}",
+                    params == null ? null : params.getTaskNo(), r);
+        }
+        return false;
+    }
+
     private boolean publishOutboundTaskChunks(String userNo, String batchSeq, List<WorkTaskParams> batchParams) {
         if (batchParams == null || batchParams.isEmpty()) {
             return false;

--
Gitblit v1.9.1