From 63a395d6ab86379bc090c78db94651c384d078fb Mon Sep 17 00:00:00 2001 From: Zaripov Emil Date: Thu, 13 Mar 2025 14:29:50 +0300 Subject: [PATCH] sync --- README.md | 2 - .../public_/tables/UserApplicationRole.java | 6 + .../records/UserApplicationRoleRecord.java | 19 +- .../model/RecruitmentApiResponse.java | 376 ++++++++++++++++++ .../model/RoleApiResponse.java | 97 +++++ .../service/ErvuDirectoriesService.java | 218 ++++++++++ .../ErvuDirectoriesUpdateShedulerService.java | 40 ++ .../20250312-SUPPORT-8696_add_column_role.xml | 16 + .../resources/config/v_1.0/changelog-1.0.xml | 1 + .../Создать заявку на деактивацию.page | 4 +- .../Создать заявку на изменение.page | 13 +- .../Создать заявку на сброс пароля.page | 4 +- 12 files changed, 782 insertions(+), 14 deletions(-) create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/model/RecruitmentApiResponse.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/model/RoleApiResponse.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java create mode 100644 backend/src/main/resources/config/v_1.0/20250312-SUPPORT-8696_add_column_role.xml diff --git a/README.md b/README.md index 4b08dca4..acbeeb3d 100644 --- a/README.md +++ b/README.md @@ -222,5 +222,3 @@ mvn webbpm:update-package -DexecuteNpmInstall=false -Dpath=resources- { */ public final TableField UPDATED = createField(DSL.name("updated"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, "Дата и время последнего обновления записи"); + /** + * The column public.user_application_role.finished. Дата и + * время окончания действия роли + */ + public final TableField FINISHED = createField(DSL.name("finished"), SQLDataType.TIMESTAMP(0), 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 0af23185..96e8e741 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 @@ -84,6 +84,22 @@ public class UserApplicationRoleRecord extends UpdatableRecordImplpublic.user_application_role.finished. Дата и + * время окончания действия роли + */ + public void setFinished(Timestamp value) { + set(4, value); + } + + /** + * Getter for public.user_application_role.finished. Дата и + * время окончания действия роли + */ + public Timestamp getFinished() { + return (Timestamp) get(4); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -107,13 +123,14 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl records; + + public int getTotalRows() { + return totalRows; + } + + public void setTotalRows(int totalRows) { + this.totalRows = totalRows; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getPerPage() { + return perPage; + } + + public void setPerPage(int perPage) { + this.perPage = perPage; + } + + public List getRecords() { + return records; + } + + public void setRecords( + List records) { + this.records = records; + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Record { + private String id; + private int version; + private String schema; + private String shortname; + private String fullname; + private String dns; + private String email; + private String phone; + private String address; + private String postalAddress; + private String nsiDepartmentId; + private String nsiOrganizationId; + private String oktmo; + private String orgOgrn; + private String depOgrn; + private String epguId; + private String kpp; + private String inn; + private String okato; + private String divisionType; + private String tnsDepartmentId; + private Boolean enabled; + private String timezone; + private Boolean reportsEnabled; + private String subpoenaSeriesCode; + private String addressId; + private String postalAddressId; + private String militaryCode; + private Long createDate; + private Long modified; + private ParentRecord parent; + private RegionInfo regionInfo; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + public String getSchema() { + return schema; + } + + public void setSchema(String schema) { + this.schema = schema; + } + + public String getShortname() { + return shortname; + } + + public void setShortname(String shortname) { + this.shortname = shortname; + } + + public String getFullname() { + return fullname; + } + + public void setFullname(String fullname) { + this.fullname = fullname; + } + + public String getDns() { + return dns; + } + + public void setDns(String dns) { + this.dns = dns; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPostalAddress() { + return postalAddress; + } + + public void setPostalAddress(String postalAddress) { + this.postalAddress = postalAddress; + } + + public String getNsiDepartmentId() { + return nsiDepartmentId; + } + + public void setNsiDepartmentId(String nsiDepartmentId) { + this.nsiDepartmentId = nsiDepartmentId; + } + + public String getNsiOrganizationId() { + return nsiOrganizationId; + } + + public void setNsiOrganizationId(String nsiOrganizationId) { + this.nsiOrganizationId = nsiOrganizationId; + } + + public String getOktmo() { + return oktmo; + } + + public void setOktmo(String oktmo) { + this.oktmo = oktmo; + } + + public String getOrgOgrn() { + return orgOgrn; + } + + public void setOrgOgrn(String orgOgrn) { + this.orgOgrn = orgOgrn; + } + + public String getDepOgrn() { + return depOgrn; + } + + public void setDepOgrn(String depOgrn) { + this.depOgrn = depOgrn; + } + + public String getEpguId() { + return epguId; + } + + public void setEpguId(String epguId) { + this.epguId = epguId; + } + + public String getKpp() { + return kpp; + } + + public void setKpp(String kpp) { + this.kpp = kpp; + } + + public String getInn() { + return inn; + } + + public void setInn(String inn) { + this.inn = inn; + } + + public String getOkato() { + return okato; + } + + public void setOkato(String okato) { + this.okato = okato; + } + + public String getDivisionType() { + return divisionType; + } + + public void setDivisionType(String divisionType) { + this.divisionType = divisionType; + } + + public String getTnsDepartmentId() { + return tnsDepartmentId; + } + + public void setTnsDepartmentId(String tnsDepartmentId) { + this.tnsDepartmentId = tnsDepartmentId; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getTimezone() { + return timezone; + } + + public void setTimezone(String timezone) { + this.timezone = timezone; + } + + public Boolean getReportsEnabled() { + return reportsEnabled; + } + + public void setReportsEnabled(Boolean reportsEnabled) { + this.reportsEnabled = reportsEnabled; + } + + public ParentRecord getParent() { + return parent; + } + + public void setParent(ParentRecord parent) { + this.parent = parent; + } + + public RegionInfo getRegionInfo() { + return regionInfo; + } + + public void setRegionInfo( + RegionInfo regionInfo) { + this.regionInfo = regionInfo; + } + + public String getSubpoenaSeriesCode() { + return subpoenaSeriesCode; + } + + public void setSubpoenaSeriesCode(String subpoenaSeriesCode) { + this.subpoenaSeriesCode = subpoenaSeriesCode; + } + + public String getAddressId() { + return addressId; + } + + public void setAddressId(String addressId) { + this.addressId = addressId; + } + + public String getPostalAddressId() { + return postalAddressId; + } + + public void setPostalAddressId(String postalAddressId) { + this.postalAddressId = postalAddressId; + } + + public String getMilitaryCode() { + return militaryCode; + } + + public void setMilitaryCode(String militaryCode) { + this.militaryCode = militaryCode; + } + + public Long getCreateDate() { + return createDate; + } + + public void setCreateDate(Long createDate) { + this.createDate = createDate; + } + + public Long getModified() { + return modified; + } + + public void setModified(Long modified) { + this.modified = modified; + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ParentRecord { + private String id; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RegionInfo { + private String regionId; + private String regionCode; + + public String getRegionId() { + return regionId; + } + + public void setRegionId(String regionId) { + this.regionId = regionId; + } + + public String getRegionCode() { + return regionCode; + } + + public void setRegionCode(String regionCode) { + this.regionCode = regionCode; + } + } + } +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleApiResponse.java b/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleApiResponse.java new file mode 100644 index 00000000..571705f5 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/model/RoleApiResponse.java @@ -0,0 +1,97 @@ +package ru.micord.ervu.account_applications.model; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * @author Eduard Tihomirov + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class RoleApiResponse { + private int totalRows; + private int page; + private int perPage; + private List records; + + public int getTotalRows() { + return totalRows; + } + + public void setTotalRows(int totalRows) { + this.totalRows = totalRows; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getPerPage() { + return perPage; + } + + public void setPerPage(int perPage) { + this.perPage = perPage; + } + + public List getRecords() { + return records; + } + + public void setRecords( + List records) { + this.records = records; + } + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Record { + private String id; + private String displayName; + private Long createDate; + private Long modified; + private Long finish; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public Long getCreateDate() { + return createDate; + } + + public void setCreateDate(Long createDate) { + this.createDate = createDate; + } + + public Long getModified() { + return modified; + } + + public void setModified(Long modified) { + this.modified = modified; + } + + public Long getFinish() { + return finish; + } + + public void setFinish(Long finish) { + this.finish = finish; + } + } +} 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 new file mode 100644 index 00000000..475a9dcb --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesService.java @@ -0,0 +1,218 @@ +package ru.micord.ervu.account_applications.service; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.sql.Timestamp; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.jooq.DSLContext; +import org.jooq.Record2; +import org.jooq.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Service; +import ru.micord.ervu.account_applications.db_beans.public_.tables.records.RecruitmentRecord; +import ru.micord.ervu.account_applications.db_beans.public_.tables.records.UserApplicationRoleRecord; +import ru.micord.ervu.account_applications.model.RecruitmentApiResponse; +import ru.micord.ervu.account_applications.model.RoleApiResponse; + +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 + */ +@Service +public class ErvuDirectoriesService { + + @Value("${ervu.http.timeout:30}") + private int httpTimeout; + @Value("${ervu.url}") + private String ervuUrl; + @Value("${ervu.page.size:50}") + private Integer perPage; + + @Autowired + private DSLContext dsl; + + @Autowired + private ObjectMapper objectMapper; + + public void updateDirectories() { + fetchAndUpsetRecruitmentData(); + fetchAndUpsetRoleData(); + } + + public void fetchAndUpsetRecruitmentData() { + int page = 1; + boolean hasMorePages; + Result> ids = dsl.select(RECRUITMENT.ID, RECRUITMENT.IDM_ID).from(RECRUITMENT).fetch(); + try { + do { + String url = ervuUrl + + "/service/idm/domains?query=schema%3Din%3D%28Organization%2CDepartment%29&expand=parent&page=" + + page + "&perPage=" + perPage; + HttpRequest getReqDoc = HttpRequest.newBuilder(URI.create(url)) + .header(HttpHeaders.CONTENT_TYPE, "application/json") + .GET() + .timeout(Duration.ofSeconds(httpTimeout)) + .build(); + HttpResponse getRespDoc = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(httpTimeout)) + .build() + .send(getReqDoc, HttpResponse.BodyHandlers.ofString()); + + RecruitmentApiResponse recruitmentApiResponse = objectMapper.readValue(getRespDoc.body(), + RecruitmentApiResponse.class + ); + if (recruitmentApiResponse != null && recruitmentApiResponse.getRecords() != null) { + upsertRecruitmentData(recruitmentApiResponse.getRecords(), ids); + hasMorePages = recruitmentApiResponse.getRecords().size() + == perPage; + } + else { + hasMorePages = false; + } + page++; + } + while (hasMorePages); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + private void upsertRecruitmentData(List recordList, Result> ids) { + List newRecruitmentRecords = new ArrayList<>(); + List recruitmentRecords = new ArrayList<>(); + recordList.forEach(record -> { + Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(record.getModified())); + Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(record.getCreateDate())); + RecruitmentRecord recruitmentRecord = dsl.newRecord(RECRUITMENT); + recruitmentRecord.setIdmId(record.getId()); + recruitmentRecord.setVersion(record.getVersion()); + recruitmentRecord.setSchema(record.getSchema()); + recruitmentRecord.setShortname(record.getShortname()); + recruitmentRecord.setFullname(record.getFullname()); + recruitmentRecord.setDns(record.getDns()); + recruitmentRecord.setEmail(record.getEmail()); + recruitmentRecord.setPhone(record.getPhone()); + recruitmentRecord.setAddress(record.getAddress()); + recruitmentRecord.setPostalAddress(record.getPostalAddress()); + recruitmentRecord.setNsiDepartmentId(record.getNsiDepartmentId()); + recruitmentRecord.setNsiOrganizationId(record.getNsiOrganizationId()); + recruitmentRecord.setOktmo(record.getOktmo()); + recruitmentRecord.setOrgOgrn(record.getOrgOgrn()); + recruitmentRecord.setDepOgrn(record.getDepOgrn()); + recruitmentRecord.setEpguId(record.getEpguId()); + recruitmentRecord.setKpp(record.getKpp()); + recruitmentRecord.setInn(record.getInn()); + recruitmentRecord.setOkato(record.getOkato()); + recruitmentRecord.setDivisionType(record.getDivisionType()); + recruitmentRecord.setTnsDepartmentId(record.getTnsDepartmentId()); + recruitmentRecord.setEnabled(record.getEnabled()); + recruitmentRecord.setTimezone(record.getTimezone()); + recruitmentRecord.setReportsEnabled(record.getReportsEnabled()); + recruitmentRecord.setParentId(record.getParent() != null ? record.getParent().getId() : null); + recruitmentRecord.setSubpoenaSeriesCode(record.getSubpoenaSeriesCode()); + recruitmentRecord.setAddressId(record.getAddressId()); + recruitmentRecord.setPostalAddressId(record.getPostalAddressId()); + recruitmentRecord.setRegionId(record.getRegionInfo() != null ? record.getRegionInfo().getRegionId() : null); + recruitmentRecord.setRegionCode(record.getRegionInfo() != null ? record.getRegionInfo().getRegionCode() : null); + recruitmentRecord.setMilitaryCode(record.getMilitaryCode()); + recruitmentRecord.setCreatedAt(createdAt); + recruitmentRecord.setUpdatedAt(updatedAt); + boolean isExisting = false; + for (Record2 resultRecord : ids) { + if (resultRecord.get(RECRUITMENT.IDM_ID).equals(recruitmentRecord.getIdmId())) { + recruitmentRecord.setId(resultRecord.get(RECRUITMENT.ID)); + recruitmentRecords.add(recruitmentRecord); + isExisting = true; + break; + } + } + if (!isExisting) { + newRecruitmentRecords.add(recruitmentRecord); + } + }); + dsl.batchInsert(newRecruitmentRecords).execute(); + dsl.batchUpdate(recruitmentRecords).execute(); + } + + public void fetchAndUpsetRoleData() { + int page = 1; + boolean hasMorePages; + List ids = dsl.select(USER_APPLICATION_ROLE.USER_ROLE_ID) + .from(USER_APPLICATION_ROLE) + .fetch(USER_APPLICATION_ROLE.USER_ROLE_ID); + try { + do { + String url = ervuUrl + + "/service/idm/roles?query=ervuRole%3Dlike%3Dtrue&expand=parent&page=" + + page + "&perPage=" + perPage; + HttpRequest getReqDoc = HttpRequest.newBuilder(URI.create(url)) + .header(HttpHeaders.CONTENT_TYPE, "application/json") + .GET() + .timeout(Duration.ofSeconds(httpTimeout)) + .build(); + HttpResponse getRespDoc = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(httpTimeout)) + .build() + .send(getReqDoc, HttpResponse.BodyHandlers.ofString()); + + RoleApiResponse roleApiResponse = objectMapper.readValue(getRespDoc.body(), + RoleApiResponse.class + ); + if (roleApiResponse != null && roleApiResponse.getRecords() != null) { + upsertRoleData(roleApiResponse.getRecords(), ids); + hasMorePages = roleApiResponse.getRecords().size() + == perPage; + } + else { + hasMorePages = false; + } + page++; + } + while (hasMorePages); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + private void upsertRoleData(List recordList, List ids) { + List newRoleRecords = new ArrayList<>(); + List roleRecords = new ArrayList<>(); + recordList.forEach(record -> { + Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(record.getModified())); + Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(record.getCreateDate())); + Timestamp finishAt = null; + if (record.getFinish() != null) { + finishAt = Timestamp.from(Instant.ofEpochSecond(record.getFinish())); + } + UserApplicationRoleRecord roleRecord = dsl.newRecord(USER_APPLICATION_ROLE); + roleRecord.setUserRoleId(record.getId()); + roleRecord.setRoleName(record.getDisplayName()); + roleRecord.setCreated(createdAt); + roleRecord.setUpdated(updatedAt); + roleRecord.setFinished(finishAt); + if (ids.contains(record.getId())) { + roleRecords.add(roleRecord); + } + else { + newRoleRecords.add(roleRecord); + } + }); + dsl.batchInsert(newRoleRecords).execute(); + dsl.batchUpdate(roleRecords).execute(); + } + +} 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 new file mode 100644 index 00000000..95a5fbd0 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateShedulerService.java @@ -0,0 +1,40 @@ +package ru.micord.ervu.account_applications.service; + +import javax.annotation.PostConstruct; + +import net.javacrumbs.shedlock.core.SchedulerLock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import static org.springframework.scheduling.config.ScheduledTaskRegistrar.CRON_DISABLED; + +/** + * @author Eduard Tihomirov + */ +@Service +public class ErvuDirectoriesUpdateShedulerService { + + @Autowired + private ErvuDirectoriesService ervuDirectoriesService; + + @Value("${directory.update.cron:0 0 */1 * * *}") + private String cronLoad; + + @PostConstruct + @Transactional + public void init() { + if (!cronLoad.equals(CRON_DISABLED)) { + run(); + } + } + + @Scheduled(cron = "${directory.update.cron:0 0 */1 * * *}") + @SchedulerLock(name = "updateDirectories") + @Transactional + public void run() { + ervuDirectoriesService.updateDirectories(); + } +} diff --git a/backend/src/main/resources/config/v_1.0/20250312-SUPPORT-8696_add_column_role.xml b/backend/src/main/resources/config/v_1.0/20250312-SUPPORT-8696_add_column_role.xml new file mode 100644 index 00000000..63a44162 --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/20250312-SUPPORT-8696_add_column_role.xml @@ -0,0 +1,16 @@ + + + + + add finished + + ALTER TABLE IF EXISTS public.user_application_role ADD COLUMN IF NOT EXISTS finished TIMESTAMP WITHOUT TIME ZONE; + COMMENT ON COLUMN public.user_application_role.finished IS 'Дата и время окончания действия роли'; + + + + \ No newline at end of file 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 3f83239e..71941a63 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 @@ -14,6 +14,7 @@ + diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page index 05036a25..79656bfa 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на деактивацию.page @@ -2493,7 +2493,7 @@ method - "setValue" + "setValueByBusinessId" @@ -5616,7 +5616,7 @@ businessIdColumn - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на изменение.page index 1ac5a5d0..bdc09c87 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 @@ -2522,7 +2521,7 @@ method - "setValue" + "setValueByBusinessId" @@ -3022,7 +3021,7 @@ method - "setValue" + "setValueByBusinessId" @@ -3623,7 +3622,7 @@ method - "setValue" + "setValueByBusinessId" @@ -5293,7 +5292,7 @@ businessIdColumn - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} @@ -9219,7 +9218,7 @@ businessIdColumn - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} @@ -13432,7 +13431,7 @@ businessIdColumn - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"} diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page index 0ab2cf3d..300a3b04 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на сброс пароля.page @@ -2493,7 +2493,7 @@ method - "setValue" + "setValueByBusinessId" @@ -5617,7 +5617,7 @@ businessIdColumn - {"schema":"public","table":"recruitment","entity":"recruitment","name":"fullname"} + {"schema":"public","table":"recruitment","entity":"recruitment","name":"idm_id"}