refactor: 优化应用模板联动 (#18090)

This commit is contained in:
王嘉豪
2026-03-16 15:07:01 +08:00
committed by GitHub
parent a915a71eec
commit efaab7ff40
3 changed files with 11 additions and 4 deletions

View File

@@ -577,7 +577,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
viewInfo.setTableId(viewInfo.getSourceTableId());
}
});
Map<Long, Long> viewIdMap = appData.getViewIdMap();
// visualization_linkage
appData.getLinkages().forEach(visualizationLinkageVO -> {
Long oldId = visualizationLinkageVO.getId();
@@ -586,6 +586,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
BeanUtils.copyBean(visualizationLinkage, visualizationLinkageVO);
visualizationLinkage.setDvId(newDvId);
visualizationLinkage.setId(newId);
visualizationLinkage.setSourceViewId(viewIdMap.get(visualizationLinkage.getSourceViewId()));
linkageIdMap.put(oldId, newId);
});
@@ -610,6 +611,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
BeanUtils.copyBean(visualizationLinkJump, visualizationLinkJumpVO);
visualizationLinkJump.setId(newId);
visualizationLinkJump.setSourceDvId(newDvId);
visualizationLinkJump.setSourceViewId(viewIdMap.get(visualizationLinkJump.getSourceViewId()));
linkJumpIdMap.put(oldId, newId);
});
@@ -934,6 +936,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
try {
Long newDvId = IDUtils.snowID();
String newFrom = request.getNewFrom();
Map<Long,Long> viewIdsMap = new HashMap<>();
String templateStyle = null;
String templateData = null;
String dynamicData = null;
@@ -1027,6 +1030,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
VisualizationTemplateExtendDataDTO extendDataDTO = new VisualizationTemplateExtendDataDTO(newDvId, newViewId, originViewData);
extendDataInfo.put(newViewId, extendDataDTO);
templateData = templateData.replaceAll(originViewId, newViewId.toString());
viewIdsMap.put(Long.valueOf(originViewId),newViewId);
if (StringUtils.isNotEmpty(appDataStr)) {
chartView.setTableId(chartView.getSourceTableId());
appDataStr = appDataStr.replaceAll(originViewId, newViewId.toString());
@@ -1040,7 +1044,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
request.setCanvasStyleData(templateStyle);
//Store static resource into the server
staticResourceServer.saveFilesToServe(staticResource);
return new DataVisualizationVO(newDvId, name, dvType, version, templateStyle, templateData, appDataStr, canvasViewInfo, null);
return new DataVisualizationVO(newDvId, name, dvType, version, templateStyle, templateData, appDataStr, canvasViewInfo, null,viewIdsMap);
} catch (Exception e) {
e.printStackTrace();
DEException.throwException("解析错误");

View File

@@ -188,8 +188,7 @@ public class DataVisualizationVO implements Serializable {
*/
private VisualizationExport2AppVO appData;
public DataVisualizationVO(Long id, String name, String type, Integer version, String canvasStyleData, String componentData,String appDataStr, Map<Long, ChartViewDTO> canvasViewInfo, Map<Long, VisualizationTemplateExtendDataDTO> extendDataInfo) {
public DataVisualizationVO(Long id, String name, String type, Integer version, String canvasStyleData, String componentData,String appDataStr, Map<Long, ChartViewDTO> canvasViewInfo, Map<Long, VisualizationTemplateExtendDataDTO> extendDataInfo,Map<Long,Long> viewIdMap) {
this.id = id;
this.name = name;
this.type = type;
@@ -199,6 +198,7 @@ public class DataVisualizationVO implements Serializable {
this.extendDataInfo = extendDataInfo;
if(StringUtils.isNotEmpty(appDataStr)){
this.appData= JsonUtil.parseObject(appDataStr,VisualizationExport2AppVO.class);
this.appData.viewIdMap = viewIdMap;
}
this.version = version;
}

View File

@@ -4,6 +4,7 @@ import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Data
public class VisualizationExport2AppVO {
@@ -38,6 +39,8 @@ public class VisualizationExport2AppVO {
List<VisualizationLinkageFieldVO> linkageFields;
Map<Long,Long> viewIdMap;
public VisualizationExport2AppVO() {
}