From da5d4106e294a229e3bf72939c6b7630e6345d76 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 10 三月 2026 10:30:38 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java | 86 +++++++++++++++++++++++++++++--------------
1 files changed, 58 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
index 76018f9..c642e7f 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
@@ -48,6 +48,9 @@
for (WrkMast m : wrkMast) {
if (m == null) { continue; }
if (Objects.equals(m.getWrkSts(), 11L)) {
+ if ("Y".equalsIgnoreCase(m.getPauseMk())) {
+ continue;
+ }
if (m.getUpdMk() != null && "WCS_SENT".equalsIgnoreCase(m.getUpdMk())) {
continue;
}
@@ -57,48 +60,75 @@
if (toSend.isEmpty()) {
return SUCCESS;
}
- List<Map<String, Object>> tasks = new ArrayList<>();
+
+ Map<String, List<WrkMast>> groupByUserNo = new HashMap<>();
for (WrkMast m : toSend) {
- Map<String, Object> t = new HashMap<>();
- t.put("taskNo", String.valueOf(m.getWrkNo()));
- t.put("staNo", String.valueOf(m.getStaNo()));
- t.put("locNo", m.getSourceLocNo());
- if (m.getIoPri() != null) {
- t.put("taskPri", m.getIoPri().intValue());
+ String key = m.getUserNo();
+ if (key == null || key.trim().isEmpty()) {
+ key = "_NO_USER_";
}
- t.put("seq",m.getPltType());
- t.put("orderId",m.getUserNo());
- tasks.add(t);
+ List<WrkMast> list = groupByUserNo.get(key);
+ if (list == null) {
+ list = new ArrayList<>();
+ groupByUserNo.put(key, list);
+ }
+ list.add(m);
}
- Map<String, Object> payload = new HashMap<>();
- payload.put("tasks", tasks);
- String response = new HttpHandler.Builder()
- .setUri(urlValue)
- .setPath(createOutTaskValue)
- .setHttps(urlValue != null && urlValue.startsWith("https://"))
- .setTimeout(10, TimeUnit.SECONDS)
- .setJson(JSON.toJSONString(payload))
- .build()
- .doPost();
+ List<WrkMast> successList = new ArrayList<>();
+ boolean hasError = false;
- JSONObject jsonObject = JSON.parseObject(response == null ? "{}" : response);
- Integer code = jsonObject.getInteger("code");
- if (code == null || !Objects.equals(code, 200)) {
- log.error("WCS涓嬪彂鍑哄簱浠诲姟澶辫触, url:{}, path:{}, request:{}, response:{}",
- urlValue, createOutTaskValue, JSON.toJSONString(payload), response);
+ for (Map.Entry<String, List<WrkMast>> entry : groupByUserNo.entrySet()) {
+ List<Map<String, Object>> tasks = new ArrayList<>();
+ for (WrkMast m : entry.getValue()) {
+ Map<String, Object> t = new HashMap<>();
+ t.put("taskNo", String.valueOf(m.getWrkNo()));
+ t.put("staNo", String.valueOf(m.getStaNo()));
+ t.put("locNo", m.getSourceLocNo());
+ if (m.getIoPri() != null) {
+ t.put("taskPri", m.getIoPri().intValue());
+ }
+ t.put("batchSeq", m.getPltType());
+ if (m.getUserNo() != null) {
+ t.put("batch", m.getUserNo());
+ }
+ tasks.add(t);
+ }
+ Map<String, Object> payload = new HashMap<>();
+ payload.put("tasks", tasks);
+
+ String response = new HttpHandler.Builder()
+ .setUri(urlValue)
+ .setPath(createOutTaskValue)
+ .setHttps(urlValue != null && urlValue.startsWith("https://"))
+ .setTimeout(10, TimeUnit.SECONDS)
+ .setJson(JSON.toJSONString(payload))
+ .build()
+ .doPost();
+
+ JSONObject jsonObject = JSON.parseObject(response == null ? "{}" : response);
+ Integer code = jsonObject.getInteger("code");
+ if (code == null || !Objects.equals(code, 200)) {
+ hasError = true;
+ log.error("WCS涓嬪彂鍑哄簱浠诲姟澶辫触, url:{}, path:{}, userNo:{}, request:{}, response:{}",
+ urlValue, createOutTaskValue, entry.getKey(), JSON.toJSONString(payload), response);
+ continue;
+ }
+ successList.addAll(entry.getValue());
+ }
+
+ if (successList.isEmpty()) {
return FAIL.setMsg("WCS涓嬪彂鍑哄簱浠诲姟澶辫触");
}
Date now = new Date();
- for (WrkMast m : toSend) {
+ for (WrkMast m : successList) {
m.setUpdMk("WCS_SENT");
m.setModiTime(now);
m.setWrkSts(12L);
}
- // 寤惰繜娉ㄥ叆锛岄伩鍏嶅惊鐜緷璧�
WrkMastService wrkMastService = com.core.common.SpringUtils.getBean(WrkMastService.class);
- for (WrkMast m : toSend) {
+ for (WrkMast m : successList) {
try {
wrkMastService.updateById(m);
} catch (Exception ignore) {}
--
Gitblit v1.9.1