From 0e46b48420e5d99ffebf0d6753e0d687c7e0726a Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 11 Sep 2024 15:44:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E8=AE=BE=E7=BD=AE=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0=E5=B9=B6=E5=8F=91=E6=95=B0=E9=87=8F=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E6=8A=A2=E5=8D=A0=E8=BF=87=E5=A4=9A=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/utils/CommonThreadPool.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/common/src/main/java/io/dataease/utils/CommonThreadPool.java b/sdk/common/src/main/java/io/dataease/utils/CommonThreadPool.java index 48aaec3420..17f9c30a7c 100644 --- a/sdk/common/src/main/java/io/dataease/utils/CommonThreadPool.java +++ b/sdk/common/src/main/java/io/dataease/utils/CommonThreadPool.java @@ -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); } From eb3ea6751b051ea15de48db65320cb10fce40be7 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 11 Sep 2024 16:19:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E9=99=90=E5=88=B6=E6=9D=A1=E6=95=B0?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exportCenter/manage/ExportCenterManage.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java index c66a8e0d0e..bd24f73f09 100644 --- a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java +++ b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java @@ -94,7 +94,7 @@ public class ExportCenterManage { @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/"; @@ -153,7 +153,7 @@ public class ExportCenterManage { } private Long getExportLimit() { - return Math.min(f2CLicLimitedManage.checkDatasetLimit(),limit); + return Math.min(f2CLicLimitedManage.checkDatasetLimit(), limit); } public void download(String id, HttpServletResponse response) throws Exception { @@ -395,7 +395,7 @@ public class ExportCenterManage { } if (StringUtils.isNotEmpty(request.getExpressionTree())) { Gson gson = new Gson(); - DatasetRowPermissionsTreeObj datasetRowPermissionsTreeObj =JsonUtil.parseObject(request.getExpressionTree(), DatasetRowPermissionsTreeObj.class); + DatasetRowPermissionsTreeObj datasetRowPermissionsTreeObj = JsonUtil.parseObject(request.getExpressionTree(), DatasetRowPermissionsTreeObj.class); permissionManage.getField(datasetRowPermissionsTreeObj); DataSetRowPermissionsTreeDTO dataSetRowPermissionsTreeDTO = new DataSetRowPermissionsTreeDTO(); dataSetRowPermissionsTreeDTO.setTree(datasetRowPermissionsTreeObj); @@ -421,13 +421,15 @@ public class ExportCenterManage { 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); From 2300c83ae23cbab57816cc547be3662be6c3c520 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 19 Sep 2024 16:01:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/dataset/utils/FieldUtils.java | 91 +++++-------------- 1 file changed, 22 insertions(+), 69 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/dataset/utils/FieldUtils.java b/core/core-backend/src/main/java/io/dataease/dataset/utils/FieldUtils.java index 1825e46bda..a4fb50b877 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/utils/FieldUtils.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/utils/FieldUtils.java @@ -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 text = Arrays.asList("CHAR", "VARCHAR", "TEXT", "TINYTEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", "ANY", "STRING", "BOOL", "BOOLEAN"); + List time = Arrays.asList("DATE", "TIME", "YEAR", "DATETIME", "TIMESTAMP", "DATEV2", "DATETIMEV2", "DATETIME2", "DATETIMEOFFSET", "SMALLDATETIME", "DATETIME64", "_TIMESTAMPTZ", "TIMESTAMPTZ"); + List num = Arrays.asList("INT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "LONG", "INT2", "INT4", "INT8", "int2", "int4", "int8", "INT16", "INT32", "INT64", "UINT8", "UINT16", "UINT32", "UINT64"); + List doubleList = Arrays.asList("NUMBER", "FLOAT", "DOUBLE", "DECIMAL", "REAL", "MONEY", "NUMERIC", "float4", "float8", "FLOAT4", "FLOAT8", "DECFLOAT", "FLOAT32", "FLOAT64"); + List 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) {