RED-3880: Changed code of false_psoitive migration

This commit is contained in:
deiflaender 2022-04-14 12:29:19 +02:00
parent 3a2058367f
commit e8297200f2

View File

@ -1,5 +1,7 @@
package com.iqser.red.service.peristence.v1.server.migration.migrations;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -10,6 +12,8 @@ import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageS
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@ -44,27 +48,34 @@ public class DictionaryToEntityMigration2 extends Migration {
@Override
protected void migrate() {
log.info("in migrate of DictionaryToEntityMigration2");
var dossiers = dossierPersistenceService.findAllDossiers();
log.info("dossiers are: {}", dossiers);
dossiers.forEach(dossier -> {
var files = fileStatusPersistenceService.getStatusesForDossier(dossier.getId());
log.info("files in dossier {} are: {}", dossier.getId(), files);
log.info("Start migration of dossier {}", dossier.getId());
files.forEach(file -> {
log.info("Files is currently: {}", file);
log.info("Start migration of file {}", file.getId());
if (file.getDeleted() == null) {
var newRedactionLogEntries = new ArrayList<RedactionLogEntry>();
var redactionLog = fileManagementStorageService.getRedactionLog(dossier.getId(), file.getId());
redactionLog.setAnalysisVersion(2);
var remIf = redactionLog.getRedactionLogEntry().removeIf(entry -> entry.getType().equals("false_positive"));
log.info("remIf returned {}", remIf);
redactionLog.getRedactionLogEntry().forEach(entry -> {
if (entry.getType().equals("false_positive")){
log.info("skipping false_positive for dossier {} and file {}", dossier.getId(), file.getId());
return;
}
if (entry.getType().startsWith("recommendation_")) {
entry.setType(entry.getType().substring(15));
entry.setRecommendation(true);
log.info("removed _recommendation");
}
newRedactionLogEntries.add(entry);
});
redactionLog.setRedactionLogEntry(newRedactionLogEntries);
try {
fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, objectMapper.writeValueAsBytes(redactionLog));
log.info("Stored dossierId: {} and fileId: {}", dossier.getId(), file.getId());