mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 12: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.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<String, Object> 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<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
|
||||
public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) {
|
||||
// 自定义请求vo转ureport对象
|
||||
|
||||
Reference in New Issue
Block a user