From 2c3df98c784bd825b6c2faab508e20fe4f2c3966 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 16 十月 2026 19:32:34 +0800
Subject: [PATCH] feat(mes): 添加追溯定位页面URL配置功能
---
yudao-server/src/main/resources/static/trace.html | 20 ++++++++++++--------
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicConfigRespVO.java | 4 ++++
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/config/MesProperties.java | 3 +++
docs/trace-location-gate.md | 2 +-
yudao-server/src/main/resources/application-thzy.yaml | 2 ++
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java | 1 +
yudao-server/src/main/resources/application-local.yaml | 2 ++
7 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/docs/trace-location-gate.md b/docs/trace-location-gate.md
index 73ec467..e3b8842 100644
--- a/docs/trace-location-gate.md
+++ b/docs/trace-location-gate.md
@@ -1,6 +1,6 @@
# 杩芥函缃戝潃瀹氫綅鎺堟潈鍏ュ彛
-鏃ц拷婧〉鐨勨�滆拷婧綉鍧�鈥濇枃瀛椾粛鏄剧ず鏍囩鍗板埛鎵�鐢ㄧ殑 `mes.trace-base-url`锛岀偣鍑诲悗杩涘叆鍚岀洰褰曠殑 `trace-location.html?code=...`銆傛巿鏉冮〉浠ュ師杩芥函椤电殑鍝佺墝椤甸潰涓鸿儗鏅�傜敤鎴蜂富鍔ㄧ偣鍑烩�滃紑鍚畾浣嶅苟缁х画鈥濓紝鍙湁娴忚鍣ㄨ繑鍥炲綋鍓嶄綅缃�佷笖鏈嶅姟绔垚鍔熶繚瀛樿褰曞悗鎵嶅湪鏂扮綉鍧�涓樉绀轰骇鍝佽拷婧唴瀹广�傚畾浣嶈鍥炬部鐢ㄥ師鏈夎儗鏅拰鐗堝紡锛屾妸宸叉湁鐪熷疄鏁版嵁鎸夆�滅敓浜т俊鎭�佷粨鍌ㄤ俊鎭�佺墿娴佷俊鎭�濈粍缁囷紱娌℃湁鏉ユ簮鏁版嵁鐨勫瓧娈典笉鑷嗛�犮�傜洿鎺ユ墦寮�涓嶅甫杩芥函鐮佺殑鏂扮綉鍧�涔熷彲浠ユ巿鏉冨悗杩涘叆鎵嬪姩鏌ヨ銆傛嫆缁濇巿鏉冦�佸畾浣嶅け璐ユ垨淇濆瓨澶辫触浼氬仠鐣欏湪鎺堟潈椤靛苟缁欏嚭閲嶈瘯鎻愮ず銆傚埛鏂版柊缃戝潃闇�閲嶆柊鑾峰彇浣嶇疆銆�
+鏃ц拷婧〉鐨勨�滆拷婧綉鍧�鈥濇枃瀛椾粛鏄剧ず鏍囩鍗板埛鎵�鐢ㄧ殑 `mes.trace-base-url`锛岀偣鍑诲悗杩涘叆 `mes.trace-location-url` 閰嶇疆鐨勫畬鏁村叕缃戝湴鍧�锛屽苟闄勫甫 `code` 鍙傛暟锛涙湭閰嶇疆鏃朵粠褰撳墠椤电敓鎴愬悓鐩綍鐨勭粷瀵圭綉鍧�銆傛巿鏉冮〉浠ュ師杩芥函椤电殑鍝佺墝椤甸潰涓鸿儗鏅�傜敤鎴蜂富鍔ㄧ偣鍑烩�滃紑鍚畾浣嶅苟缁х画鈥濓紝鍙湁娴忚鍣ㄨ繑鍥炲綋鍓嶄綅缃�佷笖鏈嶅姟绔垚鍔熶繚瀛樿褰曞悗鎵嶅湪鏂扮綉鍧�涓樉绀轰骇鍝佽拷婧唴瀹广�傚畾浣嶈鍥炬部鐢ㄥ師鏈夎儗鏅拰鐗堝紡锛屾妸宸叉湁鐪熷疄鏁版嵁鎸夆�滅敓浜т俊鎭�佷粨鍌ㄤ俊鎭�佺墿娴佷俊鎭�濈粍缁囷紱娌℃湁鏉ユ簮鏁版嵁鐨勫瓧娈典笉鑷嗛�犮�傜洿鎺ユ墦寮�涓嶅甫杩芥函鐮佺殑鏂扮綉鍧�涔熷彲浠ユ巿鏉冨悗杩涘叆鎵嬪姩鏌ヨ銆傛嫆缁濇巿鏉冦�佸畾浣嶅け璐ユ垨淇濆瓨澶辫触浼氬仠鐣欏湪鎺堟潈椤靛苟缁欏嚭閲嶈瘯鎻愮ず銆傚埛鏂版柊缃戝潃闇�閲嶆柊鑾峰彇浣嶇疆銆�
鍚庡彴鈥滄秷璐硅�呮壂鐮佺粺璁♀�濇柊澧炩�滃畾浣嶆巿鏉冭闂�濆尯鍧楋紝娌跨敤 `mes:trace-consumer-scan:query` 鏉冮檺锛屽彲鎸夋椂闂村拰杩芥函鐮佹煡璇紝鏄剧ず璁块棶娆℃暟銆佸潗鏍囥�佺簿搴︺�佹椂闂达紝骞跺彲鎵撳紑鍦板浘锛涚儹闂ㄤ綅缃皢缁忕含搴﹀垎鍒繚鐣欎袱浣嶅皬鏁板悗鑱氬悎锛堟渶澶� 20 澶勶級銆傝褰曚笌鍘熸湁鎸� IP 鎺ㄦ柇鐪佸競鐨勬壂鐮佷簨浠跺垎寮�瀛樺偍锛岄伩鍏嶅奖鍝嶅師缁熻鍙e緞銆�
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicConfigRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicConfigRespVO.java
index ef2d35f..7a5ef3e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicConfigRespVO.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicConfigRespVO.java
@@ -21,6 +21,10 @@
example = "http://1.95.78.124:9008/prod/trace.html")
private String traceUrl;
+ @Schema(description = "瀹氫綅杩芥函椤靛畬鏁寸綉鍧�锛堜笉鍚� code 鍙傛暟锛�",
+ example = "http://1.95.78.124:9008/prod/trace-location.html")
+ private String traceLocationUrl;
+
@Schema(description = "鏄惁杩涘彛绉嶅瓙鍦烘櫙锛氫负 true 鏃堕〉闈㈡爣绛惧簲灞曠ず銆岃繘鍙e晢鍚嶇О銆�")
private Boolean imported;
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/config/MesProperties.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/config/MesProperties.java
index 0f10ded..ee199fb 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/config/MesProperties.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/config/MesProperties.java
@@ -24,6 +24,9 @@
*/
private String traceBaseUrl = "";
+ /** 瀹氫綅杩芥函椤电殑瀹屾暣鍏綉 URL锛堜笉鍚� code 鍙傛暟锛夛紝渚� H5 椤甸潰閾炬帴璺宠浆浣跨敤銆� */
+ private String traceLocationUrl = "";
+
/** 瀹氫綅鐗堣拷婧〉鏄惁蹇呴』鍏堝彇寰楃敤鎴峰畾浣嶏紱浠呮湰鍦拌皟璇曢厤缃负 false銆� */
private boolean traceLocationRequired = true;
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
index 7503251..b88d63c 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
@@ -135,6 +135,7 @@
MesProTracePublicConfigRespVO respVO = new MesProTracePublicConfigRespVO();
respVO.setOperatorName(MesProQrLabelBuilder.resolveOperatorName());
respVO.setTraceUrl(MesProQrLabelBuilder.resolveTraceUrl());
+ respVO.setTraceLocationUrl(mesProperties.getTraceLocationUrl());
respVO.setImported(MesProQrLabelBuilder.isImported());
respVO.setTraceLocationRequired(mesProperties.isTraceLocationRequired());
return respVO;
diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml
index 416fa7a..905acd9 100644
--- a/yudao-server/src/main/resources/application-local.yaml
+++ b/yudao-server/src/main/resources/application-local.yaml
@@ -5,6 +5,8 @@
mes:
# 杩芥函缃戝潃锛堜簩缁寸爜鍐呭鍓嶇紑锛夛紝闇�涓哄叕浼楁壂鐮佸彲璁块棶鐨勫湴鍧�
trace-base-url: http://192.168.0.10:48080/trace.html
+ # 鐐瑰嚮杩芥函缃戝潃鍚庤繘鍏ョ殑瀹氫綅杩芥函椤碉紙瀹屾暣鏈湴鍦板潃锛屼笉鍚� code 鍙傛暟锛�
+ trace-location-url: http://192.168.0.10:48080/trace-location.html
# 鏈湴 HTTP 璋冭瘯鏃惰烦杩囨祻瑙堝櫒瀹氫綅鎺堟潈锛涚敓浜х幆澧冧娇鐢ㄩ粯璁ゅ�� true
trace-location-required: false
# 鐢熶骇缁忚惀鑰呭悕绉帮紙绉嶅瓙鏍囩鍥涜绱犱箣涓�锛屾爣绛句笌婧簮椤电粺涓�鍙栨鍊硷紱鏈厤缃垯鏃犳硶瀵煎嚭鏍囩锛�
diff --git a/yudao-server/src/main/resources/application-thzy.yaml b/yudao-server/src/main/resources/application-thzy.yaml
index 9cb9079..7b5320e 100644
--- a/yudao-server/src/main/resources/application-thzy.yaml
+++ b/yudao-server/src/main/resources/application-thzy.yaml
@@ -5,6 +5,8 @@
mes:
# 杩芥函缃戝潃锛堜簩缁寸爜鍐呭鍓嶇紑锛夛紝闇�涓哄叕浼楁壂鐮佸彲璁块棶鐨勫湴鍧�
trace-base-url: http://1.95.78.124:9008/prod/trace.html
+ # 鐐瑰嚮杩芥函缃戝潃鍚庤繘鍏ョ殑瀹氫綅杩芥函椤碉紙瀹屾暣鍏綉鍦板潃锛屼笉鍚� code 鍙傛暟锛�
+ trace-location-url: http://1.95.78.124:9008/prod/trace-location.html
# 鐢熶骇缁忚惀鑰呭悕绉帮紙绉嶅瓙鏍囩鍥涜绱犱箣涓�锛屾爣绛句笌婧簮椤电粺涓�鍙栨鍊硷級
operator-name: 鏂扮枂濉旈噷鏈ㄦ渤绉嶄笟鑲′唤鏈夐檺鍏徃
diff --git a/yudao-server/src/main/resources/static/trace.html b/yudao-server/src/main/resources/static/trace.html
index 98a45ff..d89fb73 100644
--- a/yudao-server/src/main/resources/static/trace.html
+++ b/yudao-server/src/main/resources/static/trace.html
@@ -352,6 +352,7 @@
// 鍥犳缁熶竴鐢卞悗绔笅鍙戯紙/public/mes/trace/config锛夛紝绂佹鍦ㄦ纭紪鐮併��
var COMPANY_NAME = '';
var TRACE_URL = '';
+ var TRACE_LOCATION_URL = '';
var IS_IMPORTED = false;
// 鎷夊彇婧簮椤甸厤缃紱澶辫触鏃朵笉闃绘柇鏌ヨ锛堟煡璇㈢粨鏋滄湰韬篃甯︾敓浜х粡钀ヨ�呬笌杩芥函缃戝潃锛�
@@ -362,6 +363,7 @@
if (res && res.code === 0 && res.data) {
COMPANY_NAME = res.data.operatorName || '';
TRACE_URL = res.data.traceUrl || '';
+ TRACE_LOCATION_URL = res.data.traceLocationUrl || '';
IS_IMPORTED = !!res.data.imported;
}
})
@@ -628,6 +630,8 @@
// 鐢熶骇缁忚惀鑰呬笌杩芥函缃戝潃浼樺厛鍙栨煡璇㈢粨鏋滐紙涓庢爣绛惧嵃鍒峰唴瀹瑰悓婧愶級锛岄��鍥為〉闈㈤厤缃�
var operatorName = d.operatorName || COMPANY_NAME;
var traceUrl = d.traceUrl || TRACE_URL;
+ var locationUrl = new URL(TRACE_LOCATION_URL || location.pathname.replace(/trace\.html$/, 'trace-location.html'), location.href);
+ locationUrl.searchParams.set('code', code || '');
var operatorLabel = IS_IMPORTED ? '杩涘彛鍟嗗悕绉�' : '鐢熶骇缁忚惀鑰�';
// 鍙湁琚嬬爜鎵嶆槸銆屾渶灏忛攢鍞崟鍏冦�嶏紝鍏剁爜鍊兼墠绉般�屽崟鍏冭瘑鍒唬鐮併�嶏紱
// 鎵樼洏鐮�/鎵规鐮佷笉灞炰簬鏈�灏忛攢鍞崟鍏冩爣璇嗭紝鎸夊疄闄呯被鍨嬪睍绀猴紝閬垮厤璇娑堣垂鑰�
@@ -644,7 +648,7 @@
kv(operatorLabel, text(operatorName)) +
kv(codeLabel, text(code || '-')) +
kv('杩芥函缃戝潃', traceUrl
- ? '<a class="link" target="_top" href="' + esc(location.pathname.replace(/trace\.html$/, 'trace-location.html') + '?code=' + encodeURIComponent(code || '')) + '">' + esc(traceUrl) + '</a>'
+ ? '<a class="link" target="_top" href="' + esc(locationUrl.href) + '">' + esc(traceUrl) + '</a>'
: '-') +
kv('璁¢噺鍗曚綅', text(d.itemUnitMeasureName)) +
kv('杩芥函绫诲瀷', esc(SOURCE_TYPE[d.sourceType] || '杩芥函鐮�')) +
@@ -764,15 +768,15 @@
})();
// 鍏堟媺鍙栭〉闈㈤厤缃紙鐢熶骇缁忚惀鑰呭悕绉般�佽拷婧綉鍧�锛夛紝鍐嶆墽琛屾煡璇紱鏌ヨ缁撴灉涓悓鏍峰甫鏈夎繖涓ら」锛屼簰涓哄厹搴�
- loadTraceConfig();
-
var initialCode = new URLSearchParams(location.search).get('code') || '';
CODE_INPUT.value = initialCode;
- if (initialCode) {
- query(initialCode);
- } else {
- renderState('<div class="empty-tip">鎵爜鎴栬緭鍏ヨ拷婧爜锛屽嵆鍙煡璇骇鍝佸叏绋嬫函婧愪俊鎭�</div>');
- }
+ loadTraceConfig().then(function () {
+ if (initialCode) {
+ query(initialCode);
+ } else {
+ renderState('<div class="empty-tip">鎵爜鎴栬緭鍏ヨ拷婧爜锛屽嵆鍙煡璇骇鍝佸叏绋嬫函婧愪俊鎭�</div>');
+ }
+ });
})();
</script>
</body>
--
Gitblit v1.9.3