SUPPORT-9422: edit for a new format

This commit is contained in:
adel.ka 2025-09-22 12:29:11 +03:00
parent 9476bd4d3f
commit dfbb9b712d
18 changed files with 53 additions and 40 deletions

View file

@ -1,5 +1,6 @@
package ru.micord.ervu.account_applications.dao; package ru.micord.ervu.account_applications.dao;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -83,11 +84,11 @@ public abstract class AbstractDataDao<T extends UpdatableRecord<T>> {
.fetch(selectField); .fetch(selectField);
} }
protected <V, F> void setFieldByField(Field<V> targetField, V value, Field<F> whereField, protected <V, F> void setFieldWhereIn(Field<V> targetField, V value, Field<F> whereField,
F whereValue) { Collection<F> whereValues) {
dsl.update(getTable()) dsl.update(getTable())
.set(targetField, value) .set(targetField, value)
.where(whereField.eq(whereValue)) .where(whereField.in(whereValues))
.execute(); .execute();
} }

View file

@ -78,8 +78,11 @@ public class RecruitmentDao extends AbstractDataDao<RecruitmentRecord> {
return getValueByField(Recruitment.RECRUITMENT.ID, Recruitment.RECRUITMENT.IDM_ID, idmId); return getValueByField(Recruitment.RECRUITMENT.ID, Recruitment.RECRUITMENT.IDM_ID, idmId);
} }
public void setActiveStatus(String id, boolean active) { public void setActiveStatus(List<String> ids, boolean active) {
setFieldByField(Recruitment.RECRUITMENT.ACTIVE, active, Recruitment.RECRUITMENT.IDM_ID, id); setFieldWhereIn(
Recruitment.RECRUITMENT.ACTIVE, active,
Recruitment.RECRUITMENT.IDM_ID, ids
);
} }
public boolean exists(Long appNumber, String domainId, boolean checkParents) { public boolean exists(Long appNumber, String domainId, boolean checkParents) {

View file

@ -1,5 +1,7 @@
package ru.micord.ervu.account_applications.dao; package ru.micord.ervu.account_applications.dao;
import java.util.List;
import org.jooq.DSLContext; import org.jooq.DSLContext;
import org.jooq.Table; import org.jooq.Table;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -21,10 +23,10 @@ public class RoleDao extends AbstractDataDao<UserApplicationRoleRecord> {
return Tables.USER_APPLICATION_ROLE; return Tables.USER_APPLICATION_ROLE;
} }
public void setActiveStatus(String id, boolean active) { public void setActiveStatus(List<String> ids, boolean active) {
setFieldByField( setFieldWhereIn(
Tables.USER_APPLICATION_ROLE.ACTIVE, active, Tables.USER_APPLICATION_ROLE.ACTIVE, active,
Tables.USER_APPLICATION_ROLE.USER_ROLE_ID, id Tables.USER_APPLICATION_ROLE.USER_ROLE_ID, ids
); );
} }
} }

View file

@ -1,6 +1,8 @@
package ru.micord.ervu.account_applications.dao; package ru.micord.ervu.account_applications.dao;
import java.util.List;
import org.jooq.DSLContext; import org.jooq.DSLContext;
import org.jooq.Table; import org.jooq.Table;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -16,8 +18,11 @@ public class SolutionDao extends AbstractDataDao<SolutionRecord> {
super(dsl); super(dsl);
} }
public void setActiveStatus(String id, boolean active) { public void setActiveStatus(List<String> ids, boolean active) {
setFieldByField(Tables.SOLUTION.ACTIVE, active, Tables.SOLUTION.ID, id); setFieldWhereIn(
Tables.SOLUTION.ACTIVE, active,
Tables.SOLUTION.ID, ids
);
} }
@Override @Override

View file

