Merge pull request #8196 from dataease/pr@dev@fix_view-export

refactor(仪表板): 优化明细表大数据量导出
This commit is contained in:
王嘉豪 2024-02-28 08:38:19 +08:00 committed by GitHub
commit 4eb9755eaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 11 deletions

View File

@ -1327,6 +1327,13 @@ public class ChartViewService {
} else { } else {
data = resultCustomSort(xAxis, data); data = resultCustomSort(xAxis, data);
} }
// 如果是表格导出查询 则在此处直接就可以返回
if(chartExtRequest.getExcelExportFlag()){
Map<String,Object> sourceInfo = new HashMap<>();
sourceInfo.put("sourceData",data);
chartViewDTO.setData(sourceInfo);
return chartViewDTO;
}
// 同比/环比计算通过对比类型和数据设置计算出对应指标的结果然后替换结果data数组中的对应元素 // 同比/环比计算通过对比类型和数据设置计算出对应指标的结果然后替换结果data数组中的对应元素
// 如果因维度变化如时间字段缺失时间字段的展示格式变化导致无法计算结果的则结果data数组中的对应元素全置为null // 如果因维度变化如时间字段缺失时间字段的展示格式变化导致无法计算结果的则结果data数组中的对应元素全置为null
// 根据不同图表类型获得需要替换的指标index array // 根据不同图表类型获得需要替换的指标index array

View File

@ -1210,7 +1210,6 @@ public class PanelGroupService {
request.setDownloadType(viewInfo.getType()); request.setDownloadType(viewInfo.getType());
if ("table-info".equals(viewInfo.getType())) { if ("table-info".equals(viewInfo.getType())) {
try { try {
List<String> excelHeaderKeys = request.getExcelHeaderKeys();
ChartExtRequest componentFilterInfo = request.getComponentFilterInfo(); ChartExtRequest componentFilterInfo = request.getComponentFilterInfo();
componentFilterInfo.setGoPage(1L); componentFilterInfo.setGoPage(1L);
componentFilterInfo.setPageSize(limit); componentFilterInfo.setPageSize(limit);
@ -1218,16 +1217,8 @@ public class PanelGroupService {
componentFilterInfo.setProxy(request.getProxy()); componentFilterInfo.setProxy(request.getProxy());
componentFilterInfo.setUser(request.getUserId()); componentFilterInfo.setUser(request.getUserId());
ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo); ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo);
List<Map> tableRow = (List) chartViewInfo.getData().get("tableRow"); List<Object[]> tableRow = (List) chartViewInfo.getData().get("sourceData");
List<Object[]> result = new ArrayList<>(); request.setDetails(tableRow);
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);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }