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;
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.exception.DossierNotFoundException;
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.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
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
@Service
@ -68,7 +72,7 @@ public class ReanalysisRequiredStatusService {
// enhance with dossierTemplateId
DossierEntity dossier;
try {
dossier = dossierMap.computeIfAbsent(fileStatus.getDossierId(), k -> dossierPersistenceService.getAndValidateDossier(fileStatus.getDossierId()));
dossier = dossierMap.computeIfAbsent(fileStatus.getDossierId(), k -> dossierPersistenceService.findByDossierId(fileStatus.getDossierId()));
} catch (DossierNotFoundException e) {
log.info("Dossier {} was not found, thus analysis is not required", fileStatus.getDossierId());
return new AnalysisRequiredResult(false, false);
@ -78,6 +82,10 @@ public class ReanalysisRequiredStatusService {
fileStatus.setDossierTemplateId(dossier.getDossierTemplateId());
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) {
return new AnalysisRequiredResult(false, true);