WIP: Draft: RED-8561: added to migration job to create entities for dossier dictionaries #364
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user