From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/service/title/AuditListTitleSpecParser.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/service/title/AuditListTitleSpecParser.java b/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/service/title/AuditListTitleSpecParser.java
new file mode 100644
index 0000000..95616ef
--- /dev/null
+++ b/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/service/title/AuditListTitleSpecParser.java
@@ -0,0 +1,74 @@
+package jnpf.bizcommon.audit.service.title;
+
+import jnpf.util.JsonUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * 浠庡凡鍙戝竷鍒楄〃 JSON锛坽@code base_visual_release.F_COLUMN_DATA}锛夎В鏋�
+ * {@code columnList[].biz_log_enabled} 鍕鹃�夈��
+ *
+ * <p>涓� {@link AuditTitleSpecParser} 鐨勪笁澶勫樊寮傦紝鍒贩锛�
+ * <ul>
+ *   <li>寮�鍏冲湪**鍒楅」椤跺眰**锛屼笉鍦� {@code __config__} 閲岋紱</li>
+ *   <li>瀛楁缂栫爜鍙� {@code prop}锛堣〃鍗曚晶鍙� {@code __vModel__}锛夆�斺�斿墠绔璁℃枃妗�
+ *       銆屾湇鍔$鎺ュ叆寤鸿銆嶇 3 鏉℃槑纭簡杩欎袱濂楀彛寰勶紱</li>
+ *   <li>{@code columnList} 鏄钩閾烘暟缁勶紝娌℃湁甯冨眬瀹瑰櫒宓屽锛�**涓嶉�掑綊**銆�</li>
+ * </ul>
+ *
+ * <p><b>绾潤鎬併�佹棤渚濊禆銆佹案涓嶆姏寮傚父</b>锛氳В鏋愬け璐ヤ竴寰嬭繑鍥� {@link AuditTitleSpec#EMPTY}鈥斺��
+ * 鏍囬缂哄腑鍙互锛屻�岃繖娆″垹杩囥�嶄笉鑳界己銆�
+ *
+ * <p>鍒楄〃渚ф病鏈夊瓙琛ㄦ蹇碉紝鏁� {@link AuditTitleSpec#subTables()} 鎭掍负绌恒��
+ */
+public final class AuditListTitleSpecParser {
+
+    private AuditListTitleSpecParser() {
+    }
+
+    @SuppressWarnings("rawtypes")
+    public static AuditTitleSpec parse(String columnDataJson) {
+        if (columnDataJson == null || columnDataJson.trim().isEmpty()) {
+            return AuditTitleSpec.EMPTY;
+        }
+        try {
+            Map<String, Object> root = JsonUtil.stringToMap(columnDataJson);
+            if (root == null) {
+                return AuditTitleSpec.EMPTY;
+            }
+            Object raw = root.get("columnList");
+            if (!(raw instanceof List)) {
+                return AuditTitleSpec.EMPTY;
+            }
+            List<String> main = new ArrayList<String>();
+            for (Object item : (List) raw) {
+                if (!(item instanceof Map)) {
+                    continue;
+                }
+                Map col = (Map) item;
+                if (!Boolean.TRUE.equals(col.get("biz_log_enabled"))) {
+                    continue;
+                }
+                Object prop = col.get("prop");
+                if (prop == null) {
+                    continue;
+                }
+                String field = String.valueOf(prop).trim();
+                // 涓昏〃瀛楁鍙e緞涓� AuditTitleSpec.mainFields() 涓�鑷达細灏忓啓
+                if (!field.isEmpty() && !main.contains(field.toLowerCase(Locale.ROOT))) {
+                    main.add(field.toLowerCase(Locale.ROOT));
+                }
+            }
+            if (main.isEmpty()) {
+                return AuditTitleSpec.EMPTY;
+            }
+            return new AuditTitleSpec(main, new ArrayList<AuditTitleSpec.SubTableSpec>());
+        } catch (Throwable t) {
+            // 鍚� AuditTitleSpecParser锛氫笉璁版棩蹇楋紝姣忔鎿嶄綔閮戒細璧板埌杩欓噷锛屾姤閿欎細鍒风垎鏃ュ織
+            return AuditTitleSpec.EMPTY;
+        }
+    }
+}

--
Gitblit v1.8.0