diff --git a/src/main/java/com/nis/util/excel/ImportBigExcel.java b/src/main/java/com/nis/util/excel/ImportBigExcel.java index 1425d8074..fa4f8b70c 100644 --- a/src/main/java/com/nis/util/excel/ImportBigExcel.java +++ b/src/main/java/com/nis/util/excel/ImportBigExcel.java @@ -12,7 +12,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.UUID; import java.util.concurrent.ArrayBlockingQueue; @@ -427,7 +429,9 @@ public class ImportBigExcel extends XLSXCovertCSVReader{ } // Get excel data BlockingQueue _dataList =new ArrayBlockingQueue(dataList.size(),true); - for (int i = 0; i < dataList.size(); i++) { + Map> dictMap = new HashMap>(); + Object val1 = null; + for (int i = 0, len = dataList.size(); i < len; i++) { E e = (E)cls.newInstance(); if(i<=headerNum) { continue; @@ -442,7 +446,23 @@ public class ImportBigExcel extends XLSXCovertCSVReader{ ExcelField ef = (ExcelField)os[0]; // If is dict type, get dict value if (StringUtils.isNotBlank(ef.dictType())){ - Object val1 = DictUtils.getDictCode(ef.dictType(), val.toString(), ""); + // 缓存当前excel文件获取过的字典值 + if(!dictMap.containsKey(ef.dictType())) { + val1 = DictUtils.getDictCode(ef.dictType(), val.toString(), ""); + Map putMap = new HashMap(); + putMap.put(val.toString(), val1); + dictMap.put(ef.dictType(), putMap); + }else { + Map map = dictMap.get(ef.dictType()); + if(!map.containsKey(val.toString())) { + val1 = DictUtils.getDictCode(ef.dictType(), val.toString(), ""); + map.put(val.toString(), val1); + dictMap.put(ef.dictType(), map); + }else { + val1 = map.get(val.toString()); + } + } + //没有获取到字典值的话会影响验证判断 if(val1!=null&&StringUtils.isNotBlank(val1.toString())) { val=val1;