fix(仪表板、数据大屏): 修改应用模板使用后,数据集计算字段无效问题

This commit is contained in:
wangjiahao 2024-08-29 16:01:47 +08:00
parent ef28f31928
commit 2830b36f93

View File

@ -185,6 +185,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
List<DatasetGroupInfoDTO> newDsGroupInfo = new ArrayList<>();
Map<Long,Long> dsTableIdMap = new HashMap<>();
Map<Long,Long> dsTableFieldsIdMap = new HashMap<>();
List<CoreDatasetTableField> dsTableFieldsList = new ArrayList();
Map<Long,Long> datasourceIdMap = new HashMap<>();
Map<Long,Map<String,String>> dsTableNamesMap = new HashMap<>();
List<Long> newDatasourceId = new ArrayList<>();
@ -273,10 +274,19 @@ public class DataVisualizationServer implements DataVisualizationApi {
dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId()));
dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId()));
dsDsField.setId(newId);
coreDatasetTableFieldMapper.insert(dsDsField);
dsTableFieldsList.add(dsDsField);
dsTableFieldsIdMap.put(oldId,newId);
});
// dsTableFields 中存在计算字段在OriginName中 也需要替换
dsTableFieldsList.forEach(dsTableFields ->{
dsTableFieldsIdMap.forEach((key,value) ->{
dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(),value.toString()));
});
coreDatasetTableFieldMapper.insert(dsTableFields);
});
// 持久化数据集
newDsGroupInfo.forEach(dsGroup ->{
dsTableIdMap.forEach((key,value) ->{