forked from github/dataease
Merge pull request #11922 from dataease/pr@dev-v2@fixDS
fix: 数据集导出拼接sql出错
This commit is contained in:
commit
b4cfe45a19
@ -32,6 +32,7 @@ public class WhereTree2Str {
|
||||
return;
|
||||
}
|
||||
List<String> res = new ArrayList<>();
|
||||
List<String> exportFilters = new ArrayList<>();
|
||||
Map<String, String> fieldsDialect = new HashMap<>();
|
||||
// permission trees
|
||||
// 解析每个tree,然后多个tree之间用and拼接
|
||||
@ -42,11 +43,21 @@ public class WhereTree2Str {
|
||||
continue;
|
||||
}
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@ -180,10 +191,7 @@ public class WhereTree2Str {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
|
||||
}
|
||||
}
|
||||
SQLObj build = SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue(whereTerm + whereValue)
|
||||
.build();
|
||||
SQLObj build = SQLObj.builder().whereField(whereName).whereTermAndValue(whereTerm + whereValue).build();
|
||||
res = build.getWhereField() + " " + build.getWhereTermAndValue();
|
||||
}
|
||||
return res;
|
||||
|
@ -230,6 +230,10 @@ public class ExportCenterManage {
|
||||
ChartExcelRequest request = JsonUtil.parseObject(exportTask.getParams(), ChartExcelRequest.class);
|
||||
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) {
|
||||
@ -395,6 +399,7 @@ public class ExportCenterManage {
|
||||
permissionManage.getField(datasetRowPermissionsTreeObj);
|
||||
DataSetRowPermissionsTreeDTO dataSetRowPermissionsTreeDTO = new DataSetRowPermissionsTreeDTO();
|
||||
dataSetRowPermissionsTreeDTO.setTree(datasetRowPermissionsTreeObj);
|
||||
dataSetRowPermissionsTreeDTO.setExportData(true);
|
||||
rowPermissionsTree.add(dataSetRowPermissionsTreeDTO);
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ const handleTabClick = tab => {
|
||||
}
|
||||
|
||||
const uploadFail = response => {
|
||||
state.excelData = []
|
||||
activeTab.value = ''
|
||||
tabList.value = []
|
||||
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
|
||||
let myError = response.toString()
|
||||
myError.replace('Error: ', '')
|
||||
}
|
||||
@ -160,6 +164,10 @@ const handleExcelDel = () => {
|
||||
|
||||
const uploadSuccess = response => {
|
||||
if (response?.code !== 0) {
|
||||
state.excelData = []
|
||||
activeTab.value = ''
|
||||
tabList.value = []
|
||||
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
|
||||
ElMessage.warning(response.msg)
|
||||
return
|
||||
}
|
||||
@ -365,6 +373,10 @@ const uploadExcel = () => {
|
||||
loading.value = false
|
||||
})
|
||||
.catch(error => {
|
||||
state.excelData = []
|
||||
activeTab.value = ''
|
||||
tabList.value = []
|
||||
Object.assign(sheetObj, cloneDeep(defaultSheetObj))
|
||||
if (error.code === 'ECONNABORTED') {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
|
@ -884,6 +884,9 @@ const uploadExcel = editType => {
|
||||
addLoading.value = editType === 1
|
||||
return uploadFile(formData)
|
||||
.then(res => {
|
||||
if (res?.code !== 0) {
|
||||
return
|
||||
}
|
||||
nodeInfo.editType = editType
|
||||
datasourceEditor.value.init(nodeInfo, nodeInfo.id, res)
|
||||
})
|
||||
|
@ -68,4 +68,6 @@ public class DataSetRowPermissionsTreeDTO {
|
||||
private List<UserFormVO> whiteListUsers;
|
||||
private List<RoleVO> whiteListRoles;
|
||||
private List<Long> authTargetIds;
|
||||
private boolean exportData;
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user