diff --git a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java index c41c4a5bb..4f26f0557 100644 --- a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java +++ b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java @@ -1,6 +1,5 @@ package com.cf.imes.framework.security.core.util; -import cn.hutool.core.util.StrUtil; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants; import com.cf.imes.framework.security.core.LoginUser; @@ -44,7 +43,7 @@ public class SecurityFrameworkUtils { String headerName, String parameterName) { // 1. 获得 Token。优先级:Header > Parameter String token = request.getHeader(headerName); - if (StrUtil.isEmpty(token)) { + if (StringUtils.isEmpty(token)) { token = request.getParameter(parameterName); } if (!StringUtils.hasText(token)) { diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java index 6dcf2360a..963a4ff30 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java @@ -1,7 +1,6 @@ package com.cf.imes.module.report.controller.admin.template.vo; import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceSaveReqVO; -import com.cf.imes.module.report.validation.template.ReportTemplateTypeInEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; @@ -34,10 +33,6 @@ public class ReportTemplateSaveReqVO { @Schema(description = "数据源") private List datasource = new ArrayList<>(); - @Schema(description = "模板类型,0内置、1自定义", example = "1") - @ReportTemplateTypeInEnum - private Integer type; - @Schema(description = "备注", example = "该模板仅供生产使用") private String remark; } 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 a9048cce2..70eee6e76 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 @@ -58,6 +58,7 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -105,6 +106,8 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { boolean isSuperAdmin = loginUser != null && loginUser.getIsSupAdmin(); if (isSuperAdmin) { template.setType(ReportTemplateTypeEnum.SYSTEM); + } else { + template.setType(ReportTemplateTypeEnum.CUSTOM); } templateMapper.insert(template); Long templateId = template.getId(); @@ -249,8 +252,14 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { // 查询模板 ReportTemplateDO template = templateMapper.selectById(id); String xmlContent = template.getContent(); + InputStream is; + if (StringUtils.isNotEmpty(xmlContent)) { + is = new ByteArrayInputStream(xmlContent.getBytes()); + } else { + is = this.getClass().getClassLoader().getResourceAsStream("templates/template.ureport.xml"); + } // 解析xml - ReportDefinition reportDefinition = new ReportParser().parse(new ByteArrayInputStream(xmlContent.getBytes()), template.getName()); + ReportDefinition reportDefinition = new ReportParser().parse(is, template.getName()); if (ObjectUtil.isNotNull(template)) { queryDatasource(template.getId(), reportDefinition); } @@ -271,24 +280,26 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { // 查询数据集 List datasetList = datasetService.getDatasetList(ReportDatasetReqVO.builder().datasourceId(ds.getId()).build()); List datasetDefinitions = new ArrayList<>(); + // 忽略转换的字段名,手动转列表 + String ignorePropertieName = "datasets"; switch (ds.getType()) { case JDBC, BUILDIN -> { // 转换对应的ureport对象 - JdbcDatasourceDefinition jdbcDatasourceDefinition = BeanUtil.copyProperties(ds, JdbcDatasourceDefinition.class, "datasets"); + JdbcDatasourceDefinition jdbcDatasourceDefinition = BeanUtil.copyProperties(ds, JdbcDatasourceDefinition.class, ignorePropertieName); datasetDefinitions.addAll(BeanUtils.toBean(datasetList, SqlDatasetDefinition.class)); jdbcDatasourceDefinition.setDatasets(datasetDefinitions); datasourceDefinitions.add(jdbcDatasourceDefinition); } case SPRING -> { // 转换对应的ureport对象 - SpringBeanDatasourceDefinition springBeanDatasourceDefinition = BeanUtil.copyProperties(ds, SpringBeanDatasourceDefinition.class, "datasets"); + SpringBeanDatasourceDefinition springBeanDatasourceDefinition = BeanUtil.copyProperties(ds, SpringBeanDatasourceDefinition.class, ignorePropertieName); datasetDefinitions.addAll(BeanUtils.toBean(datasetList, BeanDatasetDefinition.class)); springBeanDatasourceDefinition.setDatasets(datasetDefinitions); datasourceDefinitions.add(springBeanDatasourceDefinition); } case API -> { // 转换对应的ureport对象 - ApiDatasourceDefinition apiDatasourceDefinition = BeanUtil.copyProperties(ds, ApiDatasourceDefinition.class, "datasets"); + ApiDatasourceDefinition apiDatasourceDefinition = BeanUtil.copyProperties(ds, ApiDatasourceDefinition.class, ignorePropertieName); datasetDefinitions.addAll(BeanUtils.toBean(datasetList, ApiDatasetDefinition.class)); apiDatasourceDefinition.setDatasets(datasetDefinitions); datasourceDefinitions.add(apiDatasourceDefinition); @@ -306,13 +317,12 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { .orderByDesc(ReportTemplateDO::getCreateTime) // 不返回content xml,点击具体的模板中返回xml .select(ReportTemplateDO::getId, ReportTemplateDO::getName, ReportTemplateDO::getCreateTime, ReportTemplateDO::getRemark); - if(!loginUser.getIsSupAdmin()) { + if (loginUser != null && Boolean.FALSE.equals(loginUser.getIsSupAdmin())) { // 普通用户查看机构下的和system模板 - queryWrapper.or(wrapper -> { - wrapper.eq(ReportTemplateDO::getOrganId, loginUser.getOrganId()).eq(ReportTemplateDO::getType, ReportTemplateTypeEnum.CUSTOM); - }).or(wrapper -> { - wrapper.eq(ReportTemplateDO::getType, ReportTemplateTypeEnum.SYSTEM); - }); + queryWrapper.or(wrapper -> wrapper + .eq(ReportTemplateDO::getOrganId, loginUser.getOrganId()) + .eq(ReportTemplateDO::getType, ReportTemplateTypeEnum.CUSTOM)) + .or(wrapper -> wrapper.eq(ReportTemplateDO::getType, ReportTemplateTypeEnum.SYSTEM)); } // 超管查看全部 return templateMapper.selectList(queryWrapper); diff --git a/cf-module-report/cf-module-report-biz/src/main/resources/templates/template.ureport.xml b/cf-module-report/cf-module-report-biz/src/main/resources/templates/template.ureport.xml new file mode 100644 index 000000000..718f29edc --- /dev/null +++ b/cf-module-report/cf-module-report-biz/src/main/resources/templates/template.ureport.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/cf-module-report/cf-module-report-biz/src/test/java/com/cf/imes/module/report/service/template/ReportCommonServiceImplTest.java b/cf-module-report/cf-module-report-biz/src/test/java/com/cf/imes/module/report/service/template/ReportCommonServiceImplTest.java index af4954b58..34e5da3c5 100644 --- a/cf-module-report/cf-module-report-biz/src/test/java/com/cf/imes/module/report/service/template/ReportCommonServiceImplTest.java +++ b/cf-module-report/cf-module-report-biz/src/test/java/com/cf/imes/module/report/service/template/ReportCommonServiceImplTest.java @@ -8,7 +8,6 @@ import com.cf.imes.module.report.controller.admin.dataset.vo.ReportDatasetSaveRe import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceSaveReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; import com.cf.imes.module.report.enums.datasource.ReportDatasourceTypeEnum; -import com.cf.imes.module.report.enums.template.ReportTemplateTypeEnum; import java.util.ArrayList; import java.util.List; @@ -30,7 +29,6 @@ public abstract class ReportCommonServiceImplTest { .id(id) .name("单元测试模板") .content(JsonUtil.zipString(TEMPLATE)) - .type(ReportTemplateTypeEnum.SYSTEM.getType()) .remark(RandomUtils.randomString()) .datasource(new ArrayList<>()) .build();