|
|
|
@ -3,8 +3,22 @@ package io.dataease.visualization.server;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
|
|
|
|
import io.dataease.api.template.dto.TemplateManageFileDTO;
|
|
|
|
|
import io.dataease.api.template.dto.VisualizationTemplateExtendDataDTO;
|
|
|
|
|
import io.dataease.api.visualization.DataVisualizationApi;
|
|
|
|
|
import io.dataease.api.visualization.dto.VisualizationViewTableDTO;
|
|
|
|
|
import io.dataease.api.visualization.request.DataVisualizationBaseRequest;
|
|
|
|
|
import io.dataease.api.visualization.request.VisualizationAppExportRequest;
|
|
|
|
|
import io.dataease.api.visualization.request.VisualizationWorkbranchQueryRequest;
|
|
|
|
|
import io.dataease.api.visualization.vo.*;
|
|
|
|
|
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
|
|
|
|
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
|
|
|
|
import io.dataease.chart.manage.ChartDataManage;
|
|
|
|
|
import io.dataease.chart.manage.ChartViewManege;
|
|
|
|
|
import io.dataease.commons.constants.DataVisualizationConstants;
|
|
|
|
|
import io.dataease.commons.constants.OptConstants;
|
|
|
|
|
import io.dataease.constant.CommonConstants;
|
|
|
|
|
import io.dataease.constant.LogOT;
|
|
|
|
|
import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup;
|
|
|
|
|
import io.dataease.dataset.dao.auto.entity.CoreDatasetTable;
|
|
|
|
|
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
|
|
|
@ -17,23 +31,9 @@ import io.dataease.datasource.dao.auto.entity.CoreDatasource;
|
|
|
|
|
import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
|
|
|
|
|
import io.dataease.datasource.provider.ApiUtils;
|
|
|
|
|
import io.dataease.datasource.provider.ExcelUtils;
|
|
|
|
|
import io.dataease.exception.DEException;
|
|
|
|
|
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
|
|
|
|
import io.dataease.extensions.view.dto.ChartViewDTO;
|
|
|
|
|
import io.dataease.api.template.dto.TemplateManageFileDTO;
|
|
|
|
|
import io.dataease.api.template.dto.VisualizationTemplateExtendDataDTO;
|
|
|
|
|
import io.dataease.api.visualization.DataVisualizationApi;
|
|
|
|
|
import io.dataease.api.visualization.dto.VisualizationViewTableDTO;
|
|
|
|
|
import io.dataease.api.visualization.request.DataVisualizationBaseRequest;
|
|
|
|
|
import io.dataease.api.visualization.request.VisualizationWorkbranchQueryRequest;
|
|
|
|
|
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
|
|
|
|
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
|
|
|
|
import io.dataease.chart.manage.ChartDataManage;
|
|
|
|
|
import io.dataease.chart.manage.ChartViewManege;
|
|
|
|
|
import io.dataease.commons.constants.DataVisualizationConstants;
|
|
|
|
|
import io.dataease.commons.constants.OptConstants;
|
|
|
|
|
import io.dataease.constant.CommonConstants;
|
|
|
|
|
import io.dataease.constant.LogOT;
|
|
|
|
|
import io.dataease.exception.DEException;
|
|
|
|
|
import io.dataease.license.config.XpackInteract;
|
|
|
|
|
import io.dataease.log.DeLog;
|
|
|
|
|
import io.dataease.model.BusiNodeRequest;
|
|
|
|
@ -165,7 +165,17 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
result.setReportFilterInfo(reportFilterInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjectUtils.isNotEmpty(request.getShowWatermark()) && !request.getShowWatermark()) {
|
|
|
|
|
VisualizationWatermarkVO watermarkInfo = result.getWatermarkInfo();
|
|
|
|
|
String settingContent = null;
|
|
|
|
|
if (ObjectUtils.isNotEmpty(watermarkInfo) && StringUtils.isNotBlank(settingContent = watermarkInfo.getSettingContent())) {
|
|
|
|
|
Map map = JsonUtil.parse(settingContent, Map.class);
|
|
|
|
|
map.put("enable", false);
|
|
|
|
|
settingContent = JsonUtil.toJSONString(map).toString();
|
|
|
|
|
watermarkInfo.setSettingContent(settingContent);
|
|
|
|
|
result.setWatermarkInfo(watermarkInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
} else {
|
|
|
|
|
DEException.throwException("资源不存在或已经被删除...");
|
|
|
|
@ -176,44 +186,44 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
@DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.CREATE, stExp = "#p0.type")
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public String saveCanvas(DataVisualizationBaseRequest request) throws Exception{
|
|
|
|
|
public String saveCanvas(DataVisualizationBaseRequest request) throws Exception {
|
|
|
|
|
boolean isAppSave = false;
|
|
|
|
|
Long time = System.currentTimeMillis();
|
|
|
|
|
// 如果是应用 则新进行应用校验 数据集名称和 数据源名称校验
|
|
|
|
|
VisualizationExport2AppVO appData = request.getAppData();
|
|
|
|
|
Map<Long,Long> dsGroupIdMap = new HashMap<>();
|
|
|
|
|
Map<Long, Long> dsGroupIdMap = new HashMap<>();
|
|
|
|
|
List<DatasetGroupInfoDTO> newDsGroupInfo = new ArrayList<>();
|
|
|
|
|
Map<Long,Long> dsTableIdMap = new HashMap<>();
|
|
|
|
|
Map<Long,Long> dsTableFieldsIdMap = new HashMap<>();
|
|
|
|
|
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<>();
|
|
|
|
|
Map<Long, Long> datasourceIdMap = new HashMap<>();
|
|
|
|
|
Map<Long, Map<String, String>> dsTableNamesMap = new HashMap<>();
|
|
|
|
|
List<Long> newDatasourceId = new ArrayList<>();
|
|
|
|
|
if(appData != null){
|
|
|
|
|
if (appData != null) {
|
|
|
|
|
isAppSave = true;
|
|
|
|
|
try {
|
|
|
|
|
List<AppCoreDatasourceVO> appCoreDatasourceVO = appData.getDatasourceInfo();
|
|
|
|
|
List<AppCoreDatasourceVO> appCoreDatasourceVO = appData.getDatasourceInfo();
|
|
|
|
|
|
|
|
|
|
// app 数据源 excel 表名映射
|
|
|
|
|
appCoreDatasourceVO.forEach(datasourceOld ->{
|
|
|
|
|
appCoreDatasourceVO.forEach(datasourceOld -> {
|
|
|
|
|
newDatasourceId.add(datasourceOld.getSystemDatasourceId());
|
|
|
|
|
// Excel 数据表明映射
|
|
|
|
|
if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) {
|
|
|
|
|
if( datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())){
|
|
|
|
|
dsTableNamesMap.put(datasourceOld.getId(),ExcelUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
|
|
|
|
}else if(datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())){
|
|
|
|
|
if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
|
|
|
|
|
dsTableNamesMap.put(datasourceOld.getId(), ExcelUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
|
|
|
|
} else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) {
|
|
|
|
|
dsTableNamesMap.put(datasourceOld.getId(), ApiUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
List<CoreDatasource> systemDatasource = coreDatasourceMapper.selectBatchIds(newDatasourceId);
|
|
|
|
|
systemDatasource.forEach(datasourceNew ->{
|
|
|
|
|
systemDatasource.forEach(datasourceNew -> {
|
|
|
|
|
// Excel 数据表明映射
|
|
|
|
|
if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) {
|
|
|
|
|
if(datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())){
|
|
|
|
|
dsTableNamesMap.put(datasourceNew.getId(),ExcelUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
|
|
|
|
}else if(datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.API.name())){
|
|
|
|
|
if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
|
|
|
|
|
dsTableNamesMap.put(datasourceNew.getId(), ExcelUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
|
|
|
|
} else if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) {
|
|
|
|
|
dsTableNamesMap.put(datasourceNew.getId(), ApiUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -244,7 +254,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
datasetNewRequest.setPid(datasetFolderNewId);
|
|
|
|
|
try {
|
|
|
|
|
newDsGroupInfo.add(datasetNewRequest);
|
|
|
|
|
dsGroupIdMap.put(oldId,newId);
|
|
|
|
|
dsGroupIdMap.put(oldId, newId);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
@ -256,56 +266,56 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
Long oldId = appCoreDatasetTableVO.getId();
|
|
|
|
|
Long newId = IDUtils.snowID();
|
|
|
|
|
CoreDatasetTable datasetTable = new CoreDatasetTable();
|
|
|
|
|
BeanUtils.copyBean(datasetTable,appCoreDatasetTableVO);
|
|
|
|
|
BeanUtils.copyBean(datasetTable, appCoreDatasetTableVO);
|
|
|
|
|
datasetTable.setDatasetGroupId(dsGroupIdMap.get(datasetTable.getDatasetGroupId()));
|
|
|
|
|
datasetTable.setId(newId);
|
|
|
|
|
datasetTable.setDatasourceId(datasourceIdMap.get(datasetTable.getDatasourceId()));
|
|
|
|
|
coreDatasetTableMapper.insert(datasetTable);
|
|
|
|
|
dsTableIdMap.put(oldId,newId);
|
|
|
|
|
dsTableIdMap.put(oldId, newId);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
// 新建数据字段
|
|
|
|
|
appData.getDatasetTableFieldsInfo().forEach( appDsTableFields ->{
|
|
|
|
|
appData.getDatasetTableFieldsInfo().forEach(appDsTableFields -> {
|
|
|
|
|
Long oldId = appDsTableFields.getId();
|
|
|
|
|
Long newId = IDUtils.snowID();
|
|
|
|
|
CoreDatasetTableField dsDsField = new CoreDatasetTableField();
|
|
|
|
|
BeanUtils.copyBean(dsDsField,appDsTableFields);
|
|
|
|
|
BeanUtils.copyBean(dsDsField, appDsTableFields);
|
|
|
|
|
dsDsField.setDatasetGroupId(dsGroupIdMap.get(dsDsField.getDatasetGroupId()));
|
|
|
|
|
dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId()));
|
|
|
|
|
dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId()));
|
|
|
|
|
dsDsField.setId(newId);
|
|
|
|
|
dsTableFieldsList.add(dsDsField);
|
|
|
|
|
dsTableFieldsIdMap.put(oldId,newId);
|
|
|
|
|
dsTableFieldsIdMap.put(oldId, newId);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// dsTableFields 中存在计算字段在OriginName中 也需要替换
|
|
|
|
|
dsTableFieldsList.forEach(dsTableFields ->{
|
|
|
|
|
dsTableFieldsIdMap.forEach((key,value) ->{
|
|
|
|
|
dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(),value.toString()));
|
|
|
|
|
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) ->{
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
|
|
|
|
newDsGroupInfo.forEach(dsGroup -> {
|
|
|
|
|
dsTableIdMap.forEach((key, value) -> {
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
dsTableFieldsIdMap.forEach((key,value) ->{
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
|
|
|
|
dsTableFieldsIdMap.forEach((key, value) -> {
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
datasourceIdMap.forEach((key,value) ->{
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
|
|
|
|
datasourceIdMap.forEach((key, value) -> {
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
//表名映射更新
|
|
|
|
|
Map<String,String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
|
|
|
|
Map<String,String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
|
|
|
|
if(!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap) ){
|
|
|
|
|
appDsTableNamesMap.forEach((keyName,valueName) ->{
|
|
|
|
|
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName,systemDsTableNamesMap.get(keyName)));
|
|
|
|
|
Map<String, String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
|
|
|
|
Map<String, String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
|
|
|
|
if (!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap)) {
|
|
|
|
|
appDsTableNamesMap.forEach((keyName, valueName) -> {
|
|
|
|
|
if (StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) {
|
|
|
|
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, systemDsTableNamesMap.get(keyName)));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -316,31 +326,31 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
datasetGroupManage.innerSave(dsGroup);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
LogUtil.error(e);
|
|
|
|
|
DEException.throwException(e);
|
|
|
|
|
}
|
|
|
|
|
// 更换主数据内容
|
|
|
|
|
AtomicReference<String> componentDataStr = new AtomicReference<>(request.getComponentData());
|
|
|
|
|
dsGroupIdMap.forEach((key,value) ->{
|
|
|
|
|
dsGroupIdMap.forEach((key, value) -> {
|
|
|
|
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
dsTableIdMap.forEach((key,value) ->{
|
|
|
|
|
dsTableIdMap.forEach((key, value) -> {
|
|
|
|
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
dsTableFieldsIdMap.forEach((key,value) ->{
|
|
|
|
|
dsTableFieldsIdMap.forEach((key, value) -> {
|
|
|
|
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
datasourceIdMap.forEach((key,value) ->{
|
|
|
|
|
datasourceIdMap.forEach((key, value) -> {
|
|
|
|
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
//表名映射更新
|
|
|
|
|
Map<String,String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
|
|
|
|
Map<String,String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
|
|
|
|
if(!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap) ){
|
|
|
|
|
appDsTableNamesMap.forEach((keyName,valueName) ->{
|
|
|
|
|
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
|
|
|
|
|
Map<String, String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
|
|
|
|
Map<String, String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
|
|
|
|
if (!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap)) {
|
|
|
|
|
appDsTableNamesMap.forEach((keyName, valueName) -> {
|
|
|
|
|
if (StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) {
|
|
|
|
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -366,28 +376,28 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
request.setId(newDvId);
|
|
|
|
|
// 还原ID信息
|
|
|
|
|
Map<Long, ChartViewDTO> canvasViews = request.getCanvasViewInfo();
|
|
|
|
|
if(isAppSave){
|
|
|
|
|
if (isAppSave) {
|
|
|
|
|
Map<Long, String> canvasViewsStr = VisualizationUtils.viewTransToStr(canvasViews);
|
|
|
|
|
canvasViewsStr.forEach((viewId,viewInfoStr) ->{
|
|
|
|
|
canvasViewsStr.forEach((viewId, viewInfoStr) -> {
|
|
|
|
|
AtomicReference<String> mutableViewInfoStr = new AtomicReference<>(viewInfoStr);
|
|
|
|
|
datasourceIdMap.forEach((key,value) ->{
|
|
|
|
|
datasourceIdMap.forEach((key, value) -> {
|
|
|
|
|
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
dsTableIdMap.forEach((key,value) ->{
|
|
|
|
|
dsTableIdMap.forEach((key, value) -> {
|
|
|
|
|
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
dsTableFieldsIdMap.forEach((key,value) ->{
|
|
|
|
|
dsTableFieldsIdMap.forEach((key, value) -> {
|
|
|
|
|
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
dsGroupIdMap.forEach((key,value) ->{
|
|
|
|
|
dsGroupIdMap.forEach((key, value) -> {
|
|
|
|
|
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
|
|
|
|
});
|
|
|
|
|
canvasViewsStr.put(viewId, mutableViewInfoStr.get());
|
|
|
|
|
});
|
|
|
|
|
canvasViews = VisualizationUtils.viewTransToObj(canvasViewsStr);
|
|
|
|
|
canvasViews.forEach((key,viewInfo) ->{
|
|
|
|
|
canvasViews.forEach((key, viewInfo) -> {
|
|
|
|
|
viewInfo.setDataFrom("dataset");
|
|
|
|
|
if(viewInfo.getTableId() == null){
|
|
|
|
|
if (viewInfo.getTableId() == null) {
|
|
|
|
|
viewInfo.setTableId(viewInfo.getSourceTableId());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -406,7 +416,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
queryWrapper.eq("pid", datasetFolderPid);
|
|
|
|
|
if (coreDatasetGroupMapper.exists(queryWrapper)) {
|
|
|
|
|
return "repeat";
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return "success";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -536,7 +546,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public DataVisualizationVO decompression(DataVisualizationBaseRequest request) throws Exception {
|
|
|
|
|
try{
|
|
|
|
|
try {
|
|
|
|
|
Long newDvId = IDUtils.snowID();
|
|
|
|
|
String newFrom = request.getNewFrom();
|
|
|
|
|
String templateStyle = null;
|
|
|
|
@ -586,18 +596,18 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
// 模板市场记录
|
|
|
|
|
coreOptRecentManage.saveOpt(request.getResourceName(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE, OptConstants.OPT_TYPE.NEW);
|
|
|
|
|
}
|
|
|
|
|
if(StringUtils.isNotEmpty(appDataStr) && appDataStr.length()>10){
|
|
|
|
|
try{
|
|
|
|
|
VisualizationExport2AppVO appDataFormat = JsonUtil.parseObject(appDataStr,VisualizationExport2AppVO.class);
|
|
|
|
|
String dvInfo = appDataFormat.getVisualizationInfo();
|
|
|
|
|
VisualizationBaseInfoVO baseInfoVO = JsonUtil.parseObject(dvInfo,VisualizationBaseInfoVO.class);
|
|
|
|
|
if (StringUtils.isNotEmpty(appDataStr) && appDataStr.length() > 10) {
|
|
|
|
|
try {
|
|
|
|
|
VisualizationExport2AppVO appDataFormat = JsonUtil.parseObject(appDataStr, VisualizationExport2AppVO.class);
|
|
|
|
|
String dvInfo = appDataFormat.getVisualizationInfo();
|
|
|
|
|
VisualizationBaseInfoVO baseInfoVO = JsonUtil.parseObject(dvInfo, VisualizationBaseInfoVO.class);
|
|
|
|
|
Long sourceDvId = baseInfoVO.getId();
|
|
|
|
|
appDataStr = appDataStr.replaceAll(sourceDvId.toString(), newDvId.toString());
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
appDataStr = appDataStr.replaceAll(sourceDvId.toString(), newDvId.toString());
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
LogUtil.error(e);
|
|
|
|
|
appDataStr = null;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
appDataStr = null;
|
|
|
|
|
}
|
|
|
|
|
// 解析动态数据
|
|
|
|
@ -632,9 +642,9 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
VisualizationTemplateExtendDataDTO extendDataDTO = new VisualizationTemplateExtendDataDTO(newDvId, newViewId, originViewData);
|
|
|
|
|
extendDataInfo.put(newViewId, extendDataDTO);
|
|
|
|
|
templateData = templateData.replaceAll(originViewId, newViewId.toString());
|
|
|
|
|
if(StringUtils.isNotEmpty(appDataStr)){
|
|
|
|
|
if (StringUtils.isNotEmpty(appDataStr)) {
|
|
|
|
|
chartView.setTableId(chartView.getSourceTableId());
|
|
|
|
|
appDataStr = appDataStr.replaceAll(originViewId, newViewId.toString());
|
|
|
|
|
appDataStr = appDataStr.replaceAll(originViewId, newViewId.toString());
|
|
|
|
|
}
|
|
|
|
|
canvasViewInfo.put(chartView.getId(), chartView);
|
|
|
|
|
//插入模板数据 此处预先插入减少数据交互量
|
|
|
|
@ -645,8 +655,8 @@ 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);
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
return new DataVisualizationVO(newDvId, name, dvType, version, templateStyle, templateData, appDataStr, canvasViewInfo, null);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
DEException.throwException("解析错误");
|
|
|
|
|
return null;
|
|
|
|
@ -694,7 +704,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|
|
|
|
datasourceTaskVOInfo = appTemplateMapper.findAppDatasourceTaskInfo(dsIds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(datasourceVOInfo)){
|
|
|
|
|
if (CollectionUtils.isEmpty(datasourceVOInfo)) {
|
|
|
|
|
DEException.throwException("当前不存在数据源无法导出");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|