From 8d15a90edbf860de951c7981ef8a5b22e4f95151 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 14 一月 2026 12:44:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java | 94 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 1 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 cf507db..76018f9 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
@@ -1,20 +1,112 @@
package com.zy.asrs.task.handler;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@Transactional
public class AutomaticallyIssueWCSTasksHandler extends AbstractHandler<String> {
+ @Value("${wcs.switch}")
+ private String switchValue;
+ @Value("${wcs.address.URL}")
+ private String urlValue;
+ @Value("${wcs.address.createInTask}")
+ private String createInTaskValue;
+ @Value("${wcs.address.createOutTask}")
+ private String createOutTaskValue;
+ @Value("${wcs.address.createLocMoveTask}")
+ private String createLocMoveTaskValue;
+ public ReturnT<String> start(List<WrkMast> wrkMast) {
+ try {
+ if (!Boolean.parseBoolean(String.valueOf(switchValue))) {
+ return SUCCESS;
+ }
+ if (wrkMast == null || wrkMast.isEmpty()) {
+ return SUCCESS;
+ }
+ List<WrkMast> toSend = new ArrayList<>();
+ for (WrkMast m : wrkMast) {
+ if (m == null) { continue; }
+ if (Objects.equals(m.getWrkSts(), 11L)) {
+ if (m.getUpdMk() != null && "WCS_SENT".equalsIgnoreCase(m.getUpdMk())) {
+ continue;
+ }
+ toSend.add(m);
+ }
+ }
+ if (toSend.isEmpty()) {
+ return SUCCESS;
+ }
+ List<Map<String, Object>> tasks = new ArrayList<>();
+ 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());
+ }
+ t.put("seq",m.getPltType());
+ t.put("orderId",m.getUserNo());
+ tasks.add(t);
+ }
+ Map<String, Object> payload = new HashMap<>();
+ payload.put("tasks", tasks);
- public ReturnT<String> start(WrkMast wrkMast) {
+ 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)) {
+ log.error("WCS涓嬪彂鍑哄簱浠诲姟澶辫触, url:{}, path:{}, request:{}, response:{}",
+ urlValue, createOutTaskValue, JSON.toJSONString(payload), response);
+ return FAIL.setMsg("WCS涓嬪彂鍑哄簱浠诲姟澶辫触");
+ }
+
+ Date now = new Date();
+ for (WrkMast m : toSend) {
+ m.setUpdMk("WCS_SENT");
+ m.setModiTime(now);
+ m.setWrkSts(12L);
+ }
+ // 寤惰繜娉ㄥ叆锛岄伩鍏嶅惊鐜緷璧�
+ WrkMastService wrkMastService = com.core.common.SpringUtils.getBean(WrkMastService.class);
+ for (WrkMast m : toSend) {
+ try {
+ wrkMastService.updateById(m);
+ } catch (Exception ignore) {}
+ }
+ } catch (Exception e) {
+ log.error("WCS鍑哄簱浠诲姟涓嬪彂寮傚父", e);
+ return FAIL.setMsg(e.getMessage());
+ }
return SUCCESS;
}
}
--
Gitblit v1.9.1