From 6c7c4bb8bca2219138353382ef1a3d10730b3a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B0=D1=83=D1=84=20=D0=9B=D0=B0=D1=82=D1=8B=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Thu, 27 Mar 2025 16:40:11 +0300 Subject: [PATCH] fast fix --- .../combobox/ErvuComboBoxServiceImpl.java | 70 +++++++++++++++++++ .../register_subpoenas_subsystem.page | 30 +++++++- 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/ervu_business_metrics/component/combobox/ErvuComboBoxServiceImpl.java diff --git a/backend/src/main/java/ervu_business_metrics/component/combobox/ErvuComboBoxServiceImpl.java b/backend/src/main/java/ervu_business_metrics/component/combobox/ErvuComboBoxServiceImpl.java new file mode 100644 index 0000000..4ff1e0a --- /dev/null +++ b/backend/src/main/java/ervu_business_metrics/component/combobox/ErvuComboBoxServiceImpl.java @@ -0,0 +1,70 @@ +package ervu_business_metrics.component.combobox; + +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import model.ComboBoxModel; +import service.field.ComboBoxServiceImpl; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.standard_annotations.editor.AdvancedProperty; + +/** + * @author r.latypov + */ +public class ErvuComboBoxServiceImpl extends ComboBoxServiceImpl { + @AdvancedProperty + public boolean isBusinessId; + @AdvancedProperty + public ErvuEntityFilterService[] entityFilterServices; + + @Override + public List loadData() { + return super.loadData(); + } + + @Override + public List loadDataWithFilter(Object filterValue) { + return super.loadDataWithFilter(filterValue); + } + + @Override + public List loadDataByParentValueWithFilter(Object parentValue, + Object filterValue) { + return super.loadDataByParentValueWithFilter(parentValue, filterValue); + } + + @Override + protected ComboBoxModel convertToComboBoxModel(TableRow row) { + ComboBoxModel comboBoxModel = super.convertToComboBoxModel(row); + if (isBusinessId) { + comboBoxModel.setBusinessId(null); + } + return comboBoxModel; + } + + @Override + protected Set getColumnsToLoad() { + Set entityColumns = super.getColumnsToLoad(); + if (hasEntityFilters()) { + Arrays.stream(entityFilterServices) + .forEach(ervuEntityFilterService -> entityColumns.add( + ervuEntityFilterService.getEntityColumn())); + } + return entityColumns; + } + + private List getEntityFilters() { + return Arrays.stream(entityFilterServices) + .map(ErvuEntityFilterService::getEntityFilter) + .collect(Collectors.toList()); + } + + private boolean hasEntityFilters() { + return entityFilterServices != null && entityFilterServices.length > 0; + } +} diff --git a/resources/src/main/resources/business-model/ervu-business-metrics/register_subpoenas_subsystem.page b/resources/src/main/resources/business-model/ervu-business-metrics/register_subpoenas_subsystem.page index e0241e4..8b4ee38 100644 --- a/resources/src/main/resources/business-model/ervu-business-metrics/register_subpoenas_subsystem.page +++ b/resources/src/main/resources/business-model/ervu-business-metrics/register_subpoenas_subsystem.page @@ -214,6 +214,34 @@ + + + ErvuFilterControl + ervu_business_metrics.component.filter + + true + true + + + column + +"idm_id" + + + + dataConverter + + + + + + table + +"recruitment" + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 @@ -19833,7 +19861,7 @@ loadOnStart - true + false