From 981ae2281523545500846202b2ee8351a7f1ad1a Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 07 四月 2026 10:56:40 +0800
Subject: [PATCH] 倒叙取消
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 42 ++++++++++++++++++++++++++++++++----------
1 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2e13cd7..b1eca9f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -417,7 +417,7 @@
return R.ok(confirmedCount == 0 ? "浠诲姟宸茬‘璁ゆ墽琛�" : "ERP纭鎵ц鍑哄簱鎴愬姛").add(result);
}
if (Objects.equals(param.getExecute(), 2)) {
- // ERP璇锋眰鍙栨秷浠诲姟锛氱洿鎺ユ敹闆嗕换鍔″彿锛屾寜 taskList 鏍煎紡鍙戦�佺粰 WCS銆�
+ // ERP璇锋眰鍙栨秷浠诲姟锛氭寜 plt_type 浠庡ぇ鍒板皬鍏� WCS 鍐� WMS锛涘け璐ユ垨寮傚父鍒欏仠姝㈠悗缁紝鎺ュ彛浠嶈繑鍥炲師鎴愬姛缁撴瀯銆�
Map<String, Object> result = new HashMap<>();
result.put("orderNo", param.getOrderId());
result.put("execute", param.getExecute());
@@ -425,22 +425,44 @@
if (activeTasks.isEmpty()) {
return R.ok("鏃犳湁鏁堝嚭搴撲换鍔�").add(result);
}
- List<HashMap<String,Object>> taskList = new ArrayList<>();
- for (WrkMast wrkMast : activeTasks) {
- HashMap<String,Object> hashMap = new HashMap<>();
- hashMap.put("taskNo", wrkMast.getWrkNo());
- if (!Cools.isEmpty(wrkMast) && wrkMast.getWrkSts() ==11L) {
- workService.cancelWrkMast(wrkMast.getWrkNo()+"", 9955L);
- continue;
+ List<WrkMast> sorted = new ArrayList<>(activeTasks);
+ sorted.sort(Comparator.comparing(WrkMast::getPltType, Comparator.nullsLast(Comparator.reverseOrder())));
+ for (WrkMast wrkMast : sorted) {
+ try {
+ if (!Cools.isEmpty(wrkMast) && wrkMast.getWrkSts() == 11L) {
+ workService.cancelWrkMast(wrkMast.getWrkNo() + "", 9955L);
+ continue;
+ }
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("taskNo", wrkMast.getWrkNo());
+ List<HashMap<String, Object>> one = new ArrayList<>();
+ one.add(hashMap);
+ R wcsR = wcsApiService.pauseOutTasks(one);
+ requireWcsPauseOk(wcsR);
+ workService.cancelWrkMast(wrkMast.getWrkNo() + "", 9955L);
+ } catch (Exception e) {
+ log.warn("[pakoutOrderPause] execute=2 鍙栨秷涓, orderNo={}, err={}", param.getOrderId(), e.getMessage());
+ break;
}
- taskList.add(hashMap);
}
- wcsApiService.pauseOutTasks(taskList);
return R.ok("鍙栨秷浠诲姟宸插彂閫佽嚦WCS").add(result);
}
throw new CoolException("reason浠呮敮鎸�1鎴�2");
}
+ /** WCS 杩斿洖闈炴垚鍔熺爜鏃舵姏閿� */
+ private void requireWcsPauseOk(R wcsR) {
+ if (wcsR == null) {
+ throw new CoolException("WCS鍙栨秷鍑哄簱浠诲姟鏃犺繑鍥�");
+ }
+ Object codeObj = wcsR.get("code");
+ int code = codeObj instanceof Number ? ((Number) codeObj).intValue() : -1;
+ if (code != 200) {
+ Object msgObj = wcsR.get("msg");
+ throw new CoolException(msgObj == null ? "WCS鍙栨秷鍑哄簱浠诲姟澶辫触" : String.valueOf(msgObj));
+ }
+ }
+
@Override
public R pakoutOrderExecute(OpenOrderPakoutExecuteParam param) {
return null;
--
Gitblit v1.9.1