perf(图表): 优化表格内存占用

This commit is contained in:
wisonic-s
2025-05-30 11:23:17 +08:00
committed by GitHub
parent 46870a061e
commit 76385f3c7e
3 changed files with 22 additions and 4 deletions

View File

@@ -66,6 +66,11 @@ public class TableInfoHandler extends DefaultChartHandler {
return (T) new CustomFilterResult(filterList, formatResult.getContext());
}
@Override
public Map<String, Object> buildResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, List<String[]> data) {
return new HashMap<>();
}
@Override
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
var chartExtRequest = view.getChartExtRequest();

View File

@@ -23,10 +23,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author jianneng
@@ -77,6 +74,11 @@ public class TableNormalHandler extends DefaultChartHandler {
return (T) new CustomFilterResult(filterList, formatResult.getContext());
}
@Override
public Map<String, Object> buildResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, List<String[]> data) {
return new HashMap<>();
}
@Override
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
var chartExtRequest = view.getChartExtRequest();

View File

@@ -76,6 +76,17 @@ public class TablePivotHandler extends GroupChartHandler {
return result;
}
@Override
public Map<String, Object> buildResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, List<String[]> data) {
var result = new HashMap<String, Object>();
var yoyFiltered = filterResult.getContext().get("yoyFiltered") != null;
// 带过滤同环比直接返回原始数据,再由视图重新组装
if (yoyFiltered) {
result.put("data", data);
}
return result;
}
private Map<String, Object> calcCustomExpr(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
Object totalStr = JsonUtil.toJSONString(view.getCustomAttr().get("tableTotal"));
TableTotal tableTotal = JsonUtil.parseObject((String) totalStr, TableTotal.class);