From ddc95002ef4c7593a006443690d5ae6bba693227 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 13 九月 2026 11:09:56 +0800
Subject: [PATCH] fix: 产品导入限制

---
 src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java |  100 ++++++++++++++++++++++++++-----------------------
 1 files changed, 53 insertions(+), 47 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 d103265..b650966 100644
--- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -465,37 +465,37 @@
                     {
                         val = Convert.toBigDecimal(val);
                     }
-                    else if (Date.class == fieldType)
-                    {
-                        if (val instanceof String)
-                        {
-                            val = DateUtils.parseDate(val);
+                    else if (Date.class == fieldType)
+                    {
+                        if (val instanceof String)
+                        {
+                            val = DateUtils.parseDate(val);
                         }
                         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);
-                    }
+                        {
+                            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);
+                    }
                     if (StringUtils.isNotNull(fieldType))
                     {
                         String propertyName = field.getName();
@@ -534,6 +534,9 @@
                         }
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
+                }
+                if (entity instanceof ExcelRowAware) {
+                    ((ExcelRowAware) entity).setExcelRowNum(i + 1);
                 }
                 list.add(entity);
             }
@@ -667,24 +670,24 @@
                         val = Convert.toFloat(val);
                     } else if (BigDecimal.class == fieldType) {
                         val = Convert.toBigDecimal(val);
-                    } else if (Date.class == fieldType) {
-                        if (val instanceof String) {
-                            val = DateUtils.parseDate(val);
-                        } 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);
-                    }
+                    } else if (Date.class == fieldType) {
+                        if (val instanceof String) {
+                            val = DateUtils.parseDate(val);
+                        } 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);
+                    }
 
                     if (StringUtils.isNotNull(fieldType)) {
                         String propertyName = field.getName();
@@ -714,6 +717,9 @@
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
                 }
+                if (entity instanceof ExcelRowAware) {
+                    ((ExcelRowAware) entity).setExcelRowNum(i + 1);
+                }
                 list.add(entity);
             }
         }

--
Gitblit v1.9.3