mirror of
https://github.com/dataease/dataease.git
synced 2026-05-14 21:12:33 +08:00
feat(X-Pack): [数据填报]表单数据支持字段过滤查询
This commit is contained in:
@@ -6,7 +6,7 @@ import io.dataease.chart.manage.ChartDataManage;
|
||||
import io.dataease.chart.manage.ChartViewManege;
|
||||
import io.dataease.chart.utils.ChartDataBuild;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
import io.dataease.engine.trans.Quota2SQLObj;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.dataease.chart.charts.impl.table;
|
||||
|
||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
|
||||
@@ -2,7 +2,7 @@ package io.dataease.chart.manage;
|
||||
|
||||
import io.dataease.api.chart.request.ThresholdCheckRequest;
|
||||
import io.dataease.api.chart.vo.ThresholdCheckVO;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
|
||||
@@ -12,7 +12,7 @@ import io.dataease.constant.AuthConstant;
|
||||
import io.dataease.constant.CommonConstants;
|
||||
import io.dataease.dataset.manage.PermissionManage;
|
||||
import io.dataease.dataset.server.DatasetFieldServer;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.exportCenter.manage.ExportCenterManage;
|
||||
import io.dataease.exportCenter.util.ExportCenterUtils;
|
||||
|
||||
@@ -13,7 +13,7 @@ import io.dataease.dataset.manage.DatasetSQLManage;
|
||||
import io.dataease.dataset.manage.DatasetTableFieldManage;
|
||||
import io.dataease.dataset.manage.PermissionManage;
|
||||
import io.dataease.dataset.utils.FieldUtils;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -22,7 +22,7 @@ import io.dataease.datasource.manage.DataSourceManage;
|
||||
import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.datasource.utils.DatasourceUtils;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.*;
|
||||
import io.dataease.engine.utils.SQLUtils;
|
||||
|
||||
@@ -15,7 +15,7 @@ import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
|
||||
import io.dataease.datasource.manage.DataSourceManage;
|
||||
import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
|
||||
@@ -9,7 +9,7 @@ import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
|
||||
import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.datasource.request.EngineRequest;
|
||||
import io.dataease.datasource.type.*;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.dto.*;
|
||||
import io.dataease.extensions.datasource.provider.DriverShim;
|
||||
|
||||
@@ -28,7 +28,7 @@ import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.datasource.provider.ApiUtils;
|
||||
import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.datasource.provider.ExcelUtils;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.*;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.dataease.engine.sql;
|
||||
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.model.SQLObj;
|
||||
import io.dataease.extensions.view.dto.ChartViewDTO;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.func.FunctionConstant;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.api.chart.dto.DeSortField;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
import io.dataease.extensions.datasource.model.SQLMeta;
|
||||
import io.dataease.extensions.datasource.model.SQLObj;
|
||||
|
||||
@@ -2,7 +2,7 @@ package io.dataease.engine.trans;
|
||||
|
||||
import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.dataease.engine.utils;
|
||||
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.constant.SqlPlaceholderConstants;
|
||||
|
||||
@@ -22,7 +22,7 @@ import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetGroupMapper;
|
||||
import io.dataease.dataset.manage.*;
|
||||
import io.dataease.datasource.utils.DatasourceUtils;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Field2SQLObj;
|
||||
import io.dataease.engine.trans.Order2SQLObj;
|
||||
@@ -62,7 +62,6 @@ import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
|
||||
@@ -7,7 +7,7 @@ import io.dataease.chart.manage.ChartDataManage;
|
||||
import io.dataease.chart.manage.ChartViewManege;
|
||||
import io.dataease.constant.CommonConstants;
|
||||
import io.dataease.dataset.server.DatasetFieldServer;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.exportCenter.util.ExportCenterUtils;
|
||||
import io.dataease.extensions.view.dto.ChartExtFilterDTO;
|
||||
|
||||
@@ -11,7 +11,7 @@ import io.dataease.api.visualization.response.VisualizationOuterParamsBaseRespon
|
||||
import io.dataease.auth.DeLinkPermit;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTable;
|
||||
import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableMapper;
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.dataease.visualization.utils;
|
||||
|
||||
import io.dataease.engine.constant.DeTypeConstants;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.utils.ConfigUtils;
|
||||
import io.dataease.utils.FileUtils;
|
||||
import io.dataease.utils.LogUtil;
|
||||
|
||||
@@ -28,4 +28,6 @@ public class DataFillFormTableDataRequest implements Serializable {
|
||||
|
||||
private List<String> primaryKeyValueList;
|
||||
|
||||
private List<DataFillFormTableDataSearchParam> searchParams;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package io.dataease.api.xpack.dataFilling.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DataFillFormTableDataSearchParam implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -9094306073413857266L;
|
||||
|
||||
private String term;
|
||||
|
||||
private String field;
|
||||
|
||||
private Object value;
|
||||
|
||||
private List<Object> values;
|
||||
|
||||
private boolean multiple;
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.dataease.engine.constant;
|
||||
package io.dataease.constant;
|
||||
|
||||
public class DeTypeConstants {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.dataease.engine.constant;
|
||||
package io.dataease.constant;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -5,7 +5,9 @@ import io.dataease.extensions.datasource.dto.TableField;
|
||||
import io.dataease.extensions.datafilling.dto.ExtIndexField;
|
||||
import io.dataease.extensions.datafilling.dto.ExtTableField;
|
||||
import io.dataease.extensions.datasource.dto.TableFieldWithValue;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -23,13 +25,56 @@ public abstract class ExtDDLProvider {
|
||||
|
||||
public abstract String dropTableColumnSql(String table, List<ExtTableField> formFields);
|
||||
|
||||
public abstract String searchSql(String table, List<TableField> formFields, String whereSql, long limit, long offset);
|
||||
@Deprecated
|
||||
public String searchSql(String table, List<TableField> formFields, String whereSql, long limit, long offset) {
|
||||
String baseSql = "SELECT $Column_Fields$ FROM `$TABLE_NAME$` $WHERE_SQL$ ;";
|
||||
if (limit > 0) {
|
||||
baseSql = "SELECT $Column_Fields$ FROM `$TABLE_NAME$` $WHERE_SQL$ LIMIT $OFFSET_COUNT$, $LIMIT_COUNT$ ;";
|
||||
}
|
||||
baseSql = baseSql.replace("$TABLE_NAME$", table)
|
||||
.replace("$OFFSET_COUNT$", Long.toString(offset))
|
||||
.replace("$LIMIT_COUNT$", Long.toString(limit));
|
||||
if (StringUtils.isBlank(whereSql)) {
|
||||
baseSql = baseSql.replace("$WHERE_SQL$", "");
|
||||
} else {
|
||||
baseSql = baseSql.replace("$WHERE_SQL$", whereSql);
|
||||
}
|
||||
baseSql = baseSql.replace("$Column_Fields$", convertSearchFields(formFields));
|
||||
return baseSql;
|
||||
}
|
||||
|
||||
private String convertSearchFields(List<TableField> formFields) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 0; i < formFields.size(); i++) {
|
||||
TableField f = formFields.get(i);
|
||||
if (StringUtils.equalsAnyIgnoreCase(f.getFieldType(), "datetime")) {
|
||||
//特殊处理,全部使用统一格式输出
|
||||
builder.append("DATE_FORMAT(`").append(f.getOriginName()).append("`,'%Y-%m-%d %H:%i:%S')");
|
||||
} else {
|
||||
builder.append("`").append(f.getOriginName()).append("`");
|
||||
}
|
||||
if (i < formFields.size() - 1) {
|
||||
builder.append(", ");
|
||||
}
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public abstract String searchColumnData(String table, String column, String order);
|
||||
|
||||
public abstract String searchColumnRowDataOne(String table, List<TableField> searchFields, TableFieldWithValue tableFieldWithValue);
|
||||
|
||||
public abstract String countSql(String table, String whereSql);
|
||||
@Deprecated
|
||||
public String countSql(String table, String whereSql){
|
||||
String baseSql = "SELECT COUNT(1) FROM `$TABLE_NAME$` $WHERE_SQL$ ;";
|
||||
baseSql = baseSql.replace("$TABLE_NAME$", table);
|
||||
if (StringUtils.isBlank(whereSql)) {
|
||||
baseSql = baseSql.replace("$WHERE_SQL$", "");
|
||||
} else {
|
||||
baseSql = baseSql.replace("$WHERE_SQL$", whereSql);
|
||||
}
|
||||
return baseSql;
|
||||
}
|
||||
|
||||
public abstract String dropTableSql(String table);
|
||||
|
||||
@@ -45,9 +90,54 @@ public abstract class ExtDDLProvider {
|
||||
|
||||
public abstract String checkUniqueValueSql(String tableName, TableFieldWithValue field, TableFieldWithValue pk);
|
||||
|
||||
public abstract String whereSql(String tableName, List<TableField> searchFields);
|
||||
@Deprecated
|
||||
public String whereSql(String tableName, List<TableField> searchFields) {
|
||||
StringBuilder builder = new StringBuilder("WHERE 1 = 1 ");
|
||||
for (TableField searchField : searchFields) {
|
||||
if (searchField.getInCount() > 1) {
|
||||
List<String> pList = new ArrayList<>();
|
||||
for (int i = 0; i < searchField.getInCount(); i++) {
|
||||
pList.add("?");
|
||||
}
|
||||
String str = "AND $Column_Field$ IN (" + String.join(", ", pList) + ")";
|
||||
builder.append(str.replace("$Column_Field$", searchField.getOriginName()));
|
||||
} else {
|
||||
switch (searchField.getTerm()) {
|
||||
case "not_eq":
|
||||
builder.append(("AND $Column_Field$ " + "!=" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
case "lt":
|
||||
builder.append(("AND $Column_Field$ " + "<" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
case "gt":
|
||||
builder.append(("AND $Column_Field$ " + ">" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
case "le":
|
||||
builder.append(("AND $Column_Field$ " + "<=" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
case "ge":
|
||||
builder.append(("AND $Column_Field$ " + ">=" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
case "null":
|
||||
builder.append("AND $Column_Field$ IS NULL ");
|
||||
break;
|
||||
case "not_null":
|
||||
builder.append("AND $Column_Field$ IS NOT NULL ");
|
||||
break;
|
||||
default:
|
||||
builder.append(("AND $Column_Field$ " + "=" + " ? ").replace("$Column_Field$", searchField.getOriginName()));
|
||||
break;
|
||||
}
|
||||
|
||||
public abstract String getLowerCaseTaleNames();
|
||||
}
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String getLowerCaseTaleNames() {
|
||||
return "SHOW VARIABLES LIKE 'lower_case_table_names'";
|
||||
}
|
||||
|
||||
public abstract Integer getColumnType(String name);
|
||||
|
||||
|
||||
@@ -26,5 +26,6 @@ public class TableField implements Serializable {
|
||||
List<Object> value;
|
||||
|
||||
private int inCount;
|
||||
private String term = "eq";
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,10 @@ public class TableFieldWithValue implements Serializable {
|
||||
private String typeName;
|
||||
private Integer type;
|
||||
|
||||
private String isDateTime;
|
||||
private String dateFormat;
|
||||
private String term = "eq";
|
||||
|
||||
public static TableFieldWithValue copy(TableFieldWithValue tableFieldWithValue) {
|
||||
return new TableFieldWithValue()
|
||||
.setValue(tableFieldWithValue.getValue())
|
||||
|
||||
Reference in New Issue
Block a user