自定义报表代码提交

This commit is contained in:
2022-10-21 11:24:58 +08:00
parent 53389fb6f3
commit 225cefd1a5
4 changed files with 96 additions and 3 deletions

View File

@@ -0,0 +1,85 @@
package com.njcn.common.utils;
import java.lang.reflect.Field;
import java.util.*;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/10/21 9:32【需求编号】
*
* @author clam
* @version V1.0.0
*/
public class NjcnBeanUtil {
/**
* beancopy
* 大小写可以忽略
* 下划线 _ 被忽略
*
* @param source
* @param target
* @param <T>
* @return
*/
public static <T> T copyPropertiesIgnoreCase(Object source, Object target) {
Map<String, Field> sourceMap = CacheFieldMap.getFieldMap (source.getClass ( ));
CacheFieldMap.getFieldMap (target.getClass ( )).values ( ).forEach ((it) -> {
Field field = sourceMap.get (it.getName ( ).toLowerCase ( ).replace ("_", ""));
if (field != null) {
it.setAccessible (true);
field.setAccessible (true);
try {
//忽略null和空字符串
// if(field.get(source)!=null&& StringUtils.isBlank(field.get(source).toString()))
it.set (target, field.get (source));
} catch (IllegalAccessException e) {
e.printStackTrace ( );
}
}
});
System.out.println (target.toString ( ));
return (T) target;
}
private static class CacheFieldMap {
private static Map<String, Map<String, Field>> cacheMap = new HashMap<> ( );
private static Map<String, Field> getFieldMap(Class clazz) {
Map<String, Field> result = cacheMap.get (clazz.getName ( ));
if (result == null) {
synchronized (CacheFieldMap.class) {
if (result == null) {
Map<String, Field> fieldMap = new HashMap<> ( );
for (Field field : getAllFields (clazz)) {
fieldMap.put (field.getName ( ).toLowerCase ( ).replace ("_", ""), field);
}
cacheMap.put (clazz.getName ( ), fieldMap);
result = cacheMap.get (clazz.getName ( ));
}
}
}
return result;
}
}
/**
* 获取本类及其父类的字段属性
*
* @param clazz 当前类对象
* @return 字段数组
*/
public static Field[] getAllFields(Class<?> clazz) {
List<Field> fieldList = new ArrayList<> ( );
while (clazz != null) {
fieldList.addAll (new ArrayList<> (Arrays.asList (clazz.getDeclaredFields ( ))));
clazz = clazz.getSuperclass ( );
}
Field[] fields = new Field[fieldList.size ( )];
return fieldList.toArray (fields);
}
}