From 7aef672d9920e76f2a22bb03d08eafc64e075536 Mon Sep 17 00:00:00 2001
From: Administrator <pjb>
Date: 星期三, 22 十月 2025 20:45:55 +0800
Subject: [PATCH] 码盘完成+需要码盘才上报wms

---
 src/main/java/com/zy/asrs/task/TaskReportScheduler.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
index 7cffabb..d4e7297 100644
--- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -31,12 +31,14 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織
@@ -64,6 +66,9 @@
     @Value("${wms.completeDevpTask}")
     private String completeDevpTask;
 
+    @Value("${wms.reportPalletizingCompleted}")
+    private String reportPalletizingCompleted;
+
     @Resource
     private TaskWrkMapper taskWrkMapper;
 
@@ -81,8 +86,72 @@
         add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308);
     }};
 
+    // 渚ч潰鐮佺洏瀹屾垚涓婃姤wms
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public synchronized void reportPalletizingCompleted() {
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+        if (devpThread != null) {
+            Map<Integer, StaProtocol> staProtocolMap = devpThread.getStation();
+            int[] siteArray = new int[]{203, 207, 212};
+            for (int site : siteArray) {
+                StaProtocol staProtocol = staProtocolMap.get(site);
+                if (staProtocol != null) {
+                    short mpCompletedFlag = staProtocol.getMpCompletedFlag();
+                    if (mpCompletedFlag == 1) {
+                        TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(staProtocol.getWorkNo()));
+                        if (taskWrk != null && taskWrk.getMp() == 1) {
+
+                            // 璇锋眰浣�
+                            JSONObject request = new JSONObject();
+                            request.put("site", site);
+
+                            String response = "";
+                            boolean bool = false;
+                            try {
+                                response = new HttpHandler.Builder()
+                                        // .setHeaders(headParam)
+                                        .setUri(wmsUrl)
+                                        .setPath(reportPalletizingCompleted)
+                                        .setJson(JSON.toJSONString(request))
+                                        .build()
+                                        .doPost();
+                                if (!Cools.isEmpty(response)) {
+                                    JSONObject jsonObject = JSON.parseObject(response);
+                                    if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) {
+                                        bool = true;
+                                        // 鎺ㄩ�侀槦鍒�
+                                        boolean offer = MessageQueue.offer(SlaveType.Devp, 4, new Task(1, staProtocol));
+                                        if (offer) {
+                                            // 鏇存柊鏁版嵁搴�
+                                            taskWrk.setMpCompletedReport(1);
+                                            taskWrkMapper.updateById(taskWrk);
+                                        } else {
+                                            log.error("渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎺ㄩ�侀槦鍒楀け璐ワ紝绔欑偣锛歿}锛屼换鍔″彿锛歿}", site, staProtocol.getWorkNo());
+                                        }
+                                    }
+                                }
+                            } catch (Exception e) {
+                                log.error("渚ч潰鐮佺洏瀹屾垚涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response);
+                            } finally {
+                                apiLogService.save("渚ч潰鐮佺洏瀹屾垚涓婃姤wms"
+                                        , wmsUrl + reportPalletizingCompleted
+                                        , null
+                                        , "127.0.0.1"
+                                        , JSON.toJSONString(request)
+                                        , response
+                                        , bool
+                                );
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     // WMS鍒嗛厤鍏ュ簱搴撲綅寮傚父涓婃姤
     @Scheduled(cron = "0/5 * * * * ? ")
+    @Transactional
     public synchronized void locationAssignmentExceptionEscalation() {
         List<TaskWrk> taskWrkList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("wrk_sts", 5));
 

--
Gitblit v1.9.1