From b7380ff70bcc962494cd6640fcc3eac21aaab0a1 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 15 一月 2026 08:09:29 +0800
Subject: [PATCH] 1.自动下发出库任务给wcs 2.wcs申请入库
---
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java | 83 +++++++++++++++++++++++++++--------------
1 files changed, 55 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..b47a30e 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
@@ -57,48 +57,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