Merge pull request #11922 from dataease/pr@dev-v2@fixDS

fix: 数据集导出拼接sql出错
This commit is contained in:
taojinlong 2024-09-02 19:08:25 +08:00 committed by GitHub
commit b4cfe45a19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 36 additions and 6 deletions

View File

@ -32,6 +32,7 @@ public class WhereTree2Str {
return; return;
} }
List<String> res = new ArrayList<>(); List<String> res = new ArrayList<>();
List<String> exportFilters = new ArrayList<>();
Map<String, String> fieldsDialect = new HashMap<>(); Map<String, String> fieldsDialect = new HashMap<>();
// permission trees // permission trees
// 解析每个tree然后多个tree之间用and拼接 // 解析每个tree然后多个tree之间用and拼接
@ -42,11 +43,21 @@ public class WhereTree2Str {
continue; continue;
} }
String treeExp = transTreeToWhere(tableObj, tree, originFields, fieldsDialect, isCross, dsMap, fieldParam, chartParam, pluginManage); String treeExp = transTreeToWhere(tableObj, tree, originFields, fieldsDialect, isCross, dsMap, fieldParam, chartParam, pluginManage);
if (StringUtils.isNotEmpty(treeExp)) { if (StringUtils.isNotEmpty(treeExp) && !request.isExportData()) {
res.add(treeExp); res.add(treeExp);
} }
if (StringUtils.isNotEmpty(treeExp) && request.isExportData()) {
exportFilters.add(treeExp);
}
} }
meta.setWhereTrees(CollectionUtils.isNotEmpty(res) ? "(" + String.join(" OR ", res) + ")" : null); String whereSql = null;
if (CollectionUtils.isNotEmpty(res)) {
whereSql = String.join(" OR ", res);
}
if (CollectionUtils.isNotEmpty(exportFilters)) {
whereSql = whereSql == null ? String.join(" and ", exportFilters) : whereSql + " AND " + String.join(" and ", exportFilters);
}
meta.setWhereTrees(whereSql != null ? "(" + whereSql + ")" : null);
meta.setWhereTreesDialect(fieldsDialect); meta.setWhereTreesDialect(fieldsDialect);
} }
@ -180,10 +191,7 @@ public class WhereTree2Str {
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value); whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
} }
} }
SQLObj build = SQLObj.builder() SQLObj build = SQLObj.builder().whereField(whereName).whereTermAndValue(whereTerm + whereValue).build();
.whereField(whereName)
.whereTermAndValue(whereTerm + whereValue)
.build();
res = build.getWhereField() + " " + build.getWhereTermAndValue(); res = build.getWhereField() + " " + build.getWhereTermAndValue();
} }
return res; return res;

View File

@ -230,6 +230,10 @@ public class ExportCenterManage {
ChartExcelRequest request = JsonUtil.parseObject(exportTask.getParams(), ChartExcelRequest.class); ChartExcelRequest request = JsonUtil.parseObject(exportTask.getParams(), ChartExcelRequest.class);
startViewTask(exportTask, request); startViewTask(exportTask, request);
} }
if (exportTask.getExportFromType().equalsIgnoreCase("dataset")) {
DataSetExportRequest request = JsonUtil.parseObject(exportTask.getParams(), DataSetExportRequest.class);
startDatasetTask(exportTask, request);
}
} }
public List<ExportTaskDTO> exportTasks(String status) { public List<ExportTaskDTO> exportTasks(String status) {
@ -395,6 +399,7 @@ public class ExportCenterManage {
permissionManage.getField(datasetRowPermissionsTreeObj); permissionManage.getField(datasetRowPermissionsTreeObj);
DataSetRowPermissionsTreeDTO dataSetRowPermissionsTreeDTO = new DataSetRowPermissionsTreeDTO(); DataSetRowPermissionsTreeDTO dataSetRowPermissionsTreeDTO = new DataSetRowPermissionsTreeDTO();
dataSetRowPermissionsTreeDTO.setTree(datasetRowPermissionsTreeObj); dataSetRowPermissionsTreeDTO.setTree(datasetRowPermissionsTreeObj);
dataSetRowPermissionsTreeDTO.setExportData(true);
rowPermissionsTree.add(dataSetRowPermissionsTreeDTO); rowPermissionsTree.add(dataSetRowPermissionsTreeDTO);
} }

View File

@ -145,6 +145,10 @@ const handleTabClick = tab => {
} }
const uploadFail = response => { const uploadFail = response => {
state.excelData = []
activeTab.value = ''
tabList.value = []
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
let myError = response.toString() let myError = response.toString()
myError.replace('Error: ', '') myError.replace('Error: ', '')
} }
@ -160,6 +164,10 @@ const handleExcelDel = () => {
const uploadSuccess = response => { const uploadSuccess = response => {
if (response?.code !== 0) { if (response?.code !== 0) {
state.excelData = []
activeTab.value = ''
tabList.value = []
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
ElMessage.warning(response.msg) ElMessage.warning(response.msg)
return return
} }
@ -365,6 +373,10 @@ const uploadExcel = () => {
loading.value = false loading.value = false
}) })
.catch(error => { .catch(error => {
state.excelData = []
activeTab.value = ''
tabList.value = []
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
if (error.code === 'ECONNABORTED') { if (error.code === 'ECONNABORTED') {
ElMessage({ ElMessage({
type: 'error', type: 'error',

View File

@ -884,6 +884,9 @@ const uploadExcel = editType => {
addLoading.value = editType === 1 addLoading.value = editType === 1
return uploadFile(formData) return uploadFile(formData)
.then(res => { .then(res => {
if (res?.code !== 0) {
return
}
nodeInfo.editType = editType nodeInfo.editType = editType
datasourceEditor.value.init(nodeInfo, nodeInfo.id, res) datasourceEditor.value.init(nodeInfo, nodeInfo.id, res)
}) })

View File

@ -68,4 +68,6 @@ public class DataSetRowPermissionsTreeDTO {
private List<UserFormVO> whiteListUsers; private List<UserFormVO> whiteListUsers;
private List<RoleVO> whiteListRoles; private List<RoleVO> whiteListRoles;
private List<Long> authTargetIds; private List<Long> authTargetIds;
private boolean exportData;
} }