SUPPORT-8696: Fix

This commit is contained in:
Eduard Tihomirov 2025-04-01 09:52:19 +03:00
parent 1efceb1b5c
commit 0246bc2e0a
2 changed files with 11 additions and 17 deletions

View file

@ -1,6 +1,7 @@
package ru.micord.ervu.account_applications.service;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.jooq.Record2;
@ -21,16 +22,16 @@ public class ErvuDirectoriesDaoService {
@Autowired
private ErvuDirectoriesDao ervuDirectoriesDao;
@Cacheable(value = "role-ids", unless = "#result == null")
public List<String> getRoleIds() {
return ervuDirectoriesDao.getRoleIds();
}
@Cacheable(value = "domain-ids", unless = "#result == null")
public Result<Record2<UUID, String>> getDomainIds() {
return ervuDirectoriesDao.getDomainIds();
public Map<String, UUID> getDomainIds() {
return ervuDirectoriesDao.getDomainIds().intoMap(Record2::value2, Record2::value1);
}
@Cacheable(value = "role-ids", unless = "#result == null")
public UserApplicationRoleRecord getRoleRecord() {
return ervuDirectoriesDao.getRoleRecord();
}

View file

@ -6,12 +6,9 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.jooq.Record2;
import org.jooq.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -97,7 +94,7 @@ public class ErvuDirectoriesService {
private void upsertRecruitmentData(List<RecruitmentResponse.Data> dataList) {
List<RecruitmentRecord> newRecruitmentRecords = new ArrayList<>();
List<RecruitmentRecord> recruitmentRecords = new ArrayList<>();
Result<Record2<UUID, String>> ids = ervuDirectoriesDaoService.getDomainIds();
Map<String, UUID> ids = ervuDirectoriesDaoService.getDomainIds();
dataList.forEach(data -> {
Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(data.getModified()));
Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(data.getCreateDate()));
@ -136,16 +133,12 @@ public class ErvuDirectoriesService {
recruitmentRecord.setCreatedAt(createdAt);
recruitmentRecord.setUpdatedAt(updatedAt);
recruitmentRecord.setTs(new Timestamp(System.currentTimeMillis()));
boolean isExisting = false;
for (Record2<UUID, String> resultRecord : ids) {
if (resultRecord.get(RECRUITMENT.IDM_ID).equals(recruitmentRecord.getIdmId())) {
recruitmentRecord.setId(resultRecord.get(RECRUITMENT.ID));
recruitmentRecords.add(recruitmentRecord);
isExisting = true;
break;
}
String idmId = recruitmentRecord.getIdmId();
if (ids.containsKey(idmId)) {
recruitmentRecord.setId(ids.get(idmId));
recruitmentRecords.add(recruitmentRecord);
}
if (!isExisting) {
else {
newRecruitmentRecords.add(recruitmentRecord);
}
});