From 1443d5a84a4df99d9a86ac04c904554e91ae8271 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期日, 12 四月 2026 15:35:06 +0800
Subject: [PATCH] 1.针对7.3接口文档,新增了几个字段需要加入到组托档中,不额外加字段 2.针对7.11接口文档,对outOrder方法进行重写,batchSeq在wrkMast表中新增一个字段放,entryWmsCode、outDoorNo这两个在wrkDetl中找两个字段存放 3.针对7.7接口文档,上报时加上orderId出库单号 4.针对7.9接口文档,wcs会先请求wms,只需要palletId托盘码,errorMsg错误信息;wms转发给加上orderId出库单号转发给ERP 5.针对7.10接口文档,ERP先按照这个文档发给wms,wms再发给wcs,发给wcs这块先不写
---
src/main/java/com/zy/iot/config/IotProperties.java | 61 +++++++++++++++++++++++++++---
1 files changed, 54 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/iot/config/IotProperties.java b/src/main/java/com/zy/iot/config/IotProperties.java
index 42585ce..24b0ac5 100644
--- a/src/main/java/com/zy/iot/config/IotProperties.java
+++ b/src/main/java/com/zy/iot/config/IotProperties.java
@@ -1,12 +1,16 @@
package com.zy.iot.config;
import com.zy.iot.entity.IotTopicConfig;
+import lombok.AccessLevel;
import lombok.Data;
+import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
+import java.util.Locale;
import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
@Data
@Component
@@ -43,27 +47,70 @@
private Map<String, Integer> pickStationMappings = new LinkedHashMap<>();
+ @Getter(AccessLevel.NONE)
+ private volatile String resolvedClientIdCache;
+
public String getResolvedClientId() {
- if (clientId != null && clientId.trim().length() > 0) {
- return clientId.trim();
+ if (resolvedClientIdCache != null) {
+ return resolvedClientIdCache;
}
- return thingName;
+ synchronized (this) {
+ if (resolvedClientIdCache != null) {
+ return resolvedClientIdCache;
+ }
+ String base = null;
+ if (clientId != null && clientId.trim().length() > 0) {
+ base = clientId.trim();
+ } else if (thingName != null && thingName.trim().length() > 0) {
+ base = thingName.trim();
+ }
+ if (base == null) {
+ return null;
+ }
+ resolvedClientIdCache = base + "-" + newClientIdSuffix();
+ return resolvedClientIdCache;
+ }
+ }
+
+ private static String newClientIdSuffix() {
+ long n = ThreadLocalRandom.current().nextLong() & 0xFFFFFFFFL;
+ return Long.toHexString(n);
}
public boolean isTlsEnabled() {
- String serverUri = getServerUri();
- return serverUri != null && serverUri.startsWith("ssl://");
+ return isTlsMqttScheme(getServerUri());
}
+ /** 涓� Paho 寤鸿繛 URI锛氬畬鏁村墠缂� mqtts/mqtt/wss/ws/ssl/tcp 鍘熸牱锛涗粎涓绘満鍚嶆椂榛樿 mqtts 鎴� mqtt銆� */
public String getServerUri() {
if (endpoint == null || endpoint.trim().length() == 0) {
return null;
}
String trimmed = endpoint.trim();
- if (trimmed.startsWith("ssl://") || trimmed.startsWith("tcp://")) {
+ if (hasExplicitBrokerScheme(trimmed)) {
return trimmed;
}
int resolvedPort = port == null ? 8883 : port;
- return "ssl://" + trimmed + ":" + resolvedPort;
+ String scheme = resolvedPort == 1883 ? "mqtt://" : "mqtts://";
+ return scheme + trimmed + ":" + resolvedPort;
+ }
+
+ private static boolean hasExplicitBrokerScheme(String s) {
+ String lower = s.toLowerCase(Locale.ROOT);
+ return lower.startsWith("mqtts://") || lower.startsWith("mqtt://")
+ || lower.startsWith("ssl://") || lower.startsWith("tcp://")
+ || lower.startsWith("wss://") || lower.startsWith("ws://");
+ }
+
+ private static boolean isTlsMqttScheme(String serverUri) {
+ if (serverUri == null || serverUri.isEmpty()) {
+ return false;
+ }
+ int p = serverUri.indexOf("://");
+ if (p <= 0) {
+ return false;
+ }
+ String scheme = serverUri.substring(0, p).toLowerCase(Locale.ROOT);
+ return "mqtts".equals(scheme) || "ssl".equals(scheme) || "wss".equals(scheme);
}
}
--
Gitblit v1.9.1