diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/MetricServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/MetricServiceImpl.java index e77dff1cb..ac1506136 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/MetricServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/MetricServiceImpl.java @@ -114,14 +114,14 @@ public class MetricServiceImpl extends ServiceImpl private ChatQueryService chatQueryService; public MetricServiceImpl(MetricRepository metricRepository, - ModelService modelService, - AliasGenerateHelper aliasGenerateHelper, - CollectService collectService, - DataSetService dataSetService, - ApplicationEventPublisher eventPublisher, - DimensionService dimensionService, - TagMetaService tagMetaService, - @Lazy ChatQueryService chatQueryService) { + ModelService modelService, + AliasGenerateHelper aliasGenerateHelper, + CollectService collectService, + DataSetService dataSetService, + ApplicationEventPublisher eventPublisher, + DimensionService dimensionService, + TagMetaService tagMetaService, + @Lazy ChatQueryService chatQueryService) { this.metricRepository = metricRepository; this.modelService = modelService; this.aliasGenerateHelper = aliasGenerateHelper; @@ -453,7 +453,7 @@ public class MetricServiceImpl extends ServiceImpl } private boolean filterByField(List metricResps, MetricResp metricResp, - List fields, Set metricRespFiltered) { + List fields, Set metricRespFiltered) { if (MetricDefineType.METRIC.equals(metricResp.getMetricDefineType())) { List ids = metricResp.getMetricDefineByMetricParams().getMetrics() .stream().map(MetricParam::getId).collect(Collectors.toList()); @@ -758,8 +758,13 @@ public class MetricServiceImpl extends ServiceImpl } // Measure define will get from first measure List measures = modelResp.getModelDetail().getMeasures(); - MeasureParam firstMeasure = metricResp.getMetricDefineByMeasureParams() - .getMeasures().get(0); + List measureParams = metricResp.getMetricDefineByMeasureParams() + .getMeasures(); + if (CollectionUtils.isEmpty(measureParams)) { + return ""; + } + MeasureParam firstMeasure = measureParams.get(0); + for (Measure measure : measures) { if (measure.getBizName().equalsIgnoreCase(firstMeasure.getBizName())) { return measure.getAgg(); @@ -856,7 +861,7 @@ public class MetricServiceImpl extends ServiceImpl } private Set getModelIds(Set modelIdsByDomainId, List metricResps, - List dimensionResps) { + List dimensionResps) { Set result = new HashSet<>(); if (org.apache.commons.collections.CollectionUtils.isNotEmpty(modelIdsByDomainId)) { result.addAll(modelIdsByDomainId);