feat(X-Pack): 定时报告增加水印设置

This commit is contained in:
fit2cloud-chenyw 2024-09-12 18:03:38 +08:00
parent e194486176
commit 5a3052fdaf
8 changed files with 124 additions and 94 deletions

View File

@ -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("当前不存在数据源无法导出");
} }

View File

@ -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`;

View File

@ -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 = {

View File

@ -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)

@ -1 +1 @@
Subproject commit 6e7f7bb108cebaf4b8ae284a91ba87cafb33a6fa Subproject commit d883d74073867950a4347dc50b417c3093298e60

View File

@ -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;

View File

@ -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;

View File

@ -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;