RED-4680: Enhance FileStatus even if dossier is deleted

This commit is contained in:
Philipp Schramm 2022-07-25 10:38:18 +02:00
parent 26c99bbabb
commit fc93015dfb

View File

@ -1,5 +1,16 @@
package com.iqser.red.service.peristence.v1.server.service; package com.iqser.red.service.peristence.v1.server.service;
import static com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService.VersionType.DICTIONARY;
import static com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService.VersionType.LEGAL_BASIS;
import static com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService.VersionType.RULES;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.entity.dossier.DossierEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
@ -8,18 +19,11 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.iqser.red.service.peristence.v1.server.service.ReanalysisRequiredStatusService.VersionType.*;
@Slf4j @Slf4j
@Service @Service
@ -68,7 +72,7 @@ public class ReanalysisRequiredStatusService {
// enhance with dossierTemplateId // enhance with dossierTemplateId
DossierEntity dossier; DossierEntity dossier;
try { try {
dossier = dossierMap.computeIfAbsent(fileStatus.getDossierId(), k -> dossierPersistenceService.getAndValidateDossier(fileStatus.getDossierId())); dossier = dossierMap.computeIfAbsent(fileStatus.getDossierId(), k -> dossierPersistenceService.findByDossierId(fileStatus.getDossierId()));
} catch (DossierNotFoundException e) { } catch (DossierNotFoundException e) {
log.info("Dossier {} was not found, thus analysis is not required", fileStatus.getDossierId()); log.info("Dossier {} was not found, thus analysis is not required", fileStatus.getDossierId());
return new AnalysisRequiredResult(false, false); return new AnalysisRequiredResult(false, false);
@ -78,6 +82,10 @@ public class ReanalysisRequiredStatusService {
fileStatus.setDossierTemplateId(dossier.getDossierTemplateId()); fileStatus.setDossierTemplateId(dossier.getDossierTemplateId());
fileStatus.setDossierStatusId(dossier.getDossierStatusId()); fileStatus.setDossierStatusId(dossier.getDossierStatusId());
if (dossier.getSoftDeletedTime() != null || dossier.getHardDeletedTime() != null || dossier.getArchivedTime() != null) {
log.info("Dossier {} is deleted, thus analysis is not required", fileStatus.getDossierId());
return new AnalysisRequiredResult(false, false);
}
if (ProcessingStatus.ERROR.equals(fileStatus.getProcessingStatus()) && !ignoreProcessingStates) { if (ProcessingStatus.ERROR.equals(fileStatus.getProcessingStatus()) && !ignoreProcessingStates) {
return new AnalysisRequiredResult(false, true); return new AnalysisRequiredResult(false, true);