Merge pull request #6497 from ulleo/dev

fix: antv散点图钻取错误
This commit is contained in:
ulleo 2023-11-01 18:07:26 +08:00 committed by GitHub
commit b13ba4da82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 72 additions and 33 deletions

View File

@ -653,7 +653,7 @@ public class DorisQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -602,7 +602,7 @@ public class MysqlQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -633,7 +633,7 @@ public class CKQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -621,7 +621,7 @@ public class Db2QueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -627,7 +627,7 @@ public class EsQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -586,7 +586,7 @@ public class HiveQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -573,7 +573,7 @@ public class ImpalaQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -557,7 +557,7 @@ public class MongoQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -611,7 +611,7 @@ public class MysqlQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -676,7 +676,7 @@ public class OracleQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -614,7 +614,7 @@ public class PgQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -621,7 +621,7 @@ public class RedshiftQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -623,7 +623,7 @@ public class SqlserverQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -913,6 +913,9 @@ public class ChartViewService {
ChartDrillRequest head = drillRequestList.get(0);
Map<String, String> dimValMap = new HashMap<>();
head.getDimensionList().forEach(item -> dimValMap.put(item.getId(), item.getValue()));
boolean isAntVScatterNumberXAxis = CollectionUtils.isNotEmpty(xAxis) && StringUtils.equals(xAxis.get(0).getGroupType(), "q") && StringUtils.equalsIgnoreCase(view.getRender(), "antv");
for (int i = 0; i < drillRequestList.size(); i++) {
ChartDrillRequest request = drillRequestList.get(i);
ChartViewFieldDTO chartViewFieldDTO = drill.get(i);
@ -924,14 +927,23 @@ public class ChartViewService {
dimValMap.put(requestDimension.getId(), requestDimension.getValue());
if (!checkDrillExist(xAxis, extStack, requestDimension.getId(), view)) {
chartFieldMap.put(chartViewFieldDTO.getId(), chartViewFieldDTO);
xAxis.add(chartViewFieldDTO);
if (isAntVScatterNumberXAxis) {
extStack.add(chartViewFieldDTO);
} else {
xAxis.add(chartViewFieldDTO);
}
}
if (i == drillRequestList.size() - 1) {
ChartViewFieldDTO nextDrillField = drill.get(i + 1);
if (!checkDrillExist(xAxis, extStack, nextDrillField.getId(), view)) {
// get drill list first element's sort,then assign to nextDrillField
nextDrillField.setSort(getDrillSort(xAxis, drill.get(0)));
xAxis.add(nextDrillField);
if (isAntVScatterNumberXAxis) {
extStack.add(nextDrillField);
} else {
xAxis.add(nextDrillField);
}
}
}
}
@ -1656,6 +1668,20 @@ public class ChartViewService {
}
private boolean checkDrillExist(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> extStack, String fieldId, ChartViewWithBLOBs view) {
if (CollectionUtils.isNotEmpty(xAxis)) {
//针对判断 antv 散点图
if (StringUtils.equals(xAxis.get(0).getGroupType(), "q") && StringUtils.equalsIgnoreCase(view.getRender(), "antv")) {
if (CollectionUtils.isNotEmpty(extStack)) {
for (ChartViewFieldDTO x : extStack) {
if (StringUtils.equalsIgnoreCase(x.getId(), fieldId)) {
return true;
}
}
}
}
}
if (CollectionUtils.isNotEmpty(xAxis)) {
for (ChartViewFieldDTO x : xAxis) {
if (StringUtils.equalsIgnoreCase(x.getId(), fieldId)) {
@ -2129,7 +2155,7 @@ public class ChartViewService {
JSONObject jsonObject = JSONObject.parseObject(senior);
List<ChartSeniorAssistDTO> list = new ArrayList<>();
JSONObject threshold = jsonObject.getJSONObject("threshold");
if (ObjectUtils.isEmpty(threshold) || StringUtils.isBlank(threshold.toJSONString())){
if (ObjectUtils.isEmpty(threshold) || StringUtils.isBlank(threshold.toJSONString())) {
return list;
}
JSONArray tableThreshold = threshold.getJSONArray("tableThreshold");
@ -2161,7 +2187,7 @@ public class ChartViewService {
return list;
}
private boolean solveThresholdCondition(ChartSeniorAssistDTO fieldDTO, String tableId){
private boolean solveThresholdCondition(ChartSeniorAssistDTO fieldDTO, String tableId) {
String fieldId = fieldDTO.getFieldId();
String summary = fieldDTO.getSummary();
if (StringUtils.isEmpty(fieldId) || StringUtils.isEmpty(summary)) {
@ -2177,7 +2203,7 @@ public class ChartViewService {
return true;
}
private List<ChartSeniorAssistDTO> getConditionFields(ChartSeniorThresholdDTO condition){
private List<ChartSeniorAssistDTO> getConditionFields(ChartSeniorThresholdDTO condition) {
List<ChartSeniorAssistDTO> list = new ArrayList<>();
if (StringUtils.equalsIgnoreCase(condition.getField(), "0")) {
return list;

View File

@ -313,7 +313,7 @@ public class ChartDataBuild {
String[] row = data.get(i1);
StringBuilder a = new StringBuilder();
if (isDrill) {
if (isDrill && !xIsNumber) {
a.append(row[extGroupList.size() + xAxis.size() - 1]);
} else {
for (int i = extGroupList.size(); i < extGroupList.size() + xAxis.size(); i++) {
@ -329,7 +329,7 @@ public class ChartDataBuild {
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
if (xIsNumber) {
BigDecimal v = null;
Object v = a.toString();
try {
v = new BigDecimal(a.toString());
} catch (Exception ignore) {
@ -345,11 +345,20 @@ public class ChartDataBuild {
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);
if (xIsNumber && CollectionUtils.isNotEmpty(extGroupList)) {
for (int j = 0; j < extGroupList.size(); j++) {
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
chartDimensionDTO.setId(extGroupList.get(j).getId());
chartDimensionDTO.setValue(row[j]);
dimensionList.add(chartDimensionDTO);
}
} else {
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);
@ -365,7 +374,11 @@ public class ChartDataBuild {
}
if (CollectionUtils.isNotEmpty(extGroup) && xIsNumber) { //有分组时其实就是第一个
axisChartDataDTO.setCategory(row[0]);
if (isDrill) {
axisChartDataDTO.setCategory(row[extGroupList.size() - 1]);
} else {
axisChartDataDTO.setCategory(row[0]);
}
} else {
axisChartDataDTO.setCategory(yAxis.get(j).getName());
}
@ -988,7 +1001,7 @@ public class ChartDataBuild {
}
}
if (xIsNumber && CollectionUtils.isNotEmpty(extStack)) {
fields.add(extStack.get(0));
fields.addAll(extStack);
}
if (xIsNumber) {

View File

@ -725,7 +725,7 @@ public class DmQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -747,7 +747,7 @@ public class KingbaseQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -577,7 +577,7 @@ public class KylinQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -592,7 +592,7 @@ public class MaxcomputeQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -592,7 +592,7 @@ public class MongobiQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {

View File

@ -582,7 +582,7 @@ public class PrestoQueryProvider extends QueryProvider {
//然后是数值格式的情况还需要传extGroup
if (xIsNumber && CollectionUtils.isNotEmpty(extGroup)) {
xAxisList.add(extGroup.get(0));
xAxisList.addAll(extGroup);
}
if (CollectionUtils.isNotEmpty(xAxisList)) {