liyong
7 天以前 225af805387e665f6bf38692e83fb52ac4416ba2
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);
        }