From 0125becfef917675ad9572dd3f9a802c1578dfa0 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 20:04:52 +0800
Subject: [PATCH] MQTT上报和erp上报进行区分,现在是MQTT上报后还会上报一次ERP
---
src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
index 7963832..ec7b3bf 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
@@ -13,6 +13,7 @@
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.entity.Parameter;
import com.zy.common.utils.HttpHandler;
+import com.zy.integration.iot.biz.IotInstructionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -33,6 +34,7 @@
public static final String ERP_REPORT_PENDING_FLAG = "P";
public static final String ERP_REPORT_SUCCESS_FLAG = "Y";
public static final String ERP_REPORT_FAIL_FLAG = "F";
+ public static final String ERP_REPORT_SKIPPED_FLAG = "S";
private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
@@ -42,6 +44,8 @@
private WrkDetlService wrkDetlService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private IotInstructionService iotInstructionService;
@Value("${erp.switch.ErpReportOld}")
private boolean erpReportOld;
@@ -60,6 +64,13 @@
public ReturnT<String> start(WrkMast source) {
WrkMast wrkMast = wrkMastService.selectById(source.getWrkNo());
if (wrkMast == null || !Long.valueOf(ERP_REPORT_PENDING_WRK_STS).equals(wrkMast.getWrkSts())) {
+ return SUCCESS;
+ }
+
+ // MQTT pick 鎸囦护鐨勫畬鎴愬洖鎶ヨ蛋 MQTT 鍑虹珯娑堟伅銆�
+ // 杩欓噷鍏滃簳澶勭悊宸茬粡琚疆涓� ERP 寰呬笂鎶ョ殑鏃ф暟鎹紝闃叉璋冨害鍣ㄥ啀琛ュ彂涓�娆� ERP銆�
+ if (iotInstructionService.isMqttOriginWork(wrkMast)) {
+ skipReport(wrkMast);
return SUCCESS;
}
@@ -264,6 +275,21 @@
}
}
+ private void skipReport(WrkMast wrkMast) {
+ Date now = new Date();
+ wrkMast.setWrkSts(ERP_REPORT_FINISHED_WRK_STS);
+ wrkMast.setLogMk(ERP_REPORT_SKIPPED_FLAG);
+ wrkMast.setExpTime(0D);
+ wrkMast.setLogErrMemo(null);
+ wrkMast.setLogErrTime(null);
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new IllegalStateException("skip outbound erp report failed, workNo=" + wrkMast.getWrkNo());
+ }
+ // 鍏煎宸茶繘鍏� ERP 寰呬笂鎶ョ殑鏃т换鍔★細璺宠繃 ERP 鍚庤ˉ涓�娆� MQTT 瀹屽伐鍏ラ槦锛屽凡鏈夎褰曟椂 queueWorkCompletion 浼氱洿鎺ヨ繑鍥炪��
+ iotInstructionService.queueWorkCompletion(wrkMast);
+ }
+
private String truncate(String message, int maxLength) {
if (message == null || message.length() <= maxLength) {
return message;
--
Gitblit v1.9.1