mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 03:22:56 +08:00
fix(仪表板): SQLServer 跨源数据集做图表联动无效 #13486
This commit is contained in:
parent
d345071290
commit
b428040f82
@ -158,8 +158,8 @@ public class CustomWhere2Str {
|
||||
|
||||
if (StringUtils.equalsIgnoreCase(item.getFilterType(), "enum")) {
|
||||
if (ObjectUtils.isNotEmpty(item.getEnumValue())) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
res = "(" + whereName + " IN (" + item.getEnumValue().stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + "))";
|
||||
} else {
|
||||
res = "(" + whereName + " IN ('" + String.join("','", item.getEnumValue()) + "'))";
|
||||
@ -184,15 +184,15 @@ public class CustomWhere2Str {
|
||||
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "(" + Arrays.stream(value.split(",")).map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
whereValue = "('" + String.join("','", value.split(",")) + "')";
|
||||
}
|
||||
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value + "%'";
|
||||
@ -237,8 +237,8 @@ public class CustomWhere2Str {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
|
||||
}
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE_CH, value);
|
||||
} else {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
|
||||
|
@ -158,14 +158,14 @@ public class ExtWhere2Str {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasN) {
|
||||
if (hasN && !isCross) {
|
||||
whereValue = "(" + value.stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
}
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "(" + value.stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
if (request.getDatasetTableField().getDeType() == 2 || request.getDatasetTableField().getDeType() == 3) {
|
||||
@ -188,14 +188,14 @@ public class ExtWhere2Str {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasN) {
|
||||
if (hasN && !isCross) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value.get(0) + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value.get(0) + "%'";
|
||||
}
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value.get(0) + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value.get(0) + "%'";
|
||||
@ -246,14 +246,14 @@ public class ExtWhere2Str {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (hasN) {
|
||||
if (hasN && !isCross) {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE_CH, value.get(0));
|
||||
} else {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value.get(0));
|
||||
}
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(request.getDatasetTableField().getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE_CH, value.get(0));
|
||||
} else {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value.get(0));
|
||||
|
@ -171,8 +171,8 @@ public class WhereTree2Str {
|
||||
|
||||
if (StringUtils.equalsIgnoreCase(item.getFilterType(), "enum")) {
|
||||
if (CollectionUtils.isNotEmpty(item.getEnumValue())) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
res = "(" + whereName + " IN (" + item.getEnumValue().stream().map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + "))";
|
||||
} else {
|
||||
res = "(" + whereName + " IN ('" + String.join("','", item.getEnumValue()) + "'))";
|
||||
@ -196,15 +196,15 @@ public class WhereTree2Str {
|
||||
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "(" + Arrays.stream(value.split(",")).map(str -> "'" + SQLConstants.MSSQL_N_PREFIX + str + "'").collect(Collectors.joining(",")) + ")";
|
||||
} else {
|
||||
whereValue = "('" + String.join("','", value.split(",")) + "')";
|
||||
}
|
||||
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = "'" + SQLConstants.MSSQL_N_PREFIX + "%" + value + "%'";
|
||||
} else {
|
||||
whereValue = "'%" + value + "%'";
|
||||
@ -247,8 +247,8 @@ public class WhereTree2Str {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
|
||||
}
|
||||
} else {
|
||||
if (StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) {
|
||||
if ((StringUtils.containsIgnoreCase(field.getType(), "NVARCHAR")
|
||||
|| StringUtils.containsIgnoreCase(field.getType(), "NCHAR")) && !isCross) {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE_CH, value);
|
||||
} else {
|
||||
whereValue = String.format(SQLConstants.WHERE_VALUE_VALUE, value);
|
||||
|
Loading…
Reference in New Issue
Block a user