excel 对象数据校验 @param excelList @param clazz @return
(List<?> excelList, Class<?> clazz)
| 71 | * @return |
| 72 | */ |
| 73 | public static List<String> excelCheckObj(List<?> excelList, Class<?> clazz) { |
| 74 | List<String> errList = new ArrayList<>(); |
| 75 | Map<String, ExcelCheck> excelCheckMap = new HashMap<String, ExcelCheck>(); |
| 76 | Map<String, ExcelProperty> excelPropertyMap = new HashMap<String, ExcelProperty>(); |
| 77 | for (Field field : TableInfoHelper.getAllFields(clazz)) { |
| 78 | ExcelCheck excelCheck = field.getAnnotation(ExcelCheck.class); |
| 79 | ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class); |
| 80 | if (excelCheck != null) { |
| 81 | excelCheckMap.put(field.getName(), excelCheck); |
| 82 | excelPropertyMap.put(field.getName(), excelProperty); |
| 83 | } |
| 84 | } |
| 85 | for (int i = 0; i < excelList.size(); i++) { |
| 86 | Object obj = excelList.get(i); |
| 87 | PropertyDescriptor origDescriptors[] = PropertyUtils.getPropertyDescriptors(obj); |
| 88 | for (int j = 0; j < origDescriptors.length; j++) { |
| 89 | String k = origDescriptors[j].getName(); |
| 90 | Object v = null; |
| 91 | try { |
| 92 | v = PropertyUtils.getSimpleProperty(obj, k); |
| 93 | } catch (Exception e) { |
| 94 | log.error(e.getMessage(), e); |
| 95 | } |
| 96 | ExcelCheck excelCheck = excelCheckMap.get(k); |
| 97 | ExcelProperty excelProperty = excelPropertyMap.get(k); |
| 98 | if (ObjectUtil.isNotEmpty(excelCheck) && ObjectUtil.isNotEmpty(excelProperty)) { |
| 99 | String fieldName = Arrays.toString(excelProperty.value()); |
| 100 | fieldName = fieldName.substring(1, fieldName.length() - 1); |
| 101 | |
| 102 | //不能为空 |
| 103 | isNotNull(v, excelCheck, i, fieldName, errList); |
| 104 | |
| 105 | //整数长度 |
| 106 | integer(v, excelCheck, i, fieldName, errList); |
| 107 | |
| 108 | //小数长度 |
| 109 | decimal(v, excelCheck, i, fieldName, errList); |
| 110 | |
| 111 | //时间格式 |
| 112 | dateFormat(v, excelCheck, i, fieldName, errList); |
| 113 | |
| 114 | //正则校验 |
| 115 | matches(v, excelCheck, i, fieldName, errList); |
| 116 | |
| 117 | //最大长度校验 |
| 118 | maxLength(v, excelCheck, i, fieldName, errList); |
| 119 | } |
| 120 | } |
| 121 | } |
| 122 | return errList; |
| 123 | } |
| 124 | |
| 125 | |
| 126 | /** |
no test coverage detected