refactor(仪表板): 优化明细表大数据量导出
This commit is contained in:
parent
e133fab83f
commit
14ea3accd3
@ -1327,6 +1327,13 @@ public class ChartViewService {
|
||||
} else {
|
||||
data = resultCustomSort(xAxis, data);
|
||||
}
|
||||
// 如果是表格导出查询 则在此处直接就可以返回
|
||||
if(chartExtRequest.getExcelExportFlag()){
|
||||
Map<String,Object> sourceInfo = new HashMap<>();
|
||||
sourceInfo.put("sourceData",data);
|
||||
chartViewDTO.setData(sourceInfo);
|
||||
return chartViewDTO;
|
||||
}
|
||||
// 同比/环比计算,通过对比类型和数据设置,计算出对应指标的结果,然后替换结果data数组中的对应元素
|
||||
// 如果因维度变化(如时间字段缺失,时间字段的展示格式变化)导致无法计算结果的,则结果data数组中的对应元素全置为null
|
||||
// 根据不同图表类型,获得需要替换的指标index array
|
||||
|
||||
@ -1210,7 +1210,6 @@ public class PanelGroupService {
|
||||
request.setDownloadType(viewInfo.getType());
|
||||
if ("table-info".equals(viewInfo.getType())) {
|
||||
try {
|
||||
List<String> excelHeaderKeys = request.getExcelHeaderKeys();
|
||||
ChartExtRequest componentFilterInfo = request.getComponentFilterInfo();
|
||||
componentFilterInfo.setGoPage(1L);
|
||||
componentFilterInfo.setPageSize(limit);
|
||||
@ -1218,16 +1217,8 @@ public class PanelGroupService {
|
||||
componentFilterInfo.setProxy(request.getProxy());
|
||||
componentFilterInfo.setUser(request.getUserId());
|
||||
ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo);
|
||||
List<Map> tableRow = (List) chartViewInfo.getData().get("tableRow");
|
||||
List<Object[]> result = new ArrayList<>();
|
||||
for (Map detailMap : tableRow) {
|
||||
List<Object> detailObj = new ArrayList<>();
|
||||
for (String key : excelHeaderKeys) {
|
||||
detailObj.add(detailMap.get(key));
|
||||
}
|
||||
result.add(detailObj.toArray());
|
||||
}
|
||||
request.setDetails(result);
|
||||
List<Object[]> tableRow = (List) chartViewInfo.getData().get("sourceData");
|
||||
request.setDetails(tableRow);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user