forked from github/dataease
Merge pull request #10617 from dataease/pr@dev-v2@refactor_view_plugin
refactor(图表): 图表插件改造
This commit is contained in:
commit
36f914278f
@ -1,19 +0,0 @@
|
||||
package io.dataease.chart.charts;
|
||||
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class AbstractChartHandler {
|
||||
public static Logger logger = LoggerFactory.getLogger(AbstractChartHandler.class);
|
||||
|
||||
public abstract <T> T formatAxis(ChartViewDTO view);
|
||||
public abstract <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult);
|
||||
public abstract <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider);
|
||||
public abstract ChartViewDTO buildChart(ChartViewDTO view, ChartCalcDataResult calcResult, AxisFormatResult formatResult, CustomFilterResult filterResult);
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package io.dataease.chart.charts;
|
||||
|
||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -12,13 +13,13 @@ public class ChartHandlerManager {
|
||||
@Lazy
|
||||
@Resource
|
||||
private DefaultChartHandler defaultChartHandler;
|
||||
private static final ConcurrentHashMap<String, AbstractChartHandler> CHART_HANDLER_MAP = new ConcurrentHashMap<>();
|
||||
private static final ConcurrentHashMap<String, AbstractChartPlugin> CHART_HANDLER_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
public void registerChartHandler(String render, String type, AbstractChartHandler chartHandler) {
|
||||
public void registerChartHandler(String render, String type, AbstractChartPlugin chartHandler) {
|
||||
CHART_HANDLER_MAP.put(render + "-" + type, chartHandler);
|
||||
}
|
||||
|
||||
public AbstractChartHandler getChartHandler(String render, String type) {
|
||||
public AbstractChartPlugin getChartHandler(String render, String type) {
|
||||
var handler = CHART_HANDLER_MAP.get(render + "-" + type);
|
||||
if (handler == null) {
|
||||
return defaultChartHandler;
|
||||
|
@ -1,23 +1,24 @@
|
||||
package io.dataease.chart.charts.impl;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.chart.charts.AbstractChartHandler;
|
||||
import io.dataease.chart.charts.ChartHandlerManager;
|
||||
import io.dataease.chart.constant.ChartConstants;
|
||||
import io.dataease.chart.manage.ChartDataManage;
|
||||
import io.dataease.chart.manage.ChartViewManege;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.dataset.utils.SqlUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
@ -28,6 +29,8 @@ import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@ -37,7 +40,8 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class DefaultChartHandler extends AbstractChartHandler {
|
||||
public class DefaultChartHandler extends AbstractChartPlugin {
|
||||
public static Logger logger = LoggerFactory.getLogger(ChartDataManage.class);
|
||||
@Resource
|
||||
protected ChartHandlerManager chartHandlerManager;
|
||||
@Resource
|
||||
@ -66,7 +70,7 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
return (T) new CustomFilterResult(filterList, formatResult.getContext());
|
||||
}
|
||||
|
||||
@ -82,7 +86,7 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
@ -94,8 +98,7 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
datasourceRequest.setDsList(dsMap);
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
var allFields = getAllChartFields(view);
|
||||
filterResult.getContext().put("allFields", allFields);
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
Dimension2SQLObj.dimension2sqlObj(sqlMeta, xAxis, FieldUtil.transFields(allFields), crossDs, dsMap);
|
||||
Quota2SQLObj.quota2sqlObj(sqlMeta, yAxis, FieldUtil.transFields(allFields), crossDs, dsMap);
|
||||
String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view);
|
||||
@ -120,6 +123,7 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
@Override
|
||||
public ChartViewDTO buildChart(ChartViewDTO view, ChartCalcDataResult calcResult, AxisFormatResult formatResult, CustomFilterResult filterResult) {
|
||||
var desensitizationList = (Map<String, ColumnPermissionItem>) filterResult.getContext().get("desensitizationList");
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
// 如果是表格导出查询 则在此处直接就可以返回
|
||||
@ -130,39 +134,25 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
view.setData(sourceInfo);
|
||||
return view;
|
||||
}
|
||||
// 构建结果
|
||||
Map<String, Object> map = new TreeMap<>();
|
||||
// 图表组件可再扩展
|
||||
|
||||
Map<String, Object> mapTableNormal = ChartDataBuild.transTableNormal(xAxis, yAxis, view, calcResult.getOriginData(), extStack, desensitizationList);
|
||||
var drillFilters = filterResult.getFilterList().stream().filter(f -> f.getFilterType() == 1).collect(Collectors.toList());
|
||||
var isDrill = CollectionUtils.isNotEmpty(drillFilters);
|
||||
ChartViewDTO chartViewDTO = uniteViewResult(calcResult.getQuerySql(), calcResult.getData(), mapTableNormal, view, isDrill, drillFilters, calcResult.getDynamicAssistFields(), calcResult.getAssistData());
|
||||
return chartViewDTO;
|
||||
// 构建结果
|
||||
Map<String, Object> dataMap = new HashMap<>();
|
||||
dataMap.putAll(calcResult.getData());
|
||||
dataMap.putAll(mapTableNormal);
|
||||
dataMap.put("sourceFields", allFields);
|
||||
mergeAssistField(calcResult.getDynamicAssistFields(), calcResult.getAssistData());
|
||||
dataMap.put("dynamicAssistLines", calcResult.getDynamicAssistFields());
|
||||
view.setData(dataMap);
|
||||
view.setSql(Base64.getEncoder().encodeToString(calcResult.getQuerySql().getBytes()));
|
||||
view.setDrill(isDrill);
|
||||
view.setDrillFilters(drillFilters);
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
public ChartViewDTO uniteViewResult(String sql, Map<String, Object> chartData, Map<String, Object> tableData, ChartViewDTO view, Boolean isDrill, List<ChartExtFilterDTO> drillFilters, List<ChartSeniorAssistDTO> dynamicAssistFields, List<String[]> assistData) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.putAll(chartData);
|
||||
map.putAll(tableData);
|
||||
|
||||
// get all fields
|
||||
List<ChartViewFieldDTO> allFields = getAllChartFields(view);
|
||||
map.put("sourceFields", allFields);
|
||||
// merge assist result
|
||||
mergeAssistField(dynamicAssistFields, assistData);
|
||||
map.put("dynamicAssistLines", dynamicAssistFields);
|
||||
|
||||
ChartViewDTO dto = new ChartViewDTO();
|
||||
BeanUtils.copyBean(dto, view);
|
||||
dto.setData(map);
|
||||
dto.setSql(java.util.Base64.getEncoder().encodeToString(sql.getBytes()));
|
||||
dto.setDrill(isDrill);
|
||||
dto.setDrillFilters(drillFilters);
|
||||
return dto;
|
||||
}
|
||||
|
||||
protected void mergeAssistField(List<ChartSeniorAssistDTO> dynamicAssistFields, List<String[]> assistData) {
|
||||
if (ObjectUtils.isEmpty(assistData)) {
|
||||
return;
|
||||
@ -176,17 +166,6 @@ public class DefaultChartHandler extends AbstractChartHandler {
|
||||
}
|
||||
}
|
||||
|
||||
protected List<ChartViewFieldDTO> getAllChartFields(ChartViewDTO view) {
|
||||
// get all fields
|
||||
Map<String, List<ChartViewFieldDTO>> stringListMap = chartViewManege.listByDQ(view.getTableId(), view.getId(), view);
|
||||
List<ChartViewFieldDTO> dimensionList = stringListMap.get("dimensionList");
|
||||
List<ChartViewFieldDTO> quotaList = stringListMap.get("quotaList");
|
||||
List<ChartViewFieldDTO> allFields = new ArrayList<>();
|
||||
allFields.addAll(dimensionList);
|
||||
allFields.addAll(quotaList);
|
||||
return allFields.stream().filter(ele -> ele.getId() != -1L).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
protected List<ChartSeniorAssistDTO> getDynamicAssistFields(ChartViewDTO view) {
|
||||
List<ChartSeniorAssistDTO> list = new ArrayList<>();
|
||||
|
||||
|
@ -3,12 +3,12 @@ package io.dataease.chart.charts.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.dataease.dataset.utils.SqlUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
@ -25,7 +25,7 @@ import java.util.Map;
|
||||
*/
|
||||
public class YoyChartHandler extends DefaultChartHandler {
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
String originFilterJson = (String) JsonUtil.toJSONString(filterList);
|
||||
// 如果设置了同环比的指标字段设置了过滤器,那就需要把该过滤器的时间往前回调一年
|
||||
@ -66,7 +66,7 @@ public class YoyChartHandler extends DefaultChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
|
@ -1,10 +1,10 @@
|
||||
package io.dataease.chart.charts.impl.bar;
|
||||
|
||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@ -35,7 +35,7 @@ public class BarHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
|
@ -1,16 +1,16 @@
|
||||
package io.dataease.chart.charts.impl.bar;
|
||||
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Component
|
||||
public class GroupBarHandler extends BarHandler {
|
||||
@ -32,7 +32,7 @@ public class GroupBarHandler extends BarHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var result = super.customFilter(view, filterList, formatResult);
|
||||
List<ChartDrillRequest> drillRequestList = view.getChartExtRequest().getDrill();
|
||||
var drillFields = formatResult.getAxisMap().get(ChartAxis.drill);
|
||||
|
@ -2,7 +2,7 @@ package io.dataease.chart.charts.impl.bar;
|
||||
|
||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import lombok.Getter;
|
||||
@ -76,7 +76,7 @@ public class RangeBarHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
sqlMeta.setChartType(this.type);
|
||||
return super.calcChartResult(view, formatResult, filterResult, sqlMap, sqlMeta, provider);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class StackBarHandler extends BarHandler {
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var result = super.customFilter(view, filterList, formatResult);
|
||||
List<ChartDrillRequest> drillRequestList = view.getChartExtRequest().getDrill();
|
||||
var drillFields = formatResult.getAxisMap().get(ChartAxis.drill);
|
||||
|
@ -38,7 +38,7 @@ public class StackGroupBarHandler extends BarHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var result = super.customFilter(view, filterList, formatResult);
|
||||
List<ChartDrillRequest> drillRequestList = view.getChartExtRequest().getDrill();
|
||||
var drillFields = formatResult.getAxisMap().get(ChartAxis.drill);
|
||||
@ -52,7 +52,6 @@ public class StackGroupBarHandler extends BarHandler {
|
||||
.stream()
|
||||
.filter(ele -> ele.getSource() != FieldSource.DRILL)
|
||||
.collect(Collectors.toList());
|
||||
List<ChartExtFilterDTO> drillFilters = new ArrayList<>();
|
||||
ArrayList<ChartViewFieldDTO> fieldsToFilter = new ArrayList<>();
|
||||
var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt);
|
||||
var extStack = formatResult.getAxisMap().get(ChartAxis.extStack);
|
||||
|
@ -2,10 +2,9 @@ package io.dataease.chart.charts.impl.line;
|
||||
|
||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import lombok.Getter;
|
||||
@ -49,14 +48,12 @@ public class LineHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
dsList.add(next.getValue().getType());
|
||||
}
|
||||
boolean needOrder = Utils.isNeedOrder(dsList);
|
||||
boolean crossDs = Utils.isCrossDs(dsMap);
|
||||
var result = (T) super.calcChartResult(view, formatResult, filterResult, sqlMap, sqlMeta, provider);
|
||||
try {
|
||||
//如果有同环比过滤,应该用原始sql
|
||||
|
@ -2,10 +2,10 @@ package io.dataease.chart.charts.impl.line;
|
||||
|
||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import lombok.Getter;
|
||||
@ -52,7 +52,7 @@ public class StackAreaHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var result = super.customFilter(view, filterList, formatResult);
|
||||
List<ChartDrillRequest> drillRequestList = view.getChartExtRequest().getDrill();
|
||||
var drillFields = formatResult.getAxisMap().get(ChartAxis.drill);
|
||||
@ -81,7 +81,7 @@ public class StackAreaHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
|
@ -1,16 +1,15 @@
|
||||
package io.dataease.chart.charts.impl.map;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.utils.SqlUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
@ -21,11 +20,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@ -54,7 +49,7 @@ public class SymbolicMapHandler extends GroupChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
@ -66,8 +61,7 @@ public class SymbolicMapHandler extends GroupChartHandler {
|
||||
datasourceRequest.setDsList(dsMap);
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
var allFields = getAllChartFields(view);
|
||||
filterResult.getContext().put("allFields", allFields);
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
Dimension2SQLObj.dimension2sqlObj(sqlMeta, xAxis, FieldUtil.transFields(allFields), crossDs, dsMap);
|
||||
Quota2SQLObj.quota2sqlObj(sqlMeta, yAxis, FieldUtil.transFields(allFields), crossDs, dsMap);
|
||||
String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view);
|
||||
@ -109,6 +103,7 @@ public class SymbolicMapHandler extends GroupChartHandler {
|
||||
@Override
|
||||
public ChartViewDTO buildChart(ChartViewDTO view, ChartCalcDataResult calcResult, AxisFormatResult formatResult, CustomFilterResult filterResult) {
|
||||
var desensitizationList = (Map<String, ColumnPermissionItem>) filterResult.getContext().get("desensitizationList");
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
// 如果是表格导出查询 则在此处直接就可以返回
|
||||
@ -123,6 +118,17 @@ public class SymbolicMapHandler extends GroupChartHandler {
|
||||
Map<String, Object> mapTableNormal = calcResult.getData();
|
||||
var drillFilters = filterResult.getFilterList().stream().filter(f -> f.getFilterType() == 1).collect(Collectors.toList());
|
||||
var isDrill = CollectionUtils.isNotEmpty(drillFilters);
|
||||
return uniteViewResult(calcResult.getQuerySql(), calcResult.getData(), mapTableNormal, view, isDrill, drillFilters, calcResult.getDynamicAssistFields(), calcResult.getAssistData());
|
||||
// 构建结果
|
||||
Map<String, Object> dataMap = new TreeMap<>();
|
||||
dataMap.putAll(calcResult.getData());
|
||||
dataMap.putAll(mapTableNormal);
|
||||
dataMap.put("sourceFields", allFields);
|
||||
mergeAssistField(calcResult.getDynamicAssistFields(), calcResult.getAssistData());
|
||||
dataMap.put("dynamicAssistLines", calcResult.getDynamicAssistFields());
|
||||
view.setData(dataMap);
|
||||
view.setSql(Base64.getEncoder().encodeToString(calcResult.getQuerySql().getBytes()));
|
||||
view.setDrill(isDrill);
|
||||
view.setDrillFilters(drillFilters);
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.chart.charts.impl.mix;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
|
@ -1,12 +1,11 @@
|
||||
package io.dataease.chart.charts.impl.mix;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.chart.charts.impl.YoyChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import lombok.Getter;
|
||||
@ -64,7 +63,7 @@ public class MixHandler extends YoyChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
//计算左轴, 包含 xAxis, yAxis
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
@ -162,7 +161,6 @@ public class MixHandler extends YoyChartHandler {
|
||||
rightData.putAll(rightCalcResult.getData());
|
||||
rightData.put("dynamicAssistLines", rightCalcResult.getDynamicAssistFields());
|
||||
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
// 构建结果
|
||||
Map<String, Object> chartData = new TreeMap<>();
|
||||
chartData.put("left", leftData);
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.chart.charts.impl.mix;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import lombok.Getter;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.chart.charts.impl.numberic;
|
||||
package io.dataease.chart.charts.impl.numeric;
|
||||
|
||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
@ -15,7 +15,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class GaugeHandler extends NumbericChartHandler {
|
||||
public class GaugeHandler extends NumericalChartHandler {
|
||||
@Getter
|
||||
private String type = "gauge";
|
||||
@Resource
|
@ -1,11 +1,10 @@
|
||||
package io.dataease.chart.charts.impl.numberic;
|
||||
package io.dataease.chart.charts.impl.numeric;
|
||||
|
||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
||||
import lombok.Getter;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class IndicatorHandler extends NumbericChartHandler {
|
||||
public class IndicatorHandler extends NumericalChartHandler {
|
||||
@Getter
|
||||
private String render = "custom";
|
||||
@Getter
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.chart.charts.impl.numberic;
|
||||
package io.dataease.chart.charts.impl.numeric;
|
||||
|
||||
import io.dataease.extensions.view.dto.AxisFormatResult;
|
||||
import io.dataease.extensions.view.dto.ChartAxis;
|
||||
@ -13,7 +13,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class LiquidHandler extends NumbericChartHandler {
|
||||
public class LiquidHandler extends NumericalChartHandler {
|
||||
@Getter
|
||||
private String type = "liquid";
|
||||
|
@ -1,15 +1,16 @@
|
||||
package io.dataease.chart.charts.impl.numberic;
|
||||
package io.dataease.chart.charts.impl.numeric;
|
||||
|
||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.utils.SqlUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.util.FieldUtil;
|
||||
@ -22,9 +23,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class NumbericChartHandler extends DefaultChartHandler {
|
||||
public class NumericalChartHandler extends DefaultChartHandler {
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
|
||||
@ -36,7 +37,7 @@ public class NumbericChartHandler extends DefaultChartHandler {
|
||||
datasourceRequest.setDsList(dsMap);
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
var allFields = getAllChartFields(view);
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
Quota2SQLObj.quota2sqlObj(sqlMeta, yAxis, FieldUtil.transFields(allFields), crossDs, dsMap);
|
||||
String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view);
|
||||
querySql = SqlUtils.rebuildSQL(querySql, sqlMeta, crossDs, dsMap);
|
@ -3,12 +3,12 @@ package io.dataease.chart.charts.impl.table;
|
||||
import io.dataease.api.chart.dto.PageInfo;
|
||||
import io.dataease.chart.charts.impl.DefaultChartHandler;
|
||||
import io.dataease.dataset.utils.SqlUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
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.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.util.ChartDataUtil;
|
||||
@ -35,7 +35,7 @@ public class TableInfoHandler extends DefaultChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends CustomFilterResult, K extends AxisFormatResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, K formatResult) {
|
||||
public <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult) {
|
||||
var chartExtRequest = view.getChartExtRequest();
|
||||
Map<String, Object> mapAttr = view.getCustomAttr();
|
||||
Map<String, Object> mapSize = (Map<String, Object>) mapAttr.get("basicStyle");
|
||||
@ -66,7 +66,7 @@ public class TableInfoHandler extends DefaultChartHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, CalciteProvider provider) {
|
||||
public <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider) {
|
||||
var chartExtRequest = view.getChartExtRequest();
|
||||
var dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
|
||||
List<String> dsList = new ArrayList<>();
|
||||
@ -78,7 +78,7 @@ public class TableInfoHandler extends DefaultChartHandler {
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDsList(dsMap);
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var allFields = getAllChartFields(view);
|
||||
var allFields = (List<ChartViewFieldDTO>) filterResult.getContext().get("allFields");
|
||||
PageInfo pageInfo = new PageInfo();
|
||||
pageInfo.setGoPage(chartExtRequest.getGoPage());
|
||||
if (StringUtils.equalsIgnoreCase(view.getResultMode(), "custom")) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
package io.dataease.chart.manage;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.filter.FilterTreeItem;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.utils.SQLUtils;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -3,7 +3,7 @@ package io.dataease.chart.manage;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.dataease.api.chart.dto.*;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
||||
|
@ -1,9 +1,7 @@
|
||||
package io.dataease.chart.utils;
|
||||
|
||||
import io.dataease.api.chart.dto.*;
|
||||
import io.dataease.extensions.view.dto.ChartDimensionDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.i18n.Lang;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.IDUtils;
|
||||
@ -1383,7 +1381,7 @@ public class ChartDataBuild {
|
||||
axisChartDataDTO.setName(xField.toString());
|
||||
|
||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||
List<io.dataease.extensions.view.dto.ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||
|
||||
for (int j = 0; j < xAxis.size(); j++) {
|
||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.dataset.manage;
|
||||
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.api.chart.dto.DeSortField;
|
||||
import io.dataease.api.dataset.dto.BaseTreeNodeDTO;
|
||||
import io.dataease.api.dataset.dto.EnumValueRequest;
|
||||
@ -31,13 +30,11 @@ import io.dataease.engine.trans.*;
|
||||
import io.dataease.engine.utils.SQLUtils;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceRequest;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.dto.TableField;
|
||||
import io.dataease.extensions.datasource.dto.*;
|
||||
import io.dataease.extensions.view.dto.ChartExtFilterDTO;
|
||||
import io.dataease.extensions.view.dto.ChartExtRequest;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ColumnPermissionItem;
|
||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.i18n.Translator;
|
||||
|
@ -20,8 +20,8 @@ import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.license.config.XpackInteract;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package io.dataease.dataset.manage;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.dto.ChartExtFilterDTO;
|
||||
import io.dataease.extensions.view.dto.ChartExtRequest;
|
||||
@ -18,7 +19,6 @@ import io.dataease.dataset.utils.TableUtils;
|
||||
import io.dataease.datasource.dao.auto.entity.CoreDatasource;
|
||||
import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
|
||||
import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package io.dataease.dataset.manage;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetGroupMapper;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper;
|
||||
@ -11,7 +10,8 @@ import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.func.FunctionConstant;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ColumnPermissionItem;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.AuthUtils;
|
||||
|
@ -2,8 +2,6 @@ package io.dataease.dataset.manage;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.api.chart.dto.ColumnPermissions;
|
||||
import io.dataease.api.permissions.dataset.api.ColumnPermissionsApi;
|
||||
import io.dataease.api.permissions.dataset.api.RowPermissionsApi;
|
||||
import io.dataease.api.permissions.dataset.dto.*;
|
||||
@ -11,9 +9,11 @@ import io.dataease.api.permissions.user.vo.UserFormVO;
|
||||
import io.dataease.api.permissions.variable.dto.SysVariableValueDto;
|
||||
import io.dataease.api.permissions.variable.dto.SysVariableValueItem;
|
||||
import io.dataease.constant.ColumnPermissionConstants;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ColumnPermissionItem;
|
||||
import io.dataease.extensions.view.dto.ColumnPermissions;
|
||||
import io.dataease.extensions.view.dto.DatasetRowPermissionsTreeItem;
|
||||
import io.dataease.extensions.view.dto.DatasetRowPermissionsTreeObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.utils.AuthUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -7,7 +7,7 @@ import io.dataease.api.dataset.dto.PreviewSqlDTO;
|
||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
||||
import io.dataease.dataset.manage.DatasetDataManage;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.utils.LogUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
@ -6,7 +6,7 @@ import io.dataease.api.dataset.engine.SQLFunctionDTO;
|
||||
import io.dataease.api.dataset.engine.SQLFunctionsEnum;
|
||||
import io.dataease.dataset.manage.DatasetDataManage;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
@ -5,7 +5,7 @@ import io.dataease.extensions.view.filter.FilterTreeItem;
|
||||
import io.dataease.extensions.view.filter.FilterTreeObj;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.constant.SqlPlaceholderConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
|
@ -4,7 +4,7 @@ import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
|
@ -4,7 +4,7 @@ import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.dto.ChartExtFilterDTO;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.constant.SqlPlaceholderConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
|
@ -3,7 +3,7 @@ package io.dataease.engine.trans;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
|
@ -4,7 +4,7 @@ import io.dataease.api.chart.dto.DeSortField;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
|
@ -4,7 +4,7 @@ import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
|
@ -6,7 +6,7 @@ import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetRowPermissionsTreeItem;
|
||||
import io.dataease.extensions.view.dto.DatasetRowPermissionsTreeObj;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.constant.SqlPlaceholderConstants;
|
||||
|
@ -5,8 +5,8 @@ import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.engine.constant.SqlPlaceholderConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.model.SQLObj;
|
||||
import io.dataease.i18n.Translator;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
|
@ -2,7 +2,7 @@ package io.dataease.visualization.dao.ext.mapper;
|
||||
|
||||
import io.dataease.api.visualization.dto.LinkageInfoDTO;
|
||||
import io.dataease.api.visualization.dto.VisualizationLinkageDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.visualization.dao.auto.entity.VisualizationLinkage;
|
||||
import io.dataease.visualization.dao.auto.entity.VisualizationLinkageField;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
@ -9,7 +9,7 @@ import io.dataease.api.visualization.response.VisualizationLinkJumpBaseResponse;
|
||||
import io.dataease.api.visualization.vo.VisualizationViewTableVO;
|
||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.utils.AuthUtils;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.IDUtils;
|
||||
|
@ -36,6 +36,7 @@ i18n_not_full=Full join not support.
|
||||
|
||||
i18n_field_circular_ref=Field has Circular Reference
|
||||
|
||||
i18n_chart_not_handler=Cannot handle chart:
|
||||
i18n_chart_delete=Chart is not exists
|
||||
i18n_no_ds=Dataset is deleted or no permission
|
||||
i18n_datasource_delete=Datasource is deleted
|
||||
|
@ -47,6 +47,7 @@ i18n_not_full=\u5F53\u524D\u6570\u636E\u6E90\u4E0D\u652F\u6301\u5168\u8FDE\u63A5
|
||||
|
||||
i18n_field_circular_ref=\u5B57\u6BB5\u5B58\u5728\u5FAA\u73AF\u5F15\u7528
|
||||
|
||||
i18n_chart_not_handler=\u65E0\u6CD5\u5904\u7406\u8BE5\u56FE\u8868\u7C7B\u578B
|
||||
i18n_chart_delete=\u56FE\u8868\u4E0D\u5B58\u5728
|
||||
i18n_no_ds=\u6570\u636E\u96C6\u4E0D\u5B58\u5728\u6216\u6CA1\u6709\u6743\u9650
|
||||
i18n_datasource_delete=\u6570\u636E\u6E90\u4E0D\u5B58\u5728
|
||||
|
@ -17,7 +17,7 @@ i18n_menu.datasource=\u6578\u64DA\u6E90
|
||||
i18n_menu.user=\u7528\u6236\u7BA1\u7406
|
||||
i18n_menu.org=\u7D44\u7E54\u7BA1\u7406
|
||||
i18n_menu.auth=\u6B0A\u9650\u914D\u7F6E
|
||||
i18n_menu.sysVariable=\u7cfb\u7edf\u53d8\u91cf
|
||||
i18n_menu.sysVariable=\u7CFB\u7EDF\u53D8\u91CF
|
||||
i18n_field_name_repeat=\u5177\u6709\u91CD\u8907\u7684\u6B04\u4F4D\u540D\u7A31\uFF1A
|
||||
i18n_pid_not_eq_id=\u79FB\u52D5\u76EE\u6A19\u4E0D\u80FD\u662F\u81EA\u5DF1\u6216\u5B50\u76EE\u9304
|
||||
i18n_ds_name_exists=\u8A72\u5206\u7D44\u4E0B\u540D\u7A31\u91CD\u5FA9
|
||||
@ -33,10 +33,11 @@ i18n_table_duplicate=\u76F8\u540C\u7BC0\u9EDE\u9700\u91CD\u65B0\u62D6\u5165\u624
|
||||
i18n_no_column_permission=\u6C92\u6709\u5217\u6B0A\u9650
|
||||
i18n_fetch_error=SQL\u57F7\u884C\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u8868\u3001\u5B57\u6BB5\u3001\u95DC\u806F\u95DC\u7CFB\u7B49\u4FE1\u606F\u662F\u5426\u6B63\u78BA\u4E26\u91CD\u65B0\u7DE8\u8F2F\u3002
|
||||
i18n_no_datasource_permission=\u65E0\u6570\u636E\u6E90\u8BBF\u95EE\u6743\u9650
|
||||
i18n_not_full=\u7576\u524d\u6578\u64da\u6e90\u4e0d\u652f\u6301\u5168\u9023\u63a5
|
||||
i18n_not_full=\u7576\u524D\u6578\u64DA\u6E90\u4E0D\u652F\u6301\u5168\u9023\u63A5
|
||||
|
||||
i18n_field_circular_ref=\u5B57\u6BB5\u5B58\u5728\u5FAA\u74B0\u5F15\u7528
|
||||
|
||||
i18n_chart_not_handler=\u7121\u6CD5\u8655\u7406\u8A72\u5716\u8868\u985E\u578B
|
||||
i18n_chart_delete=\u8996\u5716\u4E0D\u5B58\u5728
|
||||
i18n_no_ds=\u6578\u64DA\u96C6\u4E0D\u5B58\u5728\u6216\u6C92\u6709\u6B0A\u9650
|
||||
i18n_datasource_delete=\u6578\u64DA\u6E90\u4E0D\u5B58\u5728
|
||||
|
@ -379,7 +379,7 @@
|
||||
<result column="table_id" property="tableId"/>
|
||||
<result column="type" property="type"/>
|
||||
<result column="render" property="render"/>
|
||||
<collection property="tableFields" ofType="io.dataease.extensions.view.dto.DatasetTableFieldDTO">
|
||||
<collection property="tableFields" ofType="io.dataease.extensions.datasource.dto.DatasetTableFieldDTO">
|
||||
<result column="field_id" jdbcType="VARCHAR" property="id"/>
|
||||
<result column="origin_name" jdbcType="VARCHAR" property="originName"/>
|
||||
<result column="field_name" jdbcType="VARCHAR" property="name"/>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<result column="type" jdbcType="VARCHAR" property="type"/>
|
||||
<result column="dv_id" jdbcType="BIGINT" property="dvId"/>
|
||||
<collection property="tableFields"
|
||||
ofType="io.dataease.extensions.view.dto.DatasetTableFieldDTO">
|
||||
ofType="io.dataease.extensions.datasource.dto.DatasetTableFieldDTO">
|
||||
<result column="field_id" jdbcType="BIGINT" property="id"/>
|
||||
<result column="origin_name" jdbcType="VARCHAR" property="originName"/>
|
||||
<result column="field_name" jdbcType="VARCHAR" property="name"/>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.dataease.visualization.dao.ext.mapper.ExtVisualizationLinkageMapper">
|
||||
|
||||
<resultMap id="TableFieldMap" type="io.dataease.extensions.view.dto.DatasetTableFieldDTO">
|
||||
<resultMap id="TableFieldMap" type="io.dataease.extensions.datasource.dto.DatasetTableFieldDTO">
|
||||
<result column="id" jdbcType="BIGINT" property="id"/>
|
||||
<result column="table_id" jdbcType="BIGINT" property="datasetTableId"/>
|
||||
<result column="origin_name" jdbcType="VARCHAR" property="originName"/>
|
||||
@ -17,7 +17,7 @@
|
||||
<result column="targetViewName" jdbcType="VARCHAR" property="targetViewName"/>
|
||||
<result column="sourceViewId" jdbcType="BIGINT" property="sourceViewId"/>
|
||||
<result column="linkageActive" property="linkageActive"/>
|
||||
<collection property="targetViewFields" ofType="io.dataease.extensions.view.dto.DatasetTableFieldDTO" column="table_id"
|
||||
<collection property="targetViewFields" ofType="io.dataease.extensions.datasource.dto.DatasetTableFieldDTO" column="table_id"
|
||||
select="queryTableField">
|
||||
</collection>
|
||||
<collection property="linkageFields" ofType="io.dataease.api.visualization.vo.VisualizationLinkageFieldVO">
|
||||
|
@ -94,7 +94,16 @@ const groupActiveChange = category => {
|
||||
:class="props.type === chartInfo.value ? 'item-active' : ''"
|
||||
:data-id="'UserView&' + chartInfo.value"
|
||||
>
|
||||
<Icon class-name="item-top-icon" :name="chartInfo.icon" />
|
||||
<Icon
|
||||
class-name="item-top-icon"
|
||||
v-if="chartInfo['isPlugin']"
|
||||
:static-content="chartInfo.icon"
|
||||
/>
|
||||
<Icon
|
||||
v-else
|
||||
class-name="item-top-icon"
|
||||
:name="chartInfo.icon + (props.themes === 'dark' ? '-dark' : '')"
|
||||
/>
|
||||
</div>
|
||||
<div class="item-bottom">
|
||||
<span>{{ chartInfo.title }}</span>
|
||||
|
@ -10,7 +10,9 @@ import {
|
||||
onBeforeMount,
|
||||
provide,
|
||||
h,
|
||||
unref
|
||||
unref,
|
||||
getCurrentInstance,
|
||||
onMounted
|
||||
} from 'vue'
|
||||
import Icon from '@/components/icon-custom/src/Icon.vue'
|
||||
import type { FormInstance, FormRules } from 'element-plus-secondary'
|
||||
@ -559,7 +561,7 @@ const showAggregate = computed<boolean>(() => {
|
||||
|
||||
const addAxis = (e, axis: AxisType) => {
|
||||
recordSnapshotInfo('calcData')
|
||||
const axisSpec = chartViewInstance.value.axisConfig[axis]
|
||||
const axisSpec = chartViewInstance.value?.axisConfig[axis]
|
||||
if (!axisSpec) {
|
||||
return
|
||||
}
|
||||
@ -761,9 +763,7 @@ const calcData = (view, resetDrill = false, updateQuery = '') => {
|
||||
})
|
||||
}
|
||||
}
|
||||
const updateChartDataTest = arg => {
|
||||
updateChartData(arg)
|
||||
}
|
||||
|
||||
const updateChartData = view => {
|
||||
curComponent.value['state'] = 'ready'
|
||||
calcData(view, true, 'updateQuery')
|
||||
@ -780,6 +780,18 @@ const onAreaChange = val => {
|
||||
}
|
||||
|
||||
const onTypeChange = (render, type) => {
|
||||
const viewConf = getViewConfig(type)
|
||||
console.log(view.value)
|
||||
if (viewConf.isPlugin) {
|
||||
view.value.plugin = {
|
||||
isPlugin: true,
|
||||
staticMap: viewConf.staticMap
|
||||
}
|
||||
view.value.isPlugin = true
|
||||
} else {
|
||||
view.value.isPlugin = false
|
||||
delete view.value.plugin
|
||||
}
|
||||
view.value.render = render
|
||||
view.value.type = type
|
||||
emitter.emit('chart-type-change')
|
||||
@ -1568,6 +1580,16 @@ const deleteChartFieldItem = id => {
|
||||
fieldLoading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
const callMethod = (method, ...args) => {
|
||||
editorInstance?.setupState[method](...args)
|
||||
}
|
||||
|
||||
let editorInstance = null
|
||||
onMounted(() => {
|
||||
editorInstance = getCurrentInstance()
|
||||
console.log(editorInstance)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -1621,7 +1643,8 @@ const deleteChartFieldItem = id => {
|
||||
:dimension="state.dimension"
|
||||
:quota="state.quota"
|
||||
:themes="themes"
|
||||
@update-chart-data-test="updateChartDataTest"
|
||||
:emitter="emitter"
|
||||
:call-method="callMethod"
|
||||
/>
|
||||
<el-tabs
|
||||
v-else
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
|
@ -1,6 +1,7 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
|
||||
import io.dataease.extensions.view.dto.ChartDimensionDTO;
|
||||
import io.dataease.extensions.view.dto.ChartQuotaDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -6,7 +6,7 @@ import io.dataease.api.dataset.dto.EnumValueRequest;
|
||||
import io.dataease.api.dataset.dto.PreviewSqlDTO;
|
||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
@ -3,7 +3,7 @@ package io.dataease.api.dataset;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.api.dataset.dto.MultFieldValuesRequest;
|
||||
import io.dataease.api.dataset.engine.SQLFunctionDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -2,7 +2,7 @@ package io.dataease.api.dataset.union;
|
||||
|
||||
import io.dataease.api.chart.dto.DeSortField;
|
||||
import io.dataease.api.dataset.dto.DatasetNodeDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.dataease.api.dataset.union;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.dataease.api.dataset.union;
|
||||
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -5,7 +5,7 @@ import io.dataease.api.visualization.dto.VisualizationComponentDTO;
|
||||
import io.dataease.api.visualization.dto.VisualizationLinkJumpDTO;
|
||||
import io.dataease.api.visualization.request.VisualizationLinkJumpBaseRequest;
|
||||
import io.dataease.api.visualization.response.VisualizationLinkJumpBaseResponse;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.api.visualization.vo.VisualizationLinkageFieldVO;
|
||||
import io.dataease.api.visualization.vo.VisualizationLinkageVO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package io.dataease.api.visualization.dto;
|
||||
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -2,7 +2,7 @@ package io.dataease.api.visualization.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -130,12 +130,6 @@
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>extensions-datasource</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@ -16,12 +16,5 @@
|
||||
<maven.compiler.target>21</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>extensions-view</artifactId>
|
||||
<version>${dataease.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@ -2,7 +2,6 @@ package io.dataease.extensions.datasource.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.extensions.view.dto;
|
||||
package io.dataease.extensions.datasource.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
@ -11,10 +11,17 @@
|
||||
|
||||
<artifactId>extensions-view</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.dataease</groupId>
|
||||
<artifactId>extensions-datasource</artifactId>
|
||||
<version>${dataease.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<maven.compiler.source>21</maven.compiler.source>
|
||||
<maven.compiler.target>21</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import io.dataease.extensions.view.dto.ChartDimensionDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import io.dataease.extensions.view.dto.ChartDimensionDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
@ -1,5 +1,6 @@
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
@ -3,6 +3,7 @@ package io.dataease.extensions.view.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.dataease.api.chart.dto;
|
||||
package io.dataease.extensions.view.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
@ -1,7 +1,7 @@
|
||||
package io.dataease.extensions.view.factory;
|
||||
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.view.template.PluginsChartTemplate;
|
||||
import io.dataease.extensions.view.plugin.AbstractChartPlugin;
|
||||
import io.dataease.extensions.view.vo.XpackPluginsViewVO;
|
||||
import io.dataease.license.utils.LicenseUtil;
|
||||
import io.dataease.license.utils.LogUtil;
|
||||
@ -13,16 +13,16 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class PluginsChartFactory {
|
||||
|
||||
private static final Map<String, PluginsChartTemplate> templateMap = new ConcurrentHashMap<>();
|
||||
private static final Map<String, AbstractChartPlugin> templateMap = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
public static PluginsChartTemplate getInstance(String render, String type) {
|
||||
public static AbstractChartPlugin getInstance(String render, String type) {
|
||||
if (!LicenseUtil.licenseValid()) DEException.throwException("插件功能只对企业版本可用!");
|
||||
String key = render + "_" + type;
|
||||
return templateMap.get(key);
|
||||
}
|
||||
|
||||
public static void loadTemplate(String render, String type, PluginsChartTemplate template) {
|
||||
public static void loadPlugin(String render, String type, AbstractChartPlugin template) {
|
||||
if (!LicenseUtil.licenseValid()) DEException.throwException("插件功能只对企业版本可用!");
|
||||
String key = render + "_" + type;
|
||||
if (templateMap.containsKey(key)) return;
|
||||
@ -38,6 +38,6 @@ public class PluginsChartFactory {
|
||||
|
||||
public static List<XpackPluginsViewVO> getViewConfigList() {
|
||||
if (!LicenseUtil.licenseValid()) DEException.throwException("插件功能只对企业版本可用!");
|
||||
return templateMap.values().stream().map(PluginsChartTemplate::getConfig).toList();
|
||||
return templateMap.values().stream().map(AbstractChartPlugin::getConfig).toList();
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package io.dataease.extensions.view.filter;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -0,0 +1,82 @@
|
||||
package io.dataease.extensions.view.plugin;
|
||||
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import io.dataease.extensions.view.factory.PluginsChartFactory;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.vo.XpackPluginsViewVO;
|
||||
import io.dataease.license.utils.JsonUtil;
|
||||
import io.dataease.plugins.template.DataEasePlugin;
|
||||
import io.dataease.plugins.vo.DataEasePluginVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class AbstractChartPlugin implements DataEasePlugin {
|
||||
|
||||
@Override
|
||||
public void loadPlugin() {
|
||||
XpackPluginsViewVO viewConfig = getConfig();
|
||||
PluginsChartFactory.loadPlugin(viewConfig.getRender(), viewConfig.getCategory(), this);
|
||||
}
|
||||
|
||||
|
||||
public XpackPluginsViewVO getConfig() {
|
||||
DataEasePluginVO pluginInfo = null;
|
||||
try {
|
||||
pluginInfo = getPluginInfo();
|
||||
} catch (Exception e) {
|
||||
DEException.throwException(e);
|
||||
}
|
||||
String config = pluginInfo.getConfig();
|
||||
XpackPluginsViewVO vo = JsonUtil.parseObject(config, XpackPluginsViewVO.class);
|
||||
vo.setIcon(pluginInfo.getIcon());
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理视图需要用到的轴字段,大部分图表都聚合成两个字段,X 和 Y。
|
||||
*
|
||||
* @param view 视图对象
|
||||
* @param <T> 泛化的返回类型,可继承。
|
||||
* @return 处理后的轴和过程变量,变量放到整个流程上下文中。
|
||||
*/
|
||||
public abstract <T extends AxisFormatResult> T formatAxis(ChartViewDTO view);
|
||||
|
||||
/**
|
||||
* 处理视图的过滤条件,包括联动、跳转、过滤、外部参数、下钻等等。
|
||||
* DE 本身有标准的处理流程将所有的条件处理成统一的过滤列表,如果有额外的条件需要处理可在这边操作,例如子维度下钻。
|
||||
*
|
||||
* @param view 视图对象
|
||||
* @param filterList DE 标准化处理后的过滤条件列表。
|
||||
* @param formatResult 处理后的轴和过程变量,变量放到整个流程上下文中。
|
||||
* @param <T> 泛化的返回类型,可继承。
|
||||
* @return 处理后的过滤条件列表和过程变量,变量放到整个流程上下文中。
|
||||
*/
|
||||
public abstract <T extends CustomFilterResult> T customFilter(ChartViewDTO view, List<ChartExtFilterDTO> filterList, AxisFormatResult formatResult);
|
||||
|
||||
/**
|
||||
* 计算视图的最终结果,各个参数使用方式可参考主工程。
|
||||
*
|
||||
* @param view 视图对象
|
||||
* @param formatResult 轴字段处理结果
|
||||
* @param filterResult 过滤条件处理结果
|
||||
* @param sqlMap SQL
|
||||
* @param sqlMeta SQL元数据,用于生成最终SQL
|
||||
* @param provider 数据源查询工具
|
||||
* @param <T> 泛化的过滤列表,和上面一致。
|
||||
* @return 视图数据计算结果
|
||||
*/
|
||||
public abstract <T extends ChartCalcDataResult> T calcChartResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, Map<String, Object> sqlMap, SQLMeta sqlMeta, Provider provider);
|
||||
|
||||
/**
|
||||
* 构建视图,将计算结果处理成最终视图。
|
||||
* @param view 原视图对象
|
||||
* @param calcResult 计算结果
|
||||
* @param formatResult 轴字段处理结果
|
||||
* @param filterResult 过滤条件处理结果
|
||||
* @return 返回前端的视图,建议数据放在 data 中,过滤条件放在 filter 中,其他字段可自行添加,可参考主工程。
|
||||
*/
|
||||
public abstract ChartViewDTO buildChart(ChartViewDTO view, ChartCalcDataResult calcResult, AxisFormatResult formatResult, CustomFilterResult filterResult);
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
package io.dataease.extensions.view.template;
|
||||
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.factory.PluginsChartFactory;
|
||||
import io.dataease.extensions.view.model.SQLMeta;
|
||||
import io.dataease.extensions.view.vo.XpackPluginsViewVO;
|
||||
import io.dataease.license.utils.JsonUtil;
|
||||
import io.dataease.plugins.template.DataEasePlugin;
|
||||
import io.dataease.plugins.vo.DataEasePluginVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class PluginsChartTemplate implements DataEasePlugin {
|
||||
|
||||
@Override
|
||||
public void loadPlugin() {
|
||||
XpackPluginsViewVO viewConfig = getConfig();
|
||||
PluginsChartFactory.loadTemplate(viewConfig.getRender(), viewConfig.getCategory(), this);
|
||||
}
|
||||
|
||||
|
||||
public XpackPluginsViewVO getConfig() {
|
||||
DataEasePluginVO pluginInfo = null;
|
||||
try {
|
||||
pluginInfo = getPluginInfo();
|
||||
} catch (Exception e) {
|
||||
DEException.throwException(e);
|
||||
}
|
||||
String config = pluginInfo.getConfig();
|
||||
XpackPluginsViewVO vo = JsonUtil.parseObject(config, XpackPluginsViewVO.class);
|
||||
vo.setIcon(pluginInfo.getIcon());
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
public abstract Map<String, List<ChartViewFieldDTO>> formatChartAxis(ChartViewDTO view);
|
||||
|
||||
|
||||
public abstract ChartViewDTO calcResult(SQLMeta sqlMeta, List<ChartViewFieldDTO> xaxis, List<ChartViewFieldDTO> yaxis,
|
||||
List<DatasetTableFieldDTO> allFields, boolean crossDs, Map<Long, String> dsTypeMap);
|
||||
|
||||
}
|
@ -1,9 +1,11 @@
|
||||
package io.dataease.extensions.view.util;
|
||||
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldDTO;
|
||||
import io.dataease.extensions.view.dto.*;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
|
||||
public class ChartDataUtil {
|
||||
@ -84,4 +86,175 @@ public class ChartDataUtil {
|
||||
res.addAll(subArr);
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> fields, ChartViewDTO view, List<String[]> data, Map<String, ColumnPermissionItem> desensitizationList) {
|
||||
Map<String, Object> map = new TreeMap<>();
|
||||
List<Map<String, Object>> tableRow = new ArrayList<>();
|
||||
data.forEach(ele -> {
|
||||
Map<String, Object> d = new HashMap<>();
|
||||
for (int i = 0; i < fields.size(); i++) {
|
||||
if (ObjectUtils.isNotEmpty(desensitizationList.keySet()) && desensitizationList.keySet().contains(fields.get(i).getDataeaseName())) {
|
||||
d.put(fields.get(i).getDataeaseName(), desensitizationValue(desensitizationList.get(fields.get(i).getDataeaseName()), String.valueOf(ele[i])));
|
||||
continue;
|
||||
}
|
||||
if (i == ele.length) break;
|
||||
ChartViewFieldDTO chartViewFieldDTO = fields.get(i);
|
||||
if (chartViewFieldDTO.getDeType() == 0 || chartViewFieldDTO.getDeType() == 1 || chartViewFieldDTO.getDeType() == 5) {
|
||||
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? "" : ele[i]);
|
||||
} else if (chartViewFieldDTO.getDeType() == 2 || chartViewFieldDTO.getDeType() == 3 || chartViewFieldDTO.getDeType() == 4) {
|
||||
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? null : new BigDecimal(ele[i]).setScale(8, RoundingMode.HALF_UP));
|
||||
}
|
||||
}
|
||||
tableRow.add(d);
|
||||
});
|
||||
map.put("fields", fields);
|
||||
map.put("tableRow", tableRow);
|
||||
return map;
|
||||
}
|
||||
|
||||
public static String desensitizationValue(ColumnPermissionItem columnPermissionItem, String originStr) {
|
||||
String desensitizationStr = "";
|
||||
if (!columnPermissionItem.getDesensitizationRule().getBuiltInRule().toString().equalsIgnoreCase("custom")) {
|
||||
switch (columnPermissionItem.getDesensitizationRule().getBuiltInRule()) {
|
||||
case CompleteDesensitization:
|
||||
desensitizationStr = ColumnPermissionItem.CompleteDesensitization;
|
||||
break;
|
||||
case KeepMiddleThreeCharacters:
|
||||
if (StringUtils.isEmpty(originStr) || originStr.length() < 4) {
|
||||
desensitizationStr = ColumnPermissionItem.KeepMiddleThreeCharacters;
|
||||
} else {
|
||||
desensitizationStr = "***" + StringUtils.substring(originStr, originStr.length() / 2 - 1, originStr.length() / 2 + 2) + "***";
|
||||
}
|
||||
break;
|
||||
case KeepFirstAndLastThreeCharacters:
|
||||
if (StringUtils.isEmpty(originStr) || originStr.length() < 7) {
|
||||
desensitizationStr = ColumnPermissionItem.KeepFirstAndLastThreeCharacters;
|
||||
} else {
|
||||
desensitizationStr = StringUtils.substring(originStr, 0, 3) + "***" + StringUtils.substring(originStr, originStr.length() - 3, originStr.length());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
} else {
|
||||
switch (columnPermissionItem.getDesensitizationRule().getCustomBuiltInRule()) {
|
||||
case RetainBeforeMAndAfterN:
|
||||
if (StringUtils.isEmpty(originStr) || originStr.length() < columnPermissionItem.getDesensitizationRule().getM() + columnPermissionItem.getDesensitizationRule().getN()) {
|
||||
desensitizationStr = String.join("", Collections.nCopies(columnPermissionItem.getDesensitizationRule().getM(), "X")) + "***" + String.join("", Collections.nCopies(columnPermissionItem.getDesensitizationRule().getN(), "X"));
|
||||
} else {
|
||||
desensitizationStr = StringUtils.substring(originStr, 0, columnPermissionItem.getDesensitizationRule().getM()) + "***" + StringUtils.substring(originStr, originStr.length() - columnPermissionItem.getDesensitizationRule().getN(), originStr.length());
|
||||
}
|
||||
break;
|
||||
case RetainMToN:
|
||||
if (columnPermissionItem.getDesensitizationRule().getM() > columnPermissionItem.getDesensitizationRule().getN()) {
|
||||
desensitizationStr = "*** ***";
|
||||
break;
|
||||
}
|
||||
if (StringUtils.isEmpty(originStr) || originStr.length() < columnPermissionItem.getDesensitizationRule().getM()) {
|
||||
desensitizationStr = "*** ***";
|
||||
break;
|
||||
}
|
||||
if (columnPermissionItem.getDesensitizationRule().getM() == 1) {
|
||||
desensitizationStr = StringUtils.substring(originStr, columnPermissionItem.getDesensitizationRule().getM() - 1, columnPermissionItem.getDesensitizationRule().getN()) + "***";
|
||||
break;
|
||||
} else {
|
||||
desensitizationStr = "***" + StringUtils.substring(originStr, columnPermissionItem.getDesensitizationRule().getM() - 1, columnPermissionItem.getDesensitizationRule().getN()) + "***";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
return desensitizationStr;
|
||||
}
|
||||
|
||||
public static Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewDTO view, List<String[]> data, boolean isDrill) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
||||
List<AxisChartDataAntVDTO> dataList = new ArrayList<>();
|
||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||
String[] row = data.get(i1);
|
||||
|
||||
StringBuilder a = new StringBuilder();
|
||||
if (isDrill) {
|
||||
a.append(row[xAxis.size() - 1]);
|
||||
} else {
|
||||
for (int i = 0; i < xAxis.size(); i++) {
|
||||
if (i == xAxis.size() - 1) {
|
||||
a.append(row[i]);
|
||||
} else {
|
||||
a.append(row[i]).append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
// yAxis最后的数据对应extLabel和extTooltip,将他们从yAxis中去掉,同时转换成动态值
|
||||
int size = xAxis.size() + yAxis.size();
|
||||
int extSize = view.getExtLabel().size() + view.getExtTooltip().size();
|
||||
|
||||
for (int i = xAxis.size(); i < size - extSize; i++) {
|
||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||
axisChartDataDTO.setField(a.toString());
|
||||
axisChartDataDTO.setName(a.toString());
|
||||
|
||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||
|
||||
for (int j = 0; j < xAxis.size(); j++) {
|
||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||
chartDimensionDTO.setValue(row[j]);
|
||||
dimensionList.add(chartDimensionDTO);
|
||||
}
|
||||
axisChartDataDTO.setDimensionList(dimensionList);
|
||||
|
||||
int j = i - xAxis.size();
|
||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||
quotaList.add(chartQuotaDTO);
|
||||
axisChartDataDTO.setQuotaList(quotaList);
|
||||
try {
|
||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||
} catch (Exception e) {
|
||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||
}
|
||||
axisChartDataDTO.setCategory(StringUtils.defaultIfBlank(yAxis.get(j).getChartShowName(), yAxis.get(j).getName()));
|
||||
buildDynamicValue(view, axisChartDataDTO, row, size, extSize);
|
||||
dataList.add(axisChartDataDTO);
|
||||
}
|
||||
}
|
||||
map.put("data", dataList);
|
||||
return map;
|
||||
}
|
||||
|
||||
// 计算动态标签和提示
|
||||
private static void buildDynamicValue(ChartViewDTO view, AxisChartDataAntVDTO axisChartDataDTO, String[] row, int size, int extSize) {
|
||||
List<DynamicValueDTO> dynamicLabelValue = new ArrayList<>();
|
||||
List<DynamicValueDTO> dynamicTooltipValue = new ArrayList<>();
|
||||
// 计算动态标签和提示
|
||||
if (ObjectUtils.isNotEmpty(view.getExtLabel())) {
|
||||
for (int ii = 0; ii < view.getExtLabel().size(); ii++) {
|
||||
DynamicValueDTO valueDTO = new DynamicValueDTO();
|
||||
ChartViewFieldDTO chartViewFieldDTO = view.getExtLabel().get(ii);
|
||||
BigDecimal value = StringUtils.isEmpty(row[ii + (size - extSize)]) ? null : new BigDecimal(row[ii + (size - extSize)]);
|
||||
valueDTO.setFieldId(chartViewFieldDTO.getId());
|
||||
valueDTO.setValue(value);
|
||||
dynamicLabelValue.add(valueDTO);
|
||||
}
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(view.getExtTooltip())) {
|
||||
for (int ii = 0; ii < view.getExtTooltip().size(); ii++) {
|
||||
DynamicValueDTO valueDTO = new DynamicValueDTO();
|
||||
ChartViewFieldDTO chartViewFieldDTO = view.getExtTooltip().get(ii);
|
||||
BigDecimal value = StringUtils.isEmpty(row[ii + (size - extSize) + view.getExtLabel().size()]) ? null : new BigDecimal(row[ii + (size - extSize) + view.getExtLabel().size()]);
|
||||
valueDTO.setFieldId(chartViewFieldDTO.getId());
|
||||
valueDTO.setValue(value);
|
||||
dynamicTooltipValue.add(valueDTO);
|
||||
}
|
||||
}
|
||||
|
||||
axisChartDataDTO.setDynamicLabelValue(dynamicLabelValue);
|
||||
axisChartDataDTO.setDynamicTooltipValue(dynamicTooltipValue);
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.dataease.extensions.view.util;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewFieldBaseDTO;
|
||||
import io.dataease.extensions.view.dto.DatasetTableFieldDTO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -0,0 +1,24 @@
|
||||
package io.dataease.extensions.view.util;
|
||||
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Utils {
|
||||
|
||||
public static boolean isNeedOrder(List<String> dsList) {
|
||||
String[] list = {"sqlServer", "db2", "impala"};
|
||||
List<String> strings = Arrays.asList(list);
|
||||
List<String> collect = strings.stream().filter(dsList::contains).collect(Collectors.toList());
|
||||
return ObjectUtils.isNotEmpty(collect);
|
||||
}
|
||||
|
||||
public static boolean isCrossDs(Map<Long, DatasourceSchemaDTO> dsMap) {
|
||||
return dsMap.size() != 1;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user