diff --git a/src/main/java/neatlogic/framework/matrix/dao/mapper/MatrixDataMapper.xml b/src/main/java/neatlogic/framework/matrix/dao/mapper/MatrixDataMapper.xml index b41c68692fb5dabbce9ab7c76f9aea805dfc45fc..ab4e8e00f8e768c738aa7ff3b4b1bb3887094129 100644 --- a/src/main/java/neatlogic/framework/matrix/dao/mapper/MatrixDataMapper.xml +++ b/src/main/java/neatlogic/framework/matrix/dao/mapper/MatrixDataMapper.xml @@ -341,7 +341,17 @@ @@ -349,13 +359,29 @@ SELECT - COUNT(1) + + + COUNT(distinct + + `${column}` + ) + + + COUNT(1) + + FROM `@{DATA_SCHEMA}`.`matrix_${matrixUuid}` + + + `${notColumn}` IS NOT NULL + + @@ -219,16 +234,37 @@ diff --git a/src/main/java/neatlogic/framework/matrix/dto/MatrixDataVo.java b/src/main/java/neatlogic/framework/matrix/dto/MatrixDataVo.java index e4ce9cc76e2551f168e0e5dc5c8856299b9f367d..43ff4c71e933b24b0107547f3b9d46c42e9e14d4 100644 --- a/src/main/java/neatlogic/framework/matrix/dto/MatrixDataVo.java +++ b/src/main/java/neatlogic/framework/matrix/dto/MatrixDataVo.java @@ -44,6 +44,7 @@ public class MatrixDataVo extends BasePageVo { private Long filterCiEntityId; @Deprecated private Long filterCiId; + private Boolean distinct; /** * 用于下拉框默认值回显 @@ -239,4 +240,12 @@ public class MatrixDataVo extends BasePageVo { public void setKeywordColumnUniqueIdentifier(String keywordColumnUniqueIdentifier) { this.keywordColumnUniqueIdentifier = keywordColumnUniqueIdentifier; } + + public Boolean getDistinct() { + return distinct; + } + + public void setDistinct(Boolean distinct) { + this.distinct = distinct; + } } diff --git a/src/main/java/neatlogic/framework/restful/core/ApiValidateAndHelpBase.java b/src/main/java/neatlogic/framework/restful/core/ApiValidateAndHelpBase.java index 25329d131c4e404f45ba9c26dded421b8d41f4b0..0acb3af9ba559d5bb1a7c5e236619bc980a78a61 100644 --- a/src/main/java/neatlogic/framework/restful/core/ApiValidateAndHelpBase.java +++ b/src/main/java/neatlogic/framework/restful/core/ApiValidateAndHelpBase.java @@ -386,6 +386,12 @@ public class ApiValidateAndHelpBase { paramObj.put(p.name(), JSON.parse(p.defaultValue())); } else if (p.type().equals(ApiParamType.ENUM)) { paramObj.put(p.name(), p.defaultValue()); + } else if (p.type().equals(ApiParamType.BOOLEAN)) { + paramObj.put(p.name(), Boolean.parseBoolean(p.defaultValue())); + } else if (p.type().equals(ApiParamType.DOUBLE)) { + paramObj.put(p.name(), Double.parseDouble(p.defaultValue())); + } else { + paramObj.put(p.name(), p.defaultValue()); } } catch (Exception ex) { throw new ParamDefaultValueIrregularException(p.name(), p.defaultValue(), p.type()); diff --git a/src/main/java/neatlogic/module/framework/matrix/handler/CustomDataSourceHandler.java b/src/main/java/neatlogic/module/framework/matrix/handler/CustomDataSourceHandler.java index 1648bcb5f9574158690653e170d405e5afb8d960..dce9a553e6879700455b75e1344bcf46081465c5 100644 --- a/src/main/java/neatlogic/module/framework/matrix/handler/CustomDataSourceHandler.java +++ b/src/main/java/neatlogic/module/framework/matrix/handler/CustomDataSourceHandler.java @@ -600,11 +600,13 @@ public class CustomDataSourceHandler extends MatrixDataSourceHandlerBase { } } //下面逻辑适用于下拉框滚动加载,也可以搜索,但是一页返回的数据量可能会小于pageSize,因为做了去重处理 - int rowNum = matrixDataMapper.getDynamicTableDataListCount(dataVo); - if (rowNum == 0) { - return resultList; + if (Objects.equals(dataVo.getRowNum(), 0)) { + int rowNum = matrixDataMapper.getDynamicTableDataListCount(dataVo); + if (rowNum == 0) { + return resultList; + } + dataVo.setRowNum(rowNum); } - dataVo.setRowNum(rowNum); if (dataVo.getCurrentPage() > dataVo.getPageCount()) { return resultList; } diff --git a/src/main/java/neatlogic/module/framework/matrix/handler/ViewDataSourceHandler.java b/src/main/java/neatlogic/module/framework/matrix/handler/ViewDataSourceHandler.java index 8ad2a2cb6d9b28fcdb6e3ce8d2067eafc181accd..1a302f7b8e086c2bc9a61a84699d0b1804ac3975 100644 --- a/src/main/java/neatlogic/module/framework/matrix/handler/ViewDataSourceHandler.java +++ b/src/main/java/neatlogic/module/framework/matrix/handler/ViewDataSourceHandler.java @@ -334,11 +334,13 @@ public class ViewDataSourceHandler extends MatrixDataSourceHandlerBase { dataVo.setFilterList(filterList); } //下面逻辑适用于下拉框滚动加载,也可以搜索,但是一页返回的数据量可能会小于pageSize,因为做了去重处理 - int rowNum = matrixViewDataMapper.getDynamicTableDataListCount(dataVo); - if (rowNum == 0) { - return resultList; + if (Objects.equals(dataVo.getRowNum(), 0)) { + int rowNum = matrixViewDataMapper.getDynamicTableDataListCount(dataVo); + if (rowNum == 0) { + return resultList; + } + dataVo.setRowNum(rowNum); } - dataVo.setRowNum(rowNum); if (dataVo.getCurrentPage() > dataVo.getPageCount()) { return resultList; }