src/main/java/com/ruoyi/common/utils/DictUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/common/utils/DictUtils.java
@@ -43,6 +43,58 @@ } /** * 根据字典类型和字典值获取字典标签 * * @param dictType 字典类型 * @param dictValue 字典值 * @return 字典标签 */ public static String getDictLabel(String dictType, String dictValue) { if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotEmpty(dictValue)) { List<SysDictData> datas = getDictCache(dictType); if (StringUtils.isNotEmpty(datas)) { for (SysDictData dict : datas) { if (dictValue.equals(dict.getDictValue())) { return dict.getDictLabel(); } } } } return dictValue; } /** * 根据字典类型和字典标签获取字典值 * * @param dictType 字典类型 * @param dictLabel 字典标签 * @return 字典值 */ public static String getDictValue(String dictType, String dictLabel) { if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotEmpty(dictLabel)) { List<SysDictData> datas = getDictCache(dictType); if (StringUtils.isNotEmpty(datas)) { for (SysDictData dict : datas) { if (dictLabel.equals(dict.getDictLabel())) { return dict.getDictValue(); } } } } return dictLabel; } /** * 清空字典缓存 */ public static void clearDictCache() src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -44,6 +44,7 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.framework.aspectj.lang.annotation.Excel; @@ -270,7 +271,11 @@ } else if (StringUtils.isNotEmpty(attr.readConverterExp())) { val = reverseByExp(String.valueOf(val), attr.readConverterExp()); val = reverseByExp(Convert.toStr(val), attr.readConverterExp()); } else if (StringUtils.isNotEmpty(attr.dictType())) { val = reverseDictByExp(attr.dictType(), Convert.toStr(val)); } ReflectUtils.invokeSetter(entity, propertyName, val); } @@ -529,13 +534,18 @@ Object value = getTargetValue(vo, field, attr); String dateFormat = attr.dateFormat(); String readConverterExp = attr.readConverterExp(); String dictType = attr.dictType(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { cell.setCellValue(convertByExp(String.valueOf(value), readConverterExp)); cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp)); } else if (StringUtils.isNotEmpty(dictType)) { cell.setCellValue(convertDictByExp(dictType, Convert.toStr(value))); } else { @@ -667,6 +677,30 @@ } /** * 解析字典值 * * @param dictType 字典类型 * @param dictValue 字典值 * @return 字典标签 */ public static String convertDictByExp(String dictType, String dictValue) throws Exception { return DictUtils.getDictLabel(dictType, dictValue); } /** * 反向解析值字典值 * * @param dictType 字典类型 * @param dictValue 字典标签 * @return 字典值 */ public static String reverseDictByExp(String dictType, String dictLabel) throws Exception { return DictUtils.getDictValue(dictType, dictLabel); } /** * 编码文件名 */ public String encodingFilename(String filename) src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java
@@ -30,6 +30,11 @@ public String dateFormat() default ""; /** * 如果是字典类型,请设置字典的type值 */ public String dictType() default ""; /** * 读取内容转表达式 (如: 0=男,1=女,2=未知) */ public String readConverterExp() default "";