fix: 优化逻辑

This commit is contained in:
tangwei 2026-05-26 19:32:53 +08:00
parent 9b681b2d8f
commit 2a20b09b6f

View File

@ -91,7 +91,50 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
@Override
public DataSourceResult processDataKendoList(DataSourceRequest dataSourceRequest) {
return null;
boolean calculated = CommonConstant.CALCULATE_SUCCESS.equals(
RequestHolder.getHttpServletRequest().getParameter(CommonConstant.CALCULATE_FLAG)
);
StringBuilder sql = new StringBuilder(buildEnvWqDataBaseSql(calculated));
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildEnvWqDataFilterCondition(
dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap,
new int[]{0}
);
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
String groupBy = KendoUtil.getGroupBy(dataSourceRequest);
GroupingInfo[] groupInfos = loadOptions.getGroup();
if (StrUtil.isNotBlank(groupBy) && groupInfos != null && groupInfos.length > 0) {
String groupedSql = buildEnvWqDataGroupSql(sql.toString(), groupBy, groupInfos);
List<Map<String, Object>> list = microservicDynamicSQLMapper.pageAllList(null, groupedSql, paramMap);
DataSourceResult result = new DataSourceResult();
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
result.setData(new GroupHelper().faltGroup(list, Arrays.asList(groupInfos)));
} else {
result.setData(new GroupHelper().group(list, Arrays.asList(groupInfos)));
}
result.setTotal(0L);
result.setAggregates(new HashMap<>());
return result;
}
sql.append(buildEnvWqDataOrderBySql(dataSourceRequest.getSort()));
PageInfo pageInfo = QgcQueryWrapperUtil.getPageInfo(loadOptions);
Page<?> page = pageInfo.getHasPageInfo() ? pageInfo.getPage() : null;
List<EnvWqDataVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EnvWqDataVo.class);
fillEnvWqDataDerivedFields(list);
fillEnvWqDataLimit(list);
DataSourceResult<EnvWqDataVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override