diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/VersionsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/VersionsController.java index 35cce5ac1..af36f1e29 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/VersionsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/VersionsController.java @@ -33,8 +33,7 @@ public class VersionsController implements VersionsResource { var result = new HashMap(); dossierTemplateIds.forEach(rsId -> { - VersionsResponse response = new VersionsResponse(dictionaryPersistenceService.getVersion(rsId), - rulesPersistenceService.getRules(rsId, RuleFileType.ENTITY).getVersion()); + VersionsResponse response = new VersionsResponse(dictionaryPersistenceService.getVersion(rsId), rulesPersistenceService.getVersion(rsId, RuleFileType.ENTITY)); result.put(rsId, response); }); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java index 2e96b8f7a..405d28ab5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java @@ -14,7 +14,6 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; @@ -153,8 +152,8 @@ public class ReanalysisRequiredStatusService { var versions = new HashMap(); - versions.put(RULES, getRulesVersion(dossierTemplateId, RuleFileType.ENTITY)); - versions.put(COMPONENT_RULES, getRulesVersion(dossierTemplateId, RuleFileType.COMPONENT)); + versions.put(RULES, rulesPersistenceService.getVersion(dossierTemplateId, RuleFileType.ENTITY)); + versions.put(COMPONENT_RULES, rulesPersistenceService.getVersion(dossierTemplateId, RuleFileType.COMPONENT)); versions.put(DICTIONARY, dictionaryPersistenceService.getVersion(dossierTemplateId)); versions.put(LEGAL_BASIS, legalBasisMappingPersistenceService.getVersion(dossierTemplateId)); @@ -162,17 +161,6 @@ public class ReanalysisRequiredStatusService { } - private Long getRulesVersion(String dossierTemplateId, RuleFileType ruleFileType) { - - try { - return rulesPersistenceService.getRules(dossierTemplateId, ruleFileType).getVersion(); - } catch (NotFoundException e) { - log.info(e.getMessage()); - return 0L; - } - } - - private Long getDossierVersionData(String dossierId) { return dictionaryPersistenceService.getVersionForDossier(dossierId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java index 9ef6edbbb..db502994d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java @@ -105,26 +105,17 @@ public class RulesPersistenceService { private final RuleSetRepository ruleSetRepository; + @Transactional(Transactional.TxType.REQUIRES_NEW) public RuleSetEntity getRules(String dossierTemplateId, RuleFileType ruleFileType) { - if (ruleFileType.equals(RuleFileType.ENTITY)) { - return ruleSetRepository.findByDossierTemplateIdAndRuleFileType(dossierTemplateId, ruleFileType.name()) - .orElseGet(() -> createAndGetDefaultRuleSet(dossierTemplateId, ruleFileType)); - } return ruleSetRepository.findByDossierTemplateIdAndRuleFileType(dossierTemplateId, ruleFileType.name()) .orElseThrow(() -> new NotFoundException(String.format("No rule file of type %s found for dossierTemplateId %s", ruleFileType, dossierTemplateId))); } - public RuleSetEntity createAndGetDefaultRuleSet(String dossierTemplateId, RuleFileType ruleFileType) { + public long getVersion(String dossierTemplateId, RuleFileType ruleFileType) { - RuleSetEntity ruleSet = new RuleSetEntity(); - ruleSet.setDossierTemplateId(dossierTemplateId); - ruleSet.setRuleFileType(ruleFileType.name()); - ruleSet.setValue(DEFAULT_RULES); - ruleSet.setVersion(1); - ruleSet.setTimeoutDetected(false); - return ruleSetRepository.save(ruleSet); + return ruleSetRepository.findVersionByDossierTemplateIdAndRuleFileType(dossierTemplateId, ruleFileType.name()).orElse(-1L); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java index 5a4a5fb28..05a0ce002 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java @@ -18,4 +18,8 @@ public interface RuleSetRepository extends JpaRepository findByDossierTemplateIdAndRuleFileType(String dossierTemplateId, String ruleFileType); + + @Query("select r.version from RuleSetEntity r where r.dossierTemplateId = :dossierTemplateId and r.ruleFileType = :ruleFileType") + Optional findVersionByDossierTemplateIdAndRuleFileType(String dossierTemplateId, String ruleFileType); + }