diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 9f5ffd29cc..73e233c704 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -2865,4 +2865,8 @@ public class DataSetTableService { // custom 创建doris视图 createDorisView(TableUtils.tableName(tableId), sql); } + + public void updateDatasetInfo(DatasetTable datasetTable){ + datasetTableMapper.updateByPrimaryKeySelective(datasetTable); + } } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelAppTemplateService.java b/backend/src/main/java/io/dataease/service/panel/PanelAppTemplateService.java index 5fb7ef3a87..4015d9ac20 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelAppTemplateService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelAppTemplateService.java @@ -159,7 +159,7 @@ public class PanelAppTemplateService { } @Transactional(rollbackFor = Exception.class) - public String applyPanel(PanelGroupRequest panelInfo, Map chartViewsRealMap, String newPanelId, String panelName, String pid) { + public String applyPanel(PanelGroupRequest panelInfo, Map chartViewsRealMap,Map datasetsRealMap ,Map datasetFieldsRealMap, String newPanelId, String panelName, String pid) { panelInfo.setId(newPanelId); panelInfo.setPid(pid); panelInfo.setName(panelName); @@ -167,6 +167,12 @@ public class PanelAppTemplateService { panelInfo.setPanelType("self"); panelInfo.setCreateBy(AuthUtils.getUser().getUsername()); panelInfo.setCreateTime(System.currentTimeMillis()); + datasetsRealMap.forEach((k, v) -> { + panelInfo.setPanelData(panelInfo.getPanelData().replaceAll(k, v)); + }); + datasetFieldsRealMap.forEach((k, v) -> { + panelInfo.setPanelData(panelInfo.getPanelData().replaceAll(k, v)); + }); panelGroupService.newPanelFromApp(panelInfo, chartViewsRealMap); return newPanelId; } @@ -184,6 +190,7 @@ public class PanelAppTemplateService { datasetRequest.setOptFrom("appApply"); datasetRequest.setSyncType("sync_now"); DatasetTable newDataset = dataSetTableService.save(datasetRequest); + datasetTable.setId(newDataset.getId()); datasetsRealMap.put(oldId, newDataset.getId()); } return datasetsRealMap; @@ -233,6 +240,8 @@ public class PanelAppTemplateService { } else if (DatasetType.UNION.name().equalsIgnoreCase(datasetTable.getType())) { dataSetTableService.createAppUnionDorisView(datasetTable.getInfo(), datasetTable.getId()); } + }else{ + dataSetTableService.updateDatasetInfo(datasetTable); } } } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index a32f624813..d31f73cf27 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -873,7 +873,7 @@ public class PanelGroupService { panelAppTemplateService.applyViewsField(chartViewFieldsInfo,chartViewsRealMap,datasetsRealMap,datasetFieldsRealMap); - panelAppTemplateService.applyPanel(panelInfo,chartViewsRealMap,newPanelId, request.getPanelName(), request.getPanelGroupPid()); + panelAppTemplateService.applyPanel(panelInfo,chartViewsRealMap,datasetsRealMap,datasetFieldsRealMap,newPanelId, request.getPanelName(), request.getPanelGroupPid()); panelAppTemplateService.applyPanelView(panelViewsInfo,chartViewsRealMap,newPanelId);