diff --git a/redaction-service-v1/redaction-service-api-v1/pom.xml b/redaction-service-v1/redaction-service-api-v1/pom.xml index 816402b9..a98f6903 100644 --- a/redaction-service-v1/redaction-service-api-v1/pom.xml +++ b/redaction-service-v1/redaction-service-api-v1/pom.xml @@ -12,7 +12,7 @@ redaction-service-api-v1 - 1.39.0 + 1.70.2 diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java index 983f046c..77ee9094 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java @@ -5,7 +5,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ty import com.iqser.red.service.redaction.v1.server.client.DictionaryClient; import com.iqser.red.service.redaction.v1.server.redaction.model.Dictionary; import com.iqser.red.service.redaction.v1.server.redaction.model.*; -import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder; import feign.FeignException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,13 +35,13 @@ public class DictionaryService { long dossierTemplateDictionaryVersion = dictionaryClient.getVersion(dossierTemplateId); var dossierTemplateDictionary = dictionariesByDossierTemplate.get(dossierTemplateId); if (dossierTemplateDictionary == null || dossierTemplateDictionaryVersion > dossierTemplateDictionary.getDictionaryVersion()) { - updateDictionaryEntry(dossierTemplateId, dossierTemplateDictionaryVersion, null); + updateDictionaryEntry(dossierTemplateId, dossierTemplateDictionaryVersion, getVersion(dossierTemplateDictionary), null); } long dossierDictionaryVersion = dictionaryClient.getVersionForDossier(dossierId); var dossierDictionary = dictionariesByDossier.get(dossierId); if (dossierDictionary == null || dossierDictionaryVersion > dossierDictionary.getDictionaryVersion()) { - updateDictionaryEntry(dossierTemplateId, dossierDictionaryVersion, dossierId); + updateDictionaryEntry(dossierTemplateId, dossierDictionaryVersion, getVersion(dossierDictionary), dossierId); } return DictionaryVersion.builder().dossierTemplateVersion(dossierTemplateDictionaryVersion).dossierVersion(dossierDictionaryVersion).build(); @@ -78,7 +77,7 @@ public class DictionaryService { } - private void updateDictionaryEntry(String dossierTemplateId, long version, String dossierId) { + private void updateDictionaryEntry(String dossierTemplateId, long version, Long currentVersion, String dossierId) { try { DictionaryRepresentation dictionaryRepresentation = new DictionaryRepresentation(); @@ -89,7 +88,7 @@ public class DictionaryService { List dictionary = typeResponse .stream() .map(t -> new DictionaryModel(t.getType(), t.getRank(), convertColor(t.getHexColor()), t.isCaseInsensitive(), t - .isHint(), t.isRecommendation(), convertEntries(t.getId()), new HashSet<>(), dossierId != null)) + .isHint(), t.isRecommendation(), convertEntries(t.getId(), currentVersion), new HashSet<>(), dossierId != null)) .sorted(Comparator.comparingInt(DictionaryModel::getRank).reversed()) .collect(Collectors.toList()); @@ -118,9 +117,9 @@ public class DictionaryService { } - private Set convertEntries(String typeId) { + private Set convertEntries(String typeId, Long fromVersion) { - var type = dictionaryClient.getDictionaryForType(typeId); + var type = dictionaryClient.getDictionaryForType(typeId, fromVersion); Set entries = new HashSet<>(type .getEntries()); @@ -219,4 +218,11 @@ public class DictionaryService { return dictionariesByDossierTemplate.get(dossierTemplateId).getRequestAddColor(); } + private Long getVersion(DictionaryRepresentation dictionaryRepresentation) { + if (dictionaryRepresentation == null) { + return null; + } else { + return dictionaryRepresentation.getDictionaryVersion(); + } + } }