From f19765f6d0d2079e8948b3c98e2278c3e3ef08f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B2=90?= Date: Wed, 7 Dec 2022 13:15:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maku/framework/common/utils/ExcelUtils.java | 38 ++++++++++------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/maku-framework/src/main/java/net/maku/framework/common/utils/ExcelUtils.java b/maku-framework/src/main/java/net/maku/framework/common/utils/ExcelUtils.java index 84897dd..6f680b5 100644 --- a/maku-framework/src/main/java/net/maku/framework/common/utils/ExcelUtils.java +++ b/maku-framework/src/main/java/net/maku/framework/common/utils/ExcelUtils.java @@ -1,9 +1,11 @@ package net.maku.framework.common.utils; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; -import com.fhs.common.spring.SpringContextUtil; import com.fhs.common.utils.ConverterUtils; import com.fhs.core.trans.anno.Trans; import com.fhs.core.trans.constant.TransType; @@ -32,7 +34,6 @@ import java.util.stream.Collectors; */ public class ExcelUtils { - /** * 读取excel文件 * @@ -151,42 +152,39 @@ public class ExcelUtils { * 解析字典数据到字段上 * 比如 T中有 genderLabel字段 为男 需要给 gender 字段自动设置为0 * - * @param datas 需要被反向解析的数据 - * @param + * @param dataList 需要被反向解析的数据 */ @SneakyThrows - public static void parseDict(List datas) { + public static void parseDict(List dataList) { //没有数据就不需要初始化 - if (datas == null || datas.isEmpty() || datas.get(0) == null) { + if (CollectionUtil.isEmpty(dataList)) { return; } - Class clazz = datas.get(0).getClass(); + Class clazz = dataList.get(0).getClass(); //拿到所有需要反向翻译的字段 List fields = ReflectUtils.getAnnotationField(clazz, Trans.class); //过滤出字典翻译 - fields = fields.stream().filter(field -> { - return TransType.DICTIONARY.equals(field.getAnnotation(Trans.class).type()); - }).collect(Collectors.toList()); - DictionaryTransService dictionaryTransService = SpringContextUtil.getBeanByClass(DictionaryTransService.class); - for (T data : datas) { + fields = fields.stream().filter(field -> TransType.DICTIONARY.equals(field.getAnnotation(Trans.class).type())).collect(Collectors.toList()); + DictionaryTransService dictionaryTransService = SpringUtil.getBean(DictionaryTransService.class); + for (T data : dataList) { for (Field field : fields) { Trans trans = field.getAnnotation(Trans.class); - //key不能为空并且ref不为空的才自动处理 - if (!StringUtils.isBlank(trans.key()) && !StringUtils.isBlank(trans.ref())) { + // key不能为空并且ref不为空的才自动处理 + if (StrUtil.isAllNotBlank(trans.key(), trans.ref())) { Field ref = ReflectUtils.getDeclaredField(clazz, trans.ref()); ref.setAccessible(true); - //获取字典反向值 + // 获取字典反向值 String value = dictionaryTransService.getUnTransMap().get(trans.key() + "_" + ref.get(data)); if (StringUtils.isBlank(value)) { continue; } - //一般目标字段是int或者string字段 后面有添加单独抽离方法 - if(Integer.class.equals(field.getType())){ + // 一般目标字段是int或者string字段 后面有添加单独抽离方法 + if (Integer.class.equals(field.getType())) { field.setAccessible(true); - field.set(data,ConverterUtils.toInteger(value)); - }else{ + field.set(data, ConverterUtils.toInteger(value)); + } else { field.setAccessible(true); - field.set(data,ConverterUtils.toString(value)); + field.set(data, ConverterUtils.toString(value)); } } }