From aeb7d490c7fa55ae4861a43d256a5a9cf649d39c Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 27 五月 2026 14:15:35 +0800
Subject: [PATCH] feat(ProductionPrintOrder) 工序改为9位
---
src/main/java/com/ruoyi/common/utils/StringUtils.java | 81 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/utils/StringUtils.java b/src/main/java/com/ruoyi/common/utils/StringUtils.java
index 4e9b245..cdba7bb 100644
--- a/src/main/java/com/ruoyi/common/utils/StringUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/StringUtils.java
@@ -1,11 +1,15 @@
package com.ruoyi.common.utils;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.pinyin.PinyinUtil;
import org.springframework.util.AntPathMatcher;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.text.StrFormatter;
@@ -726,4 +730,81 @@
// 鐢ㄧ┖鏍艰ˉ榻�
return String.format("%-" + length + "s", str);
}
+
+
+ public static boolean containsChinese(String str) {
+ if (str == null) return false;
+ for (char c : str.toCharArray()) {
+ if (Character.UnicodeScript.of(c) == Character.UnicodeScript.HAN) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static String getProcessNo(String processName) {
+ if (StrUtil.isBlank(processName)) {
+ return "";
+ }
+
+ // 鍒ゆ柇鏄惁鍖呭惈涓枃
+ if (StringUtils.containsChinese(processName)) {
+ // 涓枃锛氭嫾闊抽瀛楁瘝
+ return StrUtil.toUpperCase(PinyinUtil.getFirstLetter(processName, ""));
+ } else {
+ // 鑻辨枃锛氬彇澶у啓瀛楁瘝 鐩墠宸ュ簭鍚嶇О娌℃湁鑻辨枃鐨勫舰寮� 鍙兘澶勭悊ExxxBxxx
+ StringBuilder sb = new StringBuilder();
+ for (char c : processName.toCharArray()) {
+ if (Character.isUpperCase(c)) {
+ sb.append(c);
+ }
+ }
+ return sb.toString();
+ }
+ }
+
+ public static void fillStringNull(Object obj) {
+ if (obj == null) return;
+
+ Class<?> clazz = obj.getClass();
+
+ // 鍩烘湰绫诲瀷 / 鍖呰绫� / String 涓嶅鐞�
+ if (clazz.isPrimitive() ||
+ clazz == String.class ||
+ Number.class.isAssignableFrom(clazz) ||
+ clazz == Boolean.class ||
+ clazz == Character.class) {
+ return;
+ }
+
+ for (Field field : clazz.getDeclaredFields()) {
+ field.setAccessible(true);
+ try {
+ Object value = field.get(obj);
+
+ // 1锔忊儯 String 绫诲瀷锛歯ull 鈫� ""
+ if (field.getType() == String.class) {
+ if (value == null) {
+ field.set(obj, "");
+ }
+ }
+ // 2锔忊儯 List 閫掑綊澶勭悊
+ else if (value instanceof List) {
+ for (Object item : (List<?>) value) {
+ fillStringNull(item);
+ }
+ }
+ // 3锔忊儯 鍏朵粬瀵硅薄閫掑綊
+ else if (value != null && !isJdkClass(value.getClass())) {
+ fillStringNull(value);
+ }
+
+ } catch (IllegalAccessException ignored) {}
+ }
+ }
+
+ private static boolean isJdkClass(Class<?> clazz) {
+ return clazz.getPackage() != null &&
+ clazz.getPackage().getName().startsWith("java.");
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3