From 328ba0ab2e306f4c67baeee99715090024112cd5 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 13 九月 2026 12:20:26 +0800
Subject: [PATCH] feat: Excel导入实体接口

---
 src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index bb2ebb5..b650966 100644
--- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -476,6 +476,22 @@
                             val = DateUtil.getJavaDate((Double) val);
                         }
                     }
+                    else if (LocalDate.class == fieldType)
+                    {
+                        if (val instanceof String)
+                        {
+                            Date date = DateUtils.parseDate(val);
+                            val = StringUtils.isNull(date) ? null : DateUtils.toLocalDate(date);
+                        }
+                        else if (val instanceof Date)
+                        {
+                            val = DateUtils.toLocalDate((Date) val);
+                        }
+                        else if (val instanceof Double)
+                        {
+                            val = DateUtils.toLocalDate(DateUtil.getJavaDate((Double) val));
+                        }
+                    }
                     else if (Boolean.TYPE == fieldType || Boolean.class == fieldType)
                     {
                         val = Convert.toBool(val, false);
@@ -518,6 +534,9 @@
                         }
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
+                }
+                if (entity instanceof ExcelRowAware) {
+                    ((ExcelRowAware) entity).setExcelRowNum(i + 1);
                 }
                 list.add(entity);
             }
@@ -657,6 +676,15 @@
                         } else if (val instanceof Double) {
                             val = DateUtil.getJavaDate((Double) val);
                         }
+                    } else if (LocalDate.class == fieldType) {
+                        if (val instanceof String) {
+                            Date date = DateUtils.parseDate(val);
+                            val = StringUtils.isNull(date) ? null : DateUtils.toLocalDate(date);
+                        } else if (val instanceof Date) {
+                            val = DateUtils.toLocalDate((Date) val);
+                        } else if (val instanceof Double) {
+                            val = DateUtils.toLocalDate(DateUtil.getJavaDate((Double) val));
+                        }
                     } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) {
                         val = Convert.toBool(val, false);
                     }
@@ -689,6 +717,9 @@
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
                 }
+                if (entity instanceof ExcelRowAware) {
+                    ((ExcelRowAware) entity).setExcelRowNum(i + 1);
+                }
                 list.add(entity);
             }
         }

--
Gitblit v1.9.3