soft delete types RED-3880
This commit is contained in:
parent
1eb0485dca
commit
00f2a0cb82
@ -12,7 +12,7 @@
|
|||||||
<artifactId>redaction-service-api-v1</artifactId>
|
<artifactId>redaction-service-api-v1</artifactId>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<persistence-service.version>1.85.0</persistence-service.version>
|
<persistence-service.version>1.143.0</persistence-service.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@ -1,42 +1,30 @@
|
|||||||
package com.iqser.red.service.redaction.v1.server.controller;
|
package com.iqser.red.service.redaction.v1.server.controller;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
|
||||||
import java.io.IOException;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
||||||
import java.util.stream.Collectors;
|
import com.iqser.red.service.redaction.v1.model.*;
|
||||||
|
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.exception.NotFoundException;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.exception.RedactionException;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.redaction.service.*;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.visualization.service.PdfVisualisationService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.pdfbox.io.MemoryUsageSetting;
|
import org.apache.pdfbox.io.MemoryUsageSetting;
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
|
import java.io.ByteArrayOutputStream;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
import java.io.IOException;
|
||||||
import com.iqser.red.service.redaction.v1.model.AnnotateRequest;
|
import java.util.stream.Collectors;
|
||||||
import com.iqser.red.service.redaction.v1.model.AnnotateResponse;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionResult;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.SectionArea;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.SectionGrid;
|
|
||||||
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.exception.NotFoundException;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.exception.RedactionException;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.AnnotationService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.DictionaryService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.ManualRedactionSurroundingTextService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.RedactionLogMergeService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table;
|
|
||||||
import com.iqser.red.service.redaction.v1.server.visualization.service.PdfVisualisationService;
|
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.annotations.Manual
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.*;
|
import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.*;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
|
||||||
|
import com.iqser.red.service.redaction.v1.model.Point;
|
||||||
|
import com.iqser.red.service.redaction.v1.model.Rectangle;
|
||||||
import com.iqser.red.service.redaction.v1.model.*;
|
import com.iqser.red.service.redaction.v1.model.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -13,8 +15,9 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.*;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.List;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -48,7 +51,7 @@ public class RedactionLogMergeService {
|
|||||||
.filter(mr -> entry.getId().equals(mr.getId()))
|
.filter(mr -> entry.getId().equals(mr.getId()))
|
||||||
.collect(Collectors.toList()), entry, types, colors);
|
.collect(Collectors.toList()), entry, types, colors);
|
||||||
|
|
||||||
if(entry.isImported() && !entry.isRedacted()){
|
if (entry.isImported() && !entry.isRedacted()) {
|
||||||
skippedImportedRedactions.add(entry.getId());
|
skippedImportedRedactions.add(entry.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +70,7 @@ public class RedactionLogMergeService {
|
|||||||
|
|
||||||
Set<String> processedIds = new HashSet<>();
|
Set<String> processedIds = new HashSet<>();
|
||||||
redactionLog.getRedactionLogEntry().removeIf(entry -> {
|
redactionLog.getRedactionLogEntry().removeIf(entry -> {
|
||||||
if(entry.getImportedRedactionIntersections() != null) {
|
if (entry.getImportedRedactionIntersections() != null) {
|
||||||
entry.getImportedRedactionIntersections().removeAll(skippedImportedRedactions);
|
entry.getImportedRedactionIntersections().removeAll(skippedImportedRedactions);
|
||||||
if (!entry.getImportedRedactionIntersections().isEmpty() && (!entry.isImage() || entry.isImage() && !(entry.getType().equals("image") || entry.getType().equals("ocr")))) {
|
if (!entry.getImportedRedactionIntersections().isEmpty() && (!entry.isImage() || entry.isImage() && !(entry.getType().equals("image") || entry.getType().equals("ocr")))) {
|
||||||
return true;
|
return true;
|
||||||
@ -379,20 +382,25 @@ public class RedactionLogMergeService {
|
|||||||
|
|
||||||
private float[] getColor(List<Type> types, String type) {
|
private float[] getColor(List<Type> types, String type) {
|
||||||
|
|
||||||
Optional<Type> foundType = types.stream().filter(t -> t.getType().equals(type)).findFirst();
|
var matchingTypes = getMatchingTypes(types, type);
|
||||||
if (foundType.isPresent()){
|
Optional<Type> foundAndNotDeletedType = matchingTypes.stream().filter(t -> !isDeletedType(t)).findFirst();
|
||||||
return convertColor(foundType.get().getHexColor());
|
if (foundAndNotDeletedType.isPresent()) {
|
||||||
|
return convertColor(foundAndNotDeletedType.get().getHexColor());
|
||||||
}
|
}
|
||||||
return convertColor("#9398a0");
|
Optional<Type> firstDeletedType = matchingTypes.stream().findFirst();
|
||||||
|
return firstDeletedType.map(value -> convertColor(value.getHexColor())).orElseGet(() -> convertColor("#9398a0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boolean isHint(List<Type> types, String type){
|
boolean isHint(List<Type> types, String type) {
|
||||||
Optional<Type> foundType = types.stream().filter(t -> t.getType().equals(type)).findFirst();
|
|
||||||
if (foundType.isPresent()){
|
var matchingTypes = getMatchingTypes(types, type);
|
||||||
return foundType.get().isHint();
|
Optional<Type> foundAndNotDeletedType = matchingTypes.stream().filter(t -> !isDeletedType(t)).findFirst();
|
||||||
|
if (foundAndNotDeletedType.isPresent()) {
|
||||||
|
return foundAndNotDeletedType.get().isHint();
|
||||||
}
|
}
|
||||||
return false;
|
Optional<Type> firstDeletedType = matchingTypes.stream().findFirst();
|
||||||
|
return firstDeletedType.map(Type::isHint).orElse(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -402,6 +410,14 @@ public class RedactionLogMergeService {
|
|||||||
return new float[]{color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f};
|
return new float[]{color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Type> getMatchingTypes(List<Type> types, String type) {
|
||||||
|
return types.stream().filter(t -> t.getType().equals(type)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isDeletedType(Type type) {
|
||||||
|
return type.getSoftDeletedTime() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user