报表基础模块:对接前端回调数据结构调整;

This commit is contained in:
gaoqr
2024-09-06 20:05:42 +08:00
parent c9e78f74ae
commit 0101e58216
6 changed files with 34 additions and 20 deletions
@@ -67,7 +67,7 @@ public class ReportTemplateController {
@PutMapping("/template") @PutMapping("/template")
@Operation(summary = "创建报表模板") @Operation(summary = "创建报表模板")
// @PreAuthorize("@ss.hasPermission('report:template:create')") // @PreAuthorize("@ss.hasPermission('report:template:create')")
public CommonResult<Long> createTemplate(@Valid @RequestBody ReportTemplateSaveReqVO createReqVO) { public CommonResult<ReportTemplateRespVO> createTemplate(@Valid @RequestBody ReportTemplateSaveReqVO createReqVO) {
return success(templateService.createReportTemplate(createReqVO)); return success(templateService.createReportTemplate(createReqVO));
} }
@@ -81,9 +81,8 @@ public class ReportTemplateController {
@PostMapping("/template") @PostMapping("/template")
@Operation(summary = "更新报表模板") @Operation(summary = "更新报表模板")
// @PreAuthorize("@ss.hasPermission('report:template:update')") // @PreAuthorize("@ss.hasPermission('report:template:update')")
public CommonResult<Boolean> updateTemplate(@Valid @RequestBody ReportTemplateSaveReqVO updateReqVO) { public CommonResult<ReportTemplateRespVO> updateTemplate(@Valid @RequestBody ReportTemplateSaveReqVO updateReqVO) {
templateService.updateReportTemplate(updateReqVO); return success(templateService.updateReportTemplate(updateReqVO));
return success(true);
} }
@DeleteMapping("/template/{id}") @DeleteMapping("/template/{id}")
@@ -1,6 +1,6 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceRespVO; import com.bstek.ureport.definition.datasource.DatasourceDefinition;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -37,5 +37,5 @@ public class ReportTemplateRespVO {
private String remark; private String remark;
@Schema(description = "数据源") @Schema(description = "数据源")
private List<ReportDatasourceRespVO> datasource; private List<DatasourceDefinition> datasource;
} }
@@ -29,7 +29,6 @@ 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.dataobject.datasource.ReportDatasourceDO;
import com.cf.imes.module.report.dal.mysql.dataset.ReportDatasetMapper; 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.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.enums.template.ReportTemplateTypeEnum;
import com.cf.imes.module.report.framework.ureport.annotation.CfReportSpringbeanDatasource; import com.cf.imes.module.report.framework.ureport.annotation.CfReportSpringbeanDatasource;
import com.cf.imes.module.report.service.dataset.ReportDatasetService; import com.cf.imes.module.report.service.dataset.ReportDatasetService;
@@ -223,9 +222,9 @@ public class ReportDatasourceServiceImpl implements ReportDatasourceService {
// 获取数据库连接 // 获取数据库连接
conn = MultipleJdbcTemplate.buildConnection(info); conn = MultipleJdbcTemplate.buildConnection(info);
// 自定义工具校验sql // 自定义工具校验sql
if (SqlInjectionUtil.checkEditSql(sql)) { // if (SqlInjectionUtil.checkEditSql(sql)) {
throw exception(DATASET_SQL_ILLEGAL); // throw exception(DATASET_SQL_ILLEGAL);
} // }
// 检查参数sql注入 // 检查参数sql注入
for (Parameter parameter : parameters) { for (Parameter parameter : parameters) {
// mybatis-plus util检查参数 // mybatis-plus util检查参数
@@ -6,6 +6,7 @@ import com.bstek.ureport.export.html.HtmlReport;
import com.bstek.ureport.model.Report; import com.bstek.ureport.model.Report;
import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO;
import com.cf.imes.module.report.dal.dataobject.template.ReportTemplateDO; import com.cf.imes.module.report.dal.dataobject.template.ReportTemplateDO;
@@ -26,7 +27,7 @@ public interface ReportTemplateService {
* @param createReqVO 创建信息 * @param createReqVO 创建信息
* @return 编号 * @return 编号
*/ */
Long createReportTemplate(@Valid ReportTemplateSaveReqVO createReqVO); ReportTemplateRespVO createReportTemplate(@Valid ReportTemplateSaveReqVO createReqVO);
/** /**
* 复制报表模版 * 复制报表模版
@@ -40,7 +41,7 @@ public interface ReportTemplateService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updateReportTemplate(@Valid ReportTemplateSaveReqVO updateReqVO); ReportTemplateRespVO updateReportTemplate(@Valid ReportTemplateSaveReqVO updateReqVO);
/** /**
* 删除报表模板 * 删除报表模板
@@ -35,6 +35,7 @@ import com.cf.imes.framework.security.core.LoginUser;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO;
import com.cf.imes.module.report.dal.dataobject.dataset.ReportDatasetDO; 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.dataobject.datasource.ReportDatasourceDO;
@@ -43,8 +44,6 @@ 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.datasource.ReportDatasourceMapper;
import com.cf.imes.module.report.dal.mysql.template.ReportTemplateMapper; 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.enums.template.ReportTemplateTypeEnum;
import com.cf.imes.module.report.service.dataset.ReportDatasetService;
import com.cf.imes.module.report.service.datasource.ReportDatasourceService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -91,7 +90,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long createReportTemplate(ReportTemplateSaveReqVO createReqVO) { public ReportTemplateRespVO createReportTemplate(ReportTemplateSaveReqVO createReqVO) {
boolean isSuperAdmin = SecurityFrameworkUtils.isSuperAdmin(); boolean isSuperAdmin = SecurityFrameworkUtils.isSuperAdmin();
// 校验模板名唯一性 // 校验模板名唯一性
validateTemplateNameUnique(createReqVO, isSuperAdmin); validateTemplateNameUnique(createReqVO, isSuperAdmin);
@@ -109,9 +108,14 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
template.setType(ReportTemplateTypeEnum.CUSTOM); template.setType(ReportTemplateTypeEnum.CUSTOM);
} }
templateMapper.insert(template); templateMapper.insert(template);
Long templateId = template.getId();
// 返回主键 ReportTemplateRespVO reportTemplateRespVO = BeanUtils.toBean(template, ReportTemplateRespVO.class);
return templateId; // 查询数据源、数据集
ReportDefinition reportDefinition = new ReportDefinition();
queryDatasource(template, reportDefinition);
reportTemplateRespVO.setDatasource(reportDefinition.getDatasources());
// 返回实体
return reportTemplateRespVO;
} }
@Override @Override
@@ -142,7 +146,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
} }
@Override @Override
public void updateReportTemplate(ReportTemplateSaveReqVO updateReqVO) { public ReportTemplateRespVO updateReportTemplate(ReportTemplateSaveReqVO updateReqVO) {
Long templateId = updateReqVO.getId(); Long templateId = updateReqVO.getId();
// 校验存在 // 校验存在
ReportTemplateDO reportTemplateDO = validateTemplateExists(templateId); ReportTemplateDO reportTemplateDO = validateTemplateExists(templateId);
@@ -158,6 +162,14 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
// 更新模板 // 更新模板
ReportTemplateDO updateObj = BeanUtils.toBean(updateReqVO, ReportTemplateDO.class); ReportTemplateDO updateObj = BeanUtils.toBean(updateReqVO, ReportTemplateDO.class);
templateMapper.updateById(updateObj); templateMapper.updateById(updateObj);
ReportTemplateRespVO reportTemplateRespVO = BeanUtils.toBean(updateObj, ReportTemplateRespVO.class);
// 查询数据源、数据集
ReportDefinition reportDefinition = new ReportDefinition();
queryDatasource(updateObj, reportDefinition);
reportTemplateRespVO.setDatasource(reportDefinition.getDatasources());
// 返回实体
return reportTemplateRespVO;
} }
@Override @Override
@@ -243,7 +255,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
if (ObjectUtil.isNotNull(template)) { if (ObjectUtil.isNotNull(template)) {
queryDatasource(template, reportDefinition); queryDatasource(template, reportDefinition);
} }
return new ReportDefinitionWrapper(reportDefinition); ReportDefinitionWrapper reportDefinitionWrapper = new ReportDefinitionWrapper(reportDefinition);
reportDefinitionWrapper.setDatasetIds(template.getDatasetIds());
reportDefinitionWrapper.setDatasourceIds(template.getDatasourceIds());
return reportDefinitionWrapper;
} }
/** /**