mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -106,5 +106,5 @@ knife4j:
|
||||
chenfeng:
|
||||
gateway:
|
||||
access-log-ignore-urls:
|
||||
- /report/template/
|
||||
- /report/template
|
||||
- /system/captcha/get
|
||||
+1
-1
@@ -13,7 +13,7 @@ import java.util.Set;
|
||||
* @since 2024/9/26 16:41
|
||||
*/
|
||||
@Configuration
|
||||
@ConfigurationProperties("chenfeng.report")
|
||||
@ConfigurationProperties(prefix = "chenfeng.report")
|
||||
@Data
|
||||
public class CfReportProperties {
|
||||
/**
|
||||
|
||||
+3
-2
@@ -13,6 +13,7 @@ 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;
|
||||
@@ -230,9 +231,9 @@ public class ReportDatasourceServiceImpl implements ReportDatasourceService {
|
||||
sqlDatasetDefinition.setSql(sql);
|
||||
sqlDatasetDefinition.setParameters(BeanUtils.toBean(parameters, Parameter.class));
|
||||
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
Map<String, Object> pmap = sqlDatasetDefinition.buildParameters(params);
|
||||
String sqlForUse = sqlDatasetDefinition.parseSql(pmap);
|
||||
String sqlForUse = sqlDatasetDefinition.parseSql(pmap, new TenantParams());
|
||||
if (ProcedureUtils.isProcedure(sqlForUse)) {
|
||||
return ProcedureUtils.procedureColumnsQuery(sqlForUse, pmap, conn);
|
||||
}
|
||||
|
||||
+27
-4
@@ -64,6 +64,7 @@ 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;
|
||||
@@ -353,15 +354,37 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
|
||||
|
||||
@Override
|
||||
public HtmlReport preview(PreviewParameters params) {
|
||||
Long userOrganId = SecurityFrameworkUtils.getUserOrganId();
|
||||
|
||||
HtmlProducer htmlProducer = new HtmlProducer();
|
||||
ReportRender reportRender = new ReportRender();
|
||||
ReportDefinition reportDefinition = getReportDefinition(reportRender, params);
|
||||
Map<String, Object> parameters = params.getQuery();
|
||||
// imes多租户业务表表名列表
|
||||
Set<String> tenantTableNames = cfReportProperties.getTenantTableNames();
|
||||
if (CollUtil.isNotEmpty(tenantTableNames)) {
|
||||
if (Boolean.FALSE.equals(SecurityFrameworkUtils.isSuperAdmin())) {
|
||||
// 根据前端传递的数据集id,判断是不是内置数据源下的,是就把name传给ureport
|
||||
List<Long> datasetIds = (List) parameters.get("datasetIds");
|
||||
if (CollUtil.isNotEmpty(datasetIds)) {
|
||||
// 内置数据集名称列表
|
||||
List<String> buildinDsNames = new ArrayList<>();
|
||||
// 遍历获取所有上级数据源
|
||||
List<ReportDatasetDO> 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.equal(datasourceDO.getBuildinType(), ReportTemplateTypeEnum.SYSTEM)) {
|
||||
buildinDsNames.add(datasetDO.getName());
|
||||
}
|
||||
}
|
||||
if (CollUtil.isNotEmpty(buildinDsNames)) {
|
||||
parameters.put("buildinDsNames", buildinDsNames);
|
||||
}
|
||||
}
|
||||
// imes多租户业务表表名列表
|
||||
parameters.put("tenantTableNames", cfReportProperties.getTenantTableNames());
|
||||
parameters.put("organId", SecurityFrameworkUtils.getUserOrganId());
|
||||
// 用户组织id
|
||||
parameters.put("organId", userOrganId);
|
||||
}
|
||||
Report report = reportRender.render(reportDefinition, parameters);
|
||||
return htmlProducer.produce(reportDefinition, report);
|
||||
|
||||
@@ -106,7 +106,8 @@ chenfeng:
|
||||
encrypt:
|
||||
enable: false
|
||||
publicKey: cfimes
|
||||
tenant-table-names:
|
||||
report:
|
||||
tenant-table-names:
|
||||
- system_dept
|
||||
- system_user
|
||||
- system_organization
|
||||
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user