From b636c85c87191cb50a44d2d7d64b74b0bb83317d Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 27 Nov 2024 10:48:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E4=BC=98=E5=8C=96=EF=BC=9A1?= =?UTF-8?q?=E3=80=81=E6=95=B0=E6=8D=AE=E9=9B=86=E4=BF=9D=E5=AD=98=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=88=97=E8=A1=A8=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6?= =?UTF-8?q?30=E6=94=B9=E4=B8=BA100=EF=BC=9B2=E3=80=81ureport=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=A7=9F=E6=88=B7=E4=B8=8D=E5=86=8D=E9=99=90=E5=88=B6?= =?UTF-8?q?=E9=9D=9E=E8=B6=85=E7=AE=A1=EF=BC=8C=E8=B6=85=E7=AE=A1=E4=B9=9F?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=A7=9F=E6=88=B7=E5=AD=97=E6=AE=B5=EF=BC=9B?= =?UTF-8?q?3=E3=80=81=E6=95=B0=E6=8D=AE=E9=9B=86=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=A1=A8=E4=BC=98=E5=8C=96=E3=80=81=E5=AD=97=E6=AE=B5=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=92=8C=E9=A2=84=E8=A7=88=E6=94=AF=E6=8C=81=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E5=AD=97=E6=AE=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/vo/ReportDatasetSaveReqVO.java | 2 +- .../ReportDatasourceController.java | 9 +- .../vo/ReportDatasourcePreviewReqVO.java | 6 +- .../ReportDatasourceServiceImpl.java | 3 +- .../template/ReportTemplateServiceImpl.java | 47 +------- .../report/utils/TenantParamsUtils.java | 102 ++++++++++++++++++ .../lib/ureport-core-2.3.0-SNAPSHOT.jar | Bin 929339 -> 929328 bytes 7 files changed, 120 insertions(+), 49 deletions(-) create mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/utils/TenantParamsUtils.java diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java index c36eba371..bb15f22fe 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java @@ -56,7 +56,7 @@ public class ReportDatasetSaveReqVO implements Serializable { private List parameters = new ArrayList<>(); @Schema(description = "字段列表") - @Size(max = 30, message = "字段列表数量不能超过30个") + @Size(max = 100, message = "字段列表数量不能超过100个") @Valid private List fields = new ArrayList<>(); } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java index e5272def7..e2800af05 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java @@ -2,7 +2,6 @@ package com.cf.imes.module.report.controller.admin.datasource; import com.bstek.common.utils.MultipleJdbcTemplate; import com.bstek.datasource.bean.DataSourceInfo; -import com.bstek.datasource.bean.PreviewParams; import com.bstek.datasource.service.DataSourceService; import com.bstek.ureport.definition.dataset.Field; import com.cf.imes.framework.common.pojo.CommonResult; @@ -14,6 +13,7 @@ import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasource import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceTestConnReqVO; import com.cf.imes.module.report.dal.dataobject.datasource.ReportDatasourceDO; import com.cf.imes.module.report.service.datasource.ReportDatasourceService; +import com.cf.imes.module.report.utils.TenantParamsUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -51,6 +51,9 @@ public class ReportDatasourceController { @Resource private DataSourceService ureportDataSourceService; + @Resource + private TenantParamsUtils tenantParamsUtils; + @PutMapping("/datasource") @Operation(summary = "创建报表数据源") @PreAuthorize("@ss.hasPermission('report:design')") @@ -134,13 +137,13 @@ public class ReportDatasourceController { @Operation(summary = "获取数据源表字段") @PreAuthorize("@ss.hasPermission('report:design')") public CommonResult> getDatasourceTableFields(@RequestBody @Valid ReportDatasourcePreviewReqVO reqVO) { - return success(datasourceService.getTableFields(BeanUtils.toBean(reqVO, PreviewParams.class))); + return success(datasourceService.getTableFields(tenantParamsUtils.prepareTenantParam(reqVO))); } @PostMapping("/datasource/preview") @Operation(summary = "数据源预览") @PreAuthorize("@ss.hasPermission('report:design')") public CommonResult> previewData(@RequestBody @Valid ReportDatasourcePreviewReqVO reqVO) { - return success(ureportDataSourceService.previewData(BeanUtils.toBean(reqVO, PreviewParams.class))); + return success(ureportDataSourceService.previewData(tenantParamsUtils.prepareTenantParam(reqVO))); } } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java index a90a1a37c..9ff4a8a3c 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java @@ -24,7 +24,7 @@ import java.util.List; @NoArgsConstructor public class ReportDatasourcePreviewReqVO { @Schema(description = "数据源连接信息") - @NotNull + @NotNull(message = "数据源连接信息不能为空") @Valid private ReportDatasourceTestConnReqVO info; @@ -37,4 +37,8 @@ public class ReportDatasourcePreviewReqVO { @Size(max = 30, message = "查询参数列表数量不能超过30个") @Valid private List parameters; + + @Schema(description = "数据源编号") + @NotNull(message = "数据源编号不能为空") + private Long datasourceId; } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/datasource/ReportDatasourceServiceImpl.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/datasource/ReportDatasourceServiceImpl.java index 9dfd34eb1..d25e1bb2a 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/datasource/ReportDatasourceServiceImpl.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/datasource/ReportDatasourceServiceImpl.java @@ -13,7 +13,6 @@ import com.bstek.datasource.bean.PreviewParams; import com.bstek.ureport.definition.dataset.Field; import com.bstek.ureport.definition.dataset.Parameter; import com.bstek.ureport.definition.dataset.SqlDatasetDefinition; -import com.bstek.ureport.definition.dataset.TenantParams; import com.bstek.ureport.utils.ProcedureUtils; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; @@ -237,7 +236,7 @@ public class ReportDatasourceServiceImpl implements ReportDatasourceService { Map params = new HashMap<>(); Map pmap = sqlDatasetDefinition.buildParameters(params); - String sqlForUse = sqlDatasetDefinition.parseSql(pmap, new TenantParams()); + String sqlForUse = sqlDatasetDefinition.parseSql(pmap, previewParams.getTenantParams()); if (ProcedureUtils.isProcedure(sqlForUse)) { return ProcedureUtils.procedureColumnsQuery(sqlForUse, pmap, conn); } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java index 991221db0..bb4201bb5 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java @@ -35,7 +35,6 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; -import com.cf.imes.module.report.config.CfReportProperties; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO; @@ -47,6 +46,7 @@ import com.cf.imes.module.report.dal.mysql.dataset.ReportDatasetMapper; import com.cf.imes.module.report.dal.mysql.datasource.ReportDatasourceMapper; import com.cf.imes.module.report.dal.mysql.template.ReportTemplateMapper; import com.cf.imes.module.report.enums.template.ReportTemplateTypeEnum; +import com.cf.imes.module.report.utils.TenantParamsUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,7 +66,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_BUILDIN_OPERATION_PERMISSION_ERROR; @@ -95,7 +94,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { private static final String UTF8_CHARSET = CharsetUtil.UTF_8; @Resource - private CfReportProperties cfReportProperties; + private TenantParamsUtils tenantParamsUtils; @Override @Transactional(rollbackFor = Exception.class) @@ -380,47 +379,11 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { ReportDefinition reportDefinition = getReportDefinition(reportRender, params); Map parameters = params.getQuery(); // 增加多租户参数 - prepareTenantParam(parameters); + tenantParamsUtils.prepareTenantParam(parameters); Report report = reportRender.render(reportDefinition, parameters); return htmlProducer.produce(reportDefinition, report); } - - /** - * 往parameters中增加租户相关参数 - * - * @param parameters - */ - private void prepareTenantParam(Map parameters) { - Long userOrganId = SecurityFrameworkUtils.getUserOrganId(); - if (Boolean.FALSE.equals(SecurityFrameworkUtils.isSuperAdmin())) { - // 根据前端传递的数据集id,判断是不是内置数据源下的,是就把name传给ureport - List datasetIds = (List) parameters.get("datasetIds"); - if (CollUtil.isNotEmpty(datasetIds)) { - // 内置数据集名称列表 - List buildinDsNames = new ArrayList<>(); - // 遍历获取所有上级数据源 - List reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds.stream().collect(Collectors.toSet())); - for (ReportDatasetDO datasetDO : reportDatasetDOS) { - Long datasourceId = datasetDO.getDatasourceId(); - // 查询数据源,如果是内置数据源则把数据集的name传给ureport - // 机构下 + 内置数据源查询 - ReportDatasourceDO datasourceDO = datasourceMapper.selectNormalDatasourceById(datasourceId, userOrganId); - if (ObjectUtil.isNotNull(datasourceDO) && ObjectUtil.equal(datasourceDO.getBuildinType(), ReportTemplateTypeEnum.SYSTEM)) { - buildinDsNames.add(datasetDO.getName()); - } - } - if (CollUtil.isNotEmpty(buildinDsNames)) { - parameters.put("buildinDsNames", buildinDsNames); - } - } - // imes多租户业务表表名列表 - parameters.put("tenantTableNames", cfReportProperties.getTenantTableNames()); - // 用户组织id - parameters.put("organId", userOrganId); - } - } - @Override public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { // 自定义请求vo转ureport对象 @@ -431,7 +394,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { ReportDefinition reportDefinition = getReportDefinition(reportRender, params); Map query = params.getQuery(); // 增加多租户参数 - prepareTenantParam(query); + tenantParamsUtils.prepareTenantParam(query); Report report = reportRender.render(reportDefinition, query); Map chartImages = params.getChartImages(); report.setChartImages(chartImages); @@ -461,7 +424,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { ReportDefinition reportDefinition = getReportDefinition(reportRender, params); Map query = params.getQuery(); // 增加多租户参数 - prepareTenantParam(query); + tenantParamsUtils.prepareTenantParam(query); Report report = reportRender.render(reportDefinition, query); Map chartImages = params.getChartImages(); report.setChartImages(chartImages); diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/utils/TenantParamsUtils.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/utils/TenantParamsUtils.java new file mode 100644 index 000000000..8493278ac --- /dev/null +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/utils/TenantParamsUtils.java @@ -0,0 +1,102 @@ +package com.cf.imes.module.report.utils; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.bstek.datasource.bean.PreviewParams; +import com.bstek.ureport.definition.dataset.TenantParams; +import com.cf.imes.framework.common.util.object.BeanUtils; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; +import com.cf.imes.module.report.config.CfReportProperties; +import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourcePreviewReqVO; +import com.cf.imes.module.report.dal.dataobject.dataset.ReportDatasetDO; +import com.cf.imes.module.report.dal.dataobject.datasource.ReportDatasourceDO; +import com.cf.imes.module.report.dal.mysql.dataset.ReportDatasetMapper; +import com.cf.imes.module.report.dal.mysql.datasource.ReportDatasourceMapper; +import com.cf.imes.module.report.enums.template.ReportTemplateTypeEnum; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 租户参数工具类 + * + * @author Gqr + * @since 2024/11/27 10:32 + */ +@Component +public class TenantParamsUtils { + + @Resource + private ReportDatasourceMapper datasourceMapper; + + @Resource + private ReportDatasetMapper datasetMapper; + + @Resource + private CfReportProperties cfReportProperties; + + /** + * 根据数据源id构造租户对象 + * + * @param reqVO + */ + public PreviewParams prepareTenantParam(ReportDatasourcePreviewReqVO reqVO) { + PreviewParams previewParams = BeanUtils.toBean(reqVO, PreviewParams.class); + Long datasourceId = reqVO.getDatasourceId(); + TenantParams tenantParams = new TenantParams(); + Long userOrganId = SecurityFrameworkUtils.getUserOrganId(); + // 根据前端传递的数据源id,判断是不是内置数据源,是就把所有其下的datasetname传给ureport + ReportDatasourceDO datasourceDO = datasourceMapper.selectNormalDatasourceById(datasourceId, userOrganId); + if (ObjectUtil.isNotNull(datasourceDO) && ObjectUtil.equal(datasourceDO.getBuildinType(), ReportTemplateTypeEnum.SYSTEM)) { + List datasetDOList = datasetMapper.selectList(new LambdaQueryWrapperX().in(ReportDatasetDO::getDatasourceId, datasourceId)); + if (CollUtil.isNotEmpty(datasetDOList)) { + tenantParams.setBuildinDsNames(datasetDOList.stream().map(ReportDatasetDO::getName).collect(Collectors.toList())); + } + } + // 用户组织id + tenantParams.setOrganId(userOrganId); + // imes多租户业务表表名列表 + tenantParams.setTenantTableNames(cfReportProperties.getTenantTableNames()); + previewParams.setTenantParams(tenantParams); + return previewParams; + } + + /** + * 往parameters中增加租户相关参数 + * + * @param parameters + */ + public void prepareTenantParam(Map parameters) { + Long userOrganId = SecurityFrameworkUtils.getUserOrganId(); + // 根据前端传递的数据集id,判断是不是内置数据源下的,是就把name传给ureport + List datasetIds = (List) parameters.get("datasetIds"); + if (CollUtil.isNotEmpty(datasetIds)) { + // 内置数据集名称列表 + List buildinDsNames = new ArrayList<>(); + // 遍历获取所有上级数据源 + List reportDatasetDOS = datasetMapper.selectNormalDatasetList(datasetIds.stream().collect(Collectors.toSet())); + for (ReportDatasetDO datasetDO : reportDatasetDOS) { + Long datasourceId = datasetDO.getDatasourceId(); + // 查询数据源,如果是内置数据源则把数据集的name传给ureport + // 机构下 + 内置数据源查询 + ReportDatasourceDO datasourceDO = datasourceMapper.selectNormalDatasourceById(datasourceId, userOrganId); + if (ObjectUtil.isNotNull(datasourceDO) && ObjectUtil.equal(datasourceDO.getBuildinType(), ReportTemplateTypeEnum.SYSTEM)) { + buildinDsNames.add(datasetDO.getName()); + } + } + if (CollUtil.isNotEmpty(buildinDsNames)) { + parameters.put("buildinDsNames", buildinDsNames); + } + } + // imes多租户业务表表名列表 + parameters.put("tenantTableNames", cfReportProperties.getTenantTableNames()); + // 用户组织id + parameters.put("organId", userOrganId); + } + +} diff --git a/cf-module-report/cf-module-report-biz/src/main/resources/lib/ureport-core-2.3.0-SNAPSHOT.jar b/cf-module-report/cf-module-report-biz/src/main/resources/lib/ureport-core-2.3.0-SNAPSHOT.jar index 8e8acf0b4032b5a4c89a12aadb8a934e6b13e247..6121e521afb135d42066020fef3de6aa4c1ef9b3 100644 GIT binary patch delta 38477 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 z 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

-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 delta 38763 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