From b0877a3275ed5bc96fb80f84949904e149946cf2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 19:37:51 +0800
Subject: [PATCH] 将erp下发直接生成任务改成先生成订单再出库

---
 src/main/java/com/zy/asrs/service/impl/ExternalTaskFacadeServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/ExternalTaskFacadeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ExternalTaskFacadeServiceImpl.java
index d1ce61b..538f26f 100644
--- a/src/main/java/com/zy/asrs/service/impl/ExternalTaskFacadeServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ExternalTaskFacadeServiceImpl.java
@@ -4,7 +4,7 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.entity.param.MesToCombParam;
-import com.zy.asrs.entity.param.OpenOrderPakoutPauseParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutExecuteParam;
 import com.zy.asrs.entity.param.OutTaskParam;
 import com.zy.asrs.service.ExternalTaskFacadeService;
 import com.zy.asrs.service.LocDetlService;
@@ -14,6 +14,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.Objects;
 
 /**
@@ -65,7 +66,17 @@
     }
 
     /**
-     * 澶嶇敤鐜版湁鍑哄簱寤哄崟閫昏緫锛涘綋 autoConfirm=true 鏃讹紝缁х画璋冪敤鍘熸湁纭鎺ュ彛鑷姩鏀捐銆�
+     * 澶嶇敤缁熶竴鍑哄簱璁㈠崟鍖栭�昏緫銆�
+     *
+     * MQTT/IoT 鍏ュ彛涓嶅啀缁曡繃璁㈠崟鐩存帴鐢熸垚 WrkMast锛�
+     * - autoConfirm=false锛氬彧鍒涘缓 status=0 鐨勮鍗曪紝绛夊緟澶栭儴璋冪敤鎵ц鎺ュ彛锛�
+     * - autoConfirm=true锛氬垱寤鸿鍗曞悗绔嬪嵆璧版墽琛岄�昏緫锛岀敓鎴愬綋鍓嶆壒娆′换鍔″苟纭鍙笅鍙戙��
+     *
+     * 杩欐牱鍋氭槸涓轰簡璁� HTTP /outOrder 鍜� MQTT/IoT 鐩磋皟鍏变韩鍚屼竴濂楋細
+     * - 璁㈠崟鏄庣粏淇濆瓨瀛楁锛�
+     * - 鎵规閿绠楋紱
+     * - 涓鍙栨秷鍜� work_qty 鍥炴粴锛�
+     * - pdcType 鏀捐銆�
      */
     @Override
     public R createOutboundTask(OutTaskParam param, boolean autoConfirm) {
@@ -87,22 +98,41 @@
         }
 
         if (param.getSeq() == null) {
+            // 璁惧鐩磋皟閫氬父鏄崟鎵樼洏鍑哄簱锛屾病鏈� ERP 椤哄簭鍙凤紱0 琛ㄧず鏃犲簭锛屽拰 /outOrder 鐨勬牎楠岃涔変竴鑷淬��
             param.setSeq(0);
         }
-
-        R result = openService.outOrder(param, 1,1);
-        if (!Objects.equals(result.get("code"), 200) || !autoConfirm) {
-            return result;
+        if (Cools.isEmpty(param.getBatchSeq())) {
+            // batchSeq 鏄帴鍙e師濮嬪瓧娈碉紝鏄庣粏閲屼細淇濆瓨锛涘疄闄呯敓鎴愪换鍔℃椂浣庣珯鐐逛粛鎸� orderId 浣滀负鎵规閿��
+            param.setBatchSeq(param.getOrderId());
+        }
+        if (isHighStation(param.getStationId()) && Cools.isEmpty(param.getEntryWmsCode())) {
+            // IoT 鐩磋皟甯歌涓哄崟鎵樼洏浠诲姟锛屾病鏈� ERP 杩涗粨缂栧彿锛涚敤 orderId 浣滀负鎵规閿紝
+            // 杩欐牱鏃㈡弧瓒抽珮绔欑偣璁㈠崟鏄庣粏鏍¢獙锛屼篃鑳借鎵ц鍚� WrkMast.batchSeq 淇濇寔鍙拷婧��
+            param.setEntryWmsCode(param.getOrderId());
         }
 
-        // IoT pick 绾﹀畾涓衡�滄敹鍒板嵆鎵ц鈥濓紝鍥犳杩欓噷鐩存帴澶嶇敤鍘熸湁纭鏀捐鎺ュ彛銆�
-        OpenOrderPakoutPauseParam executeParam = new OpenOrderPakoutPauseParam();
+        // IoT/MQTT 榛樿鍙鍒涘缓璁㈠崟锛宻tatus=0 涓嶄細琚畾鏃跺櫒鎵弿銆�
+        // 鍙湁 autoConfirm=true 鎴栧閮ㄥ悗缁皟鐢ㄦ墽琛屾帴鍙f椂锛屾墠浼氭妸 status 鎭㈠涓� 1 骞剁敓鎴愪换鍔°��
+        R orderResult = openService.outOrderCreatePakoutOrder(Collections.singletonList(param), false);
+        if (!Objects.equals(orderResult.get("code"), 200) || !autoConfirm) {
+            return orderResult;
+        }
+
+        // IoT pick 绾﹀畾涓衡�滄敹鍒板嵆鎵ц鈥濓紝鍥犳寤哄崟鍚庣洿鎺ュ鐢ㄥ叕寮�鎵ц鎺ュ彛鐨勬湇鍔¢�昏緫銆�
+        OpenOrderPakoutExecuteParam executeParam = new OpenOrderPakoutExecuteParam();
         executeParam.setOrderId(param.getOrderId());
         executeParam.setExecute(1);
-        R confirmResult = openService.pakoutOrderPause(executeParam);
-        if (result.get("wrkNo") != null) {
-            confirmResult.add(Cools.add("wrkNo", result.get("wrkNo")));
+        return openService.pakoutOrderExecute(executeParam);
+    }
+
+    private boolean isHighStation(String stationId) {
+        if (Cools.isEmpty(stationId)) {
+            return false;
         }
-        return confirmResult;
+        try {
+            return Integer.valueOf(stationId) > 600;
+        } catch (NumberFormatException ignored) {
+            return false;
+        }
     }
 }

--
Gitblit v1.9.1