Pr@dev v2@fixds (#14742)

* fix: 【数据源】复制API数据源后校验与同步结果不一致

* fix: 【数据导出中心】设置空值处理置为零,导出堆叠条形图提示异常

* fix: [Bug]新建API数据源后,再新建Doris数据源,校验时会将之前新建API数据源的同步任务参数提交造成请求异常 #14729

* fix: 【数据导出中心】修复设置空值处理置为零,导出堆叠条形图提示异常

---------

Co-authored-by: taojinlong <jinlong@fit2cloud.com>
This commit is contained in:
taojinlong 2025-01-19 22:08:23 +08:00 committed by GitHub
parent ad440c4aac
commit 67b81dd64f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 19 deletions

View File

@ -309,13 +309,14 @@ public class ChartDataServer implements ChartDataApi {
public static void setExcelData(Sheet detailsSheet, CellStyle cellStyle, Object[] header, List<Object[]> details, ViewDetailField[] detailFields, Integer[] excelTypes, Comment comment, ChartViewDTO viewInfo, Workbook wb) {
List<CellStyle> styles = new ArrayList<>();
List<ChartViewFieldDTO> xAxis = new ArrayList<>();
if (viewInfo.getType().equalsIgnoreCase("table-normal")) {
xAxis.addAll(viewInfo.getXAxis());
xAxis.addAll(viewInfo.getYAxis());
}
if (viewInfo.getType().equalsIgnoreCase("table-info")) {
xAxis.addAll(viewInfo.getXAxis());
}
xAxis.addAll(viewInfo.getXAxisExt());
xAxis.addAll(viewInfo.getYAxisExt());
xAxis.addAll(viewInfo.getExtStack());
if (viewInfo.getType().equalsIgnoreCase("table-normal") || viewInfo.getType().equalsIgnoreCase("table-info")) {
for (ChartViewFieldDTO xAxi : xAxis) {
if (xAxi.getDeType().equals(DeTypeConstants.DE_INT) || xAxi.getDeType().equals(DeTypeConstants.DE_FLOAT)) {
FormatterCfgDTO formatterCfgDTO = xAxi.getFormatterCfg() == null ? new FormatterCfgDTO() : xAxi.getFormatterCfg();
@ -325,6 +326,8 @@ public class ChartDataServer implements ChartDataApi {
styles.add(null);
}
}
}
boolean mergeHead = false;
if (ArrayUtils.isNotEmpty(detailFields)) {
cellStyle.setBorderTop(BorderStyle.THIN);
@ -410,7 +413,7 @@ public class ChartDataServer implements ChartDataApi {
detailsSheet.setColumnWidth(j, 255 * 20);
} else if (cellValObj != null) {
try {
if (wb != null && (xAxis.get(j).getDeType().equals(DeTypeConstants.DE_INT) || xAxis.get(j).getDeType().equals(DeTypeConstants.DE_FLOAT))) {
if ((viewInfo.getType().equalsIgnoreCase("table-normal") || viewInfo.getType().equalsIgnoreCase("table-info")) && (xAxis.get(j).getDeType().equals(DeTypeConstants.DE_INT) || xAxis.get(j).getDeType().equals(DeTypeConstants.DE_FLOAT))) {
try {
FormatterCfgDTO formatterCfgDTO = xAxis.get(j).getFormatterCfg() == null ? new FormatterCfgDTO() : xAxis.get(j).getFormatterCfg();
if (formatterCfgDTO.getType().equalsIgnoreCase("auto")) {
@ -431,7 +434,6 @@ public class ChartDataServer implements ChartDataApi {
cell.setCellValue(cellValObj.toString());
}
}
} catch (Exception e) {
LogUtil.warn("export excel data transform error");
}
@ -439,9 +441,15 @@ public class ChartDataServer implements ChartDataApi {
if (!viewInfo.getType().equalsIgnoreCase("circle-packing")) {
Map<String, Object> senior = viewInfo.getSenior();
ChartSeniorFunctionCfgDTO functionCfgDTO = JsonUtil.parseObject((String) JsonUtil.toJSONString(senior.get("functionCfg")), ChartSeniorFunctionCfgDTO.class);
if (StringUtils.isNotEmpty(functionCfgDTO.getEmptyDataStrategy()) && functionCfgDTO.getEmptyDataStrategy().equalsIgnoreCase("setZero") && functionCfgDTO.getEmptyDataFieldCtrl().contains(xAxis.get(j).getDataeaseName())) {
if (functionCfgDTO != null && StringUtils.isNotEmpty(functionCfgDTO.getEmptyDataStrategy()) && functionCfgDTO.getEmptyDataStrategy().equalsIgnoreCase("setZero")) {
if ((viewInfo.getType().equalsIgnoreCase("table-normal") || viewInfo.getType().equalsIgnoreCase("table-info"))) {
if (functionCfgDTO.getEmptyDataFieldCtrl().contains(xAxis.get(j).getDataeaseName())) {
cell.setCellValue(0);
}
} else {
cell.setCellValue(0);
}
}
}
}
}

View File

@ -154,7 +154,7 @@ public class ApiUtils {
List<ApiDefinition> apiDefinitionList = JsonUtil.parseList(datasourceRequest.getDatasource().getConfiguration(), listTypeReference);
List<ObjectNode> status = new ArrayList();
for (ApiDefinition apiDefinition : apiDefinitionList) {
if (apiDefinition == null) {
if (apiDefinition == null || (apiDefinition.getType() != null && apiDefinition.getType().equalsIgnoreCase("params"))) {
continue;
}
datasourceRequest.setTable(apiDefinition.getName());

View File

@ -291,6 +291,9 @@ const saveDataset = () => {
request.apiConfiguration = ''
checkRepeat(request).then(res => {
let method = request.id === '' ? save : update
if (request.type !== 'API') {
request.syncSetting = null
}
if (res) {
ElMessageBox.confirm(t('datasource.has_same_ds'), options as ElMessageBoxOptions)
.then(() => {