优化配置导入操作(缓存导入文件获取过的字典值)
This commit is contained in:
@@ -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<E> _dataList =new ArrayBlockingQueue(dataList.size(),true);
|
||||
for (int i = 0; i < dataList.size(); i++) {
|
||||
Map<String, Map<String, Object>> dictMap = new HashMap<String,Map<String, Object>>();
|
||||
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<String, Object> putMap = new HashMap<String,Object>();
|
||||
putMap.put(val.toString(), val1);
|
||||
dictMap.put(ef.dictType(), putMap);
|
||||
}else {
|
||||
Map<String, Object> 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;
|
||||
|
||||
Reference in New Issue
Block a user