diff --git a/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java index 2cb5404..4f70367 100644 --- a/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/wq/service/impl/EnvWqDataServiceImpl.java @@ -80,8 +80,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { } sql.append(buildEnvWqOrderBySql(dataSourceRequest.getSort())); - PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions); - Page page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null; + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EnvWqVo.class); fillEnvWqDerivedFields(list, calculated); @@ -127,8 +126,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { } sql.append(buildEnvWqDataOrderBySql(dataSourceRequest.getSort())); - PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions); - Page page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null; + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EnvWqDataVo.class); fillEnvWqDataDerivedFields(list); fillEnvWqDataLimit(list); @@ -658,8 +656,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { } sql.append(buildVmsstbprptOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort(), queryEngDirectly)); - PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions); - Page page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null; + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WqVmsstbprptVo.class); DataSourceResult result = new DataSourceResult<>(); diff --git a/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java index f3d0e5d..f9af2aa 100644 --- a/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/wt/service/impl/SdWtMonitorServiceImpl.java @@ -316,8 +316,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { sql.append(" AND ").append(filterSql).append(" "); } sql.append(buildSttpInfoOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); - - Page page = buildPage(dataSourceRequest == null ? null : dataSourceRequest.toDevRequest()); + DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SttpInfoVo.class); DataSourceResult result = new DataSourceResult<>(); result.setData(list); @@ -348,7 +348,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { } sql.append(buildYearDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); - Page page = buildPage(loadOptions); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdYearDetailVO.class); for (SdYearDetailVO vo : list) { vo.setActualTemp(vo.getWt()); @@ -393,7 +393,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { } sql.append(buildMonthDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort())); - Page page = buildPage(loadOptions); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdMonthDetailVO.class); DataSourceResult result = new DataSourceResult<>(); result.setData(list); @@ -480,7 +480,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { paramMap.put("baseId", baseId); } - Page page = buildPage(dataSourceRequest.toDevRequest()); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List wtFishVoList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtFishVo.class); String hbrvcd = wtFishVoList.isEmpty() ? null : wtFishVoList.get(0).getHbrvcd(); @@ -734,7 +734,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { } sql.append(buildVmsstbprptOrderBySql(dataSourceRequest.getSort())); - Page page = buildPage(loadOptions); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdWtBaseInfoVO.class); DataSourceResult result = new DataSourceResult<>(); @@ -944,7 +944,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { } appendCxDetailOrderBy(sql, dataSourceRequest.getSort()); - Page page = buildPage(dataSourceRequest.toDevRequest()); + DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); + Page page = QgcQueryWrapperUtil.buildPage(loadOptions,loadOptions.getSkip(), loadOptions.getTake()); List rowList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtCxDetailRow.class); List verticalList = getVerticals(rowList, wtDeviceType); @@ -1777,14 +1778,6 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService { return " ORDER BY " + String.join(", ", orderColumns); } - private Page buildPage(DataSourceLoadOptionsBase loadOptions) { - PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions); - if (Boolean.TRUE.equals(pageInfo.getHasPageInfo())) { - return pageInfo.getPage(); - } - return null; - } - private String buildVmsstbprptOrderBySql(List sortList) { List orderColumns = new ArrayList<>(); if (sortList != null) { diff --git a/backend/src/main/java/com/yfd/platform/utils/QgcQueryWrapperUtil.java b/backend/src/main/java/com/yfd/platform/utils/QgcQueryWrapperUtil.java index 9db62f6..3554573 100644 --- a/backend/src/main/java/com/yfd/platform/utils/QgcQueryWrapperUtil.java +++ b/backend/src/main/java/com/yfd/platform/utils/QgcQueryWrapperUtil.java @@ -77,6 +77,36 @@ public class QgcQueryWrapperUtil { } } + /** + * 支持页码模式和偏移量模式的分页 + * 优先使用页码模式:当 page > 0 且 pageSize > 0 时,自动转换为 take/skip + * 否则回退到原有的 take/skip 偏移量模式 + */ + public static PageInfo getPageInfo(DataSourceLoadOptionsBase loadOptions, Integer page, Integer pageSize) { + if (page != null && page > 0 && pageSize != null && pageSize > 0) { + loadOptions.setTake(pageSize); + loadOptions.setSkip((page - 1) * pageSize); + } + return getPageInfo(loadOptions); + } + + + public static Page buildPage(DataSourceLoadOptionsBase loadOptions) { + PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions); + if (Boolean.TRUE.equals(pageInfo.getHasPageInfo())) { + return pageInfo.getPage(); + } + return null; + } + + public static Page buildPage(DataSourceLoadOptionsBase loadOptions, Integer page, Integer pageSize) { + PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions, page, pageSize); + if (Boolean.TRUE.equals(pageInfo.getHasPageInfo())) { + return pageInfo.getPage(); + } + return null; + } + private static void parseJArrayConditions(JsonArray jsonArray, String fieldName, StringBuffer fieldValue) { if (jsonArray != null && jsonArray.size() != 0) { if (jsonArray.get(0).isJsonPrimitive()) {