From ee9cadecf369668874aa6acfe53c98d8523bfe0a Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 13 Feb 2025 17:41:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=9F=BA=E7=A1=80=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=9A=E9=80=9A=E7=94=A8=E9=A2=84=E8=A7=88=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=94=AF=E6=8C=81=E8=A1=A8=E5=8D=95=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/ReportTemplateServiceImpl.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) 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 ff01391b8..97ec52a41 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 @@ -25,6 +25,9 @@ import com.bstek.ureport.definition.datasource.ApiDatasourceDefinition; import com.bstek.ureport.definition.datasource.DatasourceDefinition; import com.bstek.ureport.definition.datasource.JdbcDatasourceDefinition; import com.bstek.ureport.definition.datasource.SpringBeanDatasourceDefinition; +import com.bstek.ureport.definition.searchform.Component; +import com.bstek.ureport.definition.searchform.InputComponent; +import com.bstek.ureport.definition.searchform.SearchForm; import com.bstek.ureport.exception.ReportComputeException; import com.bstek.ureport.exception.ReportException; import com.bstek.ureport.export.ExportUtils; @@ -78,6 +81,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -437,8 +441,6 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { @Override public HtmlReport commonPreview(ReportTemplateCommonPreviewReqVO reqVO) { - // 检查查询参数中的空值 - checkQueryNotEmpty(reqVO.getQuery()); // 查询模板 ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId()); if (ObjectUtil.isNull(reportTemplateDO)) { @@ -458,13 +460,38 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { ReportRender reportRender = new ReportRender(); ReportDefinition reportDefinition = getReportDefinition(reportRender, params, false); - // 增加多租户参数 Map parameters = params.getQuery(); + // 检查表单配置 + checkSearchForm(reportDefinition.getSearchForm(), parameters); + + // 增加多租户参数 tenantParamsUtils.prepareTenantParam(parameters); Report report = reportRender.render(reportDefinition, parameters); return htmlProducer.produce(reportDefinition, report); } + /** + * 检查报表模板定义的表单参数是否为空 + * + * @param searchForm 模板定义的表单参数 + * @param parameters 表单查询参数 + */ + private void checkSearchForm(SearchForm searchForm, Map parameters) { + if (ObjectUtil.isNotNull(searchForm)) { + List components = Optional.ofNullable(searchForm.getComponents()).orElse(new ArrayList<>()); + for (Component component : components) { + InputComponent inputComponent = (InputComponent) component; + if (ObjectUtil.isNotNull(inputComponent)) { + String bindParameter = inputComponent.getBindParameter(); + if (StringUtils.isNotEmpty(bindParameter) && !parameters.containsKey(bindParameter)) { + throw ServiceExceptionUtil.exception(TEMPLATE_PREIVEW_QUERYPARAM_EMPTY, bindParameter); + } + } + } + } + } + + @Override public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { // 自定义请求vo转ureport对象