diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java index fe52d46..62baec6 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java @@ -186,7 +186,7 @@ public class ImportBaseService { if (PoiPublicUtil.isNotUserExcelUserThis(null, field, targetId)) { continue; } - if (PoiPublicUtil.isJavaClass(field)) { + if (PoiPublicUtil.isJavaClass(field) || field.getType().isEnum()) { addEntityToMap(targetId, field, excelEntity, pojoClass, getMethods, temp, null); } else { List newMethods = new ArrayList(); diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiValidationUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiValidationUtil.java index d48a763..7ac1ecf 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiValidationUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiValidationUtil.java @@ -15,6 +15,12 @@ */ package cn.afterturn.easypoi.util; +import cn.afterturn.easypoi.excel.annotation.Excel; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Set; import javax.validation.ConstraintViolation; @@ -52,9 +58,22 @@ public class PoiValidationUtil { private static String getValidateErrMsg(Set> set) { StringBuilder builder = new StringBuilder(); for (ConstraintViolation constraintViolation : set) { + Class cls = constraintViolation.getRootBean().getClass(); + String fieldName = constraintViolation.getPropertyPath().toString(); + List fields = new ArrayList<>(Arrays.asList(cls.getDeclaredFields())); + Class superClass = cls.getSuperclass(); + if (superClass != null) { + fields.addAll(Arrays.asList(superClass.getDeclaredFields())); + } + for (Field field: fields) { + if (field.getName().equals(fieldName) && field.isAnnotationPresent(Excel.class)) { + builder.append(field.getAnnotation(Excel.class).name()); + break; + } + } builder.append(constraintViolation.getMessage()).append(","); } - return builder.substring(0, builder.length() - 1).toString(); + return builder.substring(0, builder.length() - 1); } }