From f2c7c2aca847fda1b96387938a9dcd511daf1461 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 28 四月 2026 14:18:27 +0800
Subject: [PATCH] feat(production): 新增生产上机记录功能并优化报工流程
---
src/main/java/com/ruoyi/common/utils/StringUtils.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 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 5e13807..cdba7bb 100644
--- a/src/main/java/com/ruoyi/common/utils/StringUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/StringUtils.java
@@ -1,5 +1,6 @@
package com.ruoyi.common.utils;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
@@ -761,4 +762,49 @@
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