fix: 优化分页工具

This commit is contained in:
tangwei 2026-05-28 13:38:08 +08:00
parent 81cefa3ffb
commit 77b77612b1
3 changed files with 41 additions and 21 deletions

View File

@ -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<EnvWqVo> 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<EnvWqDataVo> 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<WqVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WqVmsstbprptVo.class);
DataSourceResult<WqVmsstbprptVo> result = new DataSourceResult<>();

View File

@ -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<SttpInfoVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SttpInfoVo.class);
DataSourceResult<SttpInfoVo> 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<SdYearDetailVO> 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<SdMonthDetailVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdMonthDetailVO.class);
DataSourceResult<SdMonthDetailVO> 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<WtFishVo> 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<SdWtBaseInfoVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdWtBaseInfoVO.class);
DataSourceResult<SdWtBaseInfoVO> 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<WtCxDetailRow> rowList = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, WtCxDetailRow.class);
List<Double> 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<DataSourceRequest.SortDescriptor> sortList) {
List<String> orderColumns = new ArrayList<>();
if (sortList != null) {

View File

@ -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()) {