From 4f6c16b5c78c9f8c19388f97e3b248324812a8a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D1=82=D0=BE=D0=B1=D0=B8=D0=BD=20=D0=95?= =?UTF-8?q?=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Wed, 9 Apr 2025 09:40:41 +0300 Subject: [PATCH] merge ervu-backend/release/ervu/1.9.11 --- .gitlab-ci.yml | 8 + Dockerfile | 57 + Dockerfile.pgs2 | 63 + backend/pom.xml | 8 + backend/src/main/java/AppConfig.java | 45 +- .../EnumColumnFormatter.java | 1 + .../component/dao/RecruitmentDao.java | 6 + .../service/ErvuUserGridLoadService.java | 15 +- .../service/RecruitmentGridService.java | 30 +- .../component/service/TreeItemService.java | 17 +- .../controller/AdminController.java | 32 +- .../public_/tables/UserApplicationRole.java | 5 + .../records/UserApplicationRoleRecord.java | 17 +- .../dto/activation/ChangeActivationData.java | 9 + .../dto/activation/ChangeActivationDto.java | 12 + .../ChangeActivationProcessRequest.java | 13 + .../password/ResetPasswordProcessRequest.java | 4 +- .../enums/ProcessKey.java | 1 + .../model/RoleResponse.java | 19 + .../service/AbstractUserDataService.java | 3 +- .../service/AccountServiceImpl.java | 40 +- .../service/ErvuDirectoriesDaoService.java | 4 +- .../service/ErvuDirectoriesService.java | 43 +- .../ErvuDirectoriesUpdateShedulerService.java | 12 +- .../service/RoleServiceImpl.java | 1 + .../websocket/WebSocketConfig.java | 13 +- .../websocket/service/WebSocketService.java | 1 + .../20250404-SUPPORT-9080_add_role_code.xml | 23 + .../resources/config/v_1.0/changelog-1.0.xml | 1 + config/.gitignore | 1 + config/config.yaml | 74 + config/entrypoint.sh | 6 + config/settings.xml | 13 + config/tomcat/etc/tomcat/conf.d/db.conf | 12 +- config/tomcat/etc/tomcat/webbpm.properties | 3 +- config/uat/settings.xml | 13 + .../component/button/UserManagementService.ts | 3 + .../component/enum/ApplicationKind.ts | 1 + .../dropdown-treeview-select-i18n.ts | 2 +- .../field/DropdownTreeViewComponent.ts | 61 +- .../src/ts/modules/app/app-routing.module.ts | 5 + pom.xml | 10 + .../Обработка заявки на добавление пользователя.page | 163 + .../Обработка заявки на изменение пользователя.page | 575 +- .../Создание заявки на добавление пользователя.page | 39 +- .../Создать заявку на активацию.page | 10256 ++++++++++++++++ .../Создать заявку на деактивацию.page | 242 +- .../Создать заявку на изменение.page | 1049 +- .../Создать заявку на сброс пароля.page | 68 +- .../Список заявок.page | 56 + 50 files changed, 12221 insertions(+), 934 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile create mode 100644 Dockerfile.pgs2 create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationData.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationDto.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationProcessRequest.java create mode 100644 backend/src/main/resources/config/v_1.0/20250404-SUPPORT-9080_add_role_code.xml create mode 100644 config/config.yaml create mode 100644 config/entrypoint.sh create mode 100644 config/settings.xml create mode 100644 config/uat/settings.xml create mode 100644 resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..002f43f2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,8 @@ +--- +variables: + DEPLOY_TEMPLATES_VERSION: v1 + +include: + - project: ervu/devops/ci-cd-templates + ref: v1 + file: pipelines/container-helm-kubernetes-dev.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b6a9ba21 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +ARG BUILDER_IMAGE=registry.gosuslugi.local/ervu-uat/micord-deps:1.9.11 +ARG RUNTIME_IMAGE=registry.gosuslugi.local/os/altlinux@sha256:fd478a99adab9e195d652f78d0c90638de83f6f605fd7254f6241e594054f0f2 + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-T4C -Pprod -DexecuteNpmInstall=false --batch-mode --no-transfer-progress" + +RUN apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG ru_RU.UTF-8 +ENV LANGUAGE ru_RU.UTF-8 +ENV LC_ALL ru_RU.UTF-8 + +WORKDIR /app +COPY . . + +RUN mkdir -p /root/.m2 \ + && cp config/uat/settings.xml /root/.m2/settings.xml +RUN mvn clean ${MVN_FLAGS} \ + && mvn package ${MVN_FLAGS} + + +FROM $RUNTIME_IMAGE + +COPY --from=builder /usr/lib/locale/ru_RU /usr/lib/locale/ru_RU +COPY --from=builder /usr/lib/locale/ru_RU.utf8 /usr/lib/locale/ru_RU.utf8 +COPY --from=builder /usr/share/locale/ru_RU /usr/share/locale/ru_RU + +COPY config/entrypoint.sh /entrypoint.sh + +RUN apt-get update \ + && apt-get -y install fonts-ttf-ms java-17-openjdk-headless tomcat tomcat-webapps tomcat-admin-webapps \ + && apt-get clean \ + && rm -f /var/cache/apt/*.bin \ + && rm -f /var/lib/apt/lists/update* \ + && chmod +x /entrypoint.sh + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG=ru_RU.UTF-8 +ENV LANGUAGE=ru_RU.UTF-8 +ENV LC_ALL=ru_RU.UTF-8 + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && chown -R tomcat:tomcat /var/lib/tomcat/webapps + +COPY --from=builder /app/backend/target/account-applications.war /var/lib/tomcat/webapps/account-applications.war + +USER tomcat + +EXPOSE 8080 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/Dockerfile.pgs2 b/Dockerfile.pgs2 new file mode 100644 index 00000000..524beec0 --- /dev/null +++ b/Dockerfile.pgs2 @@ -0,0 +1,63 @@ +ARG BUILDER_IMAGE=registry-dev.pgs.rtlabs.ru/ervu/micord-deps:0.0.1-shaeb3853d5 +ARG RUNTIME_IMAGE=registry-dev.pgs.rtlabs.ru/basealt/altsp:c10f1 + +FROM $BUILDER_IMAGE AS builder + +ARG MVN_FLAGS="-T4C -Pprod -DexecuteNpmInstall=false --batch-mode --no-transfer-progress" + +RUN rm -f /etc/apt/sources.list.d/* \ + && echo "rpm http://nexus-dev.pgs.rtlabs.ru repository/alt-c10f1-classic/x86_64 classic" > /etc/apt/sources.list \ + && echo "rpm http://nexus-dev.pgs.rtlabs.ru repository/alt-c10f1-classic/noarch classic" >> /etc/apt/sources.list \ + && apt-get update \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get clean + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG ru_RU.UTF-8 +ENV LANGUAGE ru_RU.UTF-8 +ENV LC_ALL ru_RU.UTF-8 + +WORKDIR /app +COPY . . +RUN mkdir -p /root/.m2 \ + && cp config/settings.xml /root/.m2/settings.xml + +RUN mvn clean ${MVN_FLAGS} \ + && mvn package ${MVN_FLAGS} + + +FROM $RUNTIME_IMAGE + +COPY --from=builder /usr/lib/locale/ru_RU /usr/lib/locale/ru_RU +COPY --from=builder /usr/lib/locale/ru_RU.utf8 /usr/lib/locale/ru_RU.utf8 +COPY --from=builder /usr/share/locale/ru_RU /usr/share/locale/ru_RU + +COPY config/entrypoint.sh /entrypoint.sh + +RUN rm -f /etc/apt/sources.list.d/* \ + && echo "rpm http://nexus-dev.pgs.rtlabs.ru repository/alt-c10f1-classic/x86_64 classic" > /etc/apt/sources.list \ + && echo "rpm http://nexus-dev.pgs.rtlabs.ru repository/alt-c10f1-classic/noarch classic" >> /etc/apt/sources.list \ + && apt-get update \ + && apt-get -y install fonts-ttf-ms java-17-openjdk-headless tomcat tomcat-webapps \ + && apt-get clean \ + && rm -f /var/cache/apt/*.bin \ + && rm -f /var/lib/apt/lists/update* \ + && chmod +x /entrypoint.sh + +ENV JAVA_HOME=/usr/lib/jvm/java +ENV LANG=ru_RU.UTF-8 +ENV LANGUAGE=ru_RU.UTF-8 +ENV LC_ALL=ru_RU.UTF-8 + +COPY config/tomcat / + +RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ + && chown -R tomcat:tomcat /var/lib/tomcat/webapps + +COPY --from=builder /app/backend/target/account-applications.war /var/lib/tomcat/webapps/account-applications.war + +USER tomcat + +EXPOSE 8080 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/backend/pom.xml b/backend/pom.xml index f6079741..249e424c 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -188,6 +188,14 @@ net.javacrumbs.shedlock shedlock-provider-jdbc-template + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + org.apache.logging.log4j log4j-slf4j2-impl diff --git a/backend/src/main/java/AppConfig.java b/backend/src/main/java/AppConfig.java index 0ec5c7d6..008e859a 100644 --- a/backend/src/main/java/AppConfig.java +++ b/backend/src/main/java/AppConfig.java @@ -1,4 +1,11 @@ +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; import java.time.Duration; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import javax.sql.DataSource; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -9,6 +16,10 @@ import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider; import net.javacrumbs.shedlock.spring.ScheduledLockConfiguration; import net.javacrumbs.shedlock.spring.ScheduledLockConfigurationBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -16,6 +27,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.FilterType; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.retry.annotation.EnableRetry; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @@ -50,6 +62,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; @EnableScheduling @EnableRetry public class AppConfig { + private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class); @Bean public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(){ @@ -83,7 +96,37 @@ public class AppConfig { @Bean public RestTemplate restTemplate() { - return new RestTemplate(); + CloseableHttpClient httpClient = HttpClients.custom() + .setSSLContext(sslContext()) + .build(); + RestTemplate restTemplate = new RestTemplate(); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient)); + return restTemplate; + } + + @Bean + public SSLContext sslContext() { + TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkServerTrusted(X509Certificate[] certs, String authType) {} + + public void checkClientTrusted(X509Certificate[] certs, String authType) {} + } + }; + SSLContext sslContext = null; + + try { + sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, trustAllCerts, new SecureRandom()); + } + catch (NoSuchAlgorithmException | KeyManagementException e) { + LOGGER.error("Failed to init SSL context", e); + } + return sslContext; } @Bean diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/EnumColumnFormatter.java b/backend/src/main/java/ru/micord/ervu/account_applications/EnumColumnFormatter.java index 3d0d16bc..8bb7220e 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/EnumColumnFormatter.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/EnumColumnFormatter.java @@ -27,6 +27,7 @@ public class EnumColumnFormatter implements Formatter { strObjectToStringMapping.put("EDIT_USER_ACCOUNT", "Изменение учетной записи пользователя"); strObjectToStringMapping.put("EDIT_USER_ROLES", "Изменение ролей пользователя"); strObjectToStringMapping.put("BLOCK_USER", "Деактивация пользователя"); + strObjectToStringMapping.put("UNBLOCK_USER", "Активация пользователя"); strObjectToStringMapping.put("RESET_PASSWORD", "Сброс пароля пользователя"); strObjectToStringMapping.put("MALE", "Мужской"); strObjectToStringMapping.put("FEMALE", "Женский"); 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 index 56d40d8c..d800ba62 100644 --- 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 @@ -57,6 +57,12 @@ public class RecruitmentDao { .orderBy(DSL.field(DSL.name("recruitment_hierarchy", "depth")).asc()) .fetchInto(String.class); } + + public List getAllRecruitmentIds() { + return dslContext.select(Recruitment.RECRUITMENT.IDM_ID) + .from(Recruitment.RECRUITMENT) + .fetch(Recruitment.RECRUITMENT.IDM_ID); + } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/ErvuUserGridLoadService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/ErvuUserGridLoadService.java index df2352ac..a0b3459f 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/ErvuUserGridLoadService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/ErvuUserGridLoadService.java @@ -26,6 +26,8 @@ import ru.micord.ervu.account_applications.component.model.dto.GridServiceReques import ru.micord.ervu.account_applications.component.model.dto.GridServiceResponse; import ru.micord.ervu.account_applications.component.model.User; import ru.micord.ervu.account_applications.security.context.SecurityContext; +import ru.micord.ervu.account_applications.security.model.jwt.UserSession; +import ru.micord.ervu.account_applications.security.model.role.ErvuRoleAuthority; import ru.micord.ervu.account_applications.service.constant.PathConstant; import ru.micord.ervu.account_applications.util.StringUtils; import service.GridService; @@ -44,6 +46,8 @@ public class ErvuUserGridLoadService extends Behavior implements GridService { private int httpTimeout; @Value("${idm.url}") private String idmUrl; + @Value("${ervu.role.admin:#{null}}") + private String ervuAdminRole; public ErvuUserGridLoadService(ObjectMapper objectMapper, SecurityContext securityContext) { @@ -124,8 +128,12 @@ public class ErvuUserGridLoadService extends Behavior implements GridService { private GridServiceRequest createLoadServiceRequest(Integer offset, Integer limit, Filter[] filters) { int page = (offset / limit) + 1; Map filterMap = new HashMap<>(); - filterMap.put("domainId", securityContext.getDomainId()); - + UserSession userSession = securityContext.getUserSession(); + Set roles = userSession.roles(); + if (ervuAdminRole == null || roles.stream().noneMatch(role -> role.getAuthority().equals( + ervuAdminRole))) { + filterMap.put("domainId", securityContext.getDomainId()); + } if (filters != null && filters.length > 0) { filterMap.putAll(Arrays.stream(filters) .filter(filter -> filter.getFilterModels() != null && filter.getFilterModels().length > 0) @@ -136,7 +144,6 @@ public class ErvuUserGridLoadService extends Behavior implements GridService { )) ); } - return new GridServiceRequest(filterMap, page, limit); } @@ -161,4 +168,4 @@ public class ErvuUserGridLoadService extends Behavior implements GridService { throw new UserDataLoadException("Ошибка при получении значения поля: " + field.getName(), e); } } -} \ 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 index 882b7584..f7d3a0fc 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 @@ -4,13 +4,17 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.Set; import component.field.persist.filter.FilterControl; import model.Filter; import model.grid.GridRows; import model.grid.SortInfo; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import ru.micord.ervu.account_applications.component.dao.RecruitmentDao; +import ru.micord.ervu.account_applications.security.model.jwt.UserSession; +import ru.micord.ervu.account_applications.security.model.role.ErvuRoleAuthority; import service.GridV2ServiceImpl; import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; @@ -35,6 +39,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl { @LocalGraphSource(sourceFieldName = "loadDao") @NotNull public EntityColumn recruitmentColumn; + @Value("${ervu.role.admin:security_administrator}") + private String ervuAdminRole; public RecruitmentGridService(RecruitmentDao recruitmentDao, SecurityContext securityContext) { this.recruitmentDao = recruitmentDao; @@ -43,13 +49,22 @@ public class RecruitmentGridService extends GridV2ServiceImpl { @Override public GridRows loadData(Integer offset, Integer limit, Filter[] filters, SortInfo[] sortInfos) { + UserSession userSession = securityContext.getUserSession(); + Set roles = userSession.roles(); + List recruitmentIds; List updatedFilters = new ArrayList<>(Arrays.asList(filters)); Optional recruitmentFilterOpt = findRecruitmentFilter(updatedFilters); - - List recruitmentIds = recruitmentFilterOpt.map( - filter -> getChildRecruitmentIds(updatedFilters, filter)) - .orElseGet(this::getRecruitmentIdsForCurrentUser); - + if (ervuAdminRole != null && roles.stream().anyMatch(role -> role.getAuthority().equals( + ervuAdminRole))) { + recruitmentIds = recruitmentFilterOpt.map( + filter -> getChildRecruitmentIds(updatedFilters, filter)) + .orElseGet(this::getAllRecruitmentIds); + } + else { + recruitmentIds = recruitmentFilterOpt.map( + filter -> getChildRecruitmentIds(updatedFilters, filter)) + .orElseGet(this::getRecruitmentIdsForCurrentUser); + } LoadOptions options = getOptions(offset, limit, updatedFilters.toArray(new Filter[0]), sortInfos ); @@ -78,5 +93,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl { private EntityFilter getEntityFilterForRecruitmentIds(List recruitmentIds) { return new EntityFilter(recruitmentIds, FilterOperation.IN, this.recruitmentColumn); } -} + private List getAllRecruitmentIds() { + return recruitmentDao.getAllRecruitmentIds(); + } +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/TreeItemService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/TreeItemService.java index 8ee21566..abceba48 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/TreeItemService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/TreeItemService.java @@ -4,10 +4,13 @@ import java.util.*; import database.dao.DefaultLoadDao; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import ru.micord.ervu.account_applications.component.model.TreeItemDto; import ru.micord.ervu.account_applications.component.rpc.TreeItemRpcService; import ru.micord.ervu.account_applications.security.context.SecurityContext; +import ru.micord.ervu.account_applications.security.model.jwt.UserSession; +import ru.micord.ervu.account_applications.security.model.role.ErvuRoleAuthority; import ru.cg.webbpm.modules.database.api.bean.TableRow; import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions; @@ -39,6 +42,8 @@ public class TreeItemService { public EntityColumn businessIdColumn; @GraphSource(value = TreeItemRpcService.class, scanMode = GraphSource.ScanMode.SELF) public EntityColumn domainIdColumn; + @Value("${ervu.role.admin:security_administrator}") + private String ervuAdminRole; public TreeItemService(SecurityContext securityContext) { this.securityContext = securityContext; @@ -46,9 +51,15 @@ public class TreeItemService { public List loadTreeData() { String domainId = securityContext.getDomainId(); - List filteredTreeItems = loadTreeItems().stream() - .filter(item -> item.domainId.equalsIgnoreCase(domainId)) - .toList(); + UserSession userSession = securityContext.getUserSession(); + Set roles = userSession.roles(); + List filteredTreeItems = loadTreeItems(); + if (ervuAdminRole == null || roles.stream().noneMatch(role -> role.getAuthority().equals( + ervuAdminRole))) { + filteredTreeItems = filteredTreeItems.stream() + .filter(item -> item.domainId.equalsIgnoreCase(domainId)) + .toList(); + } filteredTreeItems.forEach(this::setDomainIdToNull); return filteredTreeItems; } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/controller/AdminController.java b/backend/src/main/java/ru/micord/ervu/account_applications/controller/AdminController.java index fbfecb99..23bf0576 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/controller/AdminController.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/controller/AdminController.java @@ -32,9 +32,9 @@ import ru.micord.ervu.account_applications.dto.Person; import ru.micord.ervu.account_applications.dto.ProcessResponse; import ru.micord.ervu.account_applications.dto.Role; import ru.micord.ervu.account_applications.dto.Roles; -import ru.micord.ervu.account_applications.dto.deactivate.DeactivateData; -import ru.micord.ervu.account_applications.dto.deactivate.DeactivateDto; -import ru.micord.ervu.account_applications.dto.deactivate.DeactivateProcessRequest; +import ru.micord.ervu.account_applications.dto.activation.ChangeActivationData; +import ru.micord.ervu.account_applications.dto.activation.ChangeActivationDto; +import ru.micord.ervu.account_applications.dto.activation.ChangeActivationProcessRequest; import ru.micord.ervu.account_applications.dto.edit.EditAccountDto; import ru.micord.ervu.account_applications.dto.edit.EditData; import ru.micord.ervu.account_applications.dto.edit.EditRolesDto; @@ -44,11 +44,12 @@ import ru.micord.ervu.account_applications.dto.password.ResetPasswordData; import ru.micord.ervu.account_applications.dto.password.ResetPasswordDto; import ru.micord.ervu.account_applications.dto.password.ResetPasswordProcessRequest; import ru.micord.ervu.account_applications.dto.password.UserIdInfo; -import ru.micord.ervu.account_applications.enums.ProcessKey; import ru.micord.ervu.account_applications.security.context.SecurityContext; import ru.micord.ervu.account_applications.service.RoleServiceImpl; import ru.micord.ervu.account_applications.service.UserApplicationListService; +import static ru.micord.ervu.account_applications.enums.ProcessKey.*; + /** * @author gulnaz */ @@ -86,7 +87,7 @@ public class AdminController { .collect(Collectors.toList()); Roles roles = new Roles(rolesList); CreateProcessRequest request = new CreateProcessRequest( - ProcessKey.CREATE.getValue(), getUserId(), new CreateData(credential, account, person, roles)); + CREATE.getValue(), getUserId(), new CreateData(credential, account, person, roles)); return doRequestAndSaveTraceId(request, dto.appNumber()); } @@ -94,7 +95,7 @@ public class AdminController { public ResponseEntity editPerson(@RequestBody @Valid EditPersonDto dto) { Person person = new Person(dto.id(), dto.surname(), dto.firstname(), dto.middlename(), dto.sex(), dto.email(), dto.birthdate(), dto.snils(), dto.ipAddresses()); - EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_PERSON.getValue(), + EditPersonProcessRequest request = new EditPersonProcessRequest(EDIT_PERSON.getValue(), getUserId(), new EditData(dto.accountId(), person)); return doRequestAndSaveTraceId(request, dto.appNumber()); } @@ -102,7 +103,7 @@ public class AdminController { @PostMapping(value = "/account", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity editAccount(@RequestBody @Valid EditAccountDto dto) { Account account = new Account(dto.accountId(), dto.userDomain(), dto.position()); - EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_ACCOUNT.getValue(), + EditPersonProcessRequest request = new EditPersonProcessRequest(EDIT_ACCOUNT.getValue(), getUserId(), new EditData(account)); return doRequestAndSaveTraceId(request, dto.appNumber()); } @@ -116,15 +117,22 @@ public class AdminController { List removedRoleIds = roleService.fetchRemovedRoleIds(dto.accountId(), dto.roles()); Account account = new Account(dto.accountId(), removedRoleIds, rolesList); - EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_ROLES.getValue(), + EditPersonProcessRequest request = new EditPersonProcessRequest(EDIT_ROLES.getValue(), getUserId(), new EditData(account)); return doRequestAndSaveTraceId(request, dto.appNumber()); } @PostMapping(value = "/deactivation", consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity deactivate(@RequestBody @Valid DeactivateDto dto) { - DeactivateProcessRequest request = new DeactivateProcessRequest(ProcessKey.DEACTIVATE.getValue(), - getUserId(), new DeactivateData(Collections.singletonList(dto.accountId()))); + public ResponseEntity deactivate(@RequestBody @Valid ChangeActivationDto dto) { + ChangeActivationProcessRequest request = new ChangeActivationProcessRequest(DEACTIVATE.getValue(), + getUserId(), new ChangeActivationData(Collections.singletonList(dto.accountId()))); + return doRequestAndSaveTraceId(request, dto.appNumber()); + } + + @PostMapping(value = "/activation", consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity activate(@RequestBody @Valid ChangeActivationDto dto) { + ChangeActivationProcessRequest request = new ChangeActivationProcessRequest(ACTIVATE.getValue(), + getUserId(), new ChangeActivationData(Collections.singletonList(dto.accountId()))); return doRequestAndSaveTraceId(request, dto.appNumber()); } @@ -139,7 +147,7 @@ public class AdminController { UserIdInfo userIdInfo = new UserIdInfo(dto.accountId()); ResetPasswordData resetPasswordData = new ResetPasswordData(userIdInfo); ResetPasswordProcessRequest request = new ResetPasswordProcessRequest( - ProcessKey.RESET_PASSWORD.getValue(), + RESET_PASSWORD.getValue(), getUserId(), resetPasswordData ); return doRequestAndSaveTraceId(request, dto.appNumber()); diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java index a5692c21..6b258743 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java @@ -89,6 +89,11 @@ public class UserApplicationRole extends TableImpl { */ public final TableField FINISHED = createField(DSL.name("finished"), SQLDataType.TIMESTAMP(0), this, "Дата и время окончания действия роли"); + /** + * The column public.user_application_role.role_code. Код роли + */ + public final TableField ROLE_CODE = createField(DSL.name("role_code"), SQLDataType.VARCHAR, this, "Код роли"); + private UserApplicationRole(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationRoleRecord.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationRoleRecord.java index 96e8e741..d1673262 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationRoleRecord.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationRoleRecord.java @@ -100,6 +100,20 @@ public class UserApplicationRoleRecord extends UpdatableRecordImplpublic.user_application_role.role_code. Код роли + */ + public void setRoleCode(String value) { + set(5, value); + } + + /** + * Getter for public.user_application_role.role_code. Код роли + */ + public String getRoleCode() { + return (String) get(5); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -123,7 +137,7 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl accountIdList) { +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationDto.java b/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationDto.java new file mode 100644 index 00000000..ea09f9c1 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationDto.java @@ -0,0 +1,12 @@ +package ru.micord.ervu.account_applications.dto.activation; + +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * @author gulnaz + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public record ChangeActivationDto(@NotNull long appNumber, @NotNull String accountId) { +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationProcessRequest.java b/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationProcessRequest.java new file mode 100644 index 00000000..0fe6b879 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/dto/activation/ChangeActivationProcessRequest.java @@ -0,0 +1,13 @@ +package ru.micord.ervu.account_applications.dto.activation; + +import ru.micord.ervu.account_applications.dto.ProcessRequest; + +/** + * @author gulnaz + */ +public class ChangeActivationProcessRequest extends ProcessRequest { + + public ChangeActivationProcessRequest(String processKey, String userId, ChangeActivationData data) { + super(processKey, userId, data); + } +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/dto/password/ResetPasswordProcessRequest.java b/backend/src/main/java/ru/micord/ervu/account_applications/dto/password/ResetPasswordProcessRequest.java index 756e5c6e..483b9a26 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/dto/password/ResetPasswordProcessRequest.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/dto/password/ResetPasswordProcessRequest.java @@ -5,9 +5,9 @@ import ru.micord.ervu.account_applications.dto.ProcessRequest; /** * @author Adel Kalimullin */ -public class ResetPasswordProcessRequest extends ProcessRequest { +public class ResetPasswordProcessRequest extends ProcessRequest { - public ResetPasswordProcessRequest(String processKey, String userId, Object data) { + public ResetPasswordProcessRequest(String processKey, String userId, ResetPasswordData data) { super(processKey, userId, data); } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/enums/ProcessKey.java b/backend/src/main/java/ru/micord/ervu/account_applications/enums/ProcessKey.java index 3fd58485..6e6ea83e 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/enums/ProcessKey.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/enums/ProcessKey.java @@ -9,6 +9,7 @@ public enum ProcessKey { EDIT_ACCOUNT("milBaseEditAccountIDMProcess"), EDIT_ROLES("milBaseEditAccountRolesIDMSubProcess"), DEACTIVATE("milBaseMassDeActivateAccountIDMProcess"), + ACTIVATE("milBaseMassActivateAccountIDMProcess"), RESET_PASSWORD("milBaseResetPasswordProcess"); private final String value; diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleResponse.java b/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleResponse.java index 0bdd40fc..73617c6b 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleResponse.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleResponse.java @@ -26,6 +26,8 @@ public class RoleResponse { private Long createDate; private Long modified; private Long finish; + private String name; + private Boolean ervuRole; public String getId() { return id; @@ -66,5 +68,22 @@ public class RoleResponse { public void setFinish(Long finish) { this.finish = finish; } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Boolean getErvuRole() { + return ervuRole; + } + + public void setErvuRole(Boolean ervuRole) { + this.ervuRole = ervuRole; + } } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/AbstractUserDataService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/AbstractUserDataService.java index fcb93869..4c5cbd8f 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/AbstractUserDataService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/AbstractUserDataService.java @@ -13,7 +13,6 @@ import com.google.common.net.HttpHeaders; import org.springframework.beans.factory.annotation.Value; - /** * @author Adel Kalimullin */ @@ -51,4 +50,4 @@ public abstract class AbstractUserDataService implements UserDataService { protected abstract Map objectToMap(Object object); -} \ No newline at end of file +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountServiceImpl.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountServiceImpl.java index 119969e0..1fd690fb 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountServiceImpl.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountServiceImpl.java @@ -27,6 +27,9 @@ import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; @Service public class AccountServiceImpl extends AbstractUserDataService { + private static final String FIELD_SEX = "sex"; + private static final String FIELD_IP_ADDRESSES = "ipAddresses"; + private static final String FIELD_SNILS = "snils"; @ObjectRef public EditableGridColumn editableGridColumnRef; @@ -67,12 +70,23 @@ public class AccountServiceImpl extends AbstractUserDataService { if (value == null || (value instanceof String string && string.isEmpty())) { continue; } - if ("ipAddresses".equals(field.getName())) { - List ipList = (List) value; - if (ipList != null && !ipList.isEmpty()) { - map.put(field.getName(), convertIpAddressesToGridRows(ipList)); - } + + if (FIELD_SEX.equals(field.getName()) && value instanceof String sex) { + map.put(field.getName(), sex.toLowerCase()); + continue; } + + if (FIELD_SNILS.equals(field.getName()) && value instanceof String snils) { + map.put(field.getName(), formatSnils(snils)); + continue; + } + + if (FIELD_IP_ADDRESSES.equals(field.getName()) && value instanceof List ipList + && !ipList.isEmpty()) { + map.put(field.getName(), convertIpAddressesToGridRows(ipList)); + continue; + } + if (isSimple(value.getClass())) { map.put(field.getName(), value); } @@ -104,4 +118,20 @@ public class AccountServiceImpl extends AbstractUserDataService { private boolean isSimple(Class type) { return ClassUtils.isPrimitiveOrWrapper(type) || type == String.class; } + + private String formatSnils(String snils) { + if (snils == null) { + return null; + } + + String number = snils.replaceAll("\\D", ""); + + if (number.length() != 11) { + throw new IllegalArgumentException("Некорректный формат СНИЛС: " + number); + } + return number.substring(0, 3) + "-" + + number.substring(3, 6) + "-" + + number.substring(6, 9) + " " + + number.substring(9); + } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesDaoService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesDaoService.java index fed94864..63687bf4 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesDaoService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesDaoService.java @@ -25,12 +25,12 @@ public class ErvuDirectoriesDaoService { return ervuDirectoriesDao.getRoleIds(); } - @Cacheable(value = "domain-ids", unless = "#result == null") +// @Cacheable(value = "domain-ids", unless = "#result == null") public Result> getDomainIds() { return ervuDirectoriesDao.getDomainIds(); } - @Cacheable(value = "role-ids", unless = "#result == null") +// @Cacheable(value = "role-ids", unless = "#result == null") public UserApplicationRoleRecord getRoleRecord() { return ervuDirectoriesDao.getRoleRecord(); } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java index ed458faa..e86595b5 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java @@ -10,6 +10,7 @@ import java.util.UUID; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import org.jooq.DSLContext; import org.jooq.Record2; import org.jooq.Result; import org.slf4j.Logger; @@ -32,6 +33,7 @@ import ru.micord.ervu.account_applications.model.RecruitmentResponse; import ru.micord.ervu.account_applications.model.RoleResponse; import static ru.micord.ervu.account_applications.db_beans.public_.tables.Recruitment.RECRUITMENT; +import static ru.micord.ervu.account_applications.db_beans.public_.tables.UserApplicationRole.USER_APPLICATION_ROLE; /** * @author Eduard Tihomirov @@ -41,8 +43,8 @@ import static ru.micord.ervu.account_applications.db_beans.public_.tables.Recrui public class ErvuDirectoriesService { private static final Logger LOGGER = LoggerFactory.getLogger( MethodHandles.lookup().lookupClass()); - @Value("${ervu.url}") - private String ervuUrl; + @Value("${idm.url}") + private String idmUrl; @Value("${ervu.collection:domain, role}") private String ervuCollection; @Autowired @@ -51,17 +53,20 @@ public class ErvuDirectoriesService { private ObjectMapper objectMapper; @Autowired private ErvuDirectoriesDaoService ervuDirectoriesDaoService; + @Autowired + private DSLContext dsl; + + Result> domainIds = null; + List roleIds = null; + - @Caching(evict = { - @CacheEvict(value = "domain-ids", allEntries = true), - @CacheEvict(value = "role-ids", allEntries = true) - }) public void updateDirectories() { try { + initIds(); String[] ervuCollectionArray = ervuCollection.split(","); Arrays.stream(ervuCollectionArray).forEach(ervuCollection -> { - String targetUrl = ervuUrl + "/service/idm/reconcile/"+ ervuCollection + "/to/kafka/v1"; + String targetUrl = idmUrl + "/reconcile/"+ ervuCollection + "/to/kafka/v1"; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); String emptyJson = "{}"; @@ -92,6 +97,9 @@ public class ErvuDirectoriesService { throw new RuntimeException("Error with parsing domain kafka message", e); } if (response.length > 0 && response[0].getData() != null && !response[0].getData().isEmpty()) { + if (domainIds == null) { + initIds(); + } upsertRecruitmentData(response[0].getData()); } } @@ -106,6 +114,9 @@ public class ErvuDirectoriesService { throw new RuntimeException("Error with parsing role kafka message", e); } if (response.length > 0 && response[0].getData() != null && !response[0].getData().isEmpty()) { + if (roleIds == null) { + initIds(); + } upsertRoleData(response[0].getData()); } } @@ -113,7 +124,7 @@ public class ErvuDirectoriesService { private void upsertRecruitmentData(List dataList) { List newRecruitmentRecords = new ArrayList<>(); List recruitmentRecords = new ArrayList<>(); - Result> ids = ervuDirectoriesDaoService.getDomainIds(); + Result> ids = domainIds; dataList.forEach(data -> { Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(data.getModified())); Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(data.getCreateDate())); @@ -172,8 +183,11 @@ public class ErvuDirectoriesService { private void upsertRoleData(List dataList) { List newRoleRecords = new ArrayList<>(); List roleRecords = new ArrayList<>(); - List ids = ervuDirectoriesDaoService.getRoleIds(); + List ids = roleIds; dataList.forEach(data -> { + if (data.getErvuRole() == null || !data.getErvuRole()) { + return; + } Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(data.getModified())); Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(data.getCreateDate())); Timestamp finishAt = null; @@ -182,6 +196,7 @@ public class ErvuDirectoriesService { } UserApplicationRoleRecord roleRecord = ervuDirectoriesDaoService.getRoleRecord(); roleRecord.setUserRoleId(data.getId()); + roleRecord.setRoleCode(data.getName()); roleRecord.setRoleName(data.getDisplayName()); roleRecord.setCreated(createdAt); roleRecord.setUpdated(updatedAt); @@ -196,4 +211,14 @@ public class ErvuDirectoriesService { ervuDirectoriesDaoService.insertRoleRecords(newRoleRecords); ervuDirectoriesDaoService.updateRoleRecords(roleRecords); } + + private void initIds() { + domainIds = dsl.select(RECRUITMENT.ID, RECRUITMENT.IDM_ID) + .from(RECRUITMENT) + .fetch(); + roleIds = dsl.select(USER_APPLICATION_ROLE.USER_ROLE_ID) + .from(USER_APPLICATION_ROLE) + .fetch(USER_APPLICATION_ROLE.USER_ROLE_ID); + } + } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java index 587ca9fe..cba4eaf2 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java @@ -25,10 +25,20 @@ public class ErvuDirectoriesUpdateShedulerService { @PostConstruct public void init() { if (!cronLoad.equals(CRON_DISABLED)) { - new Thread(this::run).start(); + new Thread(this::runWithSleep).start(); } } + private void runWithSleep() { + try { + Thread.sleep(100000); + } + catch (InterruptedException e) { + throw new RuntimeException(e); + } + run(); + } + @Scheduled(cron = "${directory.update.cron:0 0 */1 * * *}") @SchedulerLock(name = "updateDirectories") public void run() { diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/RoleServiceImpl.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/RoleServiceImpl.java index 7632a2f8..f7a3ce4d 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/RoleServiceImpl.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/RoleServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.util.UriComponentsBuilder; import ru.micord.ervu.account_applications.component.exception.UserDataLoadException; import ru.micord.ervu.account_applications.component.model.Role; +import ru.micord.ervu.account_applications.security.context.SecurityContext; import ru.micord.ervu.account_applications.service.constant.PathConstant; /** diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/websocket/WebSocketConfig.java b/backend/src/main/java/ru/micord/ervu/account_applications/websocket/WebSocketConfig.java index e0fffa9e..76e6335f 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/websocket/WebSocketConfig.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/websocket/WebSocketConfig.java @@ -1,5 +1,9 @@ package ru.micord.ervu.account_applications.websocket; +import java.util.HashMap; +import java.util.Map; +import javax.net.ssl.SSLContext; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.client.WebSocketClient; @@ -11,8 +15,15 @@ import org.springframework.web.socket.client.standard.StandardWebSocketClient; @Configuration public class WebSocketConfig { + @Autowired + private SSLContext sslContext; + @Bean public WebSocketClient webSocketClient() { - return new StandardWebSocketClient(); + Map userProperties = new HashMap<>(); + userProperties.put("org.apache.tomcat.websocket.SSL_CONTEXT", sslContext); + StandardWebSocketClient webSocketClient = new StandardWebSocketClient(); + webSocketClient.setUserProperties(userProperties); + return webSocketClient; } } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/websocket/service/WebSocketService.java b/backend/src/main/java/ru/micord/ervu/account_applications/websocket/service/WebSocketService.java index 53103ccd..b8f591cd 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/websocket/service/WebSocketService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/websocket/service/WebSocketService.java @@ -63,6 +63,7 @@ public class WebSocketService { socketHandler.putUserData(session.getId(), userId, token); } catch (InterruptedException | ExecutionException | TimeoutException e) { + LOGGER.error("Failed to connect socket", e); LOGGER.error("Failed to connect socket on retry {}", RetrySynchronizationManager.getContext().getRetryCount()); throw new WebSocketConnectionException(e.getMessage()); diff --git a/backend/src/main/resources/config/v_1.0/20250404-SUPPORT-9080_add_role_code.xml b/backend/src/main/resources/config/v_1.0/20250404-SUPPORT-9080_add_role_code.xml new file mode 100644 index 00000000..5692b79c --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/20250404-SUPPORT-9080_add_role_code.xml @@ -0,0 +1,23 @@ + + + + + truncate user_application_role table + + TRUNCATE public.user_application_role CASCADE; + + + + + add role_code column to user_application_role table + + ALTER TABLE IF EXISTS public.user_application_role ADD COLUMN IF NOT EXISTS role_code character varying; + COMMENT ON COLUMN public.user_application_role.role_code IS 'Код роли'; + + + + diff --git a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml index 5d9cc1c7..f2e25b9f 100644 --- a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml +++ b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml @@ -18,4 +18,5 @@ + diff --git a/config/.gitignore b/config/.gitignore index ba9a786b..1952cfe5 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -1,2 +1,3 @@ /*.ear /*.jar +/*.war diff --git a/config/config.yaml b/config/config.yaml new file mode 100644 index 00000000..6a98c076 --- /dev/null +++ b/config/config.yaml @@ -0,0 +1,74 @@ +name: ervu-account-applications-backend + +replicaCount: 1 + +resources: + requests: + memory: '256Mi' + cpu: '50m' + limits: + memory: '2Gi' + cpu: '1' + +env: + - name: ERVU_URL + value: 'https://{{ $.Values.ingress_base_host }}' + - name: ERVU_PWD_SIGN_SECRET_KEY + value: 'DtCAQdeKnrAMLfdJkFVdfQnyT/Z5OINK4jqX0LbavfM=' + +ports: + - name: http + containerPort: 8080 + +services: + - name: '{{ $.Values.name }}' + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 8080 + +postgres: + database: 'ervu_account_applications' + +livenessProbe: + failureThreshold: 3 + httpGet: + path: / + port: 8080 + initialDelaySeconds: 30 + periodSeconds: 3 + successThreshold: 1 + timeoutSeconds: 5 + +readinessProbe: + failureThreshold: 3 + httpGet: + path: /account-applications/version + port: 8080 + initialDelaySeconds: 30 + periodSeconds: 3 + successThreshold: 1 + timeoutSeconds: 5 + +ingress: +- name: '{{ $.Values.name }}' + annotations: + nginx.ingress.kubernetes.io/affinity: 'cookie' + nginx.ingress.kubernetes.io/session-cookie-name: 'stickysession' + nginx.ingress.kubernetes.io/session-cookie-max-age: '7200' + nginx.ingress.kubernetes.io/proxy-body-size: "75m" + nginx.ingress.kubernetes.io/rewrite-target: /account-applications/$2 + labels: + app/name: ervu-account-applications + rules: + - host: '{{ $.Values.ingress_base_host }}' + http: + paths: + - path: /mfe/account-applications/account-applications(/|$)(.*) + pathType: Prefix + backend: + service: + name: '{{ $.Values.name }}' + port: + name: http diff --git a/config/entrypoint.sh b/config/entrypoint.sh new file mode 100644 index 00000000..30216362 --- /dev/null +++ b/config/entrypoint.sh @@ -0,0 +1,6 @@ +#! /bin/bash + +. /etc/tomcat/tomcat.conf +. /etc/sysconfig/tomcat + +/usr/libexec/tomcat/server start diff --git a/config/settings.xml b/config/settings.xml new file mode 100644 index 00000000..6e183ec1 --- /dev/null +++ b/config/settings.xml @@ -0,0 +1,13 @@ + + + + central-mirror + rtlabs-public + https://nexus-dev.pgs.rtlabs.ru/repository/maven-public + * + + + \ No newline at end of file diff --git a/config/tomcat/etc/tomcat/conf.d/db.conf b/config/tomcat/etc/tomcat/conf.d/db.conf index 6ce4e96c..e57a80a5 100644 --- a/config/tomcat/etc/tomcat/conf.d/db.conf +++ b/config/tomcat/etc/tomcat/conf.d/db.conf @@ -1,8 +1,8 @@ JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS \ - -Ddb.host=${DB_APP_HOST:-db} \ - -Ddb.port=${DB_APP_PORT:-5432} \ - -Ddb.name=${DB_APP_NAME:-app} \ - -Ddb.username=${DB_APP_USERNAME:-app_user} \ - -Ddb.password=${DB_APP_PASSWORD:-apppassword} \ + -Ddb.host=\"${PG_HOST:-db}\" \ + -Ddb.port=\"${PG_PORT:-5432}\" \ + -Ddb.name=\"${PG_DATABASE:-app}\" \ + -Ddb.username=\"${PG_USER:-app_user}\" \ + -Ddb.password=\"${PG_PASSWORD:-apppassword}\" \ " -export JDK_JAVA_OPTIONS \ No newline at end of file +export JDK_JAVA_OPTIONS diff --git a/config/tomcat/etc/tomcat/webbpm.properties b/config/tomcat/etc/tomcat/webbpm.properties index b6d10a95..810cfdc1 100644 --- a/config/tomcat/etc/tomcat/webbpm.properties +++ b/config/tomcat/etc/tomcat/webbpm.properties @@ -6,6 +6,7 @@ authentication.method=form bpmn.enable=false fias.enable=false gar.enable=false +registration.enabled=false mail.jndi.resource.name= @@ -16,4 +17,4 @@ webbpm.mode=production webbpm.jbpm.hibernate_statistics.enabled=false webbpm.cache.hazelcast.hosts=127.0.0.1 webbpm.cache.hazelcast.outbound_port_definitions=5801-5820 -registration.enabled=false +com.amazonaws.sdk.disableCertChecking diff --git a/config/uat/settings.xml b/config/uat/settings.xml new file mode 100644 index 00000000..415e466a --- /dev/null +++ b/config/uat/settings.xml @@ -0,0 +1,13 @@ + + + + central-mirror + rtlabs-public + http://nexus.gosuslugi.local/content/repositories/central + * + + + \ No newline at end of file diff --git a/frontend/src/ts/account_applications/component/button/UserManagementService.ts b/frontend/src/ts/account_applications/component/button/UserManagementService.ts index 6f4b7727..f48a2790 100644 --- a/frontend/src/ts/account_applications/component/button/UserManagementService.ts +++ b/frontend/src/ts/account_applications/component/button/UserManagementService.ts @@ -51,6 +51,9 @@ export class UserManagementService extends Behavior { case ApplicationKind.BLOCK_USER: this.doRequest("user/deactivation", jsonObj); break; + case ApplicationKind.UNBLOCK_USER: + this.doRequest("user/activation", jsonObj); + break; case ApplicationKind.RESET_PASSWORD: this.doRequest("user/password/reset", jsonObj); break; diff --git a/frontend/src/ts/account_applications/component/enum/ApplicationKind.ts b/frontend/src/ts/account_applications/component/enum/ApplicationKind.ts index 40beac2e..9ca851db 100644 --- a/frontend/src/ts/account_applications/component/enum/ApplicationKind.ts +++ b/frontend/src/ts/account_applications/component/enum/ApplicationKind.ts @@ -4,5 +4,6 @@ export enum ApplicationKind { EDIT_USER_ACCOUNT = "EDIT_USER_ACCOUNT", EDIT_USER_ROLES = "EDIT_USER_ROLES", BLOCK_USER = "BLOCK_USER", + UNBLOCK_USER = "UNBLOCK_USER", RESET_PASSWORD = "RESET_PASSWORD" } diff --git a/frontend/src/ts/account_applications/component/external/ngx-treeview/dropdown-treeview-select/dropdown-treeview-select-i18n.ts b/frontend/src/ts/account_applications/component/external/ngx-treeview/dropdown-treeview-select/dropdown-treeview-select-i18n.ts index bc104f0f..e5b1481b 100644 --- a/frontend/src/ts/account_applications/component/external/ngx-treeview/dropdown-treeview-select/dropdown-treeview-select-i18n.ts +++ b/frontend/src/ts/account_applications/component/external/ngx-treeview/dropdown-treeview-select/dropdown-treeview-select-i18n.ts @@ -15,6 +15,6 @@ export class DropdownTreeviewSelectI18n extends DefaultTreeviewI18n { } getText(selection: TreeviewSelection): string { - return this.internalSelectedItem ? this.internalSelectedItem.text : 'Элемент не выбран'; + return this.internalSelectedItem ? this.internalSelectedItem.text : ''; } } diff --git a/frontend/src/ts/account_applications/component/field/DropdownTreeViewComponent.ts b/frontend/src/ts/account_applications/component/field/DropdownTreeViewComponent.ts index 961c1375..3a1bd0d4 100644 --- a/frontend/src/ts/account_applications/component/field/DropdownTreeViewComponent.ts +++ b/frontend/src/ts/account_applications/component/field/DropdownTreeViewComponent.ts @@ -28,6 +28,7 @@ import { import { TreeItemRpcService } from "../../../generated/ru/micord/ervu/account_applications/component/rpc/TreeItemRpcService"; +import {AuthorizationService} from "../../../modules/app/service/authorization.service"; @Component({ @@ -54,15 +55,20 @@ export class DropdownTreeViewComponent extends InputControl { @Visible("false") public items: TreeviewItem[]; @Visible("false") - public value: any; + public value: TreeItemDto; @Visible("false") public valueChangeEvent: Event = new Event(); + @AdvancedProperty() + public skipInitialSelection: boolean; + @NotNull() + public preferBusinessId: boolean = false; private rpcService: TreeItemRpcService; private localStorageService: LocalStorageService; private taskParamsProvider: TaskParamsProvider; private pageContextHolder: PageContextHolder; private webbpmStorage: WebbpmStorage; private storageKey: string; + private rootValues: TreeItemDto[]; constructor(el: ElementRef, cd: ChangeDetectorRef, private i18n: DropdownTreeviewSelectI18n) { @@ -75,13 +81,18 @@ export class DropdownTreeViewComponent extends InputControl { this.taskParamsProvider = this.injector.get(TaskParamsProvider); this.localStorageService = this.injector.get(LocalStorageService); this.pageContextHolder = this.injector.get(PageContextHolder); + let authService = this.injector.get(AuthorizationService); + if (authService.hasRole('security_administrator')) { + this.skipInitialSelection = true; + } this.webbpmStorage = this.getTreeValuesStorage(this.treeValuesCacheStrategy, this.treeValuesCustomName); this.cachedValue = this.getCachedValue(); this.loadTreeItems(); } - private getTreeValuesStorage(treeValuesCacheStrategy: TreeValuesCacheStrategy, customKeyName: string) { + private getTreeValuesStorage(treeValuesCacheStrategy: TreeValuesCacheStrategy, + customKeyName: string) { if (!treeValuesCacheStrategy) { return null; } @@ -109,13 +120,14 @@ export class DropdownTreeViewComponent extends InputControl { @Visible() public loadTreeItems(): void { - this.rpcService.loadTreeData().then((res: TreeItemDto[]) => { + this.rpcService.loadTreeData().then((res: TreeItemDto[]) => { this.populateTree(res); }); } - private populateTree(res: TreeItemDto[]){ + private populateTree(res: TreeItemDto[]) { this.items = res.map(value => new TreeviewItem(this.createTreeItem(value))); + this.rootValues = res; const rootItem = this.items[0]; if (this.cachedValue) { const matchedItem = this.findTreeItemByValue(this.items, this.cachedValue); @@ -124,13 +136,12 @@ export class DropdownTreeViewComponent extends InputControl { this.value = matchedItem.value; } } - else { + else if (!this.skipInitialSelection) { this.i18n.selectedItem = rootItem; this.value = rootItem.value; } this.doCollapseLevel(); - this.valueChangeEvent.trigger(this.value); - this.cd.markForCheck(); + this.onValueChange(this.value); } private findTreeItemByValue(rootItems: TreeviewItem[], valueToFind: any): TreeviewItem | null { @@ -171,6 +182,7 @@ export class DropdownTreeViewComponent extends InputControl { this.setCachedValue(this.value); this.valueChangeEvent.trigger($event); this.applyListener(this.changeListeners); + this.cd.markForCheck(); } @Visible() @@ -198,13 +210,13 @@ export class DropdownTreeViewComponent extends InputControl { } } - protected setCachedValue(newValue: any): void { + protected setCachedValue(newValue: TreeItemDto): void { if (this.webbpmStorage) { this.webbpmStorage.put(this.storageKey, newValue); } } - protected getCachedValue(): any { + protected getCachedValue(): TreeItemDto { if (this.webbpmStorage) { return this.webbpmStorage.get(this.storageKey); } @@ -220,23 +232,41 @@ export class DropdownTreeViewComponent extends InputControl { } getPresentationValue(): string | number | boolean { - return this.value; + return this.value ? this.value.label : ''; } + @Visible() getValue(): any { - return this.value; + return this.value ? this.value.id : this.value; } - getValueAsModel(): any { + getValueAsModel(): TreeItemDto { return this.value ? this.value : null; } getValueForForm(): any { - return this.getBusinessId(); + return this.preferBusinessId ? this.getBusinessId() : this.getValue(); } - setValue(value: any): any { - this.value = value; + @Visible() + setValue(value: any): void { + this.items = [...this.items]; + this.value = this.findValueInRootsById(value); + this.onValueChange(this.value); + } + + private findValueInRootsById(id: any): TreeItemDto { + let searchArray: TreeItemDto[] = this.rootValues.slice(); + while (searchArray.length > 0) { + const current = searchArray.shift(); + if (current.id == id) { + return current; + } + if (current.children && current.children.length > 0) { + searchArray.push(...current.children); + } + } + return null; } onChange() { @@ -251,5 +281,4 @@ export class DropdownTreeViewComponent extends InputControl { unsubscribeToModelChange() { //empty because there is no ngModel here } - } diff --git a/frontend/src/ts/modules/app/app-routing.module.ts b/frontend/src/ts/modules/app/app-routing.module.ts index d2944952..1d008617 100644 --- a/frontend/src/ts/modules/app/app-routing.module.ts +++ b/frontend/src/ts/modules/app/app-routing.module.ts @@ -44,6 +44,11 @@ const appRoutes: Routes = [ path: 'process_application_edit_user/:id', loadChildren: 'generated-sources/page-process_application_edit_user.module#Pageprocess_application_edit_userModule', canActivate: [ConfirmExitGuard, RolesGuard] + }, + { + path: 'unblock_user_application', + loadChildren: 'generated-sources/page-unblock_user_application.module#Pageunblock_user_applicationModule', + canActivate: [ConfirmExitGuard, RolesGuard] } ]; diff --git a/pom.xml b/pom.xml index 0e751602..b53c3fe6 100644 --- a/pom.xml +++ b/pom.xml @@ -228,6 +228,16 @@ slf4j-api 2.0.13 + + org.apache.httpcomponents + httpcore + 4.4.12 + + + org.apache.httpcomponents + httpclient + 4.5.14 + org.apache.logging.log4j log4j-slf4j2-impl diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page index 47f9f08d..38a1655b 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page @@ -853,6 +853,169 @@ + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 4629960e-1ab0-4d44-a1a4-65ad26a38180 + AC_UNBLOCK_USER + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"80f94647-9cb4-4aaf-8c6b-a842e486e98c","packageName":"component.container","className":"Form","type":"TS"} + + + + propertyName + + "formLoaded" + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + +false + + + + one + + + + conditionFirstPart + + + + objectValue + + + +behavior + + {"objectId":"9e772048-b43f-42f1-a370-2519dd4f6ad7","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "getValue" + + + + + + + + + + conditionSecondPart + + + + staticValue + + + string + + + "UNBLOCK_USER" + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"} + + + + method + + "setValue" + + + + value + + + + staticValue + + + string + + +"активацию" + + + + + + + + + + diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на изменение пользователя.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на изменение пользователя.page index 055d50d9..b05cd465 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на изменение пользователя.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на изменение пользователя.page @@ -151,346 +151,7 @@ cb4f0a77-8312-43f3-a03d-441936d1e08b AC_EDIT_USER false - false - - - - elseActions - - - - - - - behavior - - {"objectId":"aea4f26b-3d2b-42bd-bad8-49fc634769b2","packageName":"component.field","className":"TextField","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -true - - - - - - - - - - - - - behavior - - {"objectId":"adb4c166-21ae-45e0-ba9b-12ca7aeabdfe","packageName":"component.field","className":"TextField","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -true - - - - - - - - - - - - - behavior - - {"objectId":"27764b05-3a3e-4bed-b1dd-d032f990240d","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -true - - - - - - - - - - - - - eventRefs - - - - - - behavior - - {"objectId":"80f94647-9cb4-4aaf-8c6b-a842e486e98c","packageName":"component.container","className":"Form","type":"TS"} - - - - propertyName - - "formLoaded" - - - - - - - - - ifCondition - - - - conditions - - - - - - _isGroupSelected - -false - - - - one - - - - conditionFirstPart - - - - objectValue - - - -behavior - - {"objectId":"9e772048-b43f-42f1-a370-2519dd4f6ad7","packageName":"component.field","className":"TextField","type":"TS"} - - - -method - - "getValue" - - - - - - - - - - conditionSecondPart - - - - staticValue - - - string - - - "EDIT_USER_MAIN" - - - - - - - operation - - "EQUALS" - - - - - - - - - - - - logicalOperation - - null - - - - - - - thenActions - - - - - - - - behavior - - {"objectId":"aea4f26b-3d2b-42bd-bad8-49fc634769b2","packageName":"component.field","className":"TextField","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - - behavior - - {"objectId":"adb4c166-21ae-45e0-ba9b-12ca7aeabdfe","packageName":"component.field","className":"TextField","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - - behavior - - {"objectId":"27764b05-3a3e-4bed-b1dd-d032f990240d","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setVisible" - - - - value - - - - staticValue - - - boolean - - -false - - - - - - - - - - - - - - + true @@ -1179,7 +840,6 @@ 80f94647-9cb4-4aaf-8c6b-a842e486e98c Form true - false false @@ -1962,119 +1622,7 @@ 27764b05-3a3e-4bed-b1dd-d032f990240d Организация false - false - - - - cssClasses - - - - "width-full" - - - - - - disabled - - true - - - - label - - "Организация" - - - - required - - true - - - - - - - - autocompleteService - - - - businessIdColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} - - - - displayColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} - - - - loadDao - - - -graph - - {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} - - - - - - - parentControlReference - - null - - - - - - - - - - - variable - - "org_unit_id" - - - - - - - - - - columnForSave - - {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} - - - - - - - FormField - account_applications.component.field - -true -true - - - name - - "userDomain" - - - - + true 69af9ec9-d640-499a-bf05-cda6ce64a81f @@ -3237,6 +2785,125 @@ name "position" + + + + + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 27764b05-3a3e-4bed-b1dd-d032f990240d + Организация + false + false + + + +cssClasses + + + + "width-full" + + + + + +disabled + + true + + + +label + + "Организация" + + + +required + + true + + + + + + + +autocompleteService + + + + businessIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + displayColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + loadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + + parentControlReference + + null + + + + + + + + + + +variable + + "org_unit_id" + + + + + + + + + +columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} + + + + + + + FormField + account_applications.component.field + + true + true + + +name + + "userDomain" diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page index d781f47e..1164270b 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создание заявки на добавление пользователя.page @@ -1713,13 +1713,13 @@ pattern - "^[a-zA-Z][a-zA-Z0-9]{0,49}$" + "^[a-zA-Z][a-zA-Z0-9_]{0,49}$" patternErrorMessage - "Логин не должен начинаться с цифры, содержать спецсимволы, буквы кирилицы и быть не более 50 символов" + "Логин не должен начинаться с цифры, содержать спецсимволы (кроме знака подчёркивания), буквы кириллицы и быть длиннее 50 символов." @@ -2009,6 +2009,12 @@ +preferBusinessId + + true + + + required true @@ -2294,7 +2300,6 @@ 9bfac70b-fd5e-4cdc-84fa-50190bde76d1 Many to many true - false false @@ -2365,6 +2370,16 @@ false + + cssClasses + + + + "show-alarm" + + + + label @@ -2927,7 +2942,6 @@ a44f98ec-c47e-40b3-983f-73b5a72bb31d IP-адреса true - false false @@ -2950,6 +2964,16 @@ +cssClasses + + + + "show-alarm" + + + + + label null @@ -3655,13 +3679,6 @@ false true - - 05ed2031-091f-4fe0-8844-067ac42155aa - 0c7d30a2-2d41-4e88-a14a-bd3cc91705ee - Validation controller_нет роли - false - true - 57c7cd21-1556-4dbd-b9da-33520486a1db 7b65eda9-a92d-49fe-8355-547f7941ba7f diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page new file mode 100644 index 00000000..0ae5ef6f --- /dev/null +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page @@ -0,0 +1,10256 @@ + + + unblock_user_application + + 3.192.3 + + + ru.cg.webbpm.packages.base.resources + 3.192.3 + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 9b14a80f-1bc6-4a71-a58c-2d1408223c3a + Hbox + true + false + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + a76575fd-6ca9-4936-a165-50c2a6c6250c + Vbox_85% + true + false + + + + style + + + + width + + "85%" + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + 26d0f10d-fb0f-4db8-a1d9-e210ee389235 + Text + false + false + + + + cssClasses + + + + "title" + + + + + + initialValue + +"Заявка на активацию пользователя" + + + + + + + + + false + + + + fd7e47b9-dce1-4d14-9f3a-580c79f59579 + b20d8899-7e8e-4fb5-893b-5a80a0f39203 + Выбрать пользователя для подгрузки данных + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 2981dadf-b2e0-48fa-8f9d-906d0a292b88 + AC_перевыбор + false + true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + c8cef3ed-af03-44f8-9fc0-491920366ab0 + Vbox_15% + true + false + + + + style + + + + width + + "15%" + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + 32f6aaef-403e-46a0-961d-2859be41b9e7 + Text-role + false + false + + + + cssClasses + + + + "font-bold" + + + + + + style + + + + margin + + "20px 0px 0px 0px" + + + + + + + + + + + + false + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 95b49ea4-0a6c-4568-a989-c3b157c592ae + hidden + true + false + + + + visible + +false + + + + + + + + + + 8b755f7b-e52b-4800-830a-f01467cd5cbb + fd41e974-6a38-4c4f-8458-c4100249853b + user_role + false + false + + + + + + false + + + + CheckUserRole + modules.user-management.component + + true + true + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + d4bb4c8f-6378-45c2-b397-4e18bbbff280 + AC_creator + false + false + + + +elseActions + + + + + + + +eventRefs + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"component.field","className":"CheckBox","type":"TS"} + + + + propertyName + + "beforeStart" + + + + + + + + +ifCondition + + + + conditions + + + + + +_isGroupSelected + + false + + + +one + + + + conditionFirstPart + + + + objectValue + + + + argument + + + + staticValue + + + string + + + "Ответственный за ЗИ" + + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"modules.user-management.component","className":"CheckUserRole","type":"TS"} + + + + method + + "hasRole" + + + + + + + + + + conditionSecondPart + + + + staticValue + + +boolean + + + true + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + logicalOperation + + null + + + + + + +thenActions + + + + + + + + + behavior + + {"objectId":"32f6aaef-403e-46a0-961d-2859be41b9e7","packageName":"component","className":"Text","type":"TS"} + + + + method + + "setValue" + + + + value + + + +staticValue + + + string + + + "Ответственный за ЗИ" + + + + + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 6d5d7b1f-43ab-4651-b5a1-9ee3fca90aac + AC_agreeer + false + false + + + +elseActions + + + + + + + +eventRefs + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"component.field","className":"CheckBox","type":"TS"} + + + + propertyName + + "beforeStart" + + + + + + + + +ifCondition + + + + conditions + + + + + +_isGroupSelected + + false + + + +one + + + + conditionFirstPart + + + + objectValue + + + + argument + + + + staticValue + + + string + + + "Ответственный за ЗИ СВК" + + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"modules.user-management.component","className":"CheckUserRole","type":"TS"} + + + + method + + "hasRole" + + + + + + + + + + conditionSecondPart + + + + staticValue + + +boolean + + + true + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + logicalOperation + + null + + + + + + +thenActions + + + + + + + + + behavior + + {"objectId":"32f6aaef-403e-46a0-961d-2859be41b9e7","packageName":"component","className":"Text","type":"TS"} + + + + method + + "setValue" + + + + value + + + +staticValue + + + string + + + "Ответственный за ЗИ СВК" + + + + + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 20a8ea69-2a83-440b-8ae3-88c55093e3fc + AC_processor + false + false + + + +elseActions + + + + + + + +eventRefs + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"component.field","className":"CheckBox","type":"TS"} + + + + propertyName + + "beforeStart" + + + + + + + + +ifCondition + + + + conditions + + + + + +_isGroupSelected + + false + + + +one + + + + conditionFirstPart + + + + objectValue + + + + argument + + + + staticValue + + + string + + + "Администратор ПОИБ" + + + + + + + behavior + + {"objectId":"fd41e974-6a38-4c4f-8458-c4100249853b","packageName":"modules.user-management.component","className":"CheckUserRole","type":"TS"} + + + + method + + "hasRole" + + + + + + + + + + conditionSecondPart + + + + staticValue + + +boolean + + + true + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + logicalOperation + + null + + + + + + +thenActions + + + + + + + + + behavior + + {"objectId":"32f6aaef-403e-46a0-961d-2859be41b9e7","packageName":"component","className":"Text","type":"TS"} + + + + method + + "setValue" + + + + value + + + +staticValue + + + string + + + "Администратор ПОИБ" + + + + + + + + + + + + + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + 41c3db40-5d4c-48d0-adb5-ad236c1251ba + Validation controller + false + true + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + b02f97ad-e367-4b34-9b0c-cd1d20c108bf + Vbox_LOAD + true + false + + + + visible + + false + + + + + + + + + + be95ef58-ee04-413f-be0f-e8cd4af25faf + ff2fba56-3368-4d18-b0ec-155fcbd21e77 + Form1_load + true + false + + + + loadOnStart + + false + + + + visible + + false + + + + + + + + formService + + + + mode + + "SIMPLE" + + + + userDataService + + + + editableGridColumnRef + + {"objectId":"7aa9e80b-65f3-48f9-b85e-044b4e3bc046","packageName":"component.editablegrid.columns","className":"TextFieldGridColumn","type":"JAVA"} + + + + + AccountServiceImpl + ru.micord.ervu.account_applications.service + + + + + +ErvuUserFormLoadService +ru.micord.ervu.account_applications.component.service + + + + + + + + + service + + + + loadDao + + + + graph + + null + + + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + 3cd7d50e-ce21-4a06-be5f-67d5d3e96b1b + Text + false + false + + + + cssClasses + + + + "font-bold" + + + + + + + initialValue + +"Информация о пользователе" + + + + + + + + + false + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + c69543e2-ed6d-4135-95d0-a211b2756b76 + Hbox_подгрузка данных + true + false + + + + disabled + +true + + + + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 378b2f7f-aa90-456c-84f0-7fb86c689fe1 + Vbox_1-2 + true + false + + + +style + + + + minWidth + + null + + + + width + + "67%" + + + + + + + + + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + bdc8a082-eabf-402b-8904-d98896d12eb0 + Hbox + true + false + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 3c5bd179-ffd8-4d0a-8742-e604d25ccfeb + Vbox_1 + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +1313e135-8fe4-4c5f-b699-b362963d04a1 +Фамилия load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Фамилия" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"secondname"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "surname" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +c5dcfe0b-eaa7-46f8-b922-25ac33fa3408 +Имя load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Имя" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"firstname"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "firstname" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +0f7211c0-d0fb-4a41-895e-6ae75a91e5db +Отчество load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Отчество" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "middlename" + + + + + + +bce312bd-0c82-45e5-89dc-a1af90431c18 +981f9ebc-cf0e-4f28-916e-d78b6309dcb6 +Пол load_1 +false +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Пол" + + + + values + + + + + +label + + "Женский" + + + +value + + "female" + + + + + + + + + +label + + "Мужской" + + + +value + + "male" + + + + + + + + + +label + + "Мужской" + + + +value + + "мужской" + + + + + + + + + +label + + "Женский" + + + +value + + "женский" + + + + + + + + + + + + + + + + false + + + columnForSave + + null + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "sex" + + + + + + +c6a4e38d-d0b3-46dd-960b-36c7e8beba36 +3e699191-ab32-4c64-a846-87998b087f78 +Дата рождения +false +true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 9dd50e31-1c85-49c0-a63a-908f0e90467e + Vbox_2 + true + false + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + +bce312bd-0c82-45e5-89dc-a1af90431c18 +981f9ebc-cf0e-4f28-916e-d78b6309dcb6 +Пол load_1 +false +true + + +c6a4e38d-d0b3-46dd-960b-36c7e8beba36 +3e699191-ab32-4c64-a846-87998b087f78 +Дата рождения load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + dateValueFormat + + "DATE" + + + + label + + "Дата рождения" + + + + maxDateType + + "CURRENT" + + + + + + + + + false + + + columnForSave + + null + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "birthdate" + + + + + + +b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 +a5afe71f-0c72-40c2-a607-23259c3a9bf1 +Должность +false +true + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +b17bd4d7-f11e-4707-8f3c-63eee53ce2b6 +СНИЛС load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "СНИЛС" + + + + mask + + "999-999-999 99" + + + + unMaskValue + + false + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"phone"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "snils" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +ed4c70a4-23a8-4f1d-a567-3ce55ec1dbb1 +Логин load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + disabled + + true + + + + label + + "Логин" + + + + mask + + null + + + + pattern + + "^[a-zA-Z][a-zA-Z0-9]{0,49}" + + + + patternErrorMessage + + "Логин не должен начинаться с цифры, содержать спецсимволы, буквы кирилицы и быть не более 50 символов" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"user_login"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "userName" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +fd65108f-4085-48e1-8fff-e2bc44f038d4 +person_id load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "person_id" + + + + visible + + false + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "personId" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +5a811aa7-a198-4798-94dd-172bff7d16be +user_account_id load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "user_account_id" + + + + visible + + false + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "accountId" + + + + + + +312c9663-86b4-4672-97bd-67d313585c00 +225c9751-7b8f-41bf-8416-6c709fe55706 +Организация_id load_1 +false +true + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +42c9aada-9554-44c2-a562-2958ec26e4fe +Должность load_1 +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Должность" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "position" + + + + + + +98594cec-0a9b-4cef-af09-e1b71cb2ad9e +ebc688c2-bc07-406d-8336-fb3b2ee30011 +AC_copy_form1 +false +false + + + + eventRefs + + + + + + +behavior + + {"objectId":"fd65108f-4085-48e1-8fff-e2bc44f038d4","packageName":"component.field","className":"TextField","type":"TS"} + + + +propertyName + + "valueChangeEvent" + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"fd65108f-4085-48e1-8fff-e2bc44f038d4","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + operation + + "IS_NOT_EMPTY" + + + + + + + + + + + + + + + + logicalOperation + + null + + + + + + + thenActions + + + + + +behavior + + {"objectId":"32b538fe-86de-46b1-a25f-f9f1b95d8d8e","packageName":"component.container","className":"Form","type":"TS"} + + + +method + + "loadById" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"fd65108f-4085-48e1-8fff-e2bc44f038d4","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"14f179eb-cabb-439d-b24d-cbc4809d77b7","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"1313e135-8fe4-4c5f-b699-b362963d04a1","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"28499aed-570d-4733-aa77-fd7f8e71faad","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"c5dcfe0b-eaa7-46f8-b922-25ac33fa3408","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"690b1fb1-00ef-4cc4-87ee-cedd59240dd9","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"0f7211c0-d0fb-4a41-895e-6ae75a91e5db","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + + +behavior + + {"objectId":"a5dae62b-3f02-44d6-a905-4c461bc8842c","packageName":"component.field","className":"DateTimePicker","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"3e699191-ab32-4c64-a846-87998b087f78","packageName":"component.field","className":"DateTimePicker","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"50f51fd7-2c14-4d7d-8390-457a841f4b54","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"b17bd4d7-f11e-4707-8f3c-63eee53ce2b6","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"abe72eaf-0bee-493f-a2db-bb326bcf3f88","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"fd65108f-4085-48e1-8fff-e2bc44f038d4","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"b3ed85ca-5941-4521-80dd-d26f65bdd6ef","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"5a811aa7-a198-4798-94dd-172bff7d16be","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"19633063-47ac-4e9a-b349-ad27fd46fbd2","packageName":"component.field","className":"Autocomplete","type":"TS"} + + + +method + + "setValueByBusinessId" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"eda4d409-0970-4f87-9530-f43bfb60eed5","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + +behavior + + {"objectId":"f333d509-d21e-400a-abfb-afbc84e5c56b","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"42c9aada-9554-44c2-a562-2958ec26e4fe","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +eda4d409-0970-4f87-9530-f43bfb60eed5 +Организация_id load_1 +false +false + + + + label + + "Организация_id load_1" + + + + visible + + false + + + + + + + + + false + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "domainId" + + + + + + +98594cec-0a9b-4cef-af09-e1b71cb2ad9e +135b28a8-2c13-4c12-b597-52e8cbd40d3c +AC_copy_form1_sex +false +false + + + + eventRefs + + + + + + +behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + +propertyName + + "valueChangeEvent" + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + conditionSecondPart + + + + staticValue + + + string + + + "мужской" + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + conditionSecondPart + + + + staticValue + + + string + + + "male" + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + + + + + logicalOperation + + "OR" + + + + + + + thenActions + + + + + + + + + +behavior + + {"objectId":"5cce7e30-858d-489f-8b46-6e0f8dfc9a22","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + +method + + "setValue" + + + +value + + + + staticValue + + + string + + + "MALE" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +98594cec-0a9b-4cef-af09-e1b71cb2ad9e +bddcfb24-479e-4219-9a4b-fcce90a2d1d1 +AC_copy_form1_sex +false +false + + + + eventRefs + + + + + + +behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + +propertyName + + "valueChangeEvent" + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + conditionSecondPart + + + + staticValue + + + string + + + "женский" + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"981f9ebc-cf0e-4f28-916e-d78b6309dcb6","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + conditionSecondPart + + + + staticValue + + + string + + + "female" + + + + + + + operation + + "EQUALS" + + + + + + + + + + + + + + + + logicalOperation + + "OR" + + + + + + + thenActions + + + + + + + + + +behavior + + {"objectId":"5cce7e30-858d-489f-8b46-6e0f8dfc9a22","packageName":"component.field","className":"StaticComboBox","type":"TS"} + + + +method + + "setValue" + + + +value + + + + staticValue + + + string + + + "FEMALE" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 +d3196840-53cf-41ab-b00c-678cbf9032ad +Combo box_Организация +false +true + + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 + d3196840-53cf-41ab-b00c-678cbf9032ad + Combo box_Организация + false + true + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + 3d54a9c6-65ff-4728-9288-9723f3bfba83 + DropdownTreeView + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + dd51833e-ebfd-45cb-ac55-bdc9deee060a + Организация + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 16bac062-9088-4643-a4c5-4f337a38388f + person_id + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 9f3e7d99-9750-47b5-8b8d-ed683cc83536 + user_account_id + false + true + + + 69af9ec9-d640-499a-bf05-cda6ce64a81f + 779ce58b-e97e-4882-a93a-74f43834512b + Примечание + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + cac3c309-fc4d-4a26-82c5-d5429171cc10 + File upload + false + true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 16e4dd6f-5496-49cc-8226-40940b55271d + Vbox_3 + true + false + + + +disabled + + true + + + +style + + + + height + + null + + + + width + + "33%" + + + + + + + + + + + + + 27912fc5-0be7-4d4c-ae46-a82979253599 + 087e5e1c-7c18-4a76-87e4-58cc99fa08e5 + Filter group_gr + true + true + + + 27912fc5-0be7-4d4c-ae46-a82979253599 + b72592fe-68ff-4bf8-b0e6-6e3c1906f181 + Filter group_ip + true + true + + + 67605d63-1081-423b-b6b5-727ecfce2ca1 + 0beecf6d-a9f1-4a29-bd94-5082d4729c1b + Many to many + true + true + + + 76e91ef4-d2ef-4662-96ad-84c0dae0ecff + 449fa267-2f90-4890-8d5b-5f738be208ee + IP- адреса + true + true + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 8384e900-0031-49a5-ac5a-d349da0b3f20 + Hbox + true + true + + + 16071adb-3bdf-4c33-b29b-886876016415 + 8fe92e04-ed24-4edd-b0b8-07e19078a4ad + Grid_ip + true + false + + false + + + autoStretchColumns + + true + + + + loadOnInit + + false + + + + style + + + + maxHeight + + "130px" + + + + + + + + + + + gridService + + + ErvuUserGridLoadService + ru.micord.ervu.account_applications.component.service + + + + + + + + +ErvuFormLoadComponent +ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "ipAddresses" + + + + + + +ErvuStaticGrid +account_applications.component.grid + + true + true + + + autoStretchColumns + + true + + + + disableLoad + + true + + + + editableGridRef + + {"objectId":"8dfd1c57-2a24-4fd5-b8a6-f7463a18ab3c","packageName":"component.editablegrid","className":"EditableGrid","type":"TS"} + + + + rowModelType + + "CLIENT_SIDE" + + + + visible + + true + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 21ea3418-d517-4fd6-9865-b5ca96198021 + StaticColumn + false + false + + + + valueFormatter + + false + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + + "Ip адреса" + + + + field + + + + column + + "7aa9e80b-65f3-48f9-b85e-044b4e3bc046" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + ef2f014f-64cd-472d-906e-8e5e37f32004 + Column + false + true + + + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + fa3fbad9-b2ee-4bca-a8b9-8459279e1a67 + Validation controller подгрузка + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + e944db47-58ba-49be-b650-7df0e501a79a + application_kind + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + a818d3cf-7fc6-444a-a9fc-bbdd6cea63eb + application_status + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 70a61bd9-a9aa-4058-b42f-3ff45a891e16 + Организация + false + true + + + 69af9ec9-d640-499a-bf05-cda6ce64a81f + 985dfdd5-782a-44b0-be68-242b4fd83444 + Примечание + false + true + + + 312c9663-86b4-4672-97bd-67d313585c00 + 5dcb396f-d15e-4f0b-8427-e9b52ac214ae + Номер + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + d7f9d8ef-332d-4a76-89c7-36d58c794228 + File upload + false + true + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + e03994f9-5ac6-4052-bb20-dd39b672edc0 + Vbox_current_user + true + true + + + + be95ef58-ee04-413f-be0f-e8cd4af25faf + 32b538fe-86de-46b1-a25f-f9f1b95d8d8e + Form2_load + true + false + false + + + + loadOnStart + + false + + + + + + + + formService + + + + mode + + "SIMPLE" + + + + userDataService + + + UserCredentialsServiceIpml + ru.micord.ervu.account_applications.service + + + + + +ErvuUserFormLoadService +ru.micord.ervu.account_applications.component.service + + + + + + + + + service + + + + loadDao + + + + graph + + null + + + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + 06e844d3-a96a-42b0-a4cc-717ae3593ae1 + Text + false + false + + + + cssClasses + + + + "font-bold" + + + + + + + initialValue + +"Информация о пользователе" + + + + + + + + + false + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 37ea5010-8df1-4db1-83a6-ecb1d74a812f + Hbox_подгрузка данных + true + false + + + + disabled + +true + + + + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 27680323-da35-44e6-96d3-769b13844a27 + Vbox_1-2 + true + false + + + +style + + + + minWidth + + null + + + + width + + "67%" + + + + + + + + + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 532feb71-0b2b-432f-8700-d83e16dbbbb5 + Hbox + true + false + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 695c613a-d7d2-4851-ba9d-ce9d876348ee + Vbox_1 + true + false + + + + style + + + + width + + "50%" + + + + + + + visible + + false + + + + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +1f82b9ee-e219-4ca4-b541-69c0f0c175e3 +Логин load_2 +false +false + + + + cssClasses + + + + "width-full" + + + + + + disabled + + true + + + + label + + "Логин" + + + + mask + + null + + + + pattern + + "^[a-zA-Z][a-zA-Z0-9]{0,49}" + + + + patternErrorMessage + + "Логин не должен начинаться с цифры, содержать спецсимволы, буквы кирилицы и быть не более 50 символов" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"user_login"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "userName" + + + + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +517af7d1-8b92-45e5-923f-d337d63c6e64 +Должность load_2 +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Должность" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + false + + + columnForSave + + null + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "position" + + + + + + +98594cec-0a9b-4cef-af09-e1b71cb2ad9e +c29b9740-8a50-4161-8758-017aa521eccf +AC_copy_form2 +false +false + + + + eventRefs + + + + + +behavior + + {"objectId":"1f82b9ee-e219-4ca4-b541-69c0f0c175e3","packageName":"component.field","className":"TextField","type":"TS"} + + + +propertyName + + "valueChangeEvent" + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + + false + + + + one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"1f82b9ee-e219-4ca4-b541-69c0f0c175e3","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + operation + + "IS_NOT_EMPTY" + + + + + + + + + + + + logicalOperation + + null + + + + + + + thenActions + + + + + +behavior + + {"objectId":"8031fe40-0fce-4e2e-9c77-8f48687b3209","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"1f82b9ee-e219-4ca4-b541-69c0f0c175e3","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + + + + + + + + + + +bce312bd-0c82-45e5-89dc-a1af90431c18 +e4876f48-19c3-4402-8880-6be8e817897b +Пол +false +true + + +c6a4e38d-d0b3-46dd-960b-36c7e8beba36 +9bb2c0fe-1cf9-4f0f-8604-0c12775794e5 +Дата рождения +false +true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 0d4a2fac-1bf3-4d5b-af8d-a113d1bcc138 + Vbox_2 + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + +c6a4e38d-d0b3-46dd-960b-36c7e8beba36 +9bb2c0fe-1cf9-4f0f-8604-0c12775794e5 +Дата рождения +false +true + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +d84143f2-5a6c-4272-926f-08c587cb5c3c +Логин +false +true + + +b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 +c3980a63-6f81-4545-8e1f-63e75e2c3d3e +Должность +false +true + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +d4d33072-d2cb-41d0-b713-5de12508119e +Должность +false +true + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +4cf5d6ab-4d20-4a35-bc39-fbae60ff5988 +СНИЛС +false +true + + +b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 +b924df09-31a9-4794-85db-30bf58406885 +Combo box_Организация +false +true + + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 + b924df09-31a9-4794-85db-30bf58406885 + Combo box_Организация + false + true + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + a0c954f4-ed6c-4f1a-ac7e-02ba792945d9 + DropdownTreeView + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + a309ce6e-46be-4ba4-95e8-4eb13f19fd32 + Организация + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 39c7e58c-b426-4363-a71f-d2fec93339ef + person_id2 + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 829ba3d0-5cc2-4820-9dc1-9fe1562f9058 + AC_copy_form2 + false + true + + + 69af9ec9-d640-499a-bf05-cda6ce64a81f + dc6734d0-0eaf-4a18-8d6f-94a49f09adba + Примечание + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + 44bbe8cd-ca02-4f8d-a646-3fc84160d6f0 + File upload + false + true + + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + e602e818-194d-4f53-a6b2-dd5dd92b5ba7 + Validation controller подгрузка + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + abe626e8-55a9-4d04-9e35-cfcc279b3356 + application_kind + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 82bd584d-957d-4954-b3a5-3049c9b981d1 + application_status + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + acc0cf95-09e5-49f0-824d-8b9a37f057aa + Организация + false + true + + + 69af9ec9-d640-499a-bf05-cda6ce64a81f + 6ba55183-b750-4083-aca6-c11f14677642 + Примечание + false + true + + + 312c9663-86b4-4672-97bd-67d313585c00 + 16fcda64-27b0-4187-beec-725528a5eb75 + Номер + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + 2d0be166-b67e-4318-a487-7e4cbff90a2c + File upload + false + true + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 39fe6060-1e26-4717-b8db-485f44be76dd + Vbox_current_user + true + true + + + + be95ef58-ee04-413f-be0f-e8cd4af25faf + 074037a1-0f3d-4b39-8a9b-1302994a9f3a + Form3_load + true + false + + + + loadOnStart + + false + + + + + + + + formService + + + + mode + + "SIMPLE" + + + + userDataService + + + RoleServiceImpl + ru.micord.ervu.account_applications.service + + + + + +ErvuUserFormLoadService +ru.micord.ervu.account_applications.component.service + + + + + + + + + service + + + + loadDao + + + + graph + + null + + + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + 3f92184f-6e64-4c1b-8172-4989ab874ed7 + Text + false + false + + + + cssClasses + + + + "font-bold" + + + + + + + initialValue + +"Информация о пользователе" + + + + + + + + + false + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + d2a93cda-e2af-4cb9-a449-84907cbb861b + Hbox_подгрузка данных + true + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 51e824bc-456a-4d9d-975e-a82701a8a15d + AC_copy_form3 + false + true + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + a8f2b476-9c51-49cf-be3d-aff9c57460c2 + Vbox_подгрузка данных + true + false + + + + + + + 16071adb-3bdf-4c33-b29b-886876016415 + f00f4780-57be-4520-9cc2-8cc2105ffbe6 + Grid_roles 1 + true + false + + false + + +autoStretchColumns + + true + + + +checkboxColumn + + true + + + +checkboxHeader + + false + + + +disabled + + true + + + +loadOnInit + + false + + + +rowModelType + + "CLIENT_SIDE" + + + +style + + + + maxHeight + + "130px" + + + + + + + + + + +gridService + + false + + ErvuUserGridLoadService + ru.micord.ervu.account_applications.component.service + + + + + + + + + ErvuStaticGrid + account_applications.component.grid + + true + true + + +autoStretchColumns + + true + + + +disableLoad + + true + + + +rowModelType + + "CLIENT_SIDE" + + + +visible + + true + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + +fieldName + + "roles" + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + afaf5fde-0b85-4792-be55-7d185d9875d7 + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + + "Роль" + + + + field + + + + column + + "displayName" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + sortable + + false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 7d87bde1-c66d-43be-8249-6b105c33e85f + StaticColumn + false + false + + + + valueFormatter + + + + noDataValue + + "Неопределенно" + + + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + + "Время действия" + + + + field + + + + column + + "finish" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + e2de80ba-59c0-4244-9f47-12ea607e0cc7 + Column + false + true + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 51e824bc-456a-4d9d-975e-a82701a8a15d + AC_copy_form3 + false + false + + + +eventRefs + + + + + + behavior + + {"objectId":"1f82b9ee-e219-4ca4-b541-69c0f0c175e3","packageName":"component.field","className":"TextField","type":"TS"} + + + + propertyName + + "valueChangeEvent" + + + + + + + + +ifCondition + + + + conditions + + + + + +_isGroupSelected + + false + + + +one + + + + conditionFirstPart + + + + objectValue + + + + behavior + + {"objectId":"1f82b9ee-e219-4ca4-b541-69c0f0c175e3","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + + + + + operation + + "IS_NOT_EMPTY" + + + + + + + + + + + + logicalOperation + + null + + + + + + +thenActions + + + + + + behavior + + {"objectId":"ab6cc1f6-d26e-49a1-9683-0e0e130110ea","packageName":"component.field","className":"LinkField","type":"TS"} + + + + method + + "setValue" + + + + value + + + +objectValue + + + + argument + + null + + + + behavior + + {"objectId":"f00f4780-57be-4520-9cc2-8cc2105ffbe6","packageName":"account_applications.component.grid","className":"ErvuStaticGrid","type":"TS"} + + + + method + + "getAllLoadedRowIds" + + + + + + + + + + + + + + + + + + + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + 25344f45-65f4-49fe-b14d-0684cf81eb4e + Validation controller подгрузка + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + d3efc006-c8c0-4404-97af-3b13b8fd42be + application_kind + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + b02571f2-5499-4119-a58a-17758a9266f2 + application_status + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 0853946d-4280-41e9-a841-81bc2091da8f + Организация + false + true + + + 69af9ec9-d640-499a-bf05-cda6ce64a81f + 3f4ed9fe-32d3-41ef-a54f-21ee9edf6ede + Примечание + false + true + + + 312c9663-86b4-4672-97bd-67d313585c00 + 759a6126-06c3-428c-b754-dd541275a862 + Номер + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + a652b4b4-7140-4084-b6ac-9c5f2fa02358 + File upload + false + true + + + + + be95ef58-ee04-413f-be0f-e8cd4af25faf + 5b5d5661-33fa-462a-89d4-3fee327332c1 + Form + true + false + + + + required + + null + + + + + + + + formService + + + +formDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_list","schemaName":"public","x":300.0,"y":189.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"1":{"tableName":"recruitment","schemaName":"public","x":308.0,"y":292.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"2":{"tableName":"user_application_document","schemaName":"public","x":147.0,"y":190.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_list","schemaName":"public","x":300.0,"y":189.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},{"tableName":"recruitment","schemaName":"public","x":308.0,"y":292.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},{"tableName":"user_application_document","schemaName":"public","x":147.0,"y":190.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_document":{"tableName":"user_application_document","schemaName":"public","x":147.0,"y":190.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"recruitment":{"tableName":"recruitment","schemaName":"public","x":308.0,"y":292.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"user_application_list":{"tableName":"user_application_list","schemaName":"public","x":300.0,"y":189.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null,{"refOnEntityName":"user_application_list","refToEntityName":"recruitment","refToColumns":[{"schema":"public","table":"recruitment","entity":"recruitment","name":"id"}],"refOnColumns":[{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"}],"required":false,"cyclic":false,"conditionGroup":{"operator":"AND","conditions":[],"groups":[]}},null],[null,null,null],[{"refOnEntityName":"user_application_document","refToEntityName":"user_application_list","refToColumns":[{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_application_list_id"}],"refOnColumns":[{"schema":"public","table":"user_application_document","entity":"user_application_document","name":"user_application_list_id"}],"required":false,"cyclic":false,"conditionGroup":{"operator":"AND","conditions":[],"groups":[]}},null,null]],"mainNodeIndex":0} + + + + + + +mode + + "SIMPLE" + + + + + UserAuthorityFormService + ru.micord.ervu.account_applications.service + + + + + + + + + service + + + +loadDao + + + + graph + + null + + + + + + + + + + + + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + 41c3db40-5d4c-48d0-adb5-ad236c1251ba + Validation controller + false + true + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 6421e53c-2223-477f-bfb8-f6acaa4935b5 + Hbox + true + false + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 5675c7ae-ae3b-4c0b-8d64-da3c45392371 + Vbox_1-2 + true + false + + + + style + + + + width + + "67%" + + + + + + + + + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + ce293e92-5a22-486d-b64c-1c47a526830d + Hbox + true + false + + + +disabled + + true + + + + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + b15ecae8-7ddd-470b-821d-48a9e512bac0 + Vbox_1 + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 14f179eb-cabb-439d-b24d-cbc4809d77b7 + Фамилия + false + false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Фамилия" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"secondname"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"secondname"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "surname" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 28499aed-570d-4733-aa77-fd7f8e71faad + Имя + false + false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Имя" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"firstname"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"firstname"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "firstname" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 690b1fb1-00ef-4cc4-87ee-cedd59240dd9 + Отчество + false + false + + + + cssClasses + + + + "width-full" + + + + + + errorTooltipStyle + + + + padding + + null + + + + + + + label + + "Отчество" + + + + pattern + + "^(?!.*\\\\s{2})([А-Я Ё а-я ё])+([\\\\(][А-Я Ё а-я ё]+[\\\\)])?([\\\\s\\u0027`\\\\-]?[А-Я Ё а-я ё]+){0,5}" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"middlename"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "middlename" + + + + + + + bce312bd-0c82-45e5-89dc-a1af90431c18 + 5cce7e30-858d-489f-8b46-6e0f8dfc9a22 + Пол + false + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Пол" + + + + values + + + + + + label + +"Мужской" + + + + value + +"MALE" + + + + + + + + + + label + +"Женский" + + + + value + +"FEMALE" + + + + + + + + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"sex"} + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "sex" + + + + + + + c6a4e38d-d0b3-46dd-960b-36c7e8beba36 + a5dae62b-3f02-44d6-a905-4c461bc8842c + Дата рождения + false + true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + ea3759c2-1b7a-45f1-8422-d98df8e10d23 + Vbox_2 + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + + c6a4e38d-d0b3-46dd-960b-36c7e8beba36 + a5dae62b-3f02-44d6-a905-4c461bc8842c + Дата рождения + false + false + + + + cssClasses + + + + "width-full" + + + + + + dateValueFormat + + "DATE" + + + + label + + "Дата рождения" + + + + maxDateType + + "CURRENT" + + + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"birth_date"} + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "birthdate" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 8031fe40-0fce-4e2e-9c77-8f48687b3209 + Логин + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Логин" + + + + mask + + null + + + + pattern + + "^[a-zA-Z][a-zA-Z0-9]{0,49}" + + + + patternErrorMessage + + "Логин не должен начинаться с цифры, содержать спецсимволы, буквы кирилицы и быть не более 50 символов" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"user_login"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_login"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "userName" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + f333d509-d21e-400a-abfb-afbc84e5c56b + Должность + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Должность" + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"job_position"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "position" + + + + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 + d260fc10-b0a6-4aff-92cc-6da81ddbedc0 + Должность + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 50f51fd7-2c14-4d7d-8390-457a841f4b54 + СНИЛС + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "СНИЛС" + + + + mask + + "999-999-999 99" + + + + unMaskValue + + false + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"phone"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"snils"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "snils" + + + + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 + ad5ed255-1755-47a6-89e0-38e60d2f1018 + Combo box_Организация + false + true + + + + + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 + ad5ed255-1755-47a6-89e0-38e60d2f1018 + Combo box_Организация + false + true + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + e3672382-9c1b-47dc-8269-f0ce947d6e01 + DropdownTreeView + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 19633063-47ac-4e9a-b349-ad27fd46fbd2 + Организация + false + false + + + +cssClasses + + + + "width-full" + + + + + +disabled + + true + + + +label + + "Организация" + + + + + + + +autocompleteService + + + + businessIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + displayColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + loadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + + parentControlReference + + null + + + + + + + + + + +variable + + "org_unit_id" + + + + + + + + + +columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + +fieldName + + "domainId" + + + + + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + 3e4a9202-6708-4ec2-8461-ebe2441f8401 + File upload + false + false + + + +canDelete + + true + + + +extensionFilter + + + + "pdf" + + + + + "png" + + + + + "webp" + + + + + "jpeg" + + + + + "gif" + + + + + "raw" + + + + + "tiff" + + + + + "psd" + + + + + + +fileNames + + null + + + +label + + "Документ" + + + +maxFileSizeMb + + 50.0 + + + +placeholder + + "Выберите файл" + + + +required + + true + + + + + + + + +fileContentColumn + + {"schema":"public","table":"user_application_document","entity":"user_application_document","name":"file"} + + + +fileNameColumn + + {"schema":"public","table":"user_application_document","entity":"user_application_document","name":"file_name"} + + + +fileUploadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_document","schemaName":"public","x":331.0,"y":131.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_document","schemaName":"public","x":331.0,"y":131.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_document":{"tableName":"user_application_document","schemaName":"public","x":331.0,"y":131.0,"alias":"user_application_document","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + +mainTablePKColumn + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_application_list_id"} + + + +maxFilesToUpload + + 5 + + + +refToMainTablePKFromLinkTable + + {"schema":"public","table":"user_application_document","entity":"user_application_document","name":"user_application_list_id"} + + + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + b3ed85ca-5941-4521-80dd-d26f65bdd6ef + user_account_id + false + false + + + +cssClasses + + + + "width-full" + + + + + +label + + "user_account_id" + + + +visible + + false + + + + + + + + +defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + +loadType + + null + + + + + + + + +columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_account_id"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + +fieldName + + "accountId" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + abe72eaf-0bee-493f-a2db-bb326bcf3f88 + person_id + false + false + + + +cssClasses + + + + "width-full" + + + + + +label + + "person_id" + + + +visible + + false + + + + + + + + +defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + +loadType + + null + + + + + + + + +columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"person_id"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + +fieldName + + "personId" + + + + + + + 8ffff36a-1785-4740-ab40-a01e62446225 + e7ccfd36-b5fb-488b-b3dd-d6d210f4a81e + Checkbox (filter) + false + true + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 2000d8a9-fa88-4f8f-9993-a0918c25a430 + Vbox_3 + true + false + + + + disabled + +true + + + + style + + + + height + + null + + + + width + + "33%" + + + + + + + + + + + + + 27912fc5-0be7-4d4c-ae46-a82979253599 + c7d7ba37-7b4e-4f92-9d61-62945ccd1452 + Filter group_gr + true + true + + + 27912fc5-0be7-4d4c-ae46-a82979253599 + 34b6672b-b518-4ec0-9923-ce5e85e4d5a6 + Filter group_ip + true + true + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 236d92af-92b0-4a83-bce4-f54fb36f414e + Hbox + true + true + + + 16071adb-3bdf-4c33-b29b-886876016415 + a60d7c99-5fc9-4b96-b966-215d6a4fb888 + Grid_roles 2 + true + true + + + 16071adb-3bdf-4c33-b29b-886876016415 + 96d710bb-26a2-4ee6-b18b-9c51edf83d9c + Grid_ip + true + true + + + 67605d63-1081-423b-b6b5-727ecfce2ca1 + 108f740f-3e81-4194-a639-a5f028e5f10b + Many to many + true + false + + + +disabled + + true + + + +style + + + + height + + null + + + + + + + + + true + + +service + + + + loadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"link_user_application_user_application_role","schemaName":"public","x":170.0,"y":141.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"link_user_application_user_application_role","schemaName":"public","x":170.0,"y":141.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"link_user_application_user_application_role":{"tableName":"link_user_application_user_application_role","schemaName":"public","x":170.0,"y":141.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + DefaultLoadDao + database.dao + + + + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + true + + + + + 6e6817bb-6a55-45cf-9270-3bdd654a5784 + 108f740f-3e81-4194-a639-a5f028e5f10b + Связанная таблица + false + false + + + + disabled + + true + + + + label + + null + + + + style + + + + height + + null + + + + maxHeight + + "130px" + + + + + + + + + + + linkFieldService + + + + linkFieldDao + + + + graph + +{"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_role","schemaName":"public","x":377.0,"y":174.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"1":{"tableName":"link_user_application_user_application_role","schemaName":"public","x":217.0,"y":173.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_role","schemaName":"public","x":377.0,"y":174.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},{"tableName":"link_user_application_user_application_role","schemaName":"public","x":217.0,"y":173.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_role":{"tableName":"user_application_role","schemaName":"public","x":377.0,"y":174.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"},"link_user_application_user_application_role":{"tableName":"link_user_application_user_application_role","schemaName":"public","x":217.0,"y":173.0,"alias":"link_user_application_user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null,null],[{"refOnEntityName":"link_user_application_user_application_role","refToEntityName":"user_application_role","refToColumns":[{"schema":"public","table":"user_application_role","entity":"user_application_role","name":"user_role_id"}],"refOnColumns":[{"schema":"public","table":"link_user_application_user_application_role","entity":"link_user_application_user_application_role","name":"user_role_id"}],"required":false,"cyclic":false,"conditionGroup":{"operator":"AND","conditions":[],"groups":[]}},null]],"mainNodeIndex":0} + + + + + + + + + + + + + + columns + + + + + + displayName + + "Роли пользователя" + + + + displayType + + "ONE_COLUMN" + + + + field + + {"schema":"public","table":"user_application_role","entity":"user_application_role","name":"role_name"} + + + + width + + 500 + + + + + + + + + + + + + mainTablePKColumn + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_application_list_id"} + + + + refToMainTablePKFromLinkTable + + {"schema":"public","table":"link_user_application_user_application_role","entity":"link_user_application_user_application_role","name":"user_application_list_id"} + + + + refToSecondTablePKFromLinkTable + + {"schema":"public","table":"link_user_application_user_application_role","entity":"link_user_application_user_application_role","name":"user_role_id"} + + + + + + + + + dc7d3857-3c89-4245-b2d7-9b16504531ea + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Изменить" + false + false + + + + caption + + "Указать роли" + + + + visible + + false + + + + + + + + + c914b961-8766-4daa-a5a1-3c1c8a6d6c12 + 108f740f-3e81-4194-a639-a5f028e5f10b + Диалог + true + false + false + + + + style + + + + height + + null + + + + stretch + + null + + + + + + + title + + "Выбор роли" + + + + + + + + service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + + + + 4b817c11-2ff9-4dcd-8caa-809cac503d03 + 108f740f-3e81-4194-a639-a5f028e5f10b + Горизонтальный контейнер + true + false + + + + + service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + + + +53faccc7-08f1-4806-adb2-ff9ef522f144 +108f740f-3e81-4194-a639-a5f028e5f10b +Таблица +false +false + + + + style + + + + height + + null + + + + + + + + + + + gridService + + + + loadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_role","schemaName":"public","x":257.0,"y":208.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_role","schemaName":"public","x":257.0,"y":208.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_role":{"tableName":"user_application_role","schemaName":"public","x":257.0,"y":208.0,"alias":"user_application_role","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + + + + + + + + + columnSorts + + + + + +field + + {"schema":"public","table":"user_application_role","entity":"user_application_role","name":"role_name"} + + + +sortOrder + + "ASC" + + + + + + + + + columns + + + + + +displayName + + "Роли" + + + +displayType + + "ONE_COLUMN" + + + +field + + {"schema":"public","table":"user_application_role","entity":"user_application_role","name":"role_name"} + + + +width + + 500 + + + + + + + + + + + + + + + +f437b344-23a3-4957-aac6-0c301a43b178 +108f740f-3e81-4194-a639-a5f028e5f10b +Вертикальный контейнер +true +false +false + + + + + service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + + + + 6ae58cc0-2f33-41e3-89b3-022efcb81f51 + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Добавить" + false + false + + + + + fa8cdc89-a074-4ac0-ae53-b948230b3f30 + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Добавить все" + false + false + + + + + c6b74d37-6e02-4fde-b636-e96fcdd68ede + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Удалить" + false + false + + + + + 154adcc7-908c-4141-ab2f-6f728c62a51a + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Удалить все" + false + false + + + + + +7d5e764a-ce8e-4acc-9173-653718838aa4 +108f740f-3e81-4194-a639-a5f028e5f10b +Связанная таблица +false +false + + + + style + + + + height + + null + + + + + + + + + + + + + + + 84678165-26c1-4b15-ac48-17fdef3092a6 + 108f740f-3e81-4194-a639-a5f028e5f10b + Горизонтальный контейнер + true + false + + + + + service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + + + +20fea21f-37e2-4f59-815a-14b79c4233ae +108f740f-3e81-4194-a639-a5f028e5f10b +Горизонтальный контейнер +true +false + + + + + service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + + + + 2059b4e7-02a5-48e6-b5ef-60646bc7a603 + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Ок" + false + false + + + + + + 0069cefd-219e-4442-a696-012627b2a412 + 108f740f-3e81-4194-a639-a5f028e5f10b + Кнопка "Отмена" + false + false + + + + + 76e91ef4-d2ef-4662-96ad-84c0dae0ecff + a44d3e57-bd35-4709-9f89-8ea1dbf18536 + IP-адреса + true + true + + + + + + + 76e91ef4-d2ef-4662-96ad-84c0dae0ecff + 8dfd1c57-2a24-4fd5-b8a6-f7463a18ab3c + IP-адреса + true + false + + + +autoStretchColumns + + true + + + +checkboxColumn + + true + + + +checkboxHeader + + false + + + +label + + null + + + +loadOnStart + + false + + + +loadingOverlayType + + "PROGRESS_BAR" + + + +mode + + "LINK_GRID" + + + +pinnedBottomRowLabel + + null + + + +required + + false + + + +rowClickSelectionType + + null + + + +rowEditionType + + "NO_CLICK" + + + +showRowNumber + + true + + + +style + + + + height + + null + + + + maxHeight + + "200px" + + + + minHeight + + null + + + + + + + + + + +mainTablePKColumn + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_application_list_id"} + + + +refToMainTablePKFromLinkTable + + {"schema":"public","table":"link_user_application_ip_address","entity":"link_user_application_ip_address","name":"user_application_list_id"} + + + +service + + + + columnSorts + + + + + + loadDao + + + + graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"link_user_application_ip_address","schemaName":"public","x":260.0,"y":227.0,"alias":"link_user_application_ip_address","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"link_user_application_ip_address","schemaName":"public","x":260.0,"y":227.0,"alias":"link_user_application_ip_address","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"link_user_application_ip_address":{"tableName":"link_user_application_ip_address","schemaName":"public","x":260.0,"y":227.0,"alias":"link_user_application_ip_address","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + uniqueResult + + true + + + + + + + + + + + + + + false + + + false + + + false + + + + + +service + + + DefaultValueLoaderServiceImpl + service.loading + + + + + + + true + + + be0e38c3-01c2-4122-85dd-1b6e176f543d + 2314557b-a121-43d0-97b2-857cf7606d63 + Список (колонка) + false + true + + + 96348552-a473-4ad7-abe9-6b0b4c7948fe + 09976249-3f5b-4b00-9d19-7d2bc8916a27 + price + false + true + + + 96348552-a473-4ad7-abe9-6b0b4c7948fe + 57827677-d1f3-4593-800d-819f89f0c1ac + quantity + false + true + + + 96348552-a473-4ad7-abe9-6b0b4c7948fe + 8d567f5e-a54c-4d90-8c13-0092289dac90 + Число (колонка) + false + true + + + 96348552-a473-4ad7-abe9-6b0b4c7948fe + 1bea1e8b-90ba-4a99-8cff-4c59ee15b4e4 + Число (колонка) + false + true + + + c582a90a-5f4e-48cf-b0f1-d6819597b308 + 7aa9e80b-65f3-48f9-b85e-044b4e3bc046 + IP адрес_text field (column) + false + false + false + + + false + + + label + + null + + + + mask + + "9[9][9].9[9][9].9[9][9].9[9][9]" + + + + required + + true + + + + unMaskValue + + false + + + + + + + + editable + + false + + + + header + + + + value + + "IP адрес" + + + + + StaticStringValue + ru.cg.webbpm.packages.base.property + + + + + idColumn + + {"schema":"public","table":"link_user_application_ip_address","entity":"link_user_application_ip_address","name":"ip_address"} + + + + + + +ErvuAccountTextFieldGridEditor +account_applications.component.editablegrid.editors + + true + true + + + mask + + "9[9][9].9[9][9].9[9][9].9[9][9]" + + + + pattern + + "^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$" + + + + required + + true + + + + tooltip + + "Введите ip-адрес" + + + + unMaskValue + + false + + + + + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 0c3c6412-ac8e-478b-b3a3-77d29d2a0a9a + Столбец + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 06e2e744-df63-4e7a-b021-939215d172c1 + Столбец + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 3084f609-17ff-4846-9013-1a228a13379b + Столбец + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 65e4b842-2404-42a3-9f04-f7c9227dfa75 + Столбец + false + true + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 97750b88-b0b1-41e2-aa3b-0a9cbac5fb7c + application_kind + false + false + + + + initialValue + + "UNBLOCK_USER" + + + + label + + "application_kind" + + + + visible + + false + + + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"application_kind"} + + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + cb11a63b-5d21-4af0-810b-283d81100f36 + application_status + false + false + + + + initialValue + + "CREATED" + + + + label + + "application_status" + + + + visible + + false + + + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"application_status"} + + + + + + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + ec1fa9b6-04e1-4b58-96c7-538963204d95 + Организация + false + true + + + 312c9663-86b4-4672-97bd-67d313585c00 + c5acf8c6-1ea1-4a3c-b533-8e34379a0127 + Номер + false + true + + + 5ebd2885-0972-4e51-8376-1fa66aed9a90 + 3e4a9202-6708-4ec2-8461-ebe2441f8401 + File upload + false + true + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 2b018a80-bc55-4815-b87c-0c507c750f18 + Vbox_current_user + true + false + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + d901bfd2-e26d-45eb-b32a-1d241e762fca + Text field + false + false + + + + visible + +false + + + + + + + + + false + + + + + SetCurrentUserIdAsDefValue + account_applications.scripts + + true + true + + + + 05ed2031-091f-4fe0-8844-067ac42155aa + 41c3db40-5d4c-48d0-adb5-ad236c1251ba + Validation controller + false + true + + + 57c7cd21-1556-4dbd-b9da-33520486a1db + 06462f41-30b9-4b4e-bed5-6d828e32ed22 + Execute SQL button + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + da9bb1cd-d2db-45c3-8a5b-07b5265643d2 + Action Controller1 + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + f369fa98-5d12-4e62-a675-1d5892a907f5 + Action Controller2 + false + true + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + b1b6018e-a845-4303-a180-560e7d7bf68e + Text + false + true + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + a20bed37-7b67-4df8-95f7-e0a84815b741 + Hbox + true + false + + + + cssClasses + + + +"block-fixed-buttons" + + + + + + + + + + + + 57c7cd21-1556-4dbd-b9da-33520486a1db + 0e7761bc-f93b-41f8-b34a-316422b65c1f + SQL button_отправить + false + true + + + 9e5db033-bf13-4a8b-b89f-98cc01b28e45 + 2e13fce2-94b2-48d5-a43a-b2b50d6c2d05 + Отправить + false + false + + + + caption + + "Отправить" + + + + completeTask + + true + + + + cssClasses + + + + "btn-main" + + + + + + form + + {"objectId":"5b5d5661-33fa-462a-89d4-3fee327332c1","packageName":"component.container","className":"Form","type":"TS"} + + + + navigateTo + + "/app_list" + + + + + + + c8dfe691-a84a-48da-b79e-6298d90db71d + 4eecd6af-e02f-4463-a873-5eaa0980c3f5 + Выйти без сохранения + false + false + + true + + + true + + + + StaticRouteNavigationButton + modules.user-management.component + + true + true + + + caption + + "Выйти без сохранения" + + + + route + + "/app_list" + + + + visible + + true + + + + + + + fd7e47b9-dce1-4d14-9f3a-580c79f59579 + b20d8899-7e8e-4fb5-893b-5a80a0f39203 + Выбрать пользователя для подгрузки данных + false + false + + + + caption + + "Выбрать пользователя для подгрузки данных" + + + + visible + + false + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + e4fd80bf-b534-4722-844b-c31f2a3e43fd + AC_отправить_деактивация + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 4fcb79d0-2598-4d8e-a57e-81a05ef41438 + AC_отправить_проверить уникальность логина + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + a4d8fda2-0d6e-4c06-b448-3795833fd077 + AC_после проверки + false + true + + + + 86f297f1-ab3d-40e0-ac2f-89cc944b7f0a + ec35c0af-f0ca-486b-953a-ed607a05ac70 + Dialog + true + false + + + + style + + + +width + + "1200px" + + + + + + + title + + "Выберите пользователя для подгрузки данных" + + + + + + + + + + 42cf0137-dd0a-47f8-a604-cee8c43f104c + 62d906dc-d3a8-4555-97f0-4552fd17d028 + Collapsible panel + true + false + + + + cssClasses + + + + + + heading + + "Поиск по критериям" + + + + + + + + + + 27912fc5-0be7-4d4c-ae46-a82979253599 + e32ab073-1f82-4f65-9963-a64c92d0c726 + Filter group + true + false + + + + liveFilter + +true + + + + + + + + filterable + +{"objectId":"25dd3959-d468-4afc-8d32-cbc4788ade9c","packageName":"rpc","className":"GridRpcService","type":"JAVA"} + + + + + + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 14f6974f-76e3-4da2-8563-1ea0088cd4f8 + Hbox + true + true + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 2bd659ce-02e6-4fa4-89e2-2f10e37da8d4 + Vbox + true + false + + + +style + + + + width + + null + + + + + + + + + + + + + ba24d307-0b91-4299-ba82-9d0b52384ff2 + d166c73b-5b6b-44aa-949c-63055078fa2c + Text-fio + false + false + + + + cssClasses + + + + "font-bold" + + + + + + initialValue + + "Поиск по пользователю" + + + + style + + + + margin + + null + + + + + + + + + + + + false + + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + 99cecb16-a34c-46e3-a518-37132148175c + DropdownTreeView + false + false + + + + label + + "Организация" + + + + + + true + + + isBusinessId + + false + + + + operation + + "EQUAL" + + + + + + + + treeItemService + + + + businessIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"id"} + + + + domainIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + idColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + labelColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + loadDao + + + + graph + +{"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":367.0,"y":247.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":367.0,"y":247.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":367.0,"y":247.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + uniqueResult + +true + + + + + + + parentIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"parent_id"} + + + + + + + + + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} + + + + + + + +StaticFilterComponent +ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "domainId" + + + + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 67ddc67f-b5d9-4533-90a9-4396edc57985 + Hbox + true + false + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 1977c7de-a0de-4fc9-88b7-b3afa67ab9b8 + Vbox + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +bb27636e-7c7b-4489-a07c-9d2b214bf7a9 +Фамилия (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Фамилия" + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"secondname"} + + + + multiValueOperator + + null + + + + + + + + + + + StaticFilterComponent + ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "surname" + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +e8d1c413-4642-42cd-bb25-e76c542eb012 +Имя (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Имя" + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"firstname"} + + + + multiValueOperator + + null + + + + + + + + + + + StaticFilterComponent + ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "firstname" + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +c8b1182d-59d1-4ff2-9679-722777d9f3fa +Отчество (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Отчество" + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"middlename"} + + + + multiValueOperator + + null + + + + + + + + + + + StaticFilterComponent + ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "middlename" + + + + + + +887d2044-9e34-46a5-852c-e9ce07b42f30 +5b8c5ac4-549d-411f-80ff-d29293638e5f +Пол +false +false + + + + cssClasses + + + + "width-full" + + + + + + + + initialValue + + null + + + + label + + "Пол" + + + + values + + + + + +label + + "Мужской" + + + +value + + "MALE" + + + + + + + + + +label + + "Женский" + + + +value + + "FEMALE" + + + + + + + + + + + + + visible + + false + + + + + + + + operation + + "EQUAL" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"sex"} + + + + + + + + + +55d6266e-c441-4aa8-9ba0-02a64dc7f6fc +651f93b9-d6b2-4698-85dc-16f3c05061f3 +Дата создания заявки с (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + + + + dateValueFormat + + "DATE" + + + + label + + "Дата рождения с" + + + + visible + + false + + + + + + + + operation + + "GREATER_OR_EQUAL" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"birth_date"} + + + + + + + + + + + 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 + 0b3a5f1b-5ff8-40dd-937e-f7d9fc5c4cec + Vbox + true + false + + + + style + + + + width + + "50%" + + + + + + + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +39040b94-4780-4067-864e-64ad3d22a2a3 +Логин (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + "fixed-label-mini" + + + + + + label + + "Логин" + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"user_login"} + + + + multiValueOperator + + null + + + + + + + + + + + StaticFilterComponent + ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "userName" + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +99b43573-1e51-4c18-b42b-ed95c5a09a01 +СНИЛС (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + "fixed-label-mini" + + + + + + label + + "СНИЛС" + + + + mask + + "999-999-999 99" + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"snils"} + + + + multiValueOperator + + null + + + + + + + + + + + StaticFilterComponent + ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "snils" + + + + + + +4d981f15-5535-45f7-882b-3647b251ad05 +870122d2-e95b-4301-92c4-7ae28d7b6999 +Должность (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + "fixed-label-mini" + + + + + + label + + "Должность" + + + + visible + + false + + + + + + + + operation + + "CONTAINS" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"job_position"} + + + + multiValueOperator + + null + + + + + + + + + + +55d6266e-c441-4aa8-9ba0-02a64dc7f6fc +326bfe84-f818-47ec-8b73-646b245b48bf +Дата рождения по (filter) +false +false + + + + cssClasses + + + + "width-full" + + + + + "fixed-label-extra-mini" + + + + + + + + dateValueFormat + + "DATE" + + + + label + + "по" + + + + visible + + false + + + + + + + + operation + + "LESS_OR_EQUAL" + + + + + + false + + + columnForFilter + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"birth_date"} + + + + + + + + + + + + 887d2044-9e34-46a5-852c-e9ce07b42f30 + f673b1e0-872f-4c32-9333-57b7e79cc75a + Static combobox (filter) + false + false + + + + initialValue + + "false" + + + + values + + + + + + label + + "true" + + + + value + + "true" + + + + + + + + + + label + + "true" + + + + value + + "false" + + + + + + + + + visible + + false + + + + + + + + operation + + "EQUAL" + + + + + + false + + + + + + +StaticFilterComponent +ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "enabled" + + + + + + + 4d981f15-5535-45f7-882b-3647b251ad05 + bb27636e-7c7b-4489-a07c-9d2b214bf7a9 + Фамилия (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + e8d1c413-4642-42cd-bb25-e76c542eb012 + Имя (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + c8b1182d-59d1-4ff2-9679-722777d9f3fa + Отчество (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 39040b94-4780-4067-864e-64ad3d22a2a3 + Логин (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 4b137585-8d44-46f3-be89-089a8c375da7 + Телефон (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 99b43573-1e51-4c18-b42b-ed95c5a09a01 + СНИЛС (filter) + false + true + + + + c4b63ae3-f093-4b74-891b-d16e2a35644e + d01de423-91e3-47e0-b3d2-937c22bf6c1e + Номер с(filter) + false + true + + + c4b63ae3-f093-4b74-891b-d16e2a35644e + a3ccf39a-390b-40e2-8599-543a3a059ecf + Номер по(filter) + false + true + + + 887d2044-9e34-46a5-852c-e9ce07b42f30 + 4f06563e-3695-439e-a66e-bcdc899ba24a + Статус + false + true + + + 887d2044-9e34-46a5-852c-e9ce07b42f30 + 0a5f370e-f5a9-4232-abeb-ca97282fcb45 + Вид + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + bb27636e-7c7b-4489-a07c-9d2b214bf7a9 + Фамилия (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + e8d1c413-4642-42cd-bb25-e76c542eb012 + Имя (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + c8b1182d-59d1-4ff2-9679-722777d9f3fa + Отчество (filter) + false + true + + + 887d2044-9e34-46a5-852c-e9ce07b42f30 + 5b8c5ac4-549d-411f-80ff-d29293638e5f + Пол + false + true + + + 55d6266e-c441-4aa8-9ba0-02a64dc7f6fc + 12c52a49-1e4b-4490-9fb8-84d42047fb98 + Дата рождения с (filter) + false + true + + + 55d6266e-c441-4aa8-9ba0-02a64dc7f6fc + 63d0d130-8700-470b-9dbd-13b9a39097be + Дата рождения по (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 39040b94-4780-4067-864e-64ad3d22a2a3 + Логин (filter) + false + true + + + 3a00a919-c6aa-4fbf-951e-b6f2dbc24764 + f82fe1c7-2f1e-4d14-8ada-4562f8b4db03 + Организация (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 4b137585-8d44-46f3-be89-089a8c375da7 + Телефон (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 99b43573-1e51-4c18-b42b-ed95c5a09a01 + СНИЛС (filter) + false + true + + + 4d981f15-5535-45f7-882b-3647b251ad05 + 870122d2-e95b-4301-92c4-7ae28d7b6999 + Должность (filter) + false + true + + + 55d6266e-c441-4aa8-9ba0-02a64dc7f6fc + 651f93b9-d6b2-4698-85dc-16f3c05061f3 + Дата создания заявки с (filter) + false + true + + + 55d6266e-c441-4aa8-9ba0-02a64dc7f6fc + 326bfe84-f818-47ec-8b73-646b245b48bf + Дата создания заявки по (filter) + false + true + + + + + 16071adb-3bdf-4c33-b29b-886876016415 + 25dd3959-d468-4afc-8d32-cbc4788ade9c + Grid + true + false + + false + + + checkboxColumn + + true + + + + checkboxHeader + + true + + + + style + + + + height + + null + + + + + + + + + + + gridService + + +ErvuUserGridLoadService +ru.micord.ervu.account_applications.component.service + + + + + + + + + columnSorts + + + + + + + + + AuthorityRoleGridService + ru.cg.webbpm.user_management.custom + + true + + + + RowNavigationHandler + component.grid.listeners + + true + + + baseRoute + + "/process_application/${user_application_list_id}" + + + + doubleClick + + true + + + + isAbsolute + + false + + + + isPk + + true + + + + openInNewTab + + false + + + + redirectionType + + "LINK" + + + + + + + ErvuStaticGrid + account_applications.component.grid + + true + true + + + autoStretchColumns + + true + + + + fetchSize + + 20.0 + + + + floatingFilter + + null + + + + headerHeight + + 40.0 + + + + loadingOverlayMessage + + "Загрузка данных, пожалуйста, подождите." + + + + loadingOverlayType + + "TEXT_OVERLAY" + + + + noRowsOverlayMessage + + "Данные отсутствуют" + + + + pagination + + true + + + + rowClickSelectionType + + "SINGLE_SELECT_CLICK" + + + + rowHeight + + 40.0 + + + + style + + + + height + + "300px" + + + + + + + theme + + "BALHAM" + + + + visible + + true + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 1c3d8cfc-3458-4e55-8615-49a9dc574549 + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Фамилия" + + + + field + + + + column + + "lastName" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + sortable + +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 21d8df68-8134-4dcc-ac7a-5ccb49f37ab8 + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Имя" + + + + field + + + + column + + "firstName" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + sortable + +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + f31e94aa-8427-4339-8f8a-beb899617b72 + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Отчество" + + + + field + + + + column + + "middleName" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + sortable + +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 2fd3bbb5-555e-4bdf-b3ce-81ad0509224f + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Организация" + + + + field + + + + column + + "domainName" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + sortable + +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + ccdc44c9-c4d8-44b2-9256-59a8f6908d9e + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Активен" + + + + field + + + + column + + "enabled" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + hidden + +true + + + + sortable + +false + + + + + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 8553fd0f-50ef-49b0-b068-3ccb40927494 + Фамилия + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 34bfc1df-1bc8-41e7-8082-55c92c5e714c + Имя + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 7a5cb71f-a3ef-49df-a094-6ebaf86c04c5 + Отчество + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 12f736ab-58cf-4aee-bc52-c3f2f9966bff + Пол + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 16c6bc1f-0b14-4f7f-b081-7b103aaedec6 + Дата рождения + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + ce51e08b-6e9e-44b2-918b-30e9387babf2 + Логин + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 6e60d120-6b1b-4d5e-9369-0c73c314f93d + Должность + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + d3c8c442-c816-4720-8d51-02d578a0816f + СНИЛС + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 51f433eb-5882-41a7-9f6d-86ff588c3a54 + Организация + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + a477f0ef-940a-4f8a-bb20-b2e8a6bb89aa + Пол_value + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 5e6c5a85-bd71-47f7-b904-5595a846337a + Организация_value + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 8cbdb08e-d3c4-44c8-881f-b734bd446e1b + person_id + false + true + + + 364c8faa-5e56-46cd-9203-d2ec6ef2dc74 + 29f76ce2-fa40-4d12-a562-2a6ebfa84fcd + user_account_id + false + true + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 338a995b-3d22-44e8-b797-f540a0a6c2c3 + Hbox + true + true + + + + d7d54cfb-26b5-4dba-b56f-b6247183c24d + 26a81780-9ae4-4ce9-9888-32b4b823fefb + Hbox + true + false + + + + + + + 30b980e0-6d49-45fb-b53f-bef67351530d + b5aa2c8c-150c-477b-b7fd-e4f98862fbe5 + Выбрать + false + true + + + fd7e47b9-dce1-4d14-9f3a-580c79f59579 + 7568d465-9299-40e5-b2f3-1c04e47ac3c8 + Выбрать + false + false + + + + caption + +"Выбрать" + + + + disabled + +true + + + + + + + fd7e47b9-dce1-4d14-9f3a-580c79f59579 + 82a9562f-dfe7-478d-885a-52cbad194342 + Закрыть + false + false + + + + caption + +"Закрыть" + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 949720a3-8b9e-4872-a34c-0445aac98bc3 + AC_,блокировка кнопки выбрать + false + false + + + + elseActions + + + + + + behavior + + {"objectId":"7568d465-9299-40e5-b2f3-1c04e47ac3c8","packageName":"component.button","className":"Button","type":"TS"} + + + + method + + "setEnabled" + + + + value + + + + staticValue + + + boolean + + +false + + + + + + + + + + + + eventRefs + + + + + + behavior + + {"objectId":"25dd3959-d468-4afc-8d32-cbc4788ade9c","packageName":"component.grid","className":"GridV2","type":"TS"} + + + + propertyName + + "selectionChangeEvent" + + + + + + + + + + ifCondition + + + + conditions + + + + + + _isGroupSelected + +false + + + + one + + + + conditionFirstPart + + + + objectValue + + + +behavior + + {"objectId":"25dd3959-d468-4afc-8d32-cbc4788ade9c","packageName":"component.grid","className":"GridV2","type":"TS"} + + + +method + + "getSelectedRowId" + + + + + + + + + + operation + + "IS_NOT_EMPTY" + + + + + + + + + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"7568d465-9299-40e5-b2f3-1c04e47ac3c8","packageName":"component.button","className":"Button","type":"TS"} + + + + method + + "setEnabled" + + + + value + + + + staticValue + + + boolean + + +true + + + + + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + da90e880-f32d-4a62-9202-3a91f906e98e + AC_закрыть + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"82a9562f-dfe7-478d-885a-52cbad194342","packageName":"component.button","className":"Button","type":"TS"} + + + + propertyName + + "clickEvent" + + + + + + + + + + ifCondition + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"ec35c0af-f0ca-486b-953a-ed607a05ac70","packageName":"component","className":"Dialog","type":"TS"} + + + + method + + "hide" + + + + value + + null + + + + + + + + + + behavior + + {"objectId":"b20d8899-7e8e-4fb5-893b-5a80a0f39203","packageName":"component.button","className":"Button","type":"TS"} + + + + method + + "setVisible" + + + + value + + + + staticValue + + +boolean + + + true + + + + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + b3c80f7e-6abd-4df0-9c7f-ccb1eec21739 + AC_выбрать + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"7568d465-9299-40e5-b2f3-1c04e47ac3c8","packageName":"component.button","className":"Button","type":"TS"} + + + + propertyName + + "clickEvent" + + + + + + + + + + ifCondition + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"ff2fba56-3368-4d18-b0ec-155fcbd21e77","packageName":"component.container","className":"Form","type":"TS"} + + + + method + + "loadById" + + + + value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"25dd3959-d468-4afc-8d32-cbc4788ade9c","packageName":"component.grid","className":"GridV2","type":"TS"} + + + + method + + "getSelectedRowId" + + + + + + + + + + + + + + + + behavior + + {"objectId":"074037a1-0f3d-4b39-8a9b-1302994a9f3a","packageName":"component.container","className":"Form","type":"TS"} + + + + method + + "loadById" + + + + value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"25dd3959-d468-4afc-8d32-cbc4788ade9c","packageName":"component.grid","className":"GridV2","type":"TS"} + + + + method + + "getSelectedRowId" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + behavior + + {"objectId":"ec35c0af-f0ca-486b-953a-ed607a05ac70","packageName":"component","className":"Dialog","type":"TS"} + + + + method + + "hide" + + + + value + + null + + + + + + + + + + behavior + + {"objectId":"b20d8899-7e8e-4fb5-893b-5a80a0f39203","packageName":"component.button","className":"Button","type":"TS"} + + + + method + + "setVisible" + + + + value + + + + staticValue + + +boolean + + + true + + + + + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 80850486-e7c7-4baf-b719-3af06a10ea04 + AC_диалог открыт + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"9b14a80f-1bc6-4a71-a58c-2d1408223c3a","packageName":"component.container","className":"HBox","type":"TS"} + + + + propertyName + + "beforeStart" + + + + + + + + + + ifCondition + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"ec35c0af-f0ca-486b-953a-ed607a05ac70","packageName":"component","className":"Dialog","type":"TS"} + + + + method + + "show" + + + + value + + null + + + + + + + + + + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + 2981dadf-b2e0-48fa-8f9d-906d0a292b88 + AC_перевыбор + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"b20d8899-7e8e-4fb5-893b-5a80a0f39203","packageName":"component.button","className":"Button","type":"TS"} + + + + propertyName + + "clickEvent" + + + + + + + + + + ifCondition + + + + logicalOperation + + null + + + + + + + thenActions + + + + + + behavior + + {"objectId":"ec35c0af-f0ca-486b-953a-ed607a05ac70","packageName":"component","className":"Dialog","type":"TS"} + + + + method + + "show" + + + + value + + null + + + + + + + + + + + + diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page index ed6b81e5..e83aa555 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page @@ -788,7 +788,6 @@ b02f97ad-e367-4b34-9b0c-cd1d20c108bf Vbox_LOAD true - false false @@ -994,7 +993,6 @@ 3c5bd179-ffd8-4d0a-8742-e604d25ccfeb Vbox_1 true - false false @@ -1298,6 +1296,7 @@ 981f9ebc-cf0e-4f28-916e-d78b6309dcb6 Пол load_1 false +false false @@ -1332,7 +1331,7 @@ value - "FEMALE" + "female" @@ -1350,7 +1349,7 @@ value - "MALE" + "male" @@ -1368,7 +1367,7 @@ value - "Мужской" + "мужской" @@ -1386,7 +1385,7 @@ value - "Женский" + "женский" @@ -2743,7 +2742,7 @@ string - "Мужской" + "мужской" @@ -2811,7 +2810,7 @@ string - "MALE" + "male" @@ -3011,7 +3010,7 @@ string - "Женский" + "женский" @@ -3079,7 +3078,7 @@ string - "FEMALE" + "female" @@ -5330,6 +5329,7 @@ 5cce7e30-858d-489f-8b46-6e0f8dfc9a22 Пол false + false false @@ -7585,7 +7585,6 @@ ec35c0af-f0ca-486b-953a-ed607a05ac70 Dialog true - false false @@ -8639,6 +8638,102 @@ + + 887d2044-9e34-46a5-852c-e9ce07b42f30 + 1cb0019c-1019-463e-aff0-9b7ed97bdceb + Static combobox (filter) + false + false + + + + initialValue + + "true" + + + + values + + + + + + label + + "true" + + + + value + + "true" + + + + + + + + + + label + + "false" + + + + value + + "false" + + + + + + + + + visible + + false + + + + + + + + operation + + "EQUAL" + + + + + + false + + + + + + +StaticFilterComponent +ru.micord.ervu.account_applications.component.field.persist.filter + + true + true + + + name + + "enabled" + + + + + 4d981f15-5535-45f7-882b-3647b251ad05 bb27636e-7c7b-4489-a07c-9d2b214bf7a9 @@ -8660,13 +8755,6 @@ false true - - 887d2044-9e34-46a5-852c-e9ce07b42f30 - 5b8c5ac4-549d-411f-80ff-d29293638e5f - Пол - false - true - 4d981f15-5535-45f7-882b-3647b251ad05 39040b94-4780-4067-864e-64ad3d22a2a3 @@ -8838,7 +8926,7 @@ height - null + "300px" @@ -8947,6 +9035,30 @@ null + + headerHeight + + 40.0 + + + + loadingOverlayMessage + + "Загрузка данных, пожалуйста, подождите." + + + + loadingOverlayType + + "TEXT_OVERLAY" + + + + noRowsOverlayMessage + + "Данные отсутствуют" + + pagination @@ -8959,6 +9071,31 @@ "SINGLE_SELECT_CLICK" + + rowHeight + + 40.0 + + + + style + + + + height + + "300px" + + + + + + + theme + + "BALHAM" + + visible @@ -9205,6 +9342,73 @@ sortable +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 0f9753a4-bad5-4842-9ee5-f8565c53c0e0 + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Активен" + + + + field + + + + column + + "enabled" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + hidden + +true + + + + sortable + false diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page index 56b3342c..11aa07d9 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page @@ -799,7 +799,6 @@ a397e301-e715-4c6a-b289-5a27af3900d3 Основные данные true - false false @@ -1344,6 +1343,7 @@ 974dc9e8-7c19-4198-9271-c470fdb3589f Пол load_1 false + false false @@ -1378,7 +1378,7 @@ value - "FEMALE" + "female" @@ -1396,7 +1396,7 @@ value - "MALE" + "male" @@ -1414,7 +1414,7 @@ value - "Мужской" + "мужской" @@ -1432,7 +1432,7 @@ value - "Женский" + "женский" @@ -1905,52 +1905,6 @@ false true - - 133ca212-09a6-413a-ac66-e2f6ce188f1f - 5670c69a-2e1d-47a9-a48e-e26e635c1ec1 - Организация_id load_1 - false - false - - - - label - - "Организация_id load_1" - - - - visible - - false - - - - - - - - - false - - - - - ErvuFormLoadComponent - ru.micord.ervu.account_applications.component.field.persist - - true - true - - - fieldName - - "domainId" - - - - - 133ca212-09a6-413a-ac66-e2f6ce188f1f 3bc24060-e5eb-4873-8009-ddb65536aa70 @@ -2539,56 +2493,7 @@ - - - - - behavior - - {"objectId":"75471880-f724-46c3-9ee5-3af236079761","packageName":"component.field","className":"Autocomplete","type":"TS"} - - - - method - - "setValueByBusinessId" - - - - value - - - - objectValue - - - - argument - -null - - - - behavior - -{"objectId":"5670c69a-2e1d-47a9-a48e-e26e635c1ec1","packageName":"component.field","className":"TextField","type":"TS"} - - - - method - -"getValue" - - - - - - - - - - - + @@ -3588,6 +3493,56 @@ + + + + + + + + + behavior + + {"objectId":"940a2e9b-ad2c-45c7-8d9f-55874b4219d1","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "setValue" + + + + value + + + + objectValue + + + + argument + +null + + + + behavior + +{"objectId":"dbbbc852-8aa7-4c11-b947-ea72f6b71b11","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + +"getValue" + + + + + + + @@ -3609,6 +3564,7 @@ 3ac969fa-9a6d-4703-9199-f421fc10213f AC_copy_form1_sex false + false false @@ -3693,7 +3649,7 @@ string - "Мужской" + "мужской" @@ -3761,7 +3717,7 @@ string - "MALE" + "male" @@ -3947,6 +3903,7 @@ 43de9ed5-20ef-4a77-95c8-3efb17620b4f AC_copy_form1_sex false + false false @@ -4031,7 +3988,7 @@ string - "Женский" + "женский" @@ -4099,7 +4056,7 @@ string - "FEMALE" + "female" @@ -4280,6 +4237,235 @@ + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 5670c69a-2e1d-47a9-a48e-e26e635c1ec1 + Организация_id load_1 + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Организация_id load_1" + + + + visible + + false + + + + + + + + + false + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "domainId" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + dbbbc852-8aa7-4c11-b947-ea72f6b71b11 + Организация_name load_1 + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Организация" + + + + visible + + false + + + + + + + + + false + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "fullname" + + + + + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 62a7ac8c-82df-4b81-833a-6c4a7b8b3255 + Организация 1 + false + true + + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + ee57e882-06f3-4097-902a-f5f1c9555fd5 + Action Controller + false + false + + + + eventRefs + + + + + + behavior + + {"objectId":"5670c69a-2e1d-47a9-a48e-e26e635c1ec1","packageName":"component.field","className":"TextField","type":"TS"} + + + + propertyName + + "valueChangeEvent" + + + + + + + + + ifCondition + + + + logicalOperation + +null + + + + + + + thenActions + + + + + + + behavior + + {"objectId":"4cc50d18-df32-4521-841f-d0390011c6b4","packageName":"account_applications.component.field","className":"DropdownTreeViewComponent","type":"TS"} + + + + method + + "setValue" + + + + value + + + + objectValue + + + + argument + +null + + + + behavior + +{"objectId":"5670c69a-2e1d-47a9-a48e-e26e635c1ec1","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + +"getValue" + + + + + + + + + + + + + + + + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 1c5665b3-6156-4940-9d6b-1a54f6e7ac65 + Организация 1 + false + true + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 de1cc7b8-c7db-46e0-8e1e-e1ae9c8f4a87 @@ -4289,6 +4475,27 @@ + + 98594cec-0a9b-4cef-af09-e1b71cb2ad9e + ee57e882-06f3-4097-902a-f5f1c9555fd5 + Action Controller + false + true + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + dbbbc852-8aa7-4c11-b947-ea72f6b71b11 + Организация_name load_1 + false + true + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 1c5665b3-6156-4940-9d6b-1a54f6e7ac65 + Организация 1 load visible + false + true + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 de1cc7b8-c7db-46e0-8e1e-e1ae9c8f4a87 @@ -4310,20 +4517,6 @@ false true - - 133ca212-09a6-413a-ac66-e2f6ce188f1f - a531d37d-9fd8-43be-8a67-6064522911e7 - person_id - false - true - - - 133ca212-09a6-413a-ac66-e2f6ce188f1f - 563f1ee1-94e9-4e3a-8ad3-24c5bd88540b - user_account_id - false - true - 69af9ec9-d640-499a-bf05-cda6ce64a81f aa4e0a17-bcee-47e8-ba5c-94b50daf9b1c @@ -5167,6 +5360,7 @@ 996ee76c-cb87-4c42-81f6-be9b219c0203 Пол1 false + false false @@ -5524,6 +5718,20 @@ + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 62a7ac8c-82df-4b81-833a-6c4a7b8b3255 + Организация 1 + false + true + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + 4cc50d18-df32-4521-841f-d0390011c6b4 + DropdownTreeView + false + true + d7d54cfb-26b5-4dba-b56f-b6247183c24d c604e7ab-46f8-43c3-8b4b-13b9941af78f @@ -5540,6 +5748,132 @@ + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 62a7ac8c-82df-4b81-833a-6c4a7b8b3255 + Организация 1 + false + false + + + + cssClasses + + + + "width-full" + + + + + + disabled + + true + + + + label + + "Организация" + + + + visible + + false + + + + + + + + autocompleteService + + + + businessIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + displayColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + loadDao + + + +graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + + parentControlReference + + null + + + + + + + + + + + variable + + "org_unit_id" + + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} + + + + + + + FormField + account_applications.component.field + +true +true + + + name + + "userDomain" + + + + + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + 4cc50d18-df32-4521-841f-d0390011c6b4 + Организация DropdownTreeView + false + true + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 2743303f-f5c4-4575-ba49-00538387590b @@ -5547,13 +5881,6 @@ false true - - 8174c549-4b94-4c3e-9168-09610ade4c6e - 878e5e37-99d2-4a58-829d-b8f3e86c2f25 - DropdownTreeView - false - true - 69af9ec9-d640-499a-bf05-cda6ce64a81f 2af8ef48-dd3c-415f-bbda-3eda03f71b8e @@ -5942,109 +6269,6 @@ - - f9a38417-9ad0-412a-9b5f-bbeb450dddd6 - 75471880-f724-46c3-9ee5-3af236079761 - Организация 1 - false - false - - - - cssClasses - - - - "width-full" - - - - - - disabled - - true - - - - label - - "Организация" - - - - visible - - false - - - - - - - - autocompleteService - - - - businessIdColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} - - - - displayColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} - - - - loadDao - - - -graph - - {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} - - - - - - - parentControlReference - - null - - - - - - - - - - - variable - - "org_unit_id" - - - - - - - - - - columnForSave - - {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} - - - - - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 @@ -8060,7 +8284,6 @@ b790bcc9-4d50-476a-b33c-db7e434bf887 Form2_load true - false false @@ -8183,13 +8406,6 @@ - - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 - 672ba7c5-3773-4af8-8558-9cdd57f06051 - Vbox_1-2 - true - true - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 5fb0266f-8327-4366-b8f8-391af435b0ca @@ -8645,6 +8861,63 @@ + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 940a2e9b-ad2c-45c7-8d9f-55874b4219d1 + Организация_name load_2 + false + false + + + + cssClasses + + + + "width-full" + + + + + + label + + "Организация" + + + + + + + + +false + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + +true +true + + + fieldName + + "fullname" + + + + + + + f9a38417-9ad0-412a-9b5f-bbeb450dddd6 + 62a7ac8c-82df-4b81-833a-6c4a7b8b3255 + Организация 1 + false + true + bce312bd-0c82-45e5-89dc-a1af90431c18 a53f107d-c7d1-42c5-8e57-f76df0a045ac @@ -8723,7 +8996,6 @@ 87bd7f84-dc3e-499c-a707-070a5baf61cd Form2 true - false false @@ -9170,6 +9442,114 @@ "position" + + + + + 8174c549-4b94-4c3e-9168-09610ade4c6e + 4cc50d18-df32-4521-841f-d0390011c6b4 + Организация DropdownTreeView + false + false + + + + collectible + + true + + + + label + + "Организация" + + + + preferBusinessId + + true + + + + required + + true + + + + + + + + + treeItemService + + + + businessIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"id"} + + + + domainIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + idColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} + + + + labelColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + + + + loadDao + + + +graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":351.0,"y":249.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":351.0,"y":249.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":351.0,"y":249.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + +uniqueResult + + true + + + + + + + parentIdColumn + + {"schema":"public","table":"recruitment","entity":"recruitment","name":"parent_id"} + + + + + + + + + +true + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} + + @@ -9712,20 +10092,12 @@ true - - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 - 0a5d31c1-56d8-4b5a-97e0-a77ca379d64f - Vbox_2 - true - true - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 02877902-2dad-426b-822e-c1fb0a3612ed Vbox_1-2 true - false false @@ -9770,121 +10142,9 @@ f9a38417-9ad0-412a-9b5f-bbeb450dddd6 62a7ac8c-82df-4b81-833a-6c4a7b8b3255 - Организация 2 + Организация 1 false - false - - - - cssClasses - - - - "width-full" - - - - - - disabled - - true - - - - label - - "Организация" - - - - visible - - false - - - - - - - - autocompleteService - - - - businessIdColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} - - - - displayColumn - - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} - - - - loadDao - - - -graph - - {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"recruitment":{"tableName":"recruitment","schemaName":"public","x":334.0,"y":161.0,"alias":"recruitment","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} - - - - - - - parentControlReference - - null - - - - - - - - - - - variable - - "org_unit_id" - - - - - - - - - - columnForSave - - {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"} - - - - - - - FormField - account_applications.component.field - -true -true - - - name - - "userDomain" - - - - + true b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 @@ -12005,6 +12265,7 @@ e8be3c5d-94ee-491d-aea3-428e473af5cf Роли true + false false @@ -15379,13 +15640,6 @@ - - 9d1b5af1-0b8f-4b1b-b9a5-c2e6acf72d91 - 593bb1e1-72b7-484f-b391-dd8c69392932 - Vbox_3 - true - true - 133ca212-09a6-413a-ac66-e2f6ce188f1f @@ -17661,6 +17915,30 @@ null + + headerHeight + + 40.0 + + + + loadingOverlayMessage + + "Загрузка данных, пожалуйста, подождите." + + + + loadingOverlayType + + "TEXT_OVERLAY" + + + + noRowsOverlayMessage + + "Данные отсутствуют" + + pagination @@ -17673,6 +17951,43 @@ "SINGLE_SELECT_CLICK" + + rowHeight + + 40.0 + + + + rowModelType + + null + + + + style + + + + height + + "300px" + + + + width + + null + + + + + + + theme + + "BALHAM" + + visible diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page index 6c77f2ea..ab8994ad 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page @@ -788,7 +788,6 @@ c656213a-75da-4dd2-ac85-b44c05c18665 Vbox_LOAD true - false false @@ -944,7 +943,6 @@ 16989f4f-4bbf-4fad-9d75-1cc0dbd5b6c9 Vbox_1-2 true - false false @@ -1335,6 +1333,7 @@ 7772ae11-fa24-4a7c-8ce8-8746db142da2 Пол load_1 false +false false @@ -1369,7 +1368,7 @@ value - "FEMALE" + "female" @@ -1387,7 +1386,7 @@ value - "MALE" + "male" @@ -1405,7 +1404,7 @@ value - "Мужской" + "мужской" @@ -1423,7 +1422,7 @@ value - "Женский" + "женский" @@ -2736,7 +2735,7 @@ string - "Мужской" + "мужской" @@ -2804,7 +2803,7 @@ string - "MALE" + "male" @@ -3004,7 +3003,7 @@ string - "Женский" + "женский" @@ -3072,7 +3071,7 @@ string - "FEMALE" + "female" @@ -8963,6 +8962,30 @@ null + + headerHeight + + 40.0 + + + + loadingOverlayMessage + + "Загрузка данных, пожалуйста, подождите." + + + + loadingOverlayType + + "TEXT_OVERLAY" + + + + noRowsOverlayMessage + + "Данные отсутствуют" + + pagination @@ -8975,6 +8998,31 @@ "SINGLE_SELECT_CLICK" + + rowHeight + + 40.0 + + + + style + + + + height + + "300px" + + + + + + + theme + + "BALHAM" + + visible diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page index efab0cb4..2be4192a 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Список заявок.page @@ -1297,6 +1297,24 @@ + + + + + label + + "Активация пользователя" + + + + value + + "UNBLOCK_USER" + + + + + @@ -2915,6 +2933,44 @@ + + c8dfe691-a84a-48da-b79e-6298d90db71d + a9fe3332-1c67-43e6-8427-093584409caa + Создать заявку на активацию пользователя + false + false + + true + + + + StaticRouteNavigationButton + modules.user-management.component + + true + true + + + caption + + "Создать заявку на активацию" + + + + route + + "/unblock_user_application" + + + + visible + + true + + + + + c8dfe691-a84a-48da-b79e-6298d90db71d ff5d942c-950d-4b8c-9c41-b403a74e3831