优化导出速度
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.nis.util;
|
package com.nis.util;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -97,6 +98,18 @@ public class DictUtils {
|
|||||||
}
|
}
|
||||||
return itemList;
|
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){
|
public static String getDictLabels(String dictKey, String itemCodes, String defaultValue){
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import com.nis.domain.FunctionRegionDict;
|
import com.nis.domain.FunctionRegionDict;
|
||||||
import com.nis.domain.FunctionServiceDict;
|
import com.nis.domain.FunctionServiceDict;
|
||||||
import com.nis.domain.SysDataDictionaryItem;
|
import com.nis.domain.SysDataDictionaryItem;
|
||||||
@@ -454,6 +455,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)) {
|
if("isp".equals(headerStr)) {
|
||||||
commentStr="";
|
commentStr="";
|
||||||
List<Integer> itTypeList = new ArrayList<Integer>();
|
List<Integer> itTypeList = new ArrayList<Integer>();
|
||||||
@@ -2242,7 +2256,9 @@ public class ExportExcel {
|
|||||||
* @return list 数据列表
|
* @return list 数据列表
|
||||||
*/
|
*/
|
||||||
public <E> ExportExcel setDataList(Properties msgProp, Map<String,List> dataMap, Map<Object,Object> map){
|
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();
|
Set<String> keyList=dataMap.keySet();
|
||||||
|
Map<String,Map<String,String>> dictMaps=Maps.newConcurrentMap();
|
||||||
for (String key : keyList) {
|
for (String key : keyList) {
|
||||||
List<E> list=dataMap.get(key);
|
List<E> list=dataMap.get(key);
|
||||||
for (E e : list){
|
for (E e : list){
|
||||||
@@ -2272,7 +2288,16 @@ public class ExportExcel {
|
|||||||
val = getBasicInfo(ef.dictType(),map,valStr);
|
val = getBasicInfo(ef.dictType(),map,valStr);
|
||||||
}else{
|
}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);
|
val = msgProp.getProperty(dict,dict);
|
||||||
//业务配置-stream 阻断类型中 阻断 改为 封堵(丢弃)
|
//业务配置-stream 阻断类型中 阻断 改为 封堵(丢弃)
|
||||||
@@ -2341,6 +2366,8 @@ public class ExportExcel {
|
|||||||
log.debug("Write success: ["+row.getRowNum()+"] "+sb.toString());
|
log.debug("Write success: ["+row.getRowNum()+"] "+sb.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
end=System.currentTimeMillis();
|
||||||
|
System.err.println("setDataList cost:"+(end-start));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -2473,6 +2500,7 @@ public class ExportExcel {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ExportExcel(Properties msgProp,List<String> titleList,Map<String,String> noExportMap,Map<String, Class<?>> clsMap, int type,String titleTime, int... groups){
|
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>> headerMap=new HashMap<String, List<String>>();
|
||||||
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
||||||
for (String title : titleList) {
|
for (String title : titleList) {
|
||||||
@@ -2598,6 +2626,8 @@ public class ExportExcel {
|
|||||||
annotationMap.put(title, annotationList);
|
annotationMap.put(title, annotationList);
|
||||||
}
|
}
|
||||||
initializeMultiSheet(msgProp,titleList, headerMap,commentMap,titleTime);
|
initializeMultiSheet(msgProp,titleList, headerMap,commentMap,titleTime);
|
||||||
|
end=System.currentTimeMillis();
|
||||||
|
System.err.println("ExportExcel cost:"+(end-start));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user