forked from github/dataease
Merge pull request #13151 from dataease/pr@dev-v2@fix_filter_tree
fix(过滤组件): 修复下拉树多选异常
This commit is contained in:
commit
ac74647c53
@ -147,19 +147,55 @@ public class ExtWhere2Str {
|
||||
if (value.contains(SQLConstants.EMPTY_SIGN)) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
whereValue = "(" + value.stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
// tree的情况需额外处理
|
||||
if (request.getIsTree()) {
|
||||
List<DatasetTableFieldDTO> datasetTableFieldList = request.getDatasetTableFieldList();
|
||||
boolean hasN = false;
|
||||
for (DatasetTableFieldDTO dto : datasetTableFieldList) {
|
||||
if (StringUtils.containsIgnoreCase(dto.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(dto.getType(), "NCHAR")) {
|
||||
hasN = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasN) {
|
||||
whereValue = "(" + value.stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
}
|
||||
} else {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
whereValue = "(" + value.stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value.get(0) + "%'";
|
||||
// tree的情况需额外处理
|
||||
if (request.getIsTree()) {
|
||||
List<DatasetTableFieldDTO> datasetTableFieldList = request.getDatasetTableFieldList();
|
||||
boolean hasN = false;
|
||||
for (DatasetTableFieldDTO dto : datasetTableFieldList) {
|
||||
if (StringUtils.containsIgnoreCase(dto.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(dto.getType(), "NCHAR")) {
|
||||
hasN = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasN) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value.get(0) + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value.get(0) + "%'";
|
||||
}
|
||||
} else {
|
||||
whereValue = "'%" + value.get(0) + "%'";
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value.get(0) + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value.get(0) + "%'";
|
||||
}
|
||||
}
|
||||
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
|
||||
if (request.getDatasetTableField().getDeType() == 1) {
|
||||
|
Loading…
Reference in New Issue
Block a user