From 225af805387e665f6bf38692e83fb52ac4416ba2 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 15 五月 2026 14:00:31 +0800
Subject: [PATCH] feat(stock): 添加批号字段并优化出入库记录导出功能

---
 src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java |   74 ++++++++++++++++++++++++++++--------
 1 files changed, 57 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java b/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java
index 5241101..5c6149c 100644
--- a/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java
@@ -1,12 +1,15 @@
 package com.ruoyi.common.utils.reflect;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Date;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
 import org.apache.poi.ss.usermodel.DateUtil;
@@ -193,18 +196,55 @@
                     {
                         args[i] = Convert.toFloat(args[i]);
                     }
-                    else if (cs[i] == Date.class)
-                    {
-                        if (args[i] instanceof String)
-                        {
-                            args[i] = DateUtils.parseDate(args[i]);
+                    else if (cs[i] == Date.class)
+                    {
+                        if (args[i] instanceof String)
+                        {
+                            args[i] = DateUtils.parseDate(args[i]);
                         }
                         else
-                        {
-                            args[i] = DateUtil.getJavaDate((Double) args[i]);
-                        }
-                    }
-                }
+                        {
+                            args[i] = DateUtil.getJavaDate((Double) args[i]);
+                        }
+                    }
+                    else if (cs[i] == LocalDate.class)
+                    {
+                        if (args[i] instanceof String)
+                        {
+                            Date date = DateUtils.parseDate(args[i]);
+                            args[i] = date == null ? null : DateUtils.toLocalDate(date);
+                        }
+                        else if (args[i] instanceof Date)
+                        {
+                            args[i] = DateUtils.toLocalDate((Date) args[i]);
+                        }
+                        else if (args[i] instanceof Double)
+                        {
+                            args[i] = DateUtils.toLocalDate(DateUtil.getJavaDate((Double) args[i]));
+                        }
+                    }
+                    else if (cs[i] == LocalDateTime.class)
+                    {
+                        if (args[i] instanceof String)
+                        {
+                            Date date = DateUtils.parseDate(args[i]);
+                            args[i] = date == null ? null : LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+                        }
+                        else if (args[i] instanceof Date)
+                        {
+                            args[i] = LocalDateTime.ofInstant(((Date) args[i]).toInstant(), ZoneId.systemDefault());
+                        }
+                        else if (args[i] instanceof Double)
+                        {
+                            Date date = DateUtil.getJavaDate((Double) args[i]);
+                            args[i] = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+                        }
+                    }
+                    else if (cs[i] == boolean.class || cs[i] == Boolean.class)
+                    {
+                        args[i] = Convert.toBool(args[i]);
+                    }
+                }
             }
             return (E) method.invoke(obj, args);
         }

--
Gitblit v1.9.3