From 8927bcf1247ff50e00c93bd0c584fc835c46ae40 Mon Sep 17 00:00:00 2001 From: "adel.kalimullin" Date: Tue, 18 Feb 2025 12:03:28 +0300 Subject: [PATCH 1/5] SUPPORT-8912: add recruitment-loading --- .../component/dao/RecruitmentDao.java | 55 +++++++++ .../RecruitmentAutoCompleteService.java | 100 ++++++++++++++++ .../service/RecruitmentComboBoxService.java | 107 ++++++++++++++++++ .../service/RecruitmentGridService.java | 79 +++++++++++++ 4 files changed, 341 insertions(+) create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/component/dao/RecruitmentDao.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentComboBoxService.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/dao/RecruitmentDao.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/dao/RecruitmentDao.java new file mode 100644 index 00000000..1f194538 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/dao/RecruitmentDao.java @@ -0,0 +1,55 @@ +package ru.micord.ervu.account_applications.component.dao; + +import java.util.List; + +import org.jooq.DSLContext; +import org.jooq.TableField; +import org.jooq.impl.DSL; +import org.springframework.stereotype.Repository; +import ru.micord.ervu.account_applications.db_beans.public_.tables.Recruitment; + +/** + * @author Adel Kalimullin + */ +@Repository +public class RecruitmentDao { + private final DSLContext dslContext; + + public RecruitmentDao(DSLContext dslContext) { + this.dslContext = dslContext; + } + + public List getRecruitmentIdsWithParentByOrgCode(String orgCode) { + return getRecruitmentIdmIdsByParentId(orgCode, Recruitment.RECRUITMENT.IDM_ID); + } + + public List getRecruitmentIdsWithParentByRecruitmentId(String recruitmentId) { + return getRecruitmentIdmIdsByParentId(recruitmentId, Recruitment.RECRUITMENT.ID); + } + + private List getRecruitmentIdmIdsByParentId(String value, TableField field) { + var recruitmentHierarchy = DSL.name("recruitment_hierarchy"); + + var cte = dslContext.withRecursive(recruitmentHierarchy).as( + dslContext.select(Recruitment.RECRUITMENT.IDM_ID) + .from(Recruitment.RECRUITMENT) + .where(DSL.field(field).eq(value)) + .unionAll( + dslContext.select(Recruitment.RECRUITMENT.IDM_ID) + .from(Recruitment.RECRUITMENT) + .join(DSL.table(recruitmentHierarchy)) + .on(Recruitment.RECRUITMENT.PARENT_ID.eq( + DSL.field(DSL.name("recruitment_hierarchy", "idm_id"), String.class) + ) + ) + ) + ); + + return cte + .select(DSL.field(DSL.name("recruitment_hierarchy", "idm_id"), String.class)) + .from(DSL.table(recruitmentHierarchy)) + .fetchInto(String.class); + } +} + + diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java new file mode 100644 index 00000000..3a06fe7a --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java @@ -0,0 +1,100 @@ +package ru.micord.ervu.account_applications.component.service; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import model.AutocompleteModel; +import org.springframework.stereotype.Service; +import property.enums.DisplayType; +import property.grid.ColumnSort; +import ru.micord.ervu.account_applications.component.dao.RecruitmentDao; +import service.field.AbstractAutocompleteService; +import utils.QueryUtils; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.api.dao.option.SortOrder; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilterGroup; +import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; +import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; + +/** + * @author Adel Kalimullin + */ +@Service +public class RecruitmentAutoCompleteService extends AbstractAutocompleteService { + private final RecruitmentDao recruitmentDao; + private final SecurityContext securityContext; + + public RecruitmentAutoCompleteService(RecruitmentDao recruitmentDao, + SecurityContext securityContext) { + this.recruitmentDao = recruitmentDao; + this.securityContext = securityContext; + } + + protected AutocompleteModel convertToSearchModel(TableRow row) { + String dropdownLabel = this.getDropDownLabelValue(row); + String displayLabel = this.getDisplayLabelValue(row); + return new AutocompleteModel(row.get(QueryUtils.getIdField(this.loadDao)), + row.get(this.businessIdColumn), displayLabel, + (Boolean) row.get(this.loadDao.getValidEntityColumn()), dropdownLabel + ); + } + + protected List load(String inputString, Integer inputPage, + LoadOptions loadOptions) { + List recruitmentIds = getRecruitmentIdsForCurrentUser(); + loadOptions.getEntityFilters().add(getEntityFilterForRecruitmentIds(recruitmentIds)); + loadOptions.setLimit(this.valuesLimit); + loadOptions.setOffset(inputPage * this.valuesLimit); + if (this.columnSorts.length > 0) { + ColumnSort[] var4 = this.columnSorts; + int var5 = var4.length; + + for (int var6 = 0; var6 < var5; ++var6) { + ColumnSort columnSort = var4[var6]; + loadOptions.addSortField(columnSort.field, columnSort.sortOrder); + } + } + else if (this.displayType == DisplayType.MULTI_COLUMN) { + Arrays.stream(this.displayColumns).forEach((searchDisplayColumn) -> { + loadOptions.addSortField(searchDisplayColumn.getEntityColumn(), SortOrder.ASC); + }); + } + else if (this.displayType == DisplayType.ONE_COLUMN) { + loadOptions.addSortField(this.displayColumn, SortOrder.ASC); + } + + List searchStrings = this.getSearchString(inputString); + EntityFilterGroup entityFilterGroup = this.getEntityFilterGroup(searchStrings, loadOptions); + loadOptions.setEntityFilterGroup(entityFilterGroup); + List loadedData = this.loadDao.load(this.getColumnsToLoad(), loadOptions); + return (List) loadedData.stream().map(this::convertToSearchModel).collect(Collectors.toList()); + } + + private List getSearchString(String inputString) { + if (this.displayType == DisplayType.MULTI_COLUMN) { + return (List) Arrays.stream(inputString.trim().split(" ")).filter((token) -> { + return !token.isEmpty(); + }).collect(Collectors.toList()); + } + else if (this.displayType == DisplayType.ONE_COLUMN) { + return Collections.singletonList(inputString.trim()); + } + else { + throw new RuntimeException("Incorrect search column type " + this.displayType); + } + } + + private List getRecruitmentIdsForCurrentUser() { + String currentOrgUnitCode = securityContext.getCurrentOrgUnitCode(); + return recruitmentDao.getRecruitmentIdsWithParentByOrgCode(currentOrgUnitCode); + } + + protected EntityFilter getEntityFilterForRecruitmentIds(List ids) { + return new EntityFilter(ids, FilterOperation.IN, this.businessIdColumn); + } +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentComboBoxService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentComboBoxService.java new file mode 100644 index 00000000..03b16b4f --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentComboBoxService.java @@ -0,0 +1,107 @@ +package ru.micord.ervu.account_applications.component.service; + + +import java.util.*; +import java.util.stream.Collectors; + +import model.ComboBoxModel; +import org.springframework.stereotype.Service; +import property.enums.DisplayType; +import property.grid.ColumnSort; +import ru.micord.ervu.account_applications.component.dao.RecruitmentDao; +import service.field.ComboBoxServiceImpl; + +import ru.cg.webbpm.modules.database.api.bean.TableRow; +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.api.dao.option.SortOrder; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; +import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; + + +/** + * @author Adel Kalimullin + */ +@Service +public class RecruitmentComboBoxService extends ComboBoxServiceImpl { + private final RecruitmentDao recruitmentDao; + private final SecurityContext securityContext; + + public RecruitmentComboBoxService(RecruitmentDao recruitmentDao, + SecurityContext securityContext) { + this.recruitmentDao = recruitmentDao; + this.securityContext = securityContext; + } + + @Override + public List loadData() { + return load(new LoadOptions()); + } + + @Override + public List loadDataWithFilter(Object filterValue) { + LoadOptions loadOptions = new LoadOptions(); + EntityFilter entityFilter = getFilterColumnEntityFilter(filterValue); + loadOptions.setEntityFilters(Collections.singletonList(entityFilter)); + return load(loadOptions); + } + + @Override + public List loadDataByParentValueWithFilter(Object parentValue, + Object filterValue) { + LoadOptions loadOptions = new LoadOptions(); + List entityFilters = new ArrayList<>(); + entityFilters.add(getParentColumnEntityFilter(parentValue)); + if (filterValue != null) { + entityFilters.add(getFilterColumnEntityFilter(filterValue)); + } + loadOptions.setEntityFilters(entityFilters); + return load(loadOptions); + } + + private EntityFilter getParentColumnEntityFilter(Object parentValue) { + return parentValue instanceof Collection + ? new EntityFilter(parentValue, FilterOperation.IN, this.parentControlReference) + : new EntityFilter(parentValue, FilterOperation.EQUAL, this.parentControlReference); + } + + private EntityFilter getFilterColumnEntityFilter(Object filterValue) { + return new EntityFilter(filterValue, FilterOperation.EQUAL_IGNORE_CASE, this.filterColumn); + } + + private List load(LoadOptions loadOptions) { + List recruitmentIds = getRecruitmentIdsForCurrentUser(); + loadOptions.getEntityFilters().add(getEntityFilterForRecruitmentIds(recruitmentIds)); + if (this.columnSorts.length > 0) { + ColumnSort[] var2 = this.columnSorts; + int var3 = var2.length; + + for (int var4 = 0; var4 < var3; ++var4) { + ColumnSort columnSort = var2[var4]; + loadOptions.addSortField(columnSort.field, columnSort.sortOrder); + } + } + else if (this.displayType == DisplayType.MULTI_COLUMN) { + Arrays.stream(this.displayColumns).forEach((searchDisplayColumn) -> { + loadOptions.addSortField(searchDisplayColumn.getEntityColumn(), SortOrder.ASC); + }); + } + else if (this.displayType == DisplayType.ONE_COLUMN) { + loadOptions.addSortField(this.displayColumn, SortOrder.ASC); + } + + List loadedData = this.loadDao.load(this.getColumnsToLoad(), loadOptions); + return loadedData.stream() + .map(this::convertToComboBoxModel) + .collect(Collectors.toList()); + } + + private List getRecruitmentIdsForCurrentUser() { + String currentOrgUnitCode = securityContext.getCurrentOrgUnitCode(); + return recruitmentDao.getRecruitmentIdsWithParentByOrgCode(currentOrgUnitCode); + } + + private EntityFilter getEntityFilterForRecruitmentIds(List recruitmentIds) { + return new EntityFilter(recruitmentIds, FilterOperation.IN, this.businessIdColumn); + } +} \ No newline at end of file diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java new file mode 100644 index 00000000..e9457227 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java @@ -0,0 +1,79 @@ +package ru.micord.ervu.account_applications.component.service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +import model.Filter; +import model.grid.GridRows; +import model.grid.SortInfo; +import org.springframework.stereotype.Service; +import ru.micord.ervu.account_applications.component.dao.RecruitmentDao; +import service.GridV2ServiceImpl; + +import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; +import ru.cg.webbpm.modules.database.bean.annotation.LocalGraphSource; +import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; +import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; +import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; +import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; +import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; + +/** + * @author Adel Kalimullin + */ +@Service +public class RecruitmentGridService extends GridV2ServiceImpl { + private final RecruitmentDao recruitmentDao; + private final SecurityContext securityContext; + @NotNull + public String componentGuid; + @LocalGraphSource(sourceFieldName = "loadDao") + public EntityColumn recruitmentColumn; + + public RecruitmentGridService(RecruitmentDao recruitmentDao, SecurityContext securityContext) { + this.recruitmentDao = recruitmentDao; + this.securityContext = securityContext; + } + + @Override + public GridRows loadData(Integer offset, Integer limit, Filter[] filters, SortInfo[] sortInfos) { + List updatedFilters = new ArrayList<>(Arrays.asList(filters)); + Optional recruitmentFilerOpt = findRecruitmentFilter(updatedFilters); + + List recruitmentIds = recruitmentFilerOpt.map( + filter -> getChildRecruitmentIds(updatedFilters, filter)) + .orElseGet(this::getRecruitmentIdsForCurrentUser); + + LoadOptions options = getOptions(offset, limit, updatedFilters.toArray(new Filter[0]), + sortInfos + ); + options.getEntityFilters().add(getEntityFilterForRecruitmentIds(recruitmentIds)); + + return getGridRows(updatedFilters.toArray(new Filter[0]), options); + } + + private Optional findRecruitmentFilter(List filters) { + return filters.stream() + .filter(filter -> componentGuid.equals(filter.componentGuid)) + .findFirst(); + } + + private List getChildRecruitmentIds(List filters, Filter recruitmentFilter) { + String selectedRecruitmentId = (String) recruitmentFilter.filterModels[0].getValue(); + filters.removeIf(filter -> componentGuid.equals(filter.componentGuid)); + return recruitmentDao.getRecruitmentIdsWithParentByRecruitmentId(selectedRecruitmentId); + } + + private List getRecruitmentIdsForCurrentUser() { + String currentOrgUnitCode = securityContext.getCurrentOrgUnitCode(); + return recruitmentDao.getRecruitmentIdsWithParentByOrgCode(currentOrgUnitCode); + } + + + private EntityFilter getEntityFilterForRecruitmentIds(List recruitmentIds) { + return new EntityFilter(recruitmentIds, FilterOperation.IN, this.recruitmentColumn); + } +} + From 9b7e7fe54353ba132f1ec4c82a32ca8bbcf3e3b8 Mon Sep 17 00:00:00 2001 From: "adel.kalimullin" Date: Tue, 18 Feb 2025 14:25:13 +0300 Subject: [PATCH 2/5] SUPPORT-8912: fix from review --- .../service/RecruitmentAutoCompleteService.java | 2 +- .../component/service/RecruitmentGridService.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java index 3a06fe7a..7115b180 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentAutoCompleteService.java @@ -94,7 +94,7 @@ public class RecruitmentAutoCompleteService extends AbstractAutocompleteService< return recruitmentDao.getRecruitmentIdsWithParentByOrgCode(currentOrgUnitCode); } - protected EntityFilter getEntityFilterForRecruitmentIds(List ids) { + private EntityFilter getEntityFilterForRecruitmentIds(List ids) { return new EntityFilter(ids, FilterOperation.IN, this.businessIdColumn); } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java index e9457227..7026980f 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java @@ -18,7 +18,9 @@ import ru.cg.webbpm.modules.database.bean.entity_graph.EntityColumn; import ru.cg.webbpm.modules.database.bean.filter.EntityFilter; import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; +import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; +import ru.cg.webbpm.modules.webkit.beans.Behavior; /** * @author Adel Kalimullin @@ -27,8 +29,9 @@ import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; public class RecruitmentGridService extends GridV2ServiceImpl { private final RecruitmentDao recruitmentDao; private final SecurityContext securityContext; + @ObjectRef @NotNull - public String componentGuid; + public Behavior recruitmentBehavior; @LocalGraphSource(sourceFieldName = "loadDao") public EntityColumn recruitmentColumn; @@ -56,13 +59,13 @@ public class RecruitmentGridService extends GridV2ServiceImpl { private Optional findRecruitmentFilter(List filters) { return filters.stream() - .filter(filter -> componentGuid.equals(filter.componentGuid)) + .filter(filter -> recruitmentBehavior.getObjectId().equals(filter.componentGuid)) .findFirst(); } private List getChildRecruitmentIds(List filters, Filter recruitmentFilter) { String selectedRecruitmentId = (String) recruitmentFilter.filterModels[0].getValue(); - filters.removeIf(filter -> componentGuid.equals(filter.componentGuid)); + filters.removeIf(filter -> recruitmentBehavior.getObjectId().equals(filter.componentGuid)); return recruitmentDao.getRecruitmentIdsWithParentByRecruitmentId(selectedRecruitmentId); } @@ -71,7 +74,6 @@ public class RecruitmentGridService extends GridV2ServiceImpl { return recruitmentDao.getRecruitmentIdsWithParentByOrgCode(currentOrgUnitCode); } - private EntityFilter getEntityFilterForRecruitmentIds(List recruitmentIds) { return new EntityFilter(recruitmentIds, FilterOperation.IN, this.recruitmentColumn); } From 8cdbd44f64c0fed9ec384a6c995aa1bf5f22aa4a Mon Sep 17 00:00:00 2001 From: "adel.kalimullin" Date: Tue, 18 Feb 2025 14:44:52 +0300 Subject: [PATCH 3/5] SUPPORT-8912:fixes --- .../component/service/RecruitmentGridService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java index 7026980f..2ed021d5 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.List; import java.util.Optional; +import component.field.persist.filter.FilterControl; import model.Filter; import model.grid.GridRows; import model.grid.SortInfo; @@ -20,7 +21,6 @@ import ru.cg.webbpm.modules.database.bean.filter.FilterOperation; import ru.cg.webbpm.modules.security.api.runtime.SecurityContext; import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; import ru.cg.webbpm.modules.standard_annotations.validation.NotNull; -import ru.cg.webbpm.modules.webkit.beans.Behavior; /** * @author Adel Kalimullin @@ -31,7 +31,7 @@ public class RecruitmentGridService extends GridV2ServiceImpl { private final SecurityContext securityContext; @ObjectRef @NotNull - public Behavior recruitmentBehavior; + public FilterControl filterControlRef; @LocalGraphSource(sourceFieldName = "loadDao") public EntityColumn recruitmentColumn; @@ -59,13 +59,13 @@ public class RecruitmentGridService extends GridV2ServiceImpl { private Optional findRecruitmentFilter(List filters) { return filters.stream() - .filter(filter -> recruitmentBehavior.getObjectId().equals(filter.componentGuid)) + .filter(filter -> filterControlRef.getObjectId().equals(filter.componentGuid)) .findFirst(); } private List getChildRecruitmentIds(List filters, Filter recruitmentFilter) { String selectedRecruitmentId = (String) recruitmentFilter.filterModels[0].getValue(); - filters.removeIf(filter -> recruitmentBehavior.getObjectId().equals(filter.componentGuid)); + filters.removeIf(filter -> filterControlRef.getObjectId().equals(filter.componentGuid)); return recruitmentDao.getRecruitmentIdsWithParentByRecruitmentId(selectedRecruitmentId); } From 8041c7619bed4463dfeb7354a22057ddedf1f847 Mon Sep 17 00:00:00 2001 From: "adel.kalimullin" Date: Tue, 18 Feb 2025 17:28:54 +0300 Subject: [PATCH 4/5] SUPPORT-8912:fixes --- .../component/service/RecruitmentGridService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java index 2ed021d5..26548cc6 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/RecruitmentGridService.java @@ -43,9 +43,9 @@ public class RecruitmentGridService extends GridV2ServiceImpl { @Override public GridRows loadData(Integer offset, Integer limit, Filter[] filters, SortInfo[] sortInfos) { List updatedFilters = new ArrayList<>(Arrays.asList(filters)); - Optional recruitmentFilerOpt = findRecruitmentFilter(updatedFilters); + Optional recruitmentFilterOpt = findRecruitmentFilter(updatedFilters); - List recruitmentIds = recruitmentFilerOpt.map( + List recruitmentIds = recruitmentFilterOpt.map( filter -> getChildRecruitmentIds(updatedFilters, filter)) .orElseGet(this::getRecruitmentIdsForCurrentUser); From 546c0c4cd46dd080f3f57fba372a1bb4cd57f32d Mon Sep 17 00:00:00 2001 From: Makarova Elena Date: Tue, 18 Feb 2025 18:39:17 +0300 Subject: [PATCH 5/5] =?UTF-8?q?ERVU-273=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B3?= =?UTF-8?q?=D0=B8=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=BC=20=D0=B2?= =?UTF-8?q?=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Создание заявки на добавление пользователя.page | 343 ++---------------- .../Создать заявку на блокировку.page | 343 ++---------------- .../Создать заявку на изменение.page | 343 ++---------------- .../Список заявок.page | 86 ++--- 4 files changed, 132 insertions(+), 983 deletions(-) diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page index 4485fc06..58e1941c 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page @@ -1656,6 +1656,29 @@ {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + columnSorts + + + + + +field + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + +sortOrder + + "ASC" + + + + + + + displayColumn @@ -1682,6 +1705,10 @@ + + RecruitmentAutoCompleteService + ru.micord.ervu.account_applications.component.service + @@ -3283,7 +3310,6 @@ eff7bfda-85b7-4f80-817b-59d5cf192d93 Vbox_current_user true - false false @@ -3401,325 +3427,14 @@ 41fc9dcd-6e83-4886-9049-acbcbec7b99d Action Controller1 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"594569b5-8dfd-4576-91cb-57c900c46c60","packageName":"component.field","className":"TextField","type":"TS"} - - - - propertyName - - "valueChangeEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"594569b5-8dfd-4576-91cb-57c900c46c60","packageName":"component.field","className":"TextField","type":"TS"} - - - -method - - "getValue" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"7b65eda9-a92d-49fe-8355-547f7941ba7f","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "onClick" - - - - value - - null - - - - - - - - - + true 98594cec-0a9b-4cef-af09-e1b71cb2ad9e 69e4bba9-688b-4273-a078-c6440233e07c Action Controller2 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"7b65eda9-a92d-49fe-8355-547f7941ba7f","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - propertyName - - "clickEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"7b65eda9-a92d-49fe-8355-547f7941ba7f","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - -method - - "getResult" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setValueByBusinessId" - - - - value - - - - objectValue - - - - argument - - null - - - - behavior - - {"objectId":"7b65eda9-a92d-49fe-8355-547f7941ba7f","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "getResult" - - - - - - - - - - - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setEnabled" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - + true diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на блокировку.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на блокировку.page index 967301b2..873aa1ab 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на блокировку.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на блокировку.page @@ -1656,6 +1656,29 @@ {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + columnSorts + + + + + +field + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + +sortOrder + + "ASC" + + + + + + + displayColumn @@ -1682,6 +1705,10 @@ + + RecruitmentAutoCompleteService + ru.micord.ervu.account_applications.component.service + @@ -3222,7 +3249,6 @@ 2b018a80-bc55-4815-b87c-0c507c750f18 Vbox_current_user true - false false @@ -3340,325 +3366,14 @@ 67d246f5-26b0-43f7-b9f9-e24d1820da8d Action Controller1 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"d901bfd2-e26d-45eb-b32a-1d241e762fca","packageName":"component.field","className":"TextField","type":"TS"} - - - - propertyName - - "valueChangeEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"d901bfd2-e26d-45eb-b32a-1d241e762fca","packageName":"component.field","className":"TextField","type":"TS"} - - - -method - - "getValue" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"06462f41-30b9-4b4e-bed5-6d828e32ed22","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "onClick" - - - - value - - null - - - - - - - - - + true 98594cec-0a9b-4cef-af09-e1b71cb2ad9e bb19d382-a3b8-4713-9d94-dabad5debf04 Action Controller2 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"06462f41-30b9-4b4e-bed5-6d828e32ed22","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - propertyName - - "clickEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"06462f41-30b9-4b4e-bed5-6d828e32ed22","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - -method - - "getResult" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setValueByBusinessId" - - - - value - - - - objectValue - - - - argument - - null - - - - behavior - - {"objectId":"06462f41-30b9-4b4e-bed5-6d828e32ed22","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "getResult" - - - - - - - - - - - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setEnabled" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - + true diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page index 187661c3..cd311582 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page @@ -1663,6 +1663,29 @@ {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + columnSorts + + + + + +field + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + +sortOrder + + "ASC" + + + + + + + displayColumn @@ -1689,6 +1712,10 @@ + + RecruitmentAutoCompleteService + ru.micord.ervu.account_applications.component.service + @@ -1939,6 +1966,7 @@ 6a35687d-bbb6-4094-86c8-2f414a1ca1e7 Vbox_3 true + false false @@ -3414,325 +3442,14 @@ 43a5c17a-717e-4539-bae5-6c13955e07ee Action Controller1 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"cde7064b-31a7-420c-9ed8-dd79214c1409","packageName":"component.field","className":"TextField","type":"TS"} - - - - propertyName - - "valueChangeEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"cde7064b-31a7-420c-9ed8-dd79214c1409","packageName":"component.field","className":"TextField","type":"TS"} - - - -method - - "getValue" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"7f57e95b-e9bb-49d3-b506-4f2cc9b278d8","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "onClick" - - - - value - - null - - - - - - - - - + true 98594cec-0a9b-4cef-af09-e1b71cb2ad9e f1c8b51e-1b04-49bd-b500-e6bf45ee3ef7 Action Controller2 false - false - - - - eventRefs - - - - - - behavior - - {"objectId":"7f57e95b-e9bb-49d3-b506-4f2cc9b278d8","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - propertyName - - "clickEvent" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"7f57e95b-e9bb-49d3-b506-4f2cc9b278d8","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - -method - - "getResult" - - - - - - - - - - operation - - "IS_NOT_EMPTY" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setValueByBusinessId" - - - - value - - - - objectValue - - - - argument - - null - - - - behavior - - {"objectId":"7f57e95b-e9bb-49d3-b506-4f2cc9b278d8","packageName":"component.button","className":"ExecuteSqlButton","type":"TS"} - - - - method - - "getResult" - - - - - - - - - - - - - - - - behavior - - {"objectId":"ec1fa9b6-04e1-4b58-96c7-538963204d95","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setEnabled" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - + true diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page index 569dba61..2a033569 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page @@ -1159,6 +1159,29 @@ {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + columnSorts + + + + + + field + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + sortOrder + + "ASC" + + + + + + + displayColumn @@ -1179,6 +1202,10 @@ + + RecruitmentComboBoxService + ru.micord.ervu.account_applications.component.service + @@ -1702,41 +1729,7 @@ - - - - - behavior - -{"objectId":"d5c7ef33-6035-4963-aaa9-79868c2c3198","packageName":"component.filter","className":"FilterComboBox","type":"TS"} - - - - method - -"setEnabled" - - - - value - - - - staticValue - - - boolean - - - false - - - - - - - - + @@ -5979,6 +5972,12 @@ +filterControlRef + + {"objectId":"d5c7ef33-6035-4963-aaa9-79868c2c3198","packageName":"component.field.persist.filter","className":"FilterControl","type":"JAVA"} + + + loadDao @@ -5989,9 +5988,19 @@ + + + +recruitmentColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + RecruitmentGridService + ru.micord.ervu.account_applications.component.service + @@ -6678,13 +6687,6 @@ - - 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 - 729c7aac-ccde-4755-84fb-4238b88274f1 - IP адрес - false - true - 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 ea2b5892-2391-4097-9e65-320c835c50cf