From 0b2d067c931e28133ef31351c0cbdf35ddb01afe Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Thu, 4 Apr 2024 11:43:55 +0300 Subject: [PATCH] RED-8727 - Add rank de-duplication to migration - add more logs and change the save to saveAndFlush when updating a type Signed-off-by: Corina Olariu --- .../v1/processor/migration/RankDeDuplicationService.java | 7 ++++--- .../service/persistence/DictionaryPersistenceService.java | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/RankDeDuplicationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/RankDeDuplicationService.java index 97cdb2b71..0769cbfdb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/RankDeDuplicationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/RankDeDuplicationService.java @@ -39,6 +39,7 @@ public class RankDeDuplicationService { private void deduplicate(String dossierTemplateId) { + log.info("deduplicate for dossierTemplateID: {}", dossierTemplateId); List allDossierTemplateTypes = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, false); TreeMap> typesSortedByRank = new TreeMap<>(allDossierTemplateTypes.stream() .collect(Collectors.groupingBy(TypeEntity::getRank, Collectors.toList()))); @@ -47,9 +48,9 @@ public class RankDeDuplicationService { // we create a map with every rank that needs to be updated and the value is the starting point for that rank Map rankToNewRankUpdateMap = new TreeMap<>(Collections.reverseOrder()); for (var typesByRankEntry : typesSortedByRank.entrySet()) { - log.debug(" {} - {}", typesByRankEntry.getKey(), typesByRankEntry.getValue().size()); + log.info(" {} - {}", typesByRankEntry.getKey(), typesByRankEntry.getValue().size()); typesByRankEntry.getValue() - .forEach(t -> log.debug("type: {} - dtId: {} - dId: {}", t.getType(), t.getDossierTemplateId(), t.getDossierId())); + .forEach(t -> log.info("type: {} - dtId: {} - dId: {} typeId: {}", t.getType(), t.getDossierTemplateId(), t.getDossierId(), t.getId())); if (typesByRankEntry.getValue().size() > 1) { if (typesByRankEntry.getKey() > lastRankOk) { @@ -74,7 +75,7 @@ public class RankDeDuplicationService { for (TypeEntity t : typesSortedByRank.get(rankToUpdateEntry.getKey())) { if (newRank != t.getRank()) { - log.info("Type {} with rank: {} will be updated to rank: {}", t.getType(), t.getRank(), newRank); + log.info("Type {} with rank: {} will be updated to rank: {} - typeId {}", t.getType(), t.getRank(), newRank, t.getId()); t.setRank(newRank); dictionaryPersistenceService.updateType(t.getId(), t); var dossierTypes = dictionaryPersistenceService.getAllDossierTypesForDossierTemplateAndType(dossierTemplateId, t.getType(), false); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index b20076c12..d475fa635 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -90,7 +90,7 @@ public class DictionaryPersistenceService { if (!existingTypesForRank.isEmpty()) { for (var existingTypeValueForRank : existingTypesForRank) { if (!existingTypeValueForRank.isDeleted() && !existingTypeValueForRank.getType().equalsIgnoreCase(type)) { - throw new ConflictException("Rank already exists: " + rank + " on type: " + existingTypeValueForRank.getType()); + throw new ConflictException("Rank already exists: " + rank + " on type: " + existingTypeValueForRank.getType() + " type id: " + existingTypeValueForRank.getId()); } } } @@ -140,7 +140,7 @@ public class DictionaryPersistenceService { "version", "dossierDictionaryOnly"); } - typeRepository.save(type); + typeRepository.saveAndFlush(type); }); }