mirror of
https://github.com/dataease/dataease.git
synced 2026-05-19 18:38:16 +08:00
fix(图表): 修复查询组件通过新建计算字段关联组合图报错的问题
This commit is contained in:
@@ -3,14 +3,12 @@ package io.dataease.chart.charts.impl.mix;
|
||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
||||
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;
|
||||
@@ -58,7 +56,7 @@ public class MixHandler extends YoyChartHandler {
|
||||
boolean isDrill = filterResult
|
||||
.getFilterList()
|
||||
.stream()
|
||||
.anyMatch(ele -> ele.getFilterType() == 1) || filterResult.isDrill();
|
||||
.anyMatch(ele -> ele.getFilterType() == 1);
|
||||
if (StringUtils.equals((String) formatResult.getContext().get("isRight"), "isRight")) {
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt);
|
||||
@@ -148,27 +146,12 @@ 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, originFilter.getFilterList(), formatResult2);
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
if (formatResult2.getContext().get("yoyFiltered") != null && (boolean) formatResult2.getContext().get("yoyFiltered") == true) {
|
||||
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, filterResult.getFilterList(), FieldUtil.transFields(allFields), crossDs, dsMap, Utils.getParams(FieldUtil.transFields(allFields)), view.getCalParams(), pluginManage);
|
||||
} else {
|
||||
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, originFilter.getFilterList(), FieldUtil.transFields(allFields), crossDs, dsMap, Utils.getParams(FieldUtil.transFields(allFields)), view.getCalParams(), pluginManage);
|
||||
}
|
||||
originFilter.setDrill(filterResult
|
||||
.getFilterList()
|
||||
.stream()
|
||||
.anyMatch(ele -> ele.getFilterType() == 1));
|
||||
var rightResult = (T) super.calcChartResult(view, formatResult2, originFilter, sqlMap, sqlMeta, provider);
|
||||
|
||||
customFilter(view, filterResult.getFilterList(), formatResult2);
|
||||
var rightResult = (T) super.calcChartResult(view, formatResult2, filterResult, sqlMap, sqlMeta, provider);
|
||||
try {
|
||||
//如果有同环比过滤,应该用原始sql
|
||||
var originSql = rightResult.getQuerySql();
|
||||
|
||||
@@ -672,6 +672,7 @@ onMounted(() => {
|
||||
class="menu-item-padding"
|
||||
:disabled="state.disableEditCompare"
|
||||
:command="beforeQuickCalc('setting')"
|
||||
v-if="!(chart.type.includes('chart-mix') && type === 'quotaExt')"
|
||||
>
|
||||
<div
|
||||
class="sub-menu-content"
|
||||
|
||||
@@ -2,21 +2,13 @@ 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;
|
||||
private boolean isDrill;// 组合图右轴判断是否下钻字段,其余地方没有用
|
||||
|
||||
public CustomFilterResult(List<ChartExtFilterDTO> filterList, Map<String, Object> context) {
|
||||
this.filterList = filterList;
|
||||
this.context = context;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user