fix outofindexexception bug (#1325)

This commit is contained in:
JackLiang
2024-07-02 14:45:31 +08:00
committed by GitHub
parent 2f0ac2baf8
commit ccf41fa6db

View File

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