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 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 120 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 e6f44f2..d4e7297 100644
--- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -31,11 +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;
/**
* 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織
@@ -63,6 +66,9 @@
@Value("${wms.completeDevpTask}")
private String completeDevpTask;
+ @Value("${wms.reportPalletizingCompleted}")
+ private String reportPalletizingCompleted;
+
@Resource
private TaskWrkMapper taskWrkMapper;
@@ -80,6 +86,120 @@
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));
+
+ for(TaskWrk taskWrk : taskWrkList) {
+ Date now = new Date();
+ WmsFeedback wmsFeedback = new WmsFeedback();
+ wmsFeedback.setTaskNo(taskWrk.getTaskNo());
+ wmsFeedback.setIoType(taskWrk.getIoType());
+ wmsFeedback.setBarcode(taskWrk.getBarcode());
+ wmsFeedback.setStatus(-1); // 鍏ュ簱搴撲綅鍒嗛厤寮傚父
+ wmsFeedback.setReportTime(DateUtils.convert(now));
+
+ String response = "";
+ boolean bool = false;
+ try {
+ log.info("鍏ュ簱wms鍒嗛厤搴撲綅鏈夎涓婃姤wms={}", taskWrk);
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(wmsUrl)
+ .setPath(TaskExecCallback)
+ .setJson(JSON.toJSONString(wmsFeedback))
+ .build()
+ .doPost();
+ if (!Cools.isEmpty(response)) {
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) {
+ bool = true;
+ taskWrk.setWrkSts(6);
+ taskWrk.setModiTime(now);
+ taskWrkMapper.updateById(taskWrk);
+ }
+ }
+
+ } catch (Exception e) {
+ log.error("鍏ュ簱wms鍒嗛厤搴撲綅鏈夎涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response);
+ } finally {
+ apiLogService.save("wms鍒嗛厤搴撲綅鏈夎涓婃姤"
+ , wmsUrl + TaskExecCallback
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(wmsFeedback)
+ , response
+ , bool
+ );
+ }
+ }
+ }
+
@Scheduled(cron = "0/5 * * * * ? ")
public synchronized void execute() throws IOException {
Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("create_time", true));
--
Gitblit v1.9.1