From 5035c404359e536bcdaa2668318ecd3b38c72584 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期六, 25 四月 2026 14:24:08 +0800
Subject: [PATCH] feat(productionPrintOrderExcel):  excel编写

---
 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