forked from github/dataease
commit
c70bb846aa
@ -1,79 +1,32 @@
|
||||
package io.dataease.dataset.utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
public class FieldUtils {
|
||||
public static int transType2DeType(String type) {
|
||||
type = type.replaceAll("\\((.*?)\\)","");
|
||||
switch (type) {
|
||||
case "CHAR":
|
||||
case "VARCHAR":
|
||||
case "TEXT":
|
||||
case "TINYTEXT":
|
||||
case "MEDIUMTEXT":
|
||||
case "LONGTEXT":
|
||||
case "ENUM":
|
||||
case "ANY":
|
||||
case "STRING":
|
||||
case "BOOL":
|
||||
case "BOOLEAN":
|
||||
return 0;// 文本
|
||||
case "DATE":
|
||||
case "TIME":
|
||||
case "YEAR":
|
||||
case "DATETIME":
|
||||
case "TIMESTAMP":
|
||||
case "DATEV2":
|
||||
case "DATETIMEV2":
|
||||
case "DATETIME2":
|
||||
case "DATETIMEOFFSET":
|
||||
case "SMALLDATETIME":
|
||||
case "DATETIME64":
|
||||
case "_TIMESTAMPTZ":
|
||||
case "TIMESTAMPTZ":
|
||||
return 1;// 时间
|
||||
case "INT":
|
||||
case "SMALLINT":
|
||||
case "MEDIUMINT":
|
||||
case "INTEGER":
|
||||
case "BIGINT":
|
||||
case "LONG": //增加了LONG类型
|
||||
case "INT2":
|
||||
case "INT4":
|
||||
case "INT8":
|
||||
case "int2":
|
||||
case "int4":
|
||||
case "int8":
|
||||
case "INT16":
|
||||
case "INT32":
|
||||
case "INT64":
|
||||
case "UINT8":
|
||||
case "UINT16":
|
||||
case "UINT32":
|
||||
case "UINT64":
|
||||
return 2;// 整型
|
||||
case "NUMBER":
|
||||
case "FLOAT":
|
||||
case "DOUBLE":
|
||||
case "DECIMAL":
|
||||
case "REAL":
|
||||
case "MONEY":
|
||||
case "NUMERIC":
|
||||
case "float4":
|
||||
case "float8":
|
||||
case "FLOAT4":
|
||||
case "FLOAT8":
|
||||
case "DECFLOAT":
|
||||
case "FLOAT32":
|
||||
case "FLOAT64":
|
||||
return 3;// 浮点
|
||||
case "BIT":
|
||||
case "TINYINT":
|
||||
return 4;// 布尔
|
||||
default:
|
||||
return 0;
|
||||
public static int transType2DeType(final String type) {
|
||||
List<String> text = Arrays.asList("CHAR", "VARCHAR", "TEXT", "TINYTEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", "ANY", "STRING", "BOOL", "BOOLEAN");
|
||||
List<String> time = Arrays.asList("DATE", "TIME", "YEAR", "DATETIME", "TIMESTAMP", "DATEV2", "DATETIMEV2", "DATETIME2", "DATETIMEOFFSET", "SMALLDATETIME", "DATETIME64", "_TIMESTAMPTZ", "TIMESTAMPTZ");
|
||||
List<String> num = Arrays.asList("INT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "LONG", "INT2", "INT4", "INT8", "int2", "int4", "int8", "INT16", "INT32", "INT64", "UINT8", "UINT16", "UINT32", "UINT64");
|
||||
List<String> doubleList = Arrays.asList("NUMBER", "FLOAT", "DOUBLE", "DECIMAL", "REAL", "MONEY", "NUMERIC", "float4", "float8", "FLOAT4", "FLOAT8", "DECFLOAT", "FLOAT32", "FLOAT64");
|
||||
List<String> boolType = Arrays.asList("BIT", "TINYINT");
|
||||
if (boolType.stream().anyMatch(l -> type.contains(l))) {
|
||||
return 4;// 布尔
|
||||
}
|
||||
if (doubleList.stream().anyMatch(l -> type.contains(l))) {
|
||||
return 3;// 浮点
|
||||
}
|
||||
if (num.stream().anyMatch(l -> type.contains(l))) {
|
||||
return 2;// 整型
|
||||
}
|
||||
if (time.stream().anyMatch(l -> type.contains(l))) {
|
||||
return 1;// 时间
|
||||
}
|
||||
return 0;// 文本
|
||||
}
|
||||
|
||||
public static String transDeType2DQ(int deType) {
|
||||
|
@ -96,7 +96,7 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
@Value("${dataease.export.max.size:10}")
|
||||
private int max;
|
||||
|
||||
@Value("${dataease.export.dataset.limit:100000}")
|
||||
@Value("${dataease.export.dataset.limit:20}")
|
||||
private int limit;
|
||||
private final static String DATA_URL_TITLE = "data:image/jpeg;base64,";
|
||||
private static final String exportData_path = "/opt/dataease2.0/data/exportData/";
|
||||
@ -503,13 +503,15 @@ public class ExportCenterManage implements BaseExportApi {
|
||||
totalCount = totalCount > curLimit ? curLimit : totalCount;
|
||||
Long totalPage = (totalCount / extractPageSize) + (totalCount % extractPageSize > 0 ? 1 : 0);
|
||||
|
||||
|
||||
Workbook wb = new SXSSFWorkbook();
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + request.getFilename() + ".xlsx");
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
|
||||
for (Integer p = 0; p < totalPage; p++) {
|
||||
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, p * extractPageSize, p * extractPageSize + extractPageSize);
|
||||
if (totalPage == 1) {
|
||||
querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, 0, totalCount.intValue());
|
||||
}
|
||||
querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setQuery(querySQL);
|
||||
|
@ -15,6 +15,8 @@ public class CommonThreadPool {
|
||||
|
||||
private int maxQueueSize = 10;
|
||||
|
||||
private int maximumPoolSize = 10;
|
||||
|
||||
private int keepAliveSeconds = 600;
|
||||
|
||||
private ScheduledThreadPoolExecutor scheduledThreadPoolExecutor;
|
||||
@ -22,6 +24,7 @@ public class CommonThreadPool {
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(corePoolSize);
|
||||
scheduledThreadPoolExecutor.setMaximumPoolSize(maximumPoolSize);
|
||||
scheduledThreadPoolExecutor.setKeepAliveTime(keepAliveSeconds, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user