@ -1,5 +1,7 @@
package ru.micord.ervu.account_applications.kafka.model; package ru.micord.ervu.account_applications.kafka.model;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import ru.micord.ervu.account_applications.model.ReferenceEntity; import ru.micord.ervu.account_applications.model.ReferenceEntity;
@ -9,13 +11,13 @@ import ru.micord.ervu.account_applications.model.ReferenceEntity;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class ChangeActiveMessage { public class ChangeActiveMessage {
private boolean success; private boolean success;
private ReferenceEntity data; private List<String> data;
public ReferenceEntity getData() { public List<String> getData() {
return data; return data;
} }
public void setData(ReferenceEntity data) { public void setData(List<String> data) {
this.data = data; this.data = data;
} }

View file

@ -15,6 +15,7 @@ import org.springframework.context.annotation.DependsOn;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import ru.micord.ervu.account_applications.exception.IdmDirectoriesException; import ru.micord.ervu.account_applications.exception.IdmDirectoriesException;
@ -98,13 +99,13 @@ public class ErvuDirectoriesService {
ChangeActiveMessage.class ChangeActiveMessage.class
); );
if (changeActiveMessage.isSuccess() && changeActiveMessage.getData() != null) { if (changeActiveMessage.isSuccess() && !CollectionUtils.isEmpty(changeActiveMessage.getData())) {
DataProcessor<T, ?> processor = (DataProcessor<T, ?>) dataProcessors.get(entityClass); DataProcessor<T, ?> processor = (DataProcessor<T, ?>) dataProcessors.get(entityClass);
if (processor == null) { if (processor == null) {
throw new IllegalStateException("No processor found for " + entityClass.getSimpleName()); throw new IllegalStateException("No processor found for " + entityClass.getSimpleName());
} }
processor.changeActiveStatus(changeActiveMessage.getData().getId(), active); processor.changeActiveStatus(changeActiveMessage.getData(), active);
} }
} }
catch (Exception e) { catch (Exception e) {

View file

@ -1,12 +1,14 @@
package ru.micord.ervu.account_applications.service.processor; package ru.micord.ervu.account_applications.service.processor;
import java.util.List;
/** /**
* @author Adel Kalimullin * @author Adel Kalimullin
*/ */
public interface DataProcessor<T, R> { public interface DataProcessor<T, R> {
void upsertData(T data); void upsertData(T data);
void changeActiveStatus(String id, boolean active); void changeActiveStatus(List<String> ids, boolean active);
Class<T> getType(); Class<T> getType();

View file

@ -54,7 +54,7 @@ public class RecruitmentIpProcessor
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }

View file

@ -2,6 +2,7 @@ package ru.micord.ervu.account_applications.service.processor.impl;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.Instant; import java.time.Instant;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -56,8 +57,8 @@ public class RecruitmentProcessor implements DataProcessor<RecruitmentData, Recr
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
dao.setActiveStatus(id, active); dao.setActiveStatus(ids, active);
} }
@Override @Override

View file

@ -57,7 +57,7 @@ public class RecruitmentSolutionProcessor
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }

View file

@ -4,6 +4,7 @@ package ru.micord.ervu.account_applications.service.processor.impl;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.Instant; import java.time.Instant;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -41,8 +42,8 @@ public class RoleProcessor implements DataProcessor<RoleData, UserApplicationRol
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
dao.setActiveStatus(id, active); dao.setActiveStatus(ids, active);
} }
@Override @Override

View file

@ -2,6 +2,7 @@ package ru.micord.ervu.account_applications.service.processor.impl;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.Instant; import java.time.Instant;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -40,8 +41,8 @@ public class SolutionProcessor implements DataProcessor<SolutionData, SolutionRe
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
dao.setActiveStatus(id, active); dao.setActiveStatus(ids, active);
} }
@Override @Override

View file

@ -57,7 +57,7 @@ public class SolutionRoleProcessor
} }
@Override @Override
public void changeActiveStatus(String id, boolean active) { public void changeActiveStatus(List<String> ids, boolean active) {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }

View file

@ -1974,7 +1974,7 @@
<entry> <entry>
<key>graph</key> <key>graph</key>
<value> <value>
<simple>{"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}</simple> <simple>{"conditionGroup":{"operator":"AND","conditions":[{"column":{"schema":"public","table":"recruitment","entity":"recruitment","name":"active"},"operation":"EQUAL","typeCode":"CONST","values":["true"]}],"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}</simple>
</value> </value>
</entry> </entry>
<entry> <entry>

View file

@ -6485,7 +6485,7 @@
<entry> <entry>
<key>graph</key> <key>graph</key>
<value> <value>
<simple>{"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}</simple> <simple>{"conditionGroup":{"operator":"AND","conditions":[{"column":{"schema":"public","table":"recruitment","entity":"recruitment","name":"active"},"operation":"EQUAL","typeCode":"CONST","values":["true"]}],"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}</simple>
</value> </value>
</entry> </entry>
<entry> <entry>

View file

@ -3611,6 +3611,7 @@
<componentRootId>6421e53c-2223-477f-bfb8-f6acaa4935b5</componentRootId> <componentRootId>6421e53c-2223-477f-bfb8-f6acaa4935b5</componentRootId>
<name>Hbox</name> <name>Hbox</name>
<container>true</container> <container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f"/> <scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f"/>
<scripts id="b6068710-0f31-48ec-8e03-c0c1480a40c0"/> <scripts id="b6068710-0f31-48ec-8e03-c0c1480a40c0"/>
@ -6064,7 +6065,6 @@
<componentRootId>ec35c0af-f0ca-486b-953a-ed607a05ac70</componentRootId> <componentRootId>ec35c0af-f0ca-486b-953a-ed607a05ac70</componentRootId>
<name>Dialog</name> <name>Dialog</name>
<container>true</container> <container>true</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>
@ -6305,7 +6305,7 @@
<entry> <entry>
<key>graph</key> <key>graph</key>
<value> <value>
<simple>{"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}</simple> <simple>{"conditionGroup":{"operator":"AND","conditions":[{"column":{"schema":"public","table":"recruitment","entity":"recruitment","name":"active"},"operation":"EQUAL","typeCode":"CONST","values":["true"]}],"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}</simple>
</value> </value>
</entry> </entry>
<entry> <entry>

View file

@ -6312,7 +6312,7 @@
<entry> <entry>
<key>graph</key> <key>graph</key>
<value> <value>
<simple>{"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}</simple> <simple>{"conditionGroup":{"operator":"AND","conditions":[{"column":{"schema":"public","table":"recruitment","entity":"recruitment","name":"active"},"operation":"EQUAL","typeCode":"CONST","values":["true"]}],"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}</simple>
</value> </value>
</entry> </entry>
<entry> <entry>