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-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/support/LimsSxtQushiTrendSupport.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/support/LimsSxtQushiTrendSupport.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/support/LimsSxtQushiTrendSupport.java
new file mode 100644
index 0000000..83dff21
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/support/LimsSxtQushiTrendSupport.java
@@ -0,0 +1,73 @@
+package jnpf.limsService.support;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * 姘寸郴缁熻秼鍔胯妯″瀷鐨勬棤鐘舵�佽浆鎹㈣鍒欍��
+ */
+public final class LimsSxtQushiTrendSupport {
+
+    private static final Set<String> NON_TREND_ITEM_NAMES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
+            "鎬х姸", "姘�", "纭濋吀鐩�", "浜氱閰哥洂", "鍐呮瘨绱犳鏌�", "閲嶉噾灞�"
+    )));
+
+    private LimsSxtQushiTrendSupport() {
+    }
+
+    public static boolean isTrendEnabled(String itemName) {
+        return isTrendEnabled(itemName, null);
+    }
+
+    public static boolean isTrendEnabled(String itemName, String shujuLeixing) {
+        if (itemName == null || NON_TREND_ITEM_NAMES.contains(itemName.trim())) {
+            return false;
+        }
+        if (shujuLeixing == null || shujuLeixing.trim().isEmpty()) {
+            return true;
+        }
+        String normalized = shujuLeixing.trim().toLowerCase(Locale.ROOT);
+        return !(normalized.contains("鏂囨湰")
+                || normalized.contains("瀛楃")
+                || normalized.contains("瀹氭��")
+                || normalized.contains("鏋氫妇")
+                || normalized.contains("甯冨皵")
+                || normalized.contains("閫夐」")
+                || normalized.contains("鏃ユ湡")
+                || normalized.contains("鏃堕棿")
+                || normalized.contains("鏂囦欢")
+                || normalized.contains("string")
+                || normalized.contains("text")
+                || normalized.contains("textarea")
+                || normalized.contains("select")
+                || normalized.contains("radio")
+                || normalized.contains("checkbox")
+                || normalized.contains("boolean")
+                || normalized.contains("date")
+                || normalized.contains("time")
+                || normalized.contains("file"));
+    }
+
+    public static BigDecimal toNumericOrNull(String value) {
+        if (value == null) {
+            return null;
+        }
+        String normalized = value.trim();
+        if (normalized.isEmpty()
+                || "N/A".equalsIgnoreCase(normalized)
+                || "NA".equalsIgnoreCase(normalized)
+                || "-".equals(normalized)
+                || "--".equals(normalized)) {
+            return null;
+        }
+        try {
+            return new BigDecimal(normalized);
+        } catch (NumberFormatException e) {
+            return null;
+        }
+    }
+}

--
Gitblit v1.8.0