mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
报表基础模块:通用预览接口支持表单参数检查
This commit is contained in:
+30
-3
@@ -25,6 +25,9 @@ import com.bstek.ureport.definition.datasource.ApiDatasourceDefinition;
|
|||||||
import com.bstek.ureport.definition.datasource.DatasourceDefinition;
|
import com.bstek.ureport.definition.datasource.DatasourceDefinition;
|
||||||
import com.bstek.ureport.definition.datasource.JdbcDatasourceDefinition;
|
import com.bstek.ureport.definition.datasource.JdbcDatasourceDefinition;
|
||||||
import com.bstek.ureport.definition.datasource.SpringBeanDatasourceDefinition;
|
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.ReportComputeException;
|
||||||
import com.bstek.ureport.exception.ReportException;
|
import com.bstek.ureport.exception.ReportException;
|
||||||
import com.bstek.ureport.export.ExportUtils;
|
import com.bstek.ureport.export.ExportUtils;
|
||||||
@@ -78,6 +81,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -437,8 +441,6 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HtmlReport commonPreview(ReportTemplateCommonPreviewReqVO reqVO) {
|
public HtmlReport commonPreview(ReportTemplateCommonPreviewReqVO reqVO) {
|
||||||
// 检查查询参数中的空值
|
|
||||||
checkQueryNotEmpty(reqVO.getQuery());
|
|
||||||
// 查询模板
|
// 查询模板
|
||||||
ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId());
|
ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId());
|
||||||
if (ObjectUtil.isNull(reportTemplateDO)) {
|
if (ObjectUtil.isNull(reportTemplateDO)) {
|
||||||
@@ -458,13 +460,38 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
|
|||||||
ReportRender reportRender = new ReportRender();
|
ReportRender reportRender = new ReportRender();
|
||||||
ReportDefinition reportDefinition = getReportDefinition(reportRender, params, false);
|
ReportDefinition reportDefinition = getReportDefinition(reportRender, params, false);
|
||||||
|
|
||||||
// 增加多租户参数
|
|
||||||
Map<String, Object> parameters = params.getQuery();
|
Map<String, Object> parameters = params.getQuery();
|
||||||
|
// 检查表单配置
|
||||||
|
checkSearchForm(reportDefinition.getSearchForm(), parameters);
|
||||||
|
|
||||||
|
// 增加多租户参数
|
||||||
tenantParamsUtils.prepareTenantParam(parameters);
|
tenantParamsUtils.prepareTenantParam(parameters);
|
||||||
Report report = reportRender.render(reportDefinition, parameters);
|
Report report = reportRender.render(reportDefinition, parameters);
|
||||||
return htmlProducer.produce(reportDefinition, report);
|
return htmlProducer.produce(reportDefinition, report);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查报表模板定义的表单参数是否为空
|
||||||
|
*
|
||||||
|
* @param searchForm 模板定义的表单参数
|
||||||
|
* @param parameters 表单查询参数
|
||||||
|
*/
|
||||||
|
private void checkSearchForm(SearchForm searchForm, Map<String, Object> parameters) {
|
||||||
|
if (ObjectUtil.isNotNull(searchForm)) {
|
||||||
|
List<Component> 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
|
@Override
|
||||||
public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) {
|
public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) {
|
||||||
// 自定义请求vo转ureport对象
|
// 自定义请求vo转ureport对象
|
||||||
|
|||||||
Reference in New Issue
Block a user