报表模块mycat环境无法路由修复

This commit is contained in:
gaoqr
2026-05-15 17:59:48 +08:00
parent 80470b746b
commit df944e241e
3 changed files with 14 additions and 7 deletions
@@ -24,7 +24,10 @@ public interface ReportDatasetMapper extends BaseMapperX<ReportDatasetDO> {
* @return
*/
@OrganIgnore
default List<ReportDatasetDO> selectNormalDatasetList(Set<Long> datasetIds) {
return selectList(new LambdaQueryWrapperX<ReportDatasetDO>().in(ReportDatasetDO::getId, datasetIds));
default List<ReportDatasetDO> selectNormalDatasetList(Set<Long> datasetIds, Long organId) {
return selectList(new LambdaQueryWrapperX<ReportDatasetDO>()
.eq(ReportDatasetDO::getOrganId, organId)
.in(ReportDatasetDO::getId, datasetIds)
);
}
}
@@ -343,19 +343,21 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
* @param reportDefinition 报表定义
*/
private void queryDatasource(ReportTemplateDO templateDO, ReportDefinition reportDefinition) {
Long organId = SecurityFrameworkUtils.getUserOrganId();
Set<Long> datasourceIds = templateDO.getDatasourceIds();
Set<Long> datasetIds = templateDO.getDatasetIds();
List<ReportDatasourceDO> reportDatasourceDOS = new ArrayList<>();
if (CollUtil.isNotEmpty(datasourceIds)) {
// 查询模板下的数据源
reportDatasourceDOS = datasourceMapper.selectNormalDatasourceList(datasourceIds, SecurityFrameworkUtils.getUserOrganId());
reportDatasourceDOS = datasourceMapper.selectNormalDatasourceList(datasourceIds, organId);
}
List<ReportDatasetDO> reportDatasetDOS = new ArrayList<>();
if (CollUtil.isNotEmpty(datasetIds)) {
// 查询模板下的数据集
reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds);
reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds, organId);
}
// 转换ureport对象后的数据源列表
List<DatasourceDefinition> datasourceDefinitions = new ArrayList<>();
@@ -452,6 +454,8 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
* @param reportDefinition 报表定义
*/
private void queryPreviewDatasource(Map<String, Object> query, ReportDefinition reportDefinition) {
Long organId = SecurityFrameworkUtils.getUserOrganId();
Object datasetIdsObj = query.get(DATASETIDS_FIELD_NAME);
Object datasourceIdsObj = query.get(DATASOURCEIDS_FIELD_NAME);
@@ -465,13 +469,13 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
if (ObjectUtil.isNotNull(datasourceIdsObj)) {
List<Long> datasourceIds = (List) datasourceIdsObj;
// 查询模板下的数据源
reportDatasourceDOS = datasourceMapper.selectNormalDatasourceList(new HashSet<>(datasourceIds), SecurityFrameworkUtils.getUserOrganId());
reportDatasourceDOS = datasourceMapper.selectNormalDatasourceList(new HashSet<>(datasourceIds), organId);
}
List<ReportDatasetDO> reportDatasetDOS = new ArrayList<>();
if (CollUtil.isNotEmpty(datasetIds)) {
// 查询模板下的数据集
reportDatasetDOS = datasetMapper.selectNormalDatasetList(new HashSet<>(datasetIds));
reportDatasetDOS = datasetMapper.selectNormalDatasetList(new HashSet<>(datasetIds), organId);
}
// 转换ureport对象后的数据源列表
List<DatasourceDefinition> datasourceDefinitions = new ArrayList<>();
@@ -79,7 +79,7 @@ public class TenantParamsUtils {
// 内置数据集名称列表
List<String> buildinDsNames = new ArrayList<>();
// 遍历获取所有上级数据源
List<ReportDatasetDO> reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds.stream().collect(Collectors.toSet()));
List<ReportDatasetDO> reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds.stream().collect(Collectors.toSet()), userOrganId);
for (ReportDatasetDO datasetDO : reportDatasetDOS) {
Long datasourceId = datasetDO.getDatasourceId();
// 查询数据源,如果是内置数据源则把数据集的name传给ureport