Merge branch 'RED-9042-fp' into 'master'
RED-9042: merge recategorize and legal basis Closes RED-9042 See merge request redactmanager/redaction-service!387
This commit is contained in:
commit
9565104585
@ -7,7 +7,7 @@ description = "redaction-service-api-v1"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.springframework:spring-web:6.0.12")
|
implementation("org.springframework:spring-web:6.0.12")
|
||||||
implementation("com.iqser.red.service:persistence-service-internal-api-v1:2.395.0")
|
implementation("com.iqser.red.service:persistence-service-internal-api-v1:2.407.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|||||||
@ -16,7 +16,7 @@ val layoutParserVersion = "0.116.0"
|
|||||||
val jacksonVersion = "2.15.2"
|
val jacksonVersion = "2.15.2"
|
||||||
val droolsVersion = "9.44.0.Final"
|
val droolsVersion = "9.44.0.Final"
|
||||||
val pdfBoxVersion = "3.0.0"
|
val pdfBoxVersion = "3.0.0"
|
||||||
val persistenceServiceVersion = "2.395.0"
|
val persistenceServiceVersion = "2.407.0"
|
||||||
val springBootStarterVersion = "3.1.5"
|
val springBootStarterVersion = "3.1.5"
|
||||||
val springCloudVersion = "4.0.4"
|
val springCloudVersion = "4.0.4"
|
||||||
val testContainersVersion = "1.19.7"
|
val testContainersVersion = "1.19.7"
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualChangeFactory;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
|
||||||
@ -34,7 +35,6 @@ import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntit
|
|||||||
import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image;
|
import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType;
|
import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType;
|
||||||
import com.iqser.red.service.redaction.v1.server.service.DictionaryService;
|
import com.iqser.red.service.redaction.v1.server.service.DictionaryService;
|
||||||
import com.iqser.red.service.redaction.v1.server.service.ManualChangeFactory;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.service.ManualChangesApplicationService;
|
import com.iqser.red.service.redaction.v1.server.service.ManualChangesApplicationService;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -196,7 +196,7 @@ public final class MigrationEntity {
|
|||||||
throw new UnsupportedOperationException("Unknown subclass " + migratedEntity.getClass());
|
throw new UnsupportedOperationException("Unknown subclass " + migratedEntity.getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
entityLogEntry.setManualChanges(ManualChangeFactory.toManualChangeList(migratedEntity.getManualOverwrite().getManualChangeLog(), redactionLogEntry.isHint()));
|
entityLogEntry.setManualChanges(ManualChangeFactory.toLocalManualChangeList(migratedEntity.getManualOverwrite().getManualChangeLog(), true));
|
||||||
entityLogEntry.setColor(redactionLogEntry.getColor());
|
entityLogEntry.setColor(redactionLogEntry.getColor());
|
||||||
entityLogEntry.setChanges(redactionLogEntry.getChanges()
|
entityLogEntry.setChanges(redactionLogEntry.getChanges()
|
||||||
.stream()
|
.stream()
|
||||||
|
|||||||
@ -130,10 +130,16 @@ public class ManualChangeOverwrite {
|
|||||||
|
|
||||||
if (manualChange instanceof ManualRecategorization recategorization) {
|
if (manualChange instanceof ManualRecategorization recategorization) {
|
||||||
recategorized = true;
|
recategorized = true;
|
||||||
type = recategorization.getType();
|
if (recategorization.getType() != null) {
|
||||||
section = recategorization.getSection();
|
type = recategorization.getType();
|
||||||
value = recategorization.getValue();
|
}
|
||||||
if (recategorization.getLegalBasis() != null && !recategorization.getLegalBasis().isEmpty()) {
|
if (recategorization.getSection() != null) {
|
||||||
|
section = recategorization.getSection();
|
||||||
|
}
|
||||||
|
if (recategorization.getValue() != null) {
|
||||||
|
value = recategorization.getValue();
|
||||||
|
}
|
||||||
|
if (recategorization.getLegalBasis() != null) {
|
||||||
legalBasis = recategorization.getLegalBasis();
|
legalBasis = recategorization.getLegalBasis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualChangeFactory;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
||||||
import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings;
|
import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings;
|
||||||
import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
|
import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
|
||||||
@ -203,7 +204,7 @@ public class EntityLogCreatorService {
|
|||||||
.section(image.getManualOverwrite().getSection()
|
.section(image.getManualOverwrite().getSection()
|
||||||
.orElse(image.getParent().toString()))
|
.orElse(image.getParent().toString()))
|
||||||
.imageHasTransparency(image.isTransparent())
|
.imageHasTransparency(image.isTransparent())
|
||||||
.manualChanges(ManualChangeFactory.toManualChangeList(image.getManualOverwrite().getManualChangeLog(), isHint))
|
.manualChanges(ManualChangeFactory.toLocalManualChangeList(image.getManualOverwrite().getManualChangeLog(), true))
|
||||||
.state(buildEntryState(image))
|
.state(buildEntryState(image))
|
||||||
.entryType(isHint ? EntryType.IMAGE_HINT : EntryType.IMAGE)
|
.entryType(isHint ? EntryType.IMAGE_HINT : EntryType.IMAGE)
|
||||||
.engines(getEngines(null, image.getManualOverwrite()))
|
.engines(getEngines(null, image.getManualOverwrite()))
|
||||||
@ -246,7 +247,7 @@ public class EntityLogCreatorService {
|
|||||||
//(was .imported(precursorEntity.getEngines() != null && precursorEntity.getEngines().contains(Engine.IMPORTED)))
|
//(was .imported(precursorEntity.getEngines() != null && precursorEntity.getEngines().contains(Engine.IMPORTED)))
|
||||||
.imported(false)
|
.imported(false)
|
||||||
.reference(Collections.emptySet())
|
.reference(Collections.emptySet())
|
||||||
.manualChanges(ManualChangeFactory.toManualChangeList(precursorEntity.getManualOverwrite().getManualChangeLog(), isHint))
|
.manualChanges(ManualChangeFactory.toLocalManualChangeList(precursorEntity.getManualOverwrite().getManualChangeLog(), true))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +283,7 @@ public class EntityLogCreatorService {
|
|||||||
//(was .imported(entity.getEngines() != null && entity.getEngines().contains(Engine.IMPORTED)))
|
//(was .imported(entity.getEngines() != null && entity.getEngines().contains(Engine.IMPORTED)))
|
||||||
.imported(false)
|
.imported(false)
|
||||||
.reference(referenceIds)
|
.reference(referenceIds)
|
||||||
.manualChanges(ManualChangeFactory.toManualChangeList(entity.getManualOverwrite().getManualChangeLog(), isHint))
|
.manualChanges(ManualChangeFactory.toLocalManualChangeList(entity.getManualOverwrite().getManualChangeLog(), true))
|
||||||
.state(buildEntryState(entity))
|
.state(buildEntryState(entity))
|
||||||
.entryType(buildEntryType(entity))
|
.entryType(buildEntryType(entity))
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@ -1,59 +0,0 @@
|
|||||||
package com.iqser.red.service.redaction.v1.server.service;
|
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualChange;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
|
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
|
||||||
|
|
||||||
@UtilityClass
|
|
||||||
public class ManualChangeFactory {
|
|
||||||
|
|
||||||
public List<ManualChange> toManualChangeList(List<BaseAnnotation> manualChanges, boolean isHint) {
|
|
||||||
|
|
||||||
return manualChanges.stream()
|
|
||||||
.map(baseAnnotation -> toManualChange(baseAnnotation, isHint))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public ManualChange toManualChange(BaseAnnotation baseAnnotation, boolean isHint) {
|
|
||||||
|
|
||||||
ManualChange manualChange = ManualChange.from(baseAnnotation);
|
|
||||||
if (baseAnnotation instanceof ManualRecategorization recategorization) {
|
|
||||||
manualChange.withManualRedactionType(ManualRedactionType.RECATEGORIZE)
|
|
||||||
.withChange("type", recategorization.getType())
|
|
||||||
.withChange("section", recategorization.getSection())
|
|
||||||
.withChange("legalBasis", recategorization.getLegalBasis())
|
|
||||||
.withChange("value", recategorization.getValue());
|
|
||||||
} else if (baseAnnotation instanceof IdRemoval manualRemoval) {
|
|
||||||
manualChange.withManualRedactionType(manualRemoval.isRemoveFromDictionary() ? ManualRedactionType.REMOVE_FROM_DICTIONARY : ManualRedactionType.REMOVE);
|
|
||||||
} else if (baseAnnotation instanceof ManualForceRedaction manualForceRedaction) {
|
|
||||||
manualChange.withManualRedactionType(ManualRedactionType.FORCE).withChange("legalBasis", manualForceRedaction.getLegalBasis());
|
|
||||||
} else if (baseAnnotation instanceof ManualResizeRedaction manualResizeRedact) {
|
|
||||||
manualChange.withManualRedactionType(manualResizeRedact.getUpdateDictionary() ? ManualRedactionType.RESIZE_IN_DICTIONARY : ManualRedactionType.RESIZE)
|
|
||||||
.withChange("value", manualResizeRedact.getValue());
|
|
||||||
} else if (baseAnnotation instanceof ManualRedactionEntry manualRedactionEntry) {
|
|
||||||
manualChange.withManualRedactionType(manualRedactionEntry.isAddToDictionary() ? ManualRedactionType.ADD_TO_DICTIONARY : ManualRedactionType.ADD)
|
|
||||||
.withChange("value", manualRedactionEntry.getValue());
|
|
||||||
} else if (baseAnnotation instanceof ManualLegalBasisChange manualLegalBasisChange) {
|
|
||||||
manualChange.withManualRedactionType(ManualRedactionType.LEGAL_BASIS_CHANGE)
|
|
||||||
.withChange("section", manualLegalBasisChange.getSection())
|
|
||||||
.withChange("value", manualLegalBasisChange.getValue())
|
|
||||||
.withChange("legalBasis", manualLegalBasisChange.getLegalBasis());
|
|
||||||
}
|
|
||||||
manualChange.setProcessedDate(OffsetDateTime.now());
|
|
||||||
return manualChange;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -47,6 +47,10 @@ public class ManualChangesApplicationService {
|
|||||||
entityToBeReCategorized.getMatchedRuleList().clear();
|
entityToBeReCategorized.getMatchedRuleList().clear();
|
||||||
entityToBeReCategorized.getManualOverwrite().addChange(manualRecategorization);
|
entityToBeReCategorized.getManualOverwrite().addChange(manualRecategorization);
|
||||||
|
|
||||||
|
if (manualRecategorization.getType() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (entityToBeReCategorized instanceof Image image) {
|
if (entityToBeReCategorized instanceof Image image) {
|
||||||
image.setImageType(ImageType.fromString(manualRecategorization.getType()));
|
image.setImageType(ImageType.fromString(manualRecategorization.getType()));
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -64,7 +64,6 @@ public class KieContainerCreationService {
|
|||||||
try {
|
try {
|
||||||
return kieServices.newKieContainer(getReleaseId(dossierTemplateId, version, ruleFileType));
|
return kieServices.newKieContainer(getReleaseId(dossierTemplateId, version, ruleFileType));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
registerNewKieContainerVersion(dossierTemplateId, version, ruleFileType);
|
registerNewKieContainerVersion(dossierTemplateId, version, ruleFileType);
|
||||||
return kieServices.newKieContainer(getReleaseId(dossierTemplateId, version, ruleFileType));
|
return kieServices.newKieContainer(getReleaseId(dossierTemplateId, version, ruleFileType));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user