Resolve DM-285 #141
@ -17,9 +17,9 @@ import com.iqser.red.service.persistence.management.v1.processor.service.Compone
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.Component;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||
@ -50,7 +50,7 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides) {
|
||||
|
||||
var componentLog = componentLogService.getComponentLog(dossierId, fileId);
|
||||
var allComponents = componentLog.getComponents();
|
||||
var allComponents = componentLog.getComponentLogEntries();
|
||||
|
||||
componentOverrideService.addOverrides(dossierId, fileId, componentsOverrides);
|
||||
|
||||
@ -69,7 +69,7 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
public void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RevertOverrideRequest revertOverrideRequest) {
|
||||
|
||||
var componentLog = componentLogService.getComponentLog(dossierId, fileId);
|
||||
var allComponents = componentLog.getComponents();
|
||||
var allComponents = componentLog.getComponentLogEntries();
|
||||
|
||||
componentOverrideService.revertOverrides(dossierId, fileId, revertOverrideRequest);
|
||||
|
||||
@ -77,9 +77,9 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
}
|
||||
|
||||
|
||||
private void auditOverride(String dossierId, String fileId, String componentName, String overrideValue, List<Component> allComponents) {
|
||||
private void auditOverride(String dossierId, String fileId, String componentName, String overrideValue, List<ComponentLogEntry> allComponentLogEntries) {
|
||||
|
||||
Optional<Component> component = allComponents.stream().filter(c -> c.getName().equals(componentName)).findFirst();
|
||||
Optional<ComponentLogEntry> component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentName)).findFirst();
|
||||
String originalValue = getOriginalValue(component);
|
||||
String value = getValue(component);
|
||||
auditPersistenceService.audit(AuditRequest.builder()
|
||||
@ -105,9 +105,9 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
}
|
||||
|
||||
|
||||
private void auditOverrideRevert(String dossierId, String fileId, String componentNameToRevert, List<Component> allComponents) {
|
||||
private void auditOverrideRevert(String dossierId, String fileId, String componentNameToRevert, List<ComponentLogEntry> allComponentLogEntries) {
|
||||
|
||||
Optional<Component> component = allComponents.stream().filter(c -> c.getName().equals(componentNameToRevert)).findFirst();
|
||||
Optional<ComponentLogEntry> component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentNameToRevert)).findFirst();
|
||||
String originalValue = getOriginalValue(component);
|
||||
String value = getValue(component);
|
||||
auditPersistenceService.audit(AuditRequest.builder()
|
||||
@ -133,17 +133,21 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
}
|
||||
|
||||
|
||||
private String getValue(Optional<Component> component) {
|
||||
private String getValue(Optional<ComponentLogEntry> component) {
|
||||
|
||||
return component.map(Component::getComponentValues).stream().map(a -> a.stream().map(ComponentValue::getValue).collect(Collectors.joining(", "))).findFirst().orElse("");
|
||||
return component.map(ComponentLogEntry::getComponentValues)
|
||||
.stream()
|
||||
.map(a -> a.stream().map(ComponentLogEntryValue::getValue).collect(Collectors.joining(", ")))
|
||||
.findFirst()
|
||||
.orElse("");
|
||||
}
|
||||
|
||||
|
||||
private static String getOriginalValue(Optional<Component> component) {
|
||||
private static String getOriginalValue(Optional<ComponentLogEntry> component) {
|
||||
|
||||
return component.map(Component::getComponentValues)
|
||||
return component.map(ComponentLogEntry::getComponentValues)
|
||||
.stream()
|
||||
.map(a -> a.stream().map(ComponentValue::getOriginalValue).collect(Collectors.joining(", ")))
|
||||
.map(a -> a.stream().map(ComponentLogEntryValue::getOriginalValue).collect(Collectors.joining(", ")))
|
||||
.findFirst()
|
||||
.orElse("");
|
||||
}
|
||||
|
||||
@ -17,10 +17,12 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController;
|
||||
import com.iqser.red.persistence.service.v1.external.api.impl.controller.StatusController;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.Component;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.EntityReference;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.Entity;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntityReference;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.Component;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.ComponentValue;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.EntityReference;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.FileComponents;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.FileComponentsList;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.resource.ComponentResource;
|
||||
@ -48,14 +50,17 @@ public class ComponentControllerV2 implements ComponentResource {
|
||||
|
||||
var componentLog = componentLogService.getComponentLog(dossierId, fileId, true);
|
||||
|
||||
Map<String, List<String>> basicComponent = componentLog.getComponents()
|
||||
Map<String, List<String>> basicComponent = componentLog.getComponentLogEntries()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Component::getName, component -> component.getComponentValues().stream().map(ComponentValue::getValue).toList()));
|
||||
.collect(Collectors.toMap(ComponentLogEntry::getName,
|
||||
componentLogEntry -> componentLogEntry.getComponentValues().stream().map(ComponentLogEntryValue::getValue).toList()));
|
||||
|
||||
Map<String, List<com.iqser.red.service.persistence.service.v2.api.external.model.Component>> componentsDetails = Collections.emptyMap();
|
||||
Map<String, Component> componentsDetails = Collections.emptyMap();
|
||||
|
||||
if (includeDetails) {
|
||||
componentsDetails = componentLog.getComponents().stream().collect(Collectors.toMap(Component::getName, this::toComponentList));
|
||||
componentsDetails = componentLog.getComponentLogEntries()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(ComponentLogEntry::getName, entry -> Component.builder().name(entry.getName()).componentValues(toComponentList(entry)).build()));
|
||||
}
|
||||
|
||||
return FileComponents.builder()
|
||||
@ -68,31 +73,31 @@ public class ComponentControllerV2 implements ComponentResource {
|
||||
}
|
||||
|
||||
|
||||
private List<com.iqser.red.service.persistence.service.v2.api.external.model.Component> toComponentList(Component component) {
|
||||
private List<ComponentValue> toComponentList(ComponentLogEntry componentLogEntry) {
|
||||
|
||||
return component.getComponentValues().stream().map(entry -> convert(entry, component.getName())).toList();
|
||||
return componentLogEntry.getComponentValues().stream().map(this::convert).toList();
|
||||
}
|
||||
|
||||
|
||||
private com.iqser.red.service.persistence.service.v2.api.external.model.Component convert(ComponentValue componentValue, String name) {
|
||||
private ComponentValue convert(ComponentLogEntryValue componentValue) {
|
||||
|
||||
return com.iqser.red.service.persistence.service.v2.api.external.model.Component.builder()
|
||||
.name(name)
|
||||
.componentRule(componentValue.getComponentRuleId())
|
||||
.entityReferences(componentValue.getEntityReferences().stream().map(this::convertComponentEntityReference).toList())
|
||||
.originalValues(List.of(componentValue.getOriginalValue()))
|
||||
.values(List.of(componentValue.getValue()))
|
||||
return ComponentValue.builder()
|
||||
.valueDescription(componentValue.getValueDescription())
|
||||
.componentRuleId(componentValue.getComponentRuleId())
|
||||
.entityReferences(componentValue.getComponentLogEntityReferences().stream().map(this::convertComponentEntityReference).toList())
|
||||
.originalValue(componentValue.getOriginalValue())
|
||||
.value(componentValue.getValue())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
private Entity convertComponentEntityReference(EntityReference entityReference) {
|
||||
private EntityReference convertComponentEntityReference(ComponentLogEntityReference componentLogEntityReference) {
|
||||
|
||||
return Entity.builder()
|
||||
.id(entityReference.getId())
|
||||
.entityRule(entityReference.getEntityRuleId())
|
||||
.type(entityReference.getType())
|
||||
.pages(Set.of(entityReference.getPage()))
|
||||
return EntityReference.builder()
|
||||
.id(componentLogEntityReference.getId())
|
||||
.entityRule(componentLogEntityReference.getEntityRuleId())
|
||||
.type(componentLogEntityReference.getType())
|
||||
.pages(Set.of(componentLogEntityReference.getPage()))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
package com.iqser.red.service.persistence.service.v2.api.external.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@ -18,13 +18,6 @@ public class Component {
|
||||
@JacksonXmlCData
|
||||
private String name;
|
||||
@JacksonXmlCData
|
||||
private List<String> values;
|
||||
@JacksonXmlCData
|
||||
private List<String> originalValues;
|
||||
@JacksonXmlCData
|
||||
private String componentRule;
|
||||
|
||||
@Builder.Default
|
||||
private List<Entity> entityReferences = new ArrayList<>();
|
||||
private List<ComponentValue> componentValues;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.iqser.red.service.persistence.service.v2.api.external.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ComponentValue {
|
||||
|
||||
@JacksonXmlCData
|
||||
String value;
|
||||
@JacksonXmlCData
|
||||
String originalValue;
|
||||
@JacksonXmlCData
|
||||
String valueDescription;
|
||||
@JacksonXmlCData
|
||||
String componentRuleId;
|
||||
|
||||
@JacksonXmlCData
|
||||
List<EntityReference> entityReferences;
|
||||
|
||||
}
|
||||
@ -1,19 +1,20 @@
|
||||
package com.iqser.red.service.persistence.service.v2.api.external.model;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Entity {
|
||||
public class EntityReference {
|
||||
|
||||
private String id;
|
||||
@JacksonXmlCData
|
||||
@ -25,4 +26,5 @@ public class Entity {
|
||||
|
||||
@Builder.Default
|
||||
private Set<Integer> pages = new HashSet<>();
|
||||
|
||||
}
|
||||
@ -1,15 +1,16 @@
|
||||
package com.iqser.red.service.persistence.service.v2.api.external.model;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@ -28,6 +29,6 @@ public class FileComponents {
|
||||
|
||||
@Builder.Default
|
||||
@JacksonXmlCData
|
||||
private Map<String, List<Component>> componentDetails = new HashMap<>();
|
||||
private Map<String, Component> componentDetails = new HashMap<>();
|
||||
|
||||
}
|
||||
|
||||
@ -5,8 +5,8 @@ import java.util.Objects;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.Component;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -31,12 +31,12 @@ public class ComponentLogService {
|
||||
return componentLog;
|
||||
}
|
||||
|
||||
List<Component> overriddenComponents = componentLog.getComponents()
|
||||
List<ComponentLogEntry> overriddenComponentLogEntries = componentLog.getComponentLogEntries()
|
||||
.stream()
|
||||
.map(component -> applyOverride(component, componentsOverrides.getComponentOverrides().get(component.getName())))
|
||||
.map(componentLogEntry -> applyOverride(componentLogEntry, componentsOverrides.getComponentOverrides().get(componentLogEntry.getName())))
|
||||
.toList();
|
||||
|
||||
componentLog.setComponents(overriddenComponents);
|
||||
componentLog.setComponentLogEntries(overriddenComponentLogEntries);
|
||||
return componentLog;
|
||||
|
||||
}
|
||||
@ -49,13 +49,13 @@ public class ComponentLogService {
|
||||
}
|
||||
|
||||
|
||||
private Component applyOverride(Component component, String override) {
|
||||
private ComponentLogEntry applyOverride(ComponentLogEntry componentLogEntry, String override) {
|
||||
|
||||
if (Objects.isNull(override)) {
|
||||
return component;
|
||||
return componentLogEntry;
|
||||
}
|
||||
component.getComponentValues().forEach(componentValue -> componentValue.setValue(override));
|
||||
return component;
|
||||
componentLogEntry.getComponentValues().forEach(componentValue -> componentValue.setValue(override));
|
||||
return componentLogEntry;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -17,6 +17,6 @@ public class ComponentLog {
|
||||
|
||||
int analysisNumber;
|
||||
long componentRulesVersion = -1;
|
||||
List<Component> components = new ArrayList<>();
|
||||
List<ComponentLogEntry> componentLogEntries = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class EntityReference {
|
||||
public class ComponentLogEntityReference {
|
||||
|
||||
String id;
|
||||
String type;
|
||||
@ -12,9 +12,9 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class Component {
|
||||
public class ComponentLogEntry {
|
||||
|
||||
String name;
|
||||
List<ComponentValue> componentValues;
|
||||
List<ComponentLogEntryValue> componentValues;
|
||||
|
||||
}
|
||||
@ -14,13 +14,13 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ComponentValue {
|
||||
public class ComponentLogEntryValue {
|
||||
|
||||
String value;
|
||||
String originalValue;
|
||||
String valueDescription;
|
||||
String componentRuleId;
|
||||
|
||||
List<EntityReference> entityReferences;
|
||||
List<ComponentLogEntityReference> componentLogEntityReferences;
|
||||
|
||||
}
|
||||
@ -32,12 +32,14 @@ public class EntityLogEntry {
|
||||
|
||||
boolean imported;
|
||||
|
||||
List<Integer> containingNodeId;
|
||||
String closestHeadline;
|
||||
String section;
|
||||
|
||||
float[] color;
|
||||
|
||||
@Builder.Default
|
||||
List<Position> positions = new ArrayList<>();
|
||||
int sectionNumber;
|
||||
|
||||
String textBefore;
|
||||
String textAfter;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user