优化导出速度
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.nis.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -97,6 +98,18 @@ public class DictUtils {
|
||||
}
|
||||
return itemList;
|
||||
}
|
||||
public static Map<String,String> getDictMap(String key){
|
||||
Map dictMap=new HashMap<String,String>();
|
||||
List<SysDataDictionaryItem> itemList = getDictData().get(key);
|
||||
if (StringUtil.isEmpty(itemList)) {
|
||||
return dictMap;
|
||||
}else {
|
||||
for(SysDataDictionaryItem item:itemList) {
|
||||
dictMap.put(item.getItemCode(), item.getItemValue());
|
||||
}
|
||||
}
|
||||
return dictMap;
|
||||
}
|
||||
|
||||
public static String getDictLabels(String dictKey, String itemCodes, String defaultValue){
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.SysDataDictionaryItem;
|
||||
@@ -453,6 +454,19 @@ public class ExportExcel {
|
||||
}
|
||||
|
||||
}
|
||||
if("ip_group".equals(headerStr)) {
|
||||
commentStr="";
|
||||
//查询dns fake ip policyGroup列表
|
||||
List<PolicyGroupInfo> list=policyGroupInfoDao.findPolicyGroupInfosByType(5);
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
for (PolicyGroupInfo policyGroupInfo : list) {
|
||||
commentStr=commentStr+policyGroupInfo.getServiceGroupId()+"("+policyGroupInfo.getGroupName()+")\n";
|
||||
index++;
|
||||
}
|
||||
}
|
||||
commentStr=msgProp.getProperty("select")+":\n"+commentStr;
|
||||
index++;
|
||||
}
|
||||
if("isp".equals(headerStr)) {
|
||||
commentStr="";
|
||||
List<Integer> itTypeList = new ArrayList<Integer>();
|
||||
@@ -2233,7 +2247,9 @@ public class ExportExcel {
|
||||
* @return list 数据列表
|
||||
*/
|
||||
public <E> ExportExcel setDataList(Properties msgProp, Map<String,List> dataMap, Map<Object,Object> map){
|
||||
long start=System.currentTimeMillis(),end=System.currentTimeMillis();
|
||||
Set<String> keyList=dataMap.keySet();
|
||||
Map<String,Map<String,String>> dictMaps=Maps.newConcurrentMap();
|
||||
for (String key : keyList) {
|
||||
List<E> list=dataMap.get(key);
|
||||
for (E e : list){
|
||||
@@ -2263,7 +2279,16 @@ public class ExportExcel {
|
||||
val = getBasicInfo(ef.dictType(),map,valStr);
|
||||
}else{
|
||||
//字典数据已做国际化处理
|
||||
String dict=DictUtils.getDictLabel(ef.dictType(), valStr, valStr);
|
||||
String dict="";
|
||||
if(dictMaps.containsKey(ef.dictType())) {
|
||||
Map<String,String> dictM=dictMaps.get(ef.dictType());
|
||||
dict=dictM.containsKey(valStr)?dictM.get(valStr):valStr;
|
||||
}else {
|
||||
Map<String,String> dictM=DictUtils.getDictMap(ef.dictType());
|
||||
dictMaps.put(ef.dictType(), dictM);
|
||||
dict=dictM.containsKey(valStr)?dictM.get(valStr):valStr;
|
||||
}
|
||||
//String dict=DictUtils.getDictLabel(ef.dictType(), valStr, valStr);
|
||||
//如果找不到字典国际化值,把字典本身作为默认值放进去,不然导出就是空了
|
||||
val = msgProp.getProperty(dict,dict);
|
||||
//业务配置-stream 阻断类型中 阻断 改为 封堵(丢弃)
|
||||
@@ -2332,6 +2357,8 @@ public class ExportExcel {
|
||||
log.debug("Write success: ["+row.getRowNum()+"] "+sb.toString());
|
||||
}
|
||||
}
|
||||
end=System.currentTimeMillis();
|
||||
System.err.println("setDataList cost:"+(end-start));
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
@@ -2464,6 +2491,7 @@ public class ExportExcel {
|
||||
* @return
|
||||
*/
|
||||
public ExportExcel(Properties msgProp,List<String> titleList,Map<String,String> noExportMap,Map<String, Class<?>> clsMap, int type,String titleTime, int... groups){
|
||||
long start=System.currentTimeMillis(),end=System.currentTimeMillis();
|
||||
Map<String, List<String>> headerMap=new HashMap<String, List<String>>();
|
||||
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
||||
for (String title : titleList) {
|
||||
@@ -2589,6 +2617,8 @@ public class ExportExcel {
|
||||
annotationMap.put(title, annotationList);
|
||||
}
|
||||
initializeMultiSheet(msgProp,titleList, headerMap,commentMap,titleTime);
|
||||
end=System.currentTimeMillis();
|
||||
System.err.println("ExportExcel cost:"+(end-start));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user