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