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