From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog

---
 src/main/java/org/springblade/common/excel/ExcelDictConverter.java |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/springblade/common/excel/ExcelDictConverter.java b/src/main/java/org/springblade/common/excel/ExcelDictConverter.java
index 6fe4f99..8a9dfaf 100644
--- a/src/main/java/org/springblade/common/excel/ExcelDictConverter.java
+++ b/src/main/java/org/springblade/common/excel/ExcelDictConverter.java
@@ -5,6 +5,8 @@
 import com.alibaba.excel.metadata.CellData;
 import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.github.xiaoymin.knife4j.core.util.StrUtil;
+import org.springblade.common.cache.DictBizCache;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.system.service.IDictBizService;
@@ -32,9 +34,37 @@
 		return CellDataTypeEnum.STRING;
 	}
 
+	/**
+	 * 导入excel 解析到java 对象
+	 * @param cellData
+	 * @param excelContentProperty
+	 * @param globalConfiguration
+	 * @return
+	 * @throws Exception
+	 */
 	@Override
 	public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
-		return null;
+		// 获取字典类型
+		Field field = excelContentProperty.getField();
+		ExcelDictItemLabel excel = field.getAnnotation(ExcelDictItemLabel.class);
+		String dictType = excel.type();
+		// 为空返回
+		String dictLabel = cellData.getStringValue();
+		if (StrUtil.isBlank(dictLabel)) {
+			return dictLabel;
+		}
+		// 查询字典
+		List<DictBiz> list = DictBizCache.getList(dictType);
+		//解析返回
+		String key = "";
+		for (DictBiz dictBiz : list) {
+			if (dictBiz.getDictValue().equals(dictLabel)){
+				key = dictBiz.getDictKey();
+				break;
+			}
+		}
+		// 返回key
+		return key;
 	}
 
 	/**
@@ -51,13 +81,13 @@
 		Field field = excelContentProperty.getField();
 		ExcelDictItem excel = field.getAnnotation(ExcelDictItem.class);
 		String dictType = excel.type();
-		IDictBizService dictBizService = SpringUtils.getBean(IDictBizService.class);
-		List<DictBiz> list = dictBizService.getList(dictType);
+		List<DictBiz> list = DictBizCache.getList(dictType);
 		String value = "";
 		//解析返回
 		for (DictBiz dictBiz : list) {
 			if (dictBiz.getDictKey().equals(dictValue)){
 				value = dictBiz.getDictValue();
+				break;
 			}
 		}
 		return new CellData(value);

--
Gitblit v1.9.3