WIP: Draft: RED-8561: added to migration job to create entities for dossier dictionaries #364

Closed
ali.oezyetimoglu1 wants to merge 1 commits from RED-8561 into master

View File

@ -1,5 +1,16 @@
package com.iqser.red.service.persistence.management.v1.processor.migration;
import static com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration.MIGRATION_QUEUE;
import static com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_QUEUE;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.migration.SaasMigrationStatusEntity;
@ -10,11 +21,14 @@ import com.iqser.red.service.persistence.management.v1.processor.service.Indexin
import com.iqser.red.service.persistence.management.v1.processor.service.job.AutomaticAnalysisJob;
import com.iqser.red.service.persistence.management.v1.processor.service.layoutparsing.LayoutParsingRequestFactory;
import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionProviderService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.SaasMigrationStatusPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus;
import com.iqser.red.service.redaction.v1.model.MigrationRequest;
@ -32,17 +46,6 @@ import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import static com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration.MIGRATION_QUEUE;
import static com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_QUEUE;
@Slf4j
@Service
@RequiredArgsConstructor
@ -62,6 +65,8 @@ public class SaasMigrationService implements TenantSyncService {
StorageService storageService;
SaasAnnotationIdMigrationService saasAnnotationIdMigrationService;
UncompressedFilesMigrationService uncompressedFilesMigrationService;
DictionaryPersistenceService dictionaryPersistenceService;
DossierTemplatePersistenceService dossierTemplatePersistenceService;
@Override
@ -78,6 +83,8 @@ public class SaasMigrationService implements TenantSyncService {
// TODO migrate rules.
automaticAnalysisJob.stopForTenant(tenantId);
//TODO call intern class to create dossier_redaction entity
log.info("Starting uncompressed files migration ...");
uncompressedFilesMigrationService.migrateUncompressedFiles(tenantId);
log.info("Finished uncompressed files migration ...");
@ -88,6 +95,7 @@ public class SaasMigrationService implements TenantSyncService {
.filter(dossier -> dossier.getHardDeletedTime() == null)
.toList();
for (var dossier : dossiers) {
createDossierDictionaryAsEntity(dossier.getId());
var files = fileStatusPersistenceService.getStatusesForDossier(dossier.getId())
.stream()
.filter(file -> file.getHardDeletedTime() == null)
@ -117,6 +125,34 @@ public class SaasMigrationService implements TenantSyncService {
}
private void createDossierDictionaryAsEntity(String dossierId) {
var typeEntities = dictionaryPersistenceService.getAllTypesForDossier(dossierId, false);
typeEntities.forEach(typeEntity -> {
if (typeEntity.isDossierDictionaryOnly()) {
var dossierTemplateOfTypeEntity = typeEntity.getDossierTemplate();
var dossierOfTypeEntity = typeEntity.getDossier();
var result = dossierTemplatePersistenceService.createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest.builder()
.dossierTemplateId(typeEntity.getDossierTemplateId())
.name(typeEntity.getLabel())
.description(typeEntity.getDescription())
.validFrom(dossierTemplateOfTypeEntity.getValidFrom())
.validTo(dossierTemplateOfTypeEntity.getValidTo())
.requestingUser(dossierOfTypeEntity.getOwnerId())
.downloadFileTypes(dossierTemplateOfTypeEntity.getDownloadFileTypes())
.keepImageMetadata(dossierTemplateOfTypeEntity.isKeepImageMetadata())
.keepHiddenText(dossierTemplateOfTypeEntity.isKeepHiddenText())
.keepOverlappingObjects(dossierTemplateOfTypeEntity.isKeepOverlappingObjects())
.applyDictionaryUpdatesToAllDossiersByDefault(dossierTemplateOfTypeEntity.isApplyDictionaryUpdatesToAllDossiersByDefault())
.ocrByDefault(dossierTemplateOfTypeEntity.isOcrByDefault())
.removeWatermark(dossierTemplateOfTypeEntity.isRemoveWatermark())
.build());
log.info("Created dossier dictionary {} for dossier {}.", result.getName(), dossierId);
}
});
}
private boolean notExistsOrError(FileEntity file, Map<String, SaasMigrationStatus> migrationStati) {
return migrationStati.getOrDefault(file.getId(), SaasMigrationStatus.ERROR).equals(SaasMigrationStatus.ERROR);