hotfix: filter entities with empty value in redactionLog and entityLog #213
@ -122,7 +122,11 @@ public class AnalyzeService {
|
|||||||
dictionary.getVersion(),
|
dictionary.getVersion(),
|
||||||
kieWrapperEntityRules.rulesVersion());
|
kieWrapperEntityRules.rulesVersion());
|
||||||
|
|
||||||
return finalizeAnalysis(analyzeRequest, startTime, kieWrapperComponentRules, new EntityLogChanges(entityLog, false), document,
|
return finalizeAnalysis(analyzeRequest,
|
||||||
|
startTime,
|
||||||
|
kieWrapperComponentRules,
|
||||||
|
new EntityLogChanges(entityLog, false),
|
||||||
|
document,
|
||||||
redactionLog,
|
redactionLog,
|
||||||
document.getNumberOfPages(),
|
document.getNumberOfPages(),
|
||||||
dictionary.getVersion(),
|
dictionary.getVersion(),
|
||||||
@ -165,7 +169,8 @@ public class AnalyzeService {
|
|||||||
entityLogCreatorService.updateVersionsAndReturnChanges(previousEntityLog,
|
entityLogCreatorService.updateVersionsAndReturnChanges(previousEntityLog,
|
||||||
dictionaryIncrement.getDictionaryVersion(),
|
dictionaryIncrement.getDictionaryVersion(),
|
||||||
analyzeRequest.getDossierTemplateId(),
|
analyzeRequest.getDossierTemplateId(),
|
||||||
false), document,
|
false),
|
||||||
|
document,
|
||||||
previousRedactionLog,
|
previousRedactionLog,
|
||||||
document.getNumberOfPages(),
|
document.getNumberOfPages(),
|
||||||
dictionaryIncrement.getDictionaryVersion(),
|
dictionaryIncrement.getDictionaryVersion(),
|
||||||
@ -206,7 +211,8 @@ public class AnalyzeService {
|
|||||||
return finalizeAnalysis(analyzeRequest,
|
return finalizeAnalysis(analyzeRequest,
|
||||||
startTime,
|
startTime,
|
||||||
kieContainerCreationService.getLatestKieContainer(analyzeRequest.getDossierTemplateId(), RuleFileType.COMPONENT),
|
kieContainerCreationService.getLatestKieContainer(analyzeRequest.getDossierTemplateId(), RuleFileType.COMPONENT),
|
||||||
entityLogChanges, document,
|
entityLogChanges,
|
||||||
|
document,
|
||||||
redactionLog,
|
redactionLog,
|
||||||
document.getNumberOfPages(),
|
document.getNumberOfPages(),
|
||||||
dictionaryIncrement.getDictionaryVersion(),
|
dictionaryIncrement.getDictionaryVersion(),
|
||||||
@ -240,7 +246,11 @@ public class AnalyzeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private AnalyzeResult finalizeAnalysis(AnalyzeRequest analyzeRequest, long startTime, KieWrapper kieWrapperComponentRules, EntityLogChanges entityLogChanges, Document document,
|
private AnalyzeResult finalizeAnalysis(AnalyzeRequest analyzeRequest,
|
||||||
|
long startTime,
|
||||||
|
KieWrapper kieWrapperComponentRules,
|
||||||
|
EntityLogChanges entityLogChanges,
|
||||||
|
Document document,
|
||||||
RedactionLog redactionLog,
|
RedactionLog redactionLog,
|
||||||
int numberOfPages,
|
int numberOfPages,
|
||||||
DictionaryVersion dictionaryVersion,
|
DictionaryVersion dictionaryVersion,
|
||||||
@ -284,7 +294,8 @@ public class AnalyzeService {
|
|||||||
|
|
||||||
|
|
||||||
private void computeComponentsWhenRulesArePresent(AnalyzeRequest analyzeRequest,
|
private void computeComponentsWhenRulesArePresent(AnalyzeRequest analyzeRequest,
|
||||||
KieWrapper kieWrapperComponentRules, Document document,
|
KieWrapper kieWrapperComponentRules,
|
||||||
|
Document document,
|
||||||
Set<FileAttribute> addedFileAttributes,
|
Set<FileAttribute> addedFileAttributes,
|
||||||
EntityLogChanges entityLogChanges,
|
EntityLogChanges entityLogChanges,
|
||||||
DictionaryVersion dictionaryVersion) {
|
DictionaryVersion dictionaryVersion) {
|
||||||
@ -294,7 +305,8 @@ public class AnalyzeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Component> components = componentDroolsExecutionService.executeRules(kieWrapperComponentRules.container(),
|
List<Component> components = componentDroolsExecutionService.executeRules(kieWrapperComponentRules.container(),
|
||||||
entityLogChanges.getEntityLog(), document,
|
entityLogChanges.getEntityLog(),
|
||||||
|
document,
|
||||||
addedFileAttributes.stream().toList());
|
addedFileAttributes.stream().toList());
|
||||||
log.info("Finished component rule execution for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId());
|
log.info("Finished component rule execution for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId());
|
||||||
|
|
||||||
@ -310,6 +322,8 @@ public class AnalyzeService {
|
|||||||
|
|
||||||
RedactionLog previousRedactionLog = redactionStorageService.getRedactionLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId());
|
RedactionLog previousRedactionLog = redactionStorageService.getRedactionLog(analyzeRequest.getDossierId(), analyzeRequest.getFileId());
|
||||||
|
|
||||||
|
previousRedactionLog.setRedactionLogEntry(previousRedactionLog.getRedactionLogEntry().stream().filter(entity -> !entity.getValue().isEmpty()).collect(Collectors.toList()));
|
||||||
|
|
||||||
redactionLog.setDictionaryVersion(dictionaryVersion.getDossierTemplateVersion());
|
redactionLog.setDictionaryVersion(dictionaryVersion.getDossierTemplateVersion());
|
||||||
redactionLog.setDossierDictionaryVersion(dictionaryVersion.getDossierVersion());
|
redactionLog.setDossierDictionaryVersion(dictionaryVersion.getDossierVersion());
|
||||||
|
|
||||||
|
|||||||
@ -90,10 +90,13 @@ public class EntityLogCreatorService {
|
|||||||
Set<Integer> sectionsToReanalyseIds,
|
Set<Integer> sectionsToReanalyseIds,
|
||||||
DictionaryVersion dictionaryVersion) {
|
DictionaryVersion dictionaryVersion) {
|
||||||
|
|
||||||
|
previousEntityLog.setEntityLogEntry(previousEntityLog.getEntityLogEntry().stream().filter(entity -> !entity.getValue().isEmpty()).collect(Collectors.toList())); // fix broken entityLogs with empty entries
|
||||||
|
|
||||||
List<EntityLogEntry> newEntityLogEntries = createEntityLogEntries(document, analyzeRequest.getDossierTemplateId(), notFoundManualRedactionEntries);
|
List<EntityLogEntry> newEntityLogEntries = createEntityLogEntries(document, analyzeRequest.getDossierTemplateId(), notFoundManualRedactionEntries);
|
||||||
Set<String> newEntityIds = newEntityLogEntries.stream().map(EntityLogEntry::getId).collect(Collectors.toSet());
|
Set<String> newEntityIds = newEntityLogEntries.stream().map(EntityLogEntry::getId).collect(Collectors.toSet());
|
||||||
List<EntityLogEntry> entriesFromReanalysedSections = previousEntityLog.getEntityLogEntry()
|
List<EntityLogEntry> entriesFromReanalysedSections = previousEntityLog.getEntityLogEntry()
|
||||||
.stream().filter(entry -> (newEntityIds.contains(entry.getId()) || sectionsToReanalyseIds.contains(entry.getContainingNodeId().get(0))) && !entry.getType()
|
.stream()
|
||||||
|
.filter(entry -> (newEntityIds.contains(entry.getId()) || sectionsToReanalyseIds.contains(entry.getContainingNodeId().get(0))) && !entry.getType()
|
||||||
.equals(ImportedRedactionService.IMPORTED_REDACTION_TYPE))
|
.equals(ImportedRedactionService.IMPORTED_REDACTION_TYPE))
|
||||||
.toList();
|
.toList();
|
||||||
previousEntityLog.getEntityLogEntry().removeAll(entriesFromReanalysedSections);
|
previousEntityLog.getEntityLogEntry().removeAll(entriesFromReanalysedSections);
|
||||||
@ -131,6 +134,7 @@ public class EntityLogCreatorService {
|
|||||||
document.getEntities()
|
document.getEntities()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(EntityLogCreatorService::isEntityOrRecommendationType)
|
.filter(EntityLogCreatorService::isEntityOrRecommendationType)
|
||||||
|
.filter(entity -> !entity.getValue().isEmpty())
|
||||||
.forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, dossierTemplateId)));
|
.forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, dossierTemplateId)));
|
||||||
document.streamAllImages().forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId)));
|
document.streamAllImages().forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId)));
|
||||||
notFoundManualRedactionEntries.forEach(entityIdentifier -> entries.add(createEntityLogEntry(entityIdentifier, dossierTemplateId)));
|
notFoundManualRedactionEntries.forEach(entityIdentifier -> entries.add(createEntityLogEntry(entityIdentifier, dossierTemplateId)));
|
||||||
@ -142,7 +146,11 @@ public class EntityLogCreatorService {
|
|||||||
private List<EntityLogEntry> createEntityLogEntriesFromActiveEntities(Document document, String dossierTemplateId, List<ManualEntity> notFoundManualRedactionEntries) {
|
private List<EntityLogEntry> createEntityLogEntriesFromActiveEntities(Document document, String dossierTemplateId, List<ManualEntity> notFoundManualRedactionEntries) {
|
||||||
|
|
||||||
List<EntityLogEntry> entries = new ArrayList<>();
|
List<EntityLogEntry> entries = new ArrayList<>();
|
||||||
document.getEntities().stream().filter(EntityLogCreatorService::isEntityOrRecommendationType).filter(IEntity::active)
|
document.getEntities()
|
||||||
|
.stream()
|
||||||
|
.filter(EntityLogCreatorService::isEntityOrRecommendationType)
|
||||||
|
.filter(IEntity::active)
|
||||||
|
.filter(entity -> !entity.getValue().isEmpty())
|
||||||
.forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, dossierTemplateId)));
|
.forEach(entityNode -> entries.addAll(toEntityLogEntries(entityNode, dossierTemplateId)));
|
||||||
document.streamAllImages().filter(IEntity::active).forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId)));
|
document.streamAllImages().filter(IEntity::active).forEach(imageNode -> entries.add(createEntityLogEntry(imageNode, dossierTemplateId)));
|
||||||
notFoundManualRedactionEntries.stream().filter(IEntity::active).forEach(entityIdentifier -> entries.add(createEntityLogEntry(entityIdentifier, dossierTemplateId)));
|
notFoundManualRedactionEntries.stream().filter(IEntity::active).forEach(entityIdentifier -> entries.add(createEntityLogEntry(entityIdentifier, dossierTemplateId)));
|
||||||
@ -172,7 +180,9 @@ public class EntityLogCreatorService {
|
|||||||
EntityLogEntry redactionLogEntry = createEntityLogEntry(textEntity, dossierTemplateId);
|
EntityLogEntry redactionLogEntry = createEntityLogEntry(textEntity, dossierTemplateId);
|
||||||
redactionLogEntry.setId(positionOnPage.getId());
|
redactionLogEntry.setId(positionOnPage.getId());
|
||||||
|
|
||||||
List<Position> rectanglesPerLine = positionOnPage.getRectanglePerLine().stream().map(rectangle2D -> new Position(rectangle2D, positionOnPage.getPage().getNumber()))
|
List<Position> rectanglesPerLine = positionOnPage.getRectanglePerLine()
|
||||||
|
.stream()
|
||||||
|
.map(rectangle2D -> new Position(rectangle2D, positionOnPage.getPage().getNumber()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
redactionLogEntry.setPositions(rectanglesPerLine);
|
redactionLogEntry.setPositions(rectanglesPerLine);
|
||||||
|
|||||||
@ -54,6 +54,7 @@ public class RedactionLogCreatorService {
|
|||||||
.stream()
|
.stream()
|
||||||
.filter(RedactionLogCreatorService::isEntityOrRecommendationType)
|
.filter(RedactionLogCreatorService::isEntityOrRecommendationType)
|
||||||
.filter(IEntity::active)
|
.filter(IEntity::active)
|
||||||
|
.filter(entity -> !entity.getValue().isEmpty())
|
||||||
.forEach(entityNode -> entries.addAll(toRedactionLogEntries(entityNode, dossierTemplateId, comments)));
|
.forEach(entityNode -> entries.addAll(toRedactionLogEntries(entityNode, dossierTemplateId, comments)));
|
||||||
document.streamAllImages().filter(image -> !image.removed()).forEach(imageNode -> entries.add(createRedactionLogEntry(imageNode, dossierTemplateId, comments)));
|
document.streamAllImages().filter(image -> !image.removed()).forEach(imageNode -> entries.add(createRedactionLogEntry(imageNode, dossierTemplateId, comments)));
|
||||||
notFoundManualRedactionEntries.forEach(entityIdentifier -> entries.add(createRedactionLogEntry(entityIdentifier, dossierTemplateId, comments)));
|
notFoundManualRedactionEntries.forEach(entityIdentifier -> entries.add(createRedactionLogEntry(entityIdentifier, dossierTemplateId, comments)));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user