feat(图表): 组合图副轴支持同环比 #15034 (#15344)

This commit is contained in:
Junjun
2025-03-13 16:46:18 +08:00
committed by GitHub
parent 0c3ccebfe9
commit b3f987f13f
2 changed files with 13 additions and 2 deletions

View File

@@ -2,14 +2,17 @@ package io.dataease.chart.charts.impl.mix;
import io.dataease.chart.charts.impl.YoyChartHandler;
import io.dataease.chart.utils.ChartDataBuild;
import io.dataease.engine.trans.ExtWhere2Str;
import io.dataease.engine.utils.Utils;
import io.dataease.extensions.datasource.dto.DatasourceRequest;
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
import io.dataease.extensions.datasource.model.SQLMeta;
import io.dataease.extensions.datasource.provider.Provider;
import io.dataease.extensions.view.dto.*;
import io.dataease.extensions.view.util.FieldUtil;
import lombok.Getter;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@@ -129,12 +132,18 @@ public class MixHandler extends YoyChartHandler {
formatResult2.getContext().remove("yoyFiltered");
formatResult2.getContext().put("isRight", "isRight");
CustomFilterResult originFilter = new CustomFilterResult();
originFilter.setContext(filterResult.getContext());
List<ChartExtFilterDTO> list = (List<ChartExtFilterDTO>) formatResult.getContext().get("originFilter");
originFilter.setFilterList(ObjectUtils.isEmpty(list) ? new ArrayList<>() : list);
formatResult.getContext().put("subAxisMap", axisMap);
// 右轴重新检测同环比过滤
customFilter(view, filterResult.getFilterList(), formatResult2);
var rightResult = (T) super.calcChartResult(view, formatResult2, filterResult, sqlMap, sqlMeta, provider);
customFilter(view, originFilter.getFilterList(), formatResult2);
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, originFilter.getFilterList(), FieldUtil.transFields(allFields), crossDs, dsMap, Utils.getParams(FieldUtil.transFields(allFields)), view.getCalParams(), pluginManage);
var rightResult = (T) super.calcChartResult(view, formatResult2, originFilter, sqlMap, sqlMeta, provider);
try {
//如果有同环比过滤,应该用原始sql
var originSql = rightResult.getQuerySql();

View File

@@ -2,12 +2,14 @@ package io.dataease.extensions.view.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CustomFilterResult {
private List<ChartExtFilterDTO> filterList;
private Map<String, Object> context;