forked from github/dataease
feat(X-Pack): 定时报告增加水印设置
This commit is contained in:
parent
e194486176
commit
5a3052fdaf
@ -3,8 +3,22 @@ package io.dataease.visualization.server;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
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.VisualizationAppExportRequest;
|
||||||
|
import io.dataease.api.visualization.request.VisualizationWorkbranchQueryRequest;
|
||||||
import io.dataease.api.visualization.vo.*;
|
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.CoreDatasetGroup;
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTable;
|
import io.dataease.dataset.dao.auto.entity.CoreDatasetTable;
|
||||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField;
|
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.dao.auto.mapper.CoreDatasourceMapper;
|
||||||
import io.dataease.datasource.provider.ApiUtils;
|
import io.dataease.datasource.provider.ApiUtils;
|
||||||
import io.dataease.datasource.provider.ExcelUtils;
|
import io.dataease.datasource.provider.ExcelUtils;
|
||||||
|
import io.dataease.exception.DEException;
|
||||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
||||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
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.license.config.XpackInteract;
|
||||||
import io.dataease.log.DeLog;
|
import io.dataease.log.DeLog;
|
||||||
import io.dataease.model.BusiNodeRequest;
|
import io.dataease.model.BusiNodeRequest;
|
||||||
@ -165,7 +165,17 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
result.setReportFilterInfo(reportFilterInfo);
|
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;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
DEException.throwException("资源不存在或已经被删除...");
|
DEException.throwException("资源不存在或已经被删除...");
|
||||||
@ -176,44 +186,44 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
@DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.CREATE, stExp = "#p0.type")
|
@DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.CREATE, stExp = "#p0.type")
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String saveCanvas(DataVisualizationBaseRequest request) throws Exception{
|
public String saveCanvas(DataVisualizationBaseRequest request) throws Exception {
|
||||||
boolean isAppSave = false;
|
boolean isAppSave = false;
|
||||||
Long time = System.currentTimeMillis();
|
Long time = System.currentTimeMillis();
|
||||||
// 如果是应用 则新进行应用校验 数据集名称和 数据源名称校验
|
// 如果是应用 则新进行应用校验 数据集名称和 数据源名称校验
|
||||||
VisualizationExport2AppVO appData = request.getAppData();
|
VisualizationExport2AppVO appData = request.getAppData();
|
||||||
Map<Long,Long> dsGroupIdMap = new HashMap<>();
|
Map<Long, Long> dsGroupIdMap = new HashMap<>();
|
||||||
List<DatasetGroupInfoDTO> newDsGroupInfo = new ArrayList<>();
|
List<DatasetGroupInfoDTO> newDsGroupInfo = new ArrayList<>();
|
||||||
Map<Long,Long> dsTableIdMap = new HashMap<>();
|
Map<Long, Long> dsTableIdMap = new HashMap<>();
|
||||||
Map<Long,Long> dsTableFieldsIdMap = new HashMap<>();
|
Map<Long, Long> dsTableFieldsIdMap = new HashMap<>();
|
||||||
List<CoreDatasetTableField> dsTableFieldsList = new ArrayList();
|
List<CoreDatasetTableField> dsTableFieldsList = new ArrayList();
|
||||||
Map<Long,Long> datasourceIdMap = new HashMap<>();
|
Map<Long, Long> datasourceIdMap = new HashMap<>();
|
||||||
Map<Long,Map<String,String>> dsTableNamesMap = new HashMap<>();
|
Map<Long, Map<String, String>> dsTableNamesMap = new HashMap<>();
|
||||||
List<Long> newDatasourceId = new ArrayList<>();
|
List<Long> newDatasourceId = new ArrayList<>();
|
||||||
if(appData != null){
|
if (appData != null) {
|
||||||
isAppSave = true;
|
isAppSave = true;
|
||||||
try {
|
try {
|
||||||
List<AppCoreDatasourceVO> appCoreDatasourceVO = appData.getDatasourceInfo();
|
List<AppCoreDatasourceVO> appCoreDatasourceVO = appData.getDatasourceInfo();
|
||||||
|
|
||||||
// app 数据源 excel 表名映射
|
// app 数据源 excel 表名映射
|
||||||
appCoreDatasourceVO.forEach(datasourceOld ->{
|
appCoreDatasourceVO.forEach(datasourceOld -> {
|
||||||
newDatasourceId.add(datasourceOld.getSystemDatasourceId());
|
newDatasourceId.add(datasourceOld.getSystemDatasourceId());
|
||||||
// Excel 数据表明映射
|
// Excel 数据表明映射
|
||||||
if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) {
|
if (StringUtils.isNotEmpty(datasourceOld.getConfiguration())) {
|
||||||
if( datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())){
|
if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
|
||||||
dsTableNamesMap.put(datasourceOld.getId(),ExcelUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
dsTableNamesMap.put(datasourceOld.getId(), ExcelUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
||||||
}else if(datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())){
|
} else if (datasourceOld.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) {
|
||||||
dsTableNamesMap.put(datasourceOld.getId(), ApiUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
dsTableNamesMap.put(datasourceOld.getId(), ApiUtils.getTableNamesMap(datasourceOld.getConfiguration()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
List<CoreDatasource> systemDatasource = coreDatasourceMapper.selectBatchIds(newDatasourceId);
|
List<CoreDatasource> systemDatasource = coreDatasourceMapper.selectBatchIds(newDatasourceId);
|
||||||
systemDatasource.forEach(datasourceNew ->{
|
systemDatasource.forEach(datasourceNew -> {
|
||||||
// Excel 数据表明映射
|
// Excel 数据表明映射
|
||||||
if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) {
|
if (StringUtils.isNotEmpty(datasourceNew.getConfiguration())) {
|
||||||
if(datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())){
|
if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
|
||||||
dsTableNamesMap.put(datasourceNew.getId(),ExcelUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
dsTableNamesMap.put(datasourceNew.getId(), ExcelUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
||||||
}else if(datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.API.name())){
|
} else if (datasourceNew.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) {
|
||||||
dsTableNamesMap.put(datasourceNew.getId(), ApiUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
dsTableNamesMap.put(datasourceNew.getId(), ApiUtils.getTableNamesMap(datasourceNew.getConfiguration()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,7 +254,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
datasetNewRequest.setPid(datasetFolderNewId);
|
datasetNewRequest.setPid(datasetFolderNewId);
|
||||||
try {
|
try {
|
||||||
newDsGroupInfo.add(datasetNewRequest);
|
newDsGroupInfo.add(datasetNewRequest);
|
||||||
dsGroupIdMap.put(oldId,newId);
|
dsGroupIdMap.put(oldId, newId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@ -256,56 +266,56 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
Long oldId = appCoreDatasetTableVO.getId();
|
Long oldId = appCoreDatasetTableVO.getId();
|
||||||
Long newId = IDUtils.snowID();
|
Long newId = IDUtils.snowID();
|
||||||
CoreDatasetTable datasetTable = new CoreDatasetTable();
|
CoreDatasetTable datasetTable = new CoreDatasetTable();
|
||||||
BeanUtils.copyBean(datasetTable,appCoreDatasetTableVO);
|
BeanUtils.copyBean(datasetTable, appCoreDatasetTableVO);
|
||||||
datasetTable.setDatasetGroupId(dsGroupIdMap.get(datasetTable.getDatasetGroupId()));
|
datasetTable.setDatasetGroupId(dsGroupIdMap.get(datasetTable.getDatasetGroupId()));
|
||||||
datasetTable.setId(newId);
|
datasetTable.setId(newId);
|
||||||
datasetTable.setDatasourceId(datasourceIdMap.get(datasetTable.getDatasourceId()));
|
datasetTable.setDatasourceId(datasourceIdMap.get(datasetTable.getDatasourceId()));
|
||||||
coreDatasetTableMapper.insert(datasetTable);
|
coreDatasetTableMapper.insert(datasetTable);
|
||||||
dsTableIdMap.put(oldId,newId);
|
dsTableIdMap.put(oldId, newId);
|
||||||
|
|
||||||
});
|
});
|
||||||
// 新建数据字段
|
// 新建数据字段
|
||||||
appData.getDatasetTableFieldsInfo().forEach( appDsTableFields ->{
|
appData.getDatasetTableFieldsInfo().forEach(appDsTableFields -> {
|
||||||
Long oldId = appDsTableFields.getId();
|
Long oldId = appDsTableFields.getId();
|
||||||
Long newId = IDUtils.snowID();
|
Long newId = IDUtils.snowID();
|
||||||
CoreDatasetTableField dsDsField = new CoreDatasetTableField();
|
CoreDatasetTableField dsDsField = new CoreDatasetTableField();
|
||||||
BeanUtils.copyBean(dsDsField,appDsTableFields);
|
BeanUtils.copyBean(dsDsField, appDsTableFields);
|
||||||
dsDsField.setDatasetGroupId(dsGroupIdMap.get(dsDsField.getDatasetGroupId()));
|
dsDsField.setDatasetGroupId(dsGroupIdMap.get(dsDsField.getDatasetGroupId()));
|
||||||
dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId()));
|
dsDsField.setDatasetTableId(dsTableIdMap.get(dsDsField.getDatasetTableId()));
|
||||||
dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId()));
|
dsDsField.setDatasourceId(datasourceIdMap.get(dsDsField.getDatasourceId()));
|
||||||
dsDsField.setId(newId);
|
dsDsField.setId(newId);
|
||||||
dsTableFieldsList.add(dsDsField);
|
dsTableFieldsList.add(dsDsField);
|
||||||
dsTableFieldsIdMap.put(oldId,newId);
|
dsTableFieldsIdMap.put(oldId, newId);
|
||||||
});
|
});
|
||||||
|
|
||||||
// dsTableFields 中存在计算字段在OriginName中 也需要替换
|
// dsTableFields 中存在计算字段在OriginName中 也需要替换
|
||||||
dsTableFieldsList.forEach(dsTableFields ->{
|
dsTableFieldsList.forEach(dsTableFields -> {
|
||||||
dsTableFieldsIdMap.forEach((key,value) ->{
|
dsTableFieldsIdMap.forEach((key, value) -> {
|
||||||
dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(),value.toString()));
|
dsTableFields.setOriginName(dsTableFields.getOriginName().replaceAll(key.toString(), value.toString()));
|
||||||
});
|
});
|
||||||
coreDatasetTableFieldMapper.insert(dsTableFields);
|
coreDatasetTableFieldMapper.insert(dsTableFields);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 持久化数据集
|
// 持久化数据集
|
||||||
newDsGroupInfo.forEach(dsGroup ->{
|
newDsGroupInfo.forEach(dsGroup -> {
|
||||||
dsTableIdMap.forEach((key,value) ->{
|
dsTableIdMap.forEach((key, value) -> {
|
||||||
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
||||||
});
|
});
|
||||||
|
|
||||||
dsTableFieldsIdMap.forEach((key,value) ->{
|
dsTableFieldsIdMap.forEach((key, value) -> {
|
||||||
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
||||||
});
|
});
|
||||||
|
|
||||||
datasourceIdMap.forEach((key,value) ->{
|
datasourceIdMap.forEach((key, value) -> {
|
||||||
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(),value.toString()));
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(key.toString(), value.toString()));
|
||||||
//表名映射更新
|
//表名映射更新
|
||||||
Map<String,String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
Map<String, String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
||||||
Map<String,String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
Map<String, String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
||||||
if(!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap) ){
|
if (!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap)) {
|
||||||
appDsTableNamesMap.forEach((keyName,valueName) ->{
|
appDsTableNamesMap.forEach((keyName, valueName) -> {
|
||||||
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
|
if (StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) {
|
||||||
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName,systemDsTableNamesMap.get(keyName)));
|
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName, systemDsTableNamesMap.get(keyName)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -316,31 +326,31 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
datasetGroupManage.innerSave(dsGroup);
|
datasetGroupManage.innerSave(dsGroup);
|
||||||
});
|
});
|
||||||
|
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
LogUtil.error(e);
|
LogUtil.error(e);
|
||||||
DEException.throwException(e);
|
DEException.throwException(e);
|
||||||
}
|
}
|
||||||
// 更换主数据内容
|
// 更换主数据内容
|
||||||
AtomicReference<String> componentDataStr = new AtomicReference<>(request.getComponentData());
|
AtomicReference<String> componentDataStr = new AtomicReference<>(request.getComponentData());
|
||||||
dsGroupIdMap.forEach((key,value) ->{
|
dsGroupIdMap.forEach((key, value) -> {
|
||||||
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
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()));
|
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()));
|
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()));
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
||||||
//表名映射更新
|
//表名映射更新
|
||||||
Map<String,String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
Map<String, String> appDsTableNamesMap = dsTableNamesMap.get(key);
|
||||||
Map<String,String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
Map<String, String> systemDsTableNamesMap = dsTableNamesMap.get(value);
|
||||||
if(!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap) ){
|
if (!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap)) {
|
||||||
appDsTableNamesMap.forEach((keyName,valueName) ->{
|
appDsTableNamesMap.forEach((keyName, valueName) -> {
|
||||||
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
|
if (StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))) {
|
||||||
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
componentDataStr.set(componentDataStr.get().replaceAll(key.toString(), value.toString()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -366,28 +376,28 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
request.setId(newDvId);
|
request.setId(newDvId);
|
||||||
// 还原ID信息
|
// 还原ID信息
|
||||||
Map<Long, ChartViewDTO> canvasViews = request.getCanvasViewInfo();
|
Map<Long, ChartViewDTO> canvasViews = request.getCanvasViewInfo();
|
||||||
if(isAppSave){
|
if (isAppSave) {
|
||||||
Map<Long, String> canvasViewsStr = VisualizationUtils.viewTransToStr(canvasViews);
|
Map<Long, String> canvasViewsStr = VisualizationUtils.viewTransToStr(canvasViews);
|
||||||
canvasViewsStr.forEach((viewId,viewInfoStr) ->{
|
canvasViewsStr.forEach((viewId, viewInfoStr) -> {
|
||||||
AtomicReference<String> mutableViewInfoStr = new AtomicReference<>(viewInfoStr);
|
AtomicReference<String> mutableViewInfoStr = new AtomicReference<>(viewInfoStr);
|
||||||
datasourceIdMap.forEach((key,value) ->{
|
datasourceIdMap.forEach((key, value) -> {
|
||||||
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
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()));
|
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()));
|
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()));
|
mutableViewInfoStr.set(mutableViewInfoStr.get().replaceAll(key.toString(), value.toString()));
|
||||||
});
|
});
|
||||||
canvasViewsStr.put(viewId, mutableViewInfoStr.get());
|
canvasViewsStr.put(viewId, mutableViewInfoStr.get());
|
||||||
});
|
});
|
||||||
canvasViews = VisualizationUtils.viewTransToObj(canvasViewsStr);
|
canvasViews = VisualizationUtils.viewTransToObj(canvasViewsStr);
|
||||||
canvasViews.forEach((key,viewInfo) ->{
|
canvasViews.forEach((key, viewInfo) -> {
|
||||||
viewInfo.setDataFrom("dataset");
|
viewInfo.setDataFrom("dataset");
|
||||||
if(viewInfo.getTableId() == null){
|
if (viewInfo.getTableId() == null) {
|
||||||
viewInfo.setTableId(viewInfo.getSourceTableId());
|
viewInfo.setTableId(viewInfo.getSourceTableId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -406,7 +416,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
queryWrapper.eq("pid", datasetFolderPid);
|
queryWrapper.eq("pid", datasetFolderPid);
|
||||||
if (coreDatasetGroupMapper.exists(queryWrapper)) {
|
if (coreDatasetGroupMapper.exists(queryWrapper)) {
|
||||||
return "repeat";
|
return "repeat";
|
||||||
}else{
|
} else {
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -536,7 +546,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataVisualizationVO decompression(DataVisualizationBaseRequest request) throws Exception {
|
public DataVisualizationVO decompression(DataVisualizationBaseRequest request) throws Exception {
|
||||||
try{
|
try {
|
||||||
Long newDvId = IDUtils.snowID();
|
Long newDvId = IDUtils.snowID();
|
||||||
String newFrom = request.getNewFrom();
|
String newFrom = request.getNewFrom();
|
||||||
String templateStyle = null;
|
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);
|
coreOptRecentManage.saveOpt(request.getResourceName(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE, OptConstants.OPT_TYPE.NEW);
|
||||||
}
|
}
|
||||||
if(StringUtils.isNotEmpty(appDataStr) && appDataStr.length()>10){
|
if (StringUtils.isNotEmpty(appDataStr) && appDataStr.length() > 10) {
|
||||||
try{
|
try {
|
||||||
VisualizationExport2AppVO appDataFormat = JsonUtil.parseObject(appDataStr,VisualizationExport2AppVO.class);
|
VisualizationExport2AppVO appDataFormat = JsonUtil.parseObject(appDataStr, VisualizationExport2AppVO.class);
|
||||||
String dvInfo = appDataFormat.getVisualizationInfo();
|
String dvInfo = appDataFormat.getVisualizationInfo();
|
||||||
VisualizationBaseInfoVO baseInfoVO = JsonUtil.parseObject(dvInfo,VisualizationBaseInfoVO.class);
|
VisualizationBaseInfoVO baseInfoVO = JsonUtil.parseObject(dvInfo, VisualizationBaseInfoVO.class);
|
||||||
Long sourceDvId = baseInfoVO.getId();
|
Long sourceDvId = baseInfoVO.getId();
|
||||||
appDataStr = appDataStr.replaceAll(sourceDvId.toString(), newDvId.toString());
|
appDataStr = appDataStr.replaceAll(sourceDvId.toString(), newDvId.toString());
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
LogUtil.error(e);
|
LogUtil.error(e);
|
||||||
appDataStr = null;
|
appDataStr = null;
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
appDataStr = null;
|
appDataStr = null;
|
||||||
}
|
}
|
||||||
// 解析动态数据
|
// 解析动态数据
|
||||||
@ -632,9 +642,9 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
VisualizationTemplateExtendDataDTO extendDataDTO = new VisualizationTemplateExtendDataDTO(newDvId, newViewId, originViewData);
|
VisualizationTemplateExtendDataDTO extendDataDTO = new VisualizationTemplateExtendDataDTO(newDvId, newViewId, originViewData);
|
||||||
extendDataInfo.put(newViewId, extendDataDTO);
|
extendDataInfo.put(newViewId, extendDataDTO);
|
||||||
templateData = templateData.replaceAll(originViewId, newViewId.toString());
|
templateData = templateData.replaceAll(originViewId, newViewId.toString());
|
||||||
if(StringUtils.isNotEmpty(appDataStr)){
|
if (StringUtils.isNotEmpty(appDataStr)) {
|
||||||
chartView.setTableId(chartView.getSourceTableId());
|
chartView.setTableId(chartView.getSourceTableId());
|
||||||
appDataStr = appDataStr.replaceAll(originViewId, newViewId.toString());
|
appDataStr = appDataStr.replaceAll(originViewId, newViewId.toString());
|
||||||
}
|
}
|
||||||
canvasViewInfo.put(chartView.getId(), chartView);
|
canvasViewInfo.put(chartView.getId(), chartView);
|
||||||
//插入模板数据 此处预先插入减少数据交互量
|
//插入模板数据 此处预先插入减少数据交互量
|
||||||
@ -645,8 +655,8 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
request.setCanvasStyleData(templateStyle);
|
request.setCanvasStyleData(templateStyle);
|
||||||
//Store static resource into the server
|
//Store static resource into the server
|
||||||
staticResourceServer.saveFilesToServe(staticResource);
|
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);
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
DEException.throwException("解析错误");
|
DEException.throwException("解析错误");
|
||||||
return null;
|
return null;
|
||||||
@ -694,7 +704,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
datasourceTaskVOInfo = appTemplateMapper.findAppDatasourceTaskInfo(dsIds);
|
datasourceTaskVOInfo = appTemplateMapper.findAppDatasourceTaskInfo(dsIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtils.isEmpty(datasourceVOInfo)){
|
if (CollectionUtils.isEmpty(datasourceVOInfo)) {
|
||||||
DEException.throwException("当前不存在数据源无法导出");
|
DEException.throwException("当前不存在数据源无法导出");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
ALTER TABLE `visualization_outer_params_info`
|
ALTER TABLE `visualization_outer_params_info`
|
||||||
ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填',
|
ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填',
|
||||||
ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式',
|
ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式',
|
||||||
ADD COLUMN `enabled_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否启用默认值';
|
ADD COLUMN `enabled_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否启用默认值';
|
||||||
update visualization_outer_params_info set required =0;
|
update visualization_outer_params_info
|
||||||
|
set required =0;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `xpack_report_info`
|
||||||
|
ADD COLUMN `show_watermark` tinyint(1) NOT NULL DEFAULT 0 COMMENT '显示水印' AFTER `rid`;
|
||||||
|
@ -273,7 +273,16 @@ export function initCanvasDataPrepare(dvId, busiFlag, callBack) {
|
|||||||
let attachInfo = { source: 'main' }
|
let attachInfo = { source: 'main' }
|
||||||
if (dvMainStore.canvasAttachInfo && !!dvMainStore.canvasAttachInfo.taskId) {
|
if (dvMainStore.canvasAttachInfo && !!dvMainStore.canvasAttachInfo.taskId) {
|
||||||
attachInfo = { source: 'report', taskId: dvMainStore.canvasAttachInfo.taskId }
|
attachInfo = { source: 'report', taskId: dvMainStore.canvasAttachInfo.taskId }
|
||||||
|
const showWatermarkExist =
|
||||||
|
dvMainStore.canvasAttachInfo.hasOwnProperty('showWatermark') &&
|
||||||
|
typeof dvMainStore.canvasAttachInfo.showWatermark !== 'undefined' &&
|
||||||
|
dvMainStore.canvasAttachInfo.showWatermark !== null
|
||||||
|
if (showWatermarkExist) {
|
||||||
|
const enable = dvMainStore.canvasAttachInfo.showWatermark === 'true'
|
||||||
|
attachInfo['showWatermark'] = enable
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
method(dvId, busiFlagCustom, attachInfo).then(res => {
|
method(dvId, busiFlagCustom, attachInfo).then(res => {
|
||||||
const canvasInfo = res.data
|
const canvasInfo = res.data
|
||||||
const watermarkInfo = {
|
const watermarkInfo = {
|
||||||
|
@ -162,9 +162,9 @@ onMounted(async () => {
|
|||||||
})
|
})
|
||||||
await new Promise(r => (p = r))
|
await new Promise(r => (p = r))
|
||||||
const dvId = embeddedStore.dvId || router.currentRoute.value.query.dvId
|
const dvId = embeddedStore.dvId || router.currentRoute.value.query.dvId
|
||||||
const { dvType, callBackFlag, taskId } = router.currentRoute.value.query
|
const { dvType, callBackFlag, taskId, showWatermark } = router.currentRoute.value.query
|
||||||
if (!!taskId) {
|
if (!!taskId) {
|
||||||
dvMainStore.setCanvasAttachInfo({ taskId: taskId })
|
dvMainStore.setCanvasAttachInfo({ taskId, showWatermark })
|
||||||
}
|
}
|
||||||
if (dvId) {
|
if (dvId) {
|
||||||
loadCanvasDataAsync(dvId, dvType)
|
loadCanvasDataAsync(dvId, dvType)
|
||||||
|
2
de-xpack
2
de-xpack
@ -1 +1 @@
|
|||||||
Subproject commit 6e7f7bb108cebaf4b8ae284a91ba87cafb33a6fa
|
Subproject commit d883d74073867950a4347dc50b417c3093298e60
|
@ -25,6 +25,8 @@ public class ReportCreator implements Serializable {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long rid;
|
private Long rid;
|
||||||
|
|
||||||
|
private Boolean showWatermark;
|
||||||
|
|
||||||
private Integer format;
|
private Integer format;
|
||||||
|
|
||||||
private List<Long> viewIdList;
|
private List<Long> viewIdList;
|
||||||
|
@ -27,6 +27,8 @@ public class ReportInfoVO implements Serializable {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long rid;
|
private Long rid;
|
||||||
|
|
||||||
|
private Boolean showWatermark;
|
||||||
|
|
||||||
private Integer format;
|
private Integer format;
|
||||||
|
|
||||||
private List<String> viewIdList;
|
private List<String> viewIdList;
|
||||||
|
@ -42,6 +42,8 @@ public class DataVisualizationBaseRequest extends DataVisualizationVO {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long taskId;
|
private Long taskId;
|
||||||
|
|
||||||
|
private Boolean showWatermark;
|
||||||
|
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
// 数据集分组PID
|
// 数据集分组PID
|
||||||
private Long datasetFolderPid;
|
private Long datasetFolderPid;
|
||||||
|
Loading…
Reference in New Issue
Block a user