Merge branch 'feature/SUPPORT-9296_fix_unblock' into develop

This commit is contained in:
gulnaz 2025-08-04 11:08:55 +03:00
commit d09cd7e31c
14 changed files with 534 additions and 60 deletions

View file

@ -83,11 +83,12 @@ public class AccountGridLoadService extends Behavior implements GridService {
for (Account account : accounts) { for (Account account : accounts) {
GridRow gridRow = new GridRow(); GridRow gridRow = new GridRow();
gridRow.put("row_uid", account.getId() != null ? account.getId() : ""); gridRow.put("row_uid", account.getId() != null ? account.getId() : "");
gridRow.put("enabled", !account.isBlocked()); gridRow.put("accountEnabled", !account.isBlocked());
Person person = account.getPerson(); Person person = account.getPerson();
if (person != null) { if (person != null) {
gridRow.put("login", person.getLogin()); gridRow.put("login", person.getLogin());
gridRow.put("snils", person.getSnils()); gridRow.put("snils", person.getSnils());
gridRow.put("personEnabled", !person.isBlocked());
String fullName = person.getFullName(); String fullName = person.getFullName();
if (fullName != null) { if (fullName != null) {

View file

@ -136,14 +136,14 @@ public class Recruitment extends TableImpl<RecruitmentRecord> {
public final TableField<RecruitmentRecord, String> SUBPOENA_SERIES_CODE = createField(DSL.name("subpoena_series_code"), SQLDataType.VARCHAR(64), this, "Серия"); public final TableField<RecruitmentRecord, String> SUBPOENA_SERIES_CODE = createField(DSL.name("subpoena_series_code"), SQLDataType.VARCHAR(64), this, "Серия");
/** /**
* The column <code>public.recruitment.region_code</code>. Код региона * The column <code>public.recruitment.region_code</code>.
*/ */
public final TableField<RecruitmentRecord, String> REGION_CODE = createField(DSL.name("region_code"), SQLDataType.CLOB, this, "Код региона"); public final TableField<RecruitmentRecord, String> REGION_CODE = createField(DSL.name("region_code"), SQLDataType.CLOB, this, "");
/** /**
* The column <code>public.recruitment.ts</code>. Отметка времени * The column <code>public.recruitment.ts</code>.
*/ */
public final TableField<RecruitmentRecord, Timestamp> TS = createField(DSL.name("ts"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, "Отметка времени"); public final TableField<RecruitmentRecord, Timestamp> TS = createField(DSL.name("ts"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, "");
/** /**
* The column <code>public.recruitment.name</code>. * The column <code>public.recruitment.name</code>.

View file

@ -248,6 +248,12 @@ public class UserApplicationList extends TableImpl<UserApplicationListRecord> {
*/ */
public final TableField<UserApplicationListRecord, Timestamp> SENT_DATE = createField(DSL.name("sent_date"), SQLDataType.TIMESTAMP(0), this, "Дата отправки заявки в ЕРВУ"); public final TableField<UserApplicationListRecord, Timestamp> SENT_DATE = createField(DSL.name("sent_date"), SQLDataType.TIMESTAMP(0), this, "Дата отправки заявки в ЕРВУ");
/**
* The column <code>public.user_application_list.blocked_region</code>.
* Заблокированная область (ACCOUNT, PERSON или BOTH)
*/
public final TableField<UserApplicationListRecord, String> BLOCKED_REGION = createField(DSL.name("blocked_region"), SQLDataType.VARCHAR(7), this, "Заблокированная область (ACCOUNT, PERSON или BOTH)");
private UserApplicationList(Name alias, Table<UserApplicationListRecord> aliased) { private UserApplicationList(Name alias, Table<UserApplicationListRecord> aliased) {
this(alias, aliased, (Field<?>[]) null, null); this(alias, aliased, (Field<?>[]) null, null);
} }

View file

@ -92,6 +92,12 @@ public class UserApplicationRole extends TableImpl<UserApplicationRoleRecord> {
*/ */
public final TableField<UserApplicationRoleRecord, Boolean> ADMIN_ROLE = createField(DSL.name("admin_role"), SQLDataType.BOOLEAN, this, "Признак роли администратора"); public final TableField<UserApplicationRoleRecord, Boolean> ADMIN_ROLE = createField(DSL.name("admin_role"), SQLDataType.BOOLEAN, this, "Признак роли администратора");
/**
* The column <code>public.user_application_role.deleted</code>. Дата и
* время окончания действия роли
*/
public final TableField<UserApplicationRoleRecord, Timestamp> DELETED = createField(DSL.name("deleted"), SQLDataType.TIMESTAMP(0), this, "Дата и время окончания действия роли");
/** /**
* The column <code>public.user_application_role.active</code>. * The column <code>public.user_application_role.active</code>.
*/ */
@ -102,12 +108,6 @@ public class UserApplicationRole extends TableImpl<UserApplicationRoleRecord> {
*/ */
public final TableField<UserApplicationRoleRecord, Integer> VERSION = createField(DSL.name("version"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, ""); public final TableField<UserApplicationRoleRecord, Integer> VERSION = createField(DSL.name("version"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "");
/**
* The column <code>public.user_application_role.deleted</code>. Дата и
* время окончания действия роли
*/
public final TableField<UserApplicationRoleRecord, Timestamp> DELETED = createField(DSL.name("deleted"), SQLDataType.TIMESTAMP(0), this, "Дата и время окончания действия роли");
private UserApplicationRole(Name alias, Table<UserApplicationRoleRecord> aliased) { private UserApplicationRole(Name alias, Table<UserApplicationRoleRecord> aliased) {
this(alias, aliased, (Field<?>[]) null, null); this(alias, aliased, (Field<?>[]) null, null);
} }

View file

@ -246,28 +246,28 @@ public class RecruitmentRecord extends UpdatableRecordImpl<RecruitmentRecord> {
} }
/** /**
* Setter for <code>public.recruitment.region_code</code>. Код региона * Setter for <code>public.recruitment.region_code</code>.
*/ */
public void setRegionCode(String value) { public void setRegionCode(String value) {
set(15, value); set(15, value);
} }
/** /**
* Getter for <code>public.recruitment.region_code</code>. Код региона * Getter for <code>public.recruitment.region_code</code>.
*/ */
public String getRegionCode() { public String getRegionCode() {
return (String) get(15); return (String) get(15);
} }
/** /**
* Setter for <code>public.recruitment.ts</code>. Отметка времени * Setter for <code>public.recruitment.ts</code>.
*/ */
public void setTs(Timestamp value) { public void setTs(Timestamp value) {
set(16, value); set(16, value);
} }
/** /**
* Getter for <code>public.recruitment.ts</code>. Отметка времени * Getter for <code>public.recruitment.ts</code>.
*/ */
public Timestamp getTs() { public Timestamp getTs() {
return (Timestamp) get(16); return (Timestamp) get(16);

View file

@ -522,6 +522,22 @@ public class UserApplicationListRecord extends UpdatableRecordImpl<UserApplicati
return (Timestamp) get(31); return (Timestamp) get(31);
} }
/**
* Setter for <code>public.user_application_list.blocked_region</code>.
* Заблокированная область (ACCOUNT, PERSON или BOTH)
*/
public void setBlockedRegion(String value) {
set(32, value);
}
/**
* Getter for <code>public.user_application_list.blocked_region</code>.
* Заблокированная область (ACCOUNT, PERSON или BOTH)
*/
public String getBlockedRegion() {
return (String) get(32);
}
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Primary key information // Primary key information
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -545,7 +561,7 @@ public class UserApplicationListRecord extends UpdatableRecordImpl<UserApplicati
/** /**
* Create a detached, initialised UserApplicationListRecord * Create a detached, initialised UserApplicationListRecord
*/ */
public UserApplicationListRecord(Long userApplicationListId, String applicationKind, String userLogin, String userPassword, String secondname, String firstname, String middlename, String phone, Timestamp startDate, Timestamp closeDate, String userStatus, String applicationStatus, String comment, Long jobPositionId, Long userRoleId, UUID recruitmentId, String userAccountId, String sex, Date birthDate, String snils, String jobPosition, Long numberApp, String editComment, String personId, String updateSecondname, String updateFirstname, String updateMiddlename, String updateSex, Date updateBirthDate, String updateJobPosition, String traceId, Timestamp sentDate) { public UserApplicationListRecord(Long userApplicationListId, String applicationKind, String userLogin, String userPassword, String secondname, String firstname, String middlename, String phone, Timestamp startDate, Timestamp closeDate, String userStatus, String applicationStatus, String comment, Long jobPositionId, Long userRoleId, UUID recruitmentId, String userAccountId, String sex, Date birthDate, String snils, String jobPosition, Long numberApp, String editComment, String personId, String updateSecondname, String updateFirstname, String updateMiddlename, String updateSex, Date updateBirthDate, String updateJobPosition, String traceId, Timestamp sentDate, String blockedRegion) {
super(UserApplicationList.USER_APPLICATION_LIST); super(UserApplicationList.USER_APPLICATION_LIST);
setUserApplicationListId(userApplicationListId); setUserApplicationListId(userApplicationListId);
@ -580,6 +596,7 @@ public class UserApplicationListRecord extends UpdatableRecordImpl<UserApplicati
setUpdateJobPosition(updateJobPosition); setUpdateJobPosition(updateJobPosition);
setTraceId(traceId); setTraceId(traceId);
setSentDate(sentDate); setSentDate(sentDate);
setBlockedRegion(blockedRegion);
resetChangedOnNotNull(); resetChangedOnNotNull();
} }
} }

View file

@ -114,40 +114,12 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl<UserApplicati
return (Boolean) get(5); return (Boolean) get(5);
} }
/**
* Setter for <code>public.user_application_role.active</code>.
*/
public void setActive(Boolean value) {
set(6, value);
}
/**
* Getter for <code>public.user_application_role.active</code>.
*/
public Boolean getActive() {
return (Boolean) get(6);
}
/**
* Setter for <code>public.user_application_role.version</code>.
*/
public void setVersion(Integer value) {
set(7, value);
}
/**
* Getter for <code>public.user_application_role.version</code>.
*/
public Integer getVersion() {
return (Integer) get(7);
}
/** /**
* Setter for <code>public.user_application_role.deleted</code>. Дата и * Setter for <code>public.user_application_role.deleted</code>. Дата и
* время окончания действия роли * время окончания действия роли
*/ */
public void setDeleted(Timestamp value) { public void setDeleted(Timestamp value) {
set(8, value); set(6, value);
} }
/** /**
@ -155,7 +127,35 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl<UserApplicati
* время окончания действия роли * время окончания действия роли
*/ */
public Timestamp getDeleted() { public Timestamp getDeleted() {
return (Timestamp) get(8); return (Timestamp) get(6);
}
/**
* Setter for <code>public.user_application_role.active</code>.
*/
public void setActive(Boolean value) {
set(7, value);
}
/**
* Getter for <code>public.user_application_role.active</code>.
*/
public Boolean getActive() {
return (Boolean) get(7);
}
/**
* Setter for <code>public.user_application_role.version</code>.
*/
public void setVersion(Integer value) {
set(8, value);
}
/**
* Getter for <code>public.user_application_role.version</code>.
*/
public Integer getVersion() {
return (Integer) get(8);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@ -181,7 +181,7 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl<UserApplicati
/** /**
* Create a detached, initialised UserApplicationRoleRecord * Create a detached, initialised UserApplicationRoleRecord
*/ */
public UserApplicationRoleRecord(String userRoleId, String roleName, Timestamp created, Timestamp updated, String roleCode, Boolean adminRole, Boolean active, Integer version, Timestamp deleted) { public UserApplicationRoleRecord(String userRoleId, String roleName, Timestamp created, Timestamp updated, String roleCode, Boolean adminRole, Timestamp deleted, Boolean active, Integer version) {
super(UserApplicationRole.USER_APPLICATION_ROLE); super(UserApplicationRole.USER_APPLICATION_ROLE);
setUserRoleId(userRoleId); setUserRoleId(userRoleId);
@ -190,9 +190,9 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl<UserApplicati
setUpdated(updated); setUpdated(updated);
setRoleCode(roleCode); setRoleCode(roleCode);
setAdminRole(adminRole); setAdminRole(adminRole);
setDeleted(deleted);
setActive(active); setActive(active);
setVersion(version); setVersion(version);
setDeleted(deleted);
resetChangedOnNotNull(); resetChangedOnNotNull();
} }
} }

View file

@ -0,0 +1,13 @@
package ru.micord.ervu.account_applications.enums;
import ru.cg.webbpm.modules.webkit.annotations.Model;
/**
* @author gulnaz
*/
@Model
public enum BlockedRegion {
ACCOUNT,
PERSON,
BOTH
}

View file

@ -33,6 +33,8 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant;
import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef;
import static ru.micord.ervu.account_applications.enums.BlockedRegion.*;
/** /**
* @author Adel Kalimullin * @author Adel Kalimullin
*/ */
@ -42,6 +44,9 @@ public class AccountFetchService implements EntityFetchService<Account> {
private static final String FIELD_IP_ADDRESSES = "ipAddresses"; private static final String FIELD_IP_ADDRESSES = "ipAddresses";
private static final String FIELD_SNILS = "snils"; private static final String FIELD_SNILS = "snils";
private static final String FIELD_ROLES = "roles"; private static final String FIELD_ROLES = "roles";
private static final String FIELD_ACCOUNT_BLOCKED = "blocked";
private static final String FIELD_PERSON_BLOCKED = "person.blocked";
private static final String FIELD_BLOCKED_REGION = "blockedRegion";
private final RestTemplate restTemplate; private final RestTemplate restTemplate;
private final ObjectMapper mapper; private final ObjectMapper mapper;
private final SecurityContext securityContext; private final SecurityContext securityContext;
@ -140,7 +145,9 @@ public class AccountFetchService implements EntityFetchService<Account> {
} }
private Map<String, Object> objectToFlatMap(Object obj) { private Map<String, Object> objectToFlatMap(Object obj) {
return objectToFlatMapInternal(obj, ""); Map<String, Object> result = objectToFlatMapInternal(obj, "");
putBlockedValue(result);
return result;
} }
private Map<String, Object> objectToFlatMapInternal(Object obj, String prefix) { private Map<String, Object> objectToFlatMapInternal(Object obj, String prefix) {
@ -224,4 +231,14 @@ public class AccountFetchService implements EntityFetchService<Account> {
private boolean isSimple(Class<?> type) { private boolean isSimple(Class<?> type) {
return ClassUtils.isPrimitiveOrWrapper(type) || type == String.class; return ClassUtils.isPrimitiveOrWrapper(type) || type == String.class;
} }
private void putBlockedValue(Map<String, Object> result) {
boolean accountBlocked = Boolean.parseBoolean(String.valueOf(result.get(FIELD_ACCOUNT_BLOCKED)));
boolean personBlocked = Boolean.parseBoolean(String.valueOf(result.get(FIELD_PERSON_BLOCKED)));
String value = accountBlocked && personBlocked
? BOTH.toString() : accountBlocked
? ACCOUNT.toString() : personBlocked
? PERSON.toString() : null;
result.put(FIELD_BLOCKED_REGION, value);
}
} }

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<changeSet id="0001" author="gulnaz">
<comment>add blocked_region column to user_application_list table</comment>
<sql>
ALTER TABLE user_application_list ADD COLUMN IF NOT EXISTS blocked_region varchar(7);
COMMENT ON COLUMN user_application_list.blocked_region IS 'Заблокированная область (ACCOUNT, PERSON или BOTH)';
</sql>
</changeSet>
</databaseChangeLog>

View file

@ -25,4 +25,5 @@
<include file="20250605_SUPPORT-9212_reconcile.xml" relativeToChangelogFile="true"/> <include file="20250605_SUPPORT-9212_reconcile.xml" relativeToChangelogFile="true"/>
<include file="20250618_add_active_column.xml" relativeToChangelogFile="true"/> <include file="20250618_add_active_column.xml" relativeToChangelogFile="true"/>
<include file="20250704_drop_column.xml" relativeToChangelogFile="true"/> <include file="20250704_drop_column.xml" relativeToChangelogFile="true"/>
<include file="20250801-SUPPORT-9296_add_blocked_region.xml" relativeToChangelogFile="true"/>
</databaseChangeLog> </databaseChangeLog>

View file

@ -27,12 +27,14 @@ import {ResetPasswordAccount} from "./dto/password/ResetPasswordAccount";
import {ResetPasswordData} from "./dto/password/ResetPasswordData"; import {ResetPasswordData} from "./dto/password/ResetPasswordData";
import {ProcessRequest} from "./dto/ProcessRequest"; import {ProcessRequest} from "./dto/ProcessRequest";
import {StatusUpdateService} from "../../../modules/app/service/status-update.service"; import {StatusUpdateService} from "../../../modules/app/service/status-update.service";
import {BlockedRegion} from "../../../generated/ru/micord/ervu/account_applications/enums/BlockedRegion";
@AnalyticalScope(SaveButton) @AnalyticalScope(SaveButton)
export class UserManagementService extends Behavior { export class UserManagementService extends Behavior {
private static PROCESS_START_PATH = '/service/wf/service/start'; private static PROCESS_START_PATH = '/service/wf/service/start';
private static USER_BLOCK_PATH = "/service/idm/accounts/blocked/v1"; private static ACCOUNT_BLOCK_PATH = "/service/idm/accounts/blocked/v1";
private static PERSON_BLOCK_PATH = "/service/idm/persons/blocked/v1";
@NotNull() @NotNull()
@ObjectRef() @ObjectRef()
@ -61,6 +63,7 @@ export class UserManagementService extends Behavior {
const formJson = this.collectData(); const formJson = this.collectData();
const appNumber = formJson['appNumber']; const appNumber = formJson['appNumber'];
const accountId = formJson['accountId']; const accountId = formJson['accountId'];
const personId = formJson['idPerson'];
let request; let request;
switch (kind) { switch (kind) {
@ -83,7 +86,7 @@ export class UserManagementService extends Behavior {
case ApplicationKind.EDIT_USER_MAIN: case ApplicationKind.EDIT_USER_MAIN:
let editPersonData = new EditPersonData(); let editPersonData = new EditPersonData();
editPersonData.accountId = accountId; editPersonData.accountId = accountId;
editPersonData.personId = formJson['idPerson']; editPersonData.personId = personId;
editPersonData.organizationId = formJson['idDomain']; editPersonData.organizationId = formJson['idDomain'];
editPersonData.personData = this.populateDto(new Person(), formJson); editPersonData.personData = this.populateDto(new Person(), formJson);
request = new ProcessRequest<EditPersonData>(); request = new ProcessRequest<EditPersonData>();
@ -124,10 +127,11 @@ export class UserManagementService extends Behavior {
}); });
break; break;
case ApplicationKind.BLOCK_USER: case ApplicationKind.BLOCK_USER:
this.doBlockingRequest([accountId], appNumber, true); this.doBlockingRequest(accountId, personId, appNumber, true);
break; break;
case ApplicationKind.UNBLOCK_USER: case ApplicationKind.UNBLOCK_USER:
this.doBlockingRequest([accountId], appNumber, false); this.doBlockingRequest(accountId, personId, appNumber, false,
formJson['blockedRegion']);
break; break;
case ApplicationKind.RESET_PASSWORD: case ApplicationKind.RESET_PASSWORD:
let resetPasswordAccount = new ResetPasswordAccount(); let resetPasswordAccount = new ResetPasswordAccount();
@ -188,15 +192,32 @@ export class UserManagementService extends Behavior {
}); });
} }
private doBlockingRequest(ids: string[], appNumber: number, block: boolean): void { private doBlockingRequest(accountId: string, personId: string, appNumber: number, block: boolean,
const url = window.location.origin + UserManagementService.USER_BLOCK_PATH; blockedRegion?: string): void {
let ids;
let path;
if (!block && blockedRegion != BlockedRegion.ACCOUNT) {
ids = [personId];
path = UserManagementService.PERSON_BLOCK_PATH;
}
else {
ids = [accountId];
path = UserManagementService.ACCOUNT_BLOCK_PATH;
}
const url = window.location.origin + path;
let method = block ? 'delete' : 'post'; let method = block ? 'delete' : 'post';
this.httpClient.request(method, url, { body: ids, observe: 'response' }).toPromise() this.httpClient.request(method, url, { body: ids, observe: 'response' }).toPromise()
.then((response: any) => { .then((response: any) => {
if (response.ok) { if (response.ok) {
this.rpc.saveAcceptedStatus(appNumber) if (blockedRegion == BlockedRegion.BOTH) {
.then(() => this.statusUpdateService.publishStatus(appNumber, true)) this.doBlockingRequest(accountId, personId, appNumber, block, BlockedRegion.ACCOUNT);
.catch(err => console.log('failed to update application status', err)); }
else {
this.rpc.saveAcceptedStatus(appNumber)
.then(() => this.statusUpdateService.publishStatus(appNumber, true))
.catch(err => console.log('failed to update application status', err));
}
} }
else { else {
let reason = response.body ? 'Reason: ' + response.body.toString() : ''; let reason = response.body ? 'Reason: ' + response.body.toString() : '';

View file

@ -2495,6 +2495,7 @@
<componentRootId>b838c4d9-b8f2-4142-96fe-240540a4802e</componentRootId> <componentRootId>b838c4d9-b8f2-4142-96fe-240540a4802e</componentRootId>
<name>Номер</name> <name>Номер</name>
<container>false</container> <container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="a6c37a96-2bfd-40f4-bd4a-a97c3443b9c0"> <scripts id="a6c37a96-2bfd-40f4-bd4a-a97c3443b9c0">
<properties> <properties>
@ -2557,6 +2558,7 @@
<componentRootId>a410163c-e804-4bff-9d0a-28e4853f4a58</componentRootId> <componentRootId>a410163c-e804-4bff-9d0a-28e4853f4a58</componentRootId>
<name>Фамилия</name> <name>Фамилия</name>
<container>false</container> <container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c"> <scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties> <properties>
@ -3205,6 +3207,138 @@
<simple>"snils"</simple> <simple>"snils"</simple>
</value> </value>
</entry> </entry>
</properties>
</scripts>
</children>
<children id="3fb4a21f-d13c-4854-a837-df07f5f3090e">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>3fb4a21f-d13c-4854-a837-df07f5f3090e</componentRootId>
<name>Блокировка</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>collectible</key>
<value>
<simple>false</simple>
</value>
</entry>
<entry>
<key>cssClasses</key>
<value>
<item id="764eafb4-4209-49f7-9d40-b25f0005438b" removed="false">
<value>
<simple>"width-full"</simple>
</value>
</item>
</value>
</entry>
<entry>
<key>disabled</key>
<value>
<simple>true</simple>
</value>
</entry>
<entry>
<key>label</key>
<value>
<simple>"Блокировка"</simple>
</value>
</entry>
<entry>
<key>mask</key>
<value>
<simple>null</simple>
</value>
</entry>
<entry>
<key>unMaskValue</key>
<value>
<simple>false</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
<scripts id="ef53357a-6f68-4479-9a05-d37cfb44b6ba">
<properties>
<entry>
<key>defaultValueColumn</key>
<value>
<simple>{"schema":"public","table":"user_list","entity":"user_list","name":"phone"}</simple>
</value>
</entry>
<entry>
<key>loadType</key>
<value>
<simple>null</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="2e66508a-de36-4816-b32c-18f8c7c39830"/>
<scripts id="cd632c24-f994-46fd-a0fd-3d113f9c81c1">
<properties>
<entry>
<key>columnForSave</key>
<value>
<simple>{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"}</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0">
<properties>
<entry>
<key>textFieldService</key>
<value>
<complex>
<entry>
<key>displayColumn</key>
<value>
<simple>{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"}</simple>
</value>
</entry>
<entry>
<key>loadDao</key>
<value>
<complex>
<entry>
<key>graph</key>
<value>
<simple>{"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_list":{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0}</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</entry>
</properties>
</scripts>
<scripts id="bcf7261b-3951-4594-bd3a-92fa96f20a50">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"blockedRegion"</simple>
</value>
</entry>
</properties> </properties>
</scripts> </scripts>
</children> </children>

View file

@ -2280,6 +2280,56 @@
</value> </value>
</entry> </entry>
</complex> </complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="b3545550-6351-47e7-b51e-39ae323a7d53" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setValue"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>objectValue</key>
<value>
<complex>
<entry>
<key>argument</key>
<value>
<simple>null</simple>
</value>
</entry>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d8984d37-f505-4c23-a805-44a44213a4ca","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"getValue"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value> </value>
</entry> </entry>
</complex> </complex>
@ -2360,6 +2410,52 @@
</value> </value>
</entry> </entry>
</properties> </properties>
</scripts>
</children>
<children id="d8984d37-f505-4c23-a805-44a44213a4ca">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>d8984d37-f505-4c23-a805-44a44213a4ca</componentRootId>
<name>Блокировка load_1</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>label</key>
<value>
<simple>"Блокировка load_1"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
<scripts id="ef53357a-6f68-4479-9a05-d37cfb44b6ba"/>
<scripts id="2e66508a-de36-4816-b32c-18f8c7c39830"/>
<scripts id="cd632c24-f994-46fd-a0fd-3d113f9c81c1">
<enabled>false</enabled>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="6d00f861-5645-4cff-8902-bc1d7047d6a4">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"blockedRegion"</simple>
</value>
</entry>
</properties>
</scripts> </scripts>
</children> </children>
<children id="d3196840-53cf-41ab-b00c-678cbf9032ad"> <children id="d3196840-53cf-41ab-b00c-678cbf9032ad">
@ -4059,6 +4155,13 @@
<removed>true</removed> <removed>true</removed>
</children> </children>
</children> </children>
<children id="2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e</componentRootId>
<name>person_id</name>
<container>false</container>
<removed>true</removed>
</children>
</children> </children>
<children id="ad5ed255-1755-47a6-89e0-38e60d2f1018"> <children id="ad5ed255-1755-47a6-89e0-38e60d2f1018">
<prototypeId>b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94</prototypeId> <prototypeId>b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94</prototypeId>
@ -4484,6 +4587,84 @@
<key>fieldName</key> <key>fieldName</key>
<value> <value>
<simple>"personId"</simple> <simple>"personId"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e</componentRootId>
<name>blocked_region</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>cssClasses</key>
<value>
<item id="287616fa-ec3b-475d-a629-f511bde88984" removed="false">
<value>
<simple>"width-full"</simple>
</value>
</item>
</value>
</entry>
<entry>
<key>label</key>
<value>
<simple>"blocked_region"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
<scripts id="ef53357a-6f68-4479-9a05-d37cfb44b6ba">
<properties>
<entry>
<key>defaultValueColumn</key>
<value>
<simple>{"schema":"public","table":"user_list","entity":"user_list","name":"middlename"}</simple>
</value>
</entry>
<entry>
<key>loadType</key>
<value>
<simple>null</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="2e66508a-de36-4816-b32c-18f8c7c39830"/>
<scripts id="cd632c24-f994-46fd-a0fd-3d113f9c81c1">
<properties>
<entry>
<key>columnForSave</key>
<value>
<simple>{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"}</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="1d2946e1-344f-43c9-afd5-ce79791600d4">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"blockedRegion"</simple>
</value> </value>
</entry> </entry>
</properties> </properties>
@ -7497,7 +7678,7 @@
<entry> <entry>
<key>displayName</key> <key>displayName</key>
<value> <value>
<simple>"Активен"</simple> <simple>"Персона активна"</simple>
</value> </value>
</entry> </entry>
<entry> <entry>
@ -7507,7 +7688,74 @@
<entry> <entry>
<key>column</key> <key>column</key>
<value> <value>
<simple>"enabled"</simple> <simple>"personEnabled"</simple>
</value>
</entry>
<entry>
<key>filterType</key>
<value>
<simple>"TEXT"</simple>
</value>
</entry>
<entry>
<key>type</key>
<value>
<simple>"java.lang.String"</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>hidden</key>
<value>
<simple>true</simple>
</value>
</entry>
<entry>
<key>sortable</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="0385b14c-91ef-4f02-8ebf-5d064d3f65ea">
<prototypeId>d4f69cb0-864e-4895-b6fd-152072774909</prototypeId>
<componentRootId>0385b14c-91ef-4f02-8ebf-5d064d3f65ea</componentRootId>
<name>StaticColumn</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="bc6afb28-7884-477d-b425-2c2001be8379">
<properties>
<entry>
<key>valueFormatter</key>
<value>
<implRef type="TS">
<className>DefaultValueFormatter</className>
<packageName>component.grid.formatters</packageName>
</implRef>
</value>
</entry>
</properties>
</scripts>
<scripts id="a930059f-1e14-40ed-a4de-3dec3d03f9a7">
<properties>
<entry>
<key>displayName</key>
<value>
<simple>"Аккаунт активен"</simple>
</value>
</entry>
<entry>
<key>field</key>
<value>
<complex>
<entry>
<key>column</key>
<value>
<simple>"accountEnabled"</simple>
</value> </value>
</entry> </entry>
<entry> <entry>