From ff38ce5b0e2aab0e2f78148eecd0ce5fbb91a92b Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Fri, 26 Nov 2021 16:31:02 +0200 Subject: [PATCH] Fixed migration of numberOfAnalyses --- .../v1/server/migration/MigrationService.java | 118 +++--------------- 1 file changed, 20 insertions(+), 98 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationService.java index c81b86929..e9afa7c8c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationService.java @@ -1,122 +1,42 @@ package com.iqser.red.service.peristence.v1.server.migration; -import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; -import static java.util.stream.Collectors.toList; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicInteger; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.exception.MigrationException; -import com.iqser.red.service.peristence.v1.server.migration.model.CommentRow; -import com.iqser.red.service.peristence.v1.server.migration.model.ConfigurationRow; -import com.iqser.red.service.peristence.v1.server.migration.model.DossierAttributeRow; -import com.iqser.red.service.peristence.v1.server.migration.model.DossierAttributesConfig; -import com.iqser.red.service.peristence.v1.server.migration.model.EntryRow; -import com.iqser.red.service.peristence.v1.server.migration.model.FileAttributesConfig; -import com.iqser.red.service.peristence.v1.server.migration.model.IdRemovalRow; -import com.iqser.red.service.peristence.v1.server.migration.model.ManualForceRedactionRow; -import com.iqser.red.service.peristence.v1.server.migration.model.ManualImageRecategorizationRow; -import com.iqser.red.service.peristence.v1.server.migration.model.ManualLegalBasisChangeRow; -import com.iqser.red.service.peristence.v1.server.migration.model.ManualRedactionEntryRow; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationAuditModel; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationComment; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationDossier; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationDossierTemplate; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationDownloadStatus; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationFileStatus; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationNotification; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationRedactionLog; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationRedactionLogEntry; -import com.iqser.red.service.peristence.v1.server.migration.model.MigrationViewedPage; -import com.iqser.red.service.peristence.v1.server.migration.model.NewIdForDossierTemplate; -import com.iqser.red.service.peristence.v1.server.migration.model.VersionRow; -import com.iqser.red.service.peristence.v1.server.migration.model.VersionType; +import com.iqser.red.service.peristence.v1.server.migration.model.*; import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService; import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.RectangleEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.*; import com.iqser.red.service.persistence.management.v1.processor.entity.audit.AuditEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.*; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.*; import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ColorsRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadStatusRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.EntryRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributeConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesGeneralConfigurationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ForceRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ImageRecategorizationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisChangeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ManualRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RemoveRedactionRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RuleSetRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ViewedPagesRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.WatermarkRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.*; import com.iqser.red.service.persistence.service.v1.api.model.annotations.Comment; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; 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.WorkflowStatus; -import com.iqser.red.service.redaction.v1.model.Change; -import com.iqser.red.service.redaction.v1.model.ChangeType; -import com.iqser.red.service.redaction.v1.model.Engine; -import com.iqser.red.service.redaction.v1.model.Rectangle; -import com.iqser.red.service.redaction.v1.model.RedactionLog; -import com.iqser.red.service.redaction.v1.model.RedactionLogEntry; +import com.iqser.red.service.redaction.v1.model.*; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; - import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; + +import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; +import static java.util.stream.Collectors.toList; + @SuppressWarnings("PMD") @Slf4j @@ -839,7 +759,9 @@ public class MigrationService { .lastUpdated(oldFile.getLastUpdated()) .deleted(oldFile.getDeleted()) .lastProcessed(oldFile.getLastProcessed()) - .numberOfAnalyses(oldFile.getNumberOfAnalyses()) + // Some files at Syngenta have had this value reset to 0. + // Since Migration implies analysis of all files we can safely set this to 1 ( because approved files won't get reanalysed + .numberOfAnalyses(Math.max(1, oldFile.getNumberOfAnalyses())) .assignee(oldFile.getCurrentReviewer()) .lastApprover(workflowStatus == WorkflowStatus.APPROVED ? oldFile.getCurrentReviewer() : null) .lastReviewer(oldFile.getLastReviewer())