fix(图表): 修复分组柱状图下钻分组信息丢失 #10875

This commit is contained in:
wisonic 2024-07-31 19:50:46 +08:00
parent f081db009f
commit 11dd9fcee1
2 changed files with 4 additions and 6 deletions

View File

@ -6,10 +6,7 @@ import lombok.Getter;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
@ -69,7 +66,8 @@ public class GroupBarHandler extends BarHandler {
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt); var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt);
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size()); var drillAxis = xAxis.stream().filter(axis -> FieldSource.DRILL == axis.getSource()).toList();
var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size() - drillAxis.size());
return ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill); return ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill);
} }
} }

View File

@ -288,7 +288,7 @@ public class ChartDataManage {
if (i == drillRequestList.size() - 1) { if (i == drillRequestList.size() - 1) {
ChartViewFieldDTO nextDrillField = drill.get(i + 1); ChartViewFieldDTO nextDrillField = drill.get(i + 1);
if (!fields.contains(nextDrillField.getId())) { if (!fields.contains(nextDrillField.getId())) {
viewField.setSource(FieldSource.DRILL); nextDrillField.setSource(FieldSource.DRILL);
nextDrillField.setSort(getDrillSort(xAxis, drill.get(0))); nextDrillField.setSort(getDrillSort(xAxis, drill.get(0)));
xAxis.add(nextDrillField); xAxis.add(nextDrillField);
dillAxis.add(nextDrillField); dillAxis.add(nextDrillField);