RED-8339: Fixes
This commit is contained in:
parent
1fda16b6ca
commit
ac6b11089b
@ -124,10 +124,12 @@ public class ComponentLogService {
|
||||
|
||||
if (optionalComponentLogEntry.isPresent()) {
|
||||
ComponentLogEntry componentToUpdate = optionalComponentLogEntry.get();
|
||||
componentToUpdate.setOverridden(true);
|
||||
componentToUpdate.setComponentValues(componentOverride.getComponentValues());
|
||||
saveOverride(dossierId, fileId, componentToUpdate);
|
||||
auditOverride(dossierId, fileId, componentToUpdate);
|
||||
} else {
|
||||
componentOverride.setOverridden(true);
|
||||
insertOverride(dossierId, fileId, componentOverride);
|
||||
auditOverride(dossierId, fileId, componentOverride);
|
||||
}
|
||||
@ -144,9 +146,7 @@ public class ComponentLogService {
|
||||
|
||||
private void insertOverride(String dossierId, String fileId, ComponentLogEntry componentToAdd) {
|
||||
|
||||
ComponentLog componentLog = fileManagementStorageService.getComponentLog(dossierId, fileId);
|
||||
|
||||
componentLogMongoService.insertComponentLogEntries(dossierId, fileId, componentLog, List.of(componentToAdd));
|
||||
componentLogMongoService.insertComponentLogEntries(dossierId, fileId, List.of(componentToAdd));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.client;
|
||||
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.resource.ComponentResource;
|
||||
|
||||
@FeignClient(name = "ComponentResource", url = "http://localhost:28080")
|
||||
public interface ComponentClient extends ComponentResource {
|
||||
|
||||
}
|
||||
@ -0,0 +1,91 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.ComponentClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
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.dossiertemplate.dossier.file.FileType;
|
||||
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;
|
||||
|
||||
public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@Autowired
|
||||
private DossierTesterAndProvider dossierTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private FileTesterAndProvider fileTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private ComponentClient componentClient;
|
||||
|
||||
@Autowired
|
||||
private DossierTemplateClient dossierTemplateClient;
|
||||
|
||||
|
||||
@Test
|
||||
public void testAddAndGetOverrides() throws IOException {
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
|
||||
var dossierTemplate = dossierTemplateClient.getDossierTemplate(dossier.getDossierTemplateId());
|
||||
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier, "filename");
|
||||
|
||||
Component componentOverrideModel = Component.builder()
|
||||
.name("Study_Title")
|
||||
.componentValues(List.of(ComponentValue.builder()
|
||||
.value("AAAA Strange Chemical Name And the rest of a title – With a dash and some more text")
|
||||
.valueDescription("First found value of type title or else ''")
|
||||
.componentRuleId("StudyTitle.0.0")
|
||||
.entityReferences(List.of(EntityReference.builder()
|
||||
.id("cf7f0d0c4c07918ce7d67b204f5fdb7d")
|
||||
.type("title")
|
||||
.entityRuleId("DOC.6.1")
|
||||
.page(1)
|
||||
.build()))
|
||||
.build()))
|
||||
.overridden(true)
|
||||
.build();
|
||||
|
||||
var componentLogJson = new ClassPathResource("files/componentlog/exampleComponentLog.json");
|
||||
|
||||
// ComponentLog componentLog = objectMapper.readValue(componentLogJson.getInputStream(), ComponentLog.class);
|
||||
|
||||
fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.COMPONENT_LOG, componentLogJson.getInputStream());
|
||||
ComponentLog componentLog = fileManagementStorageService.getComponentLog(dossier.getId(), file.getId());
|
||||
|
||||
componentClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel);
|
||||
|
||||
var overrides = componentClient.getOverrides(dossierTemplate.getId(), dossier.getId(), file.getId());
|
||||
|
||||
assertEquals(dossierTemplate.getId(), overrides.getDossierTemplateId());
|
||||
assertEquals(dossier.getId(), overrides.getDossierId());
|
||||
assertEquals(file.getId(), overrides.getFileId());
|
||||
|
||||
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
||||
|
||||
var sth = componentClient.getComponents(dossierTemplate.getId(), dossier.getId(), file.getId(), true);
|
||||
|
||||
System.out.println(sth);
|
||||
System.out.println("See ya");
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,655 @@
|
||||
{
|
||||
"analysisNumber": 1,
|
||||
"componentRulesVersion": 1,
|
||||
"componentLogEntries": [
|
||||
{
|
||||
"name": "Study_Title",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Strange Chemical Name And the rest of a title – With a dash and some more text",
|
||||
"originalValue": "Strange Chemical Name And the rest of a title – With a dash and some more text",
|
||||
"valueDescription": "First found value of type title or else ''",
|
||||
"componentRuleId": "StudyTitle.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "cf7f0d0c4c07918ce7d67b204f5fdb7d",
|
||||
"type": "title",
|
||||
"entityRuleId": "DOC.6.1",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "cf7f0d0c4c07918ce7d67b204f5fdb7d",
|
||||
"type": "title",
|
||||
"entityRuleId": "DOC.6.1",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Performing_Laboratory",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Test Labor Deutschland AG, Switzerland",
|
||||
"originalValue": "Test Labor Deutschland AG, Switzerland",
|
||||
"valueDescription": "Laboratory name and country found!",
|
||||
"componentRuleId": "PerformingLaboratory.1.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "cdfa1386cc0b1c665c7dfb1b8bd2a134",
|
||||
"type": "laboratory_name",
|
||||
"entityRuleId": "DOC.7.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "281e6f46a8b400cfb66e02ed51cd6a7a",
|
||||
"type": "laboratory_country",
|
||||
"entityRuleId": "DOC.7.2",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "Test Labor Deutschland AG, Switzerland",
|
||||
"originalValue": "Test Labor Deutschland AG, Switzerland",
|
||||
"valueDescription": "Laboratory name and country found!",
|
||||
"componentRuleId": "PerformingLaboratory.1.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "cdfa1386cc0b1c665c7dfb1b8bd2a134",
|
||||
"type": "laboratory_name",
|
||||
"entityRuleId": "DOC.7.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "281e6f46a8b400cfb66e02ed51cd6a7a",
|
||||
"type": "laboratory_country",
|
||||
"entityRuleId": "DOC.7.2",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "Test Labor Deutschland AG, Switzerland",
|
||||
"originalValue": "Test Labor Deutschland AG, Switzerland",
|
||||
"valueDescription": "Laboratory name and country found!",
|
||||
"componentRuleId": "PerformingLaboratory.1.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "cdfa1386cc0b1c665c7dfb1b8bd2a134",
|
||||
"type": "laboratory_name",
|
||||
"entityRuleId": "DOC.7.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "281e6f46a8b400cfb66e02ed51cd6a7a",
|
||||
"type": "laboratory_country",
|
||||
"entityRuleId": "DOC.7.2",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "Test Labor Deutschland AG, Switzerland",
|
||||
"originalValue": "Test Labor Deutschland AG, Switzerland",
|
||||
"valueDescription": "Laboratory name and country found!",
|
||||
"componentRuleId": "PerformingLaboratory.1.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "cdfa1386cc0b1c665c7dfb1b8bd2a134",
|
||||
"type": "laboratory_name",
|
||||
"entityRuleId": "DOC.7.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "281e6f46a8b400cfb66e02ed51cd6a7a",
|
||||
"type": "laboratory_country",
|
||||
"entityRuleId": "DOC.7.2",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Report_Number",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "11/111-111A",
|
||||
"originalValue": "11/111-111A",
|
||||
"valueDescription": "First found value of type report_number or else ''",
|
||||
"componentRuleId": "ReportNumber.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "e2a93bcc72e9740bbfc19bd9cd982e01",
|
||||
"type": "report_number",
|
||||
"entityRuleId": "DOC.2.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "e2a93bcc72e9740bbfc19bd9cd982e01",
|
||||
"type": "report_number",
|
||||
"entityRuleId": "DOC.2.0",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "GLP_Study",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Yes",
|
||||
"originalValue": "Yes",
|
||||
"valueDescription": "Yes if present, No if not",
|
||||
"componentRuleId": "GLPStudy.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "f898e5d91723480a4595d70371066a7f",
|
||||
"type": "glp_study",
|
||||
"entityRuleId": "DOC.8.0",
|
||||
"page": 2
|
||||
},
|
||||
{
|
||||
"id": "f898e5d91723480a4595d70371066a7f",
|
||||
"type": "glp_study",
|
||||
"entityRuleId": "DOC.8.0",
|
||||
"page": 2
|
||||
},
|
||||
{
|
||||
"id": "bb6817a9356ce9569d314a321aa44ad1",
|
||||
"type": "glp_study",
|
||||
"entityRuleId": "DOC.8.0",
|
||||
"page": 11
|
||||
},
|
||||
{
|
||||
"id": "bb6817a9356ce9569d314a321aa44ad1",
|
||||
"type": "glp_study",
|
||||
"entityRuleId": "DOC.8.0",
|
||||
"page": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Test_Guidelines_1",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Nº 402: Acute Dermal Toxicity (09/10/2017)",
|
||||
"originalValue": "Nº 402: Acute Dermal Toxicity (09/10/2017)",
|
||||
"valueDescription": "OECD Number and guideline year mapped!",
|
||||
"componentRuleId": "TestGuideline.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "fa103d7d55a67aff195a42d46cf5b1b1",
|
||||
"type": "oecd_guideline_number",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "a6a07692a60d3b8ef8d1261f23ab20c7",
|
||||
"type": "oecd_guideline_year",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Test_Guidelines_2",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "EPA 870.1200 (1998), EPA 870.1200 (1998), EC 440/2008, B.3 (2008), EC 440/2008, B.3 (2008)",
|
||||
"originalValue": "EPA 870.1200 (1998), EPA 870.1200 (1998), EC 440/2008, B.3 (2008), EC 440/2008, B.3 (2008)",
|
||||
"valueDescription": "Joining all values of type epa_guideline, ec_guideline with ', '",
|
||||
"componentRuleId": "TestGuideline.2.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "80890bae7f2ea65c43f2e82ab847c424",
|
||||
"type": "epa_guideline",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "80890bae7f2ea65c43f2e82ab847c424",
|
||||
"type": "epa_guideline",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "7a23ea595ed928d777d00f1afa61f552",
|
||||
"type": "ec_guideline",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
},
|
||||
{
|
||||
"id": "7a23ea595ed928d777d00f1afa61f552",
|
||||
"type": "ec_guideline",
|
||||
"entityRuleId": "DOC.1.0",
|
||||
"page": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Experimental_Starting_Date",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "14/05/2010, 14/05/2010",
|
||||
"originalValue": "14/05/2010, 14/05/2010",
|
||||
"valueDescription": "Convert values of type 'experimental_start_date' to dd/MM/yyyy joined with ', '",
|
||||
"componentRuleId": "StartDate.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "9819e3a491c9841ba76a526b215c2adf",
|
||||
"type": "experimental_start_date",
|
||||
"entityRuleId": "DOC.3.0",
|
||||
"page": 3
|
||||
},
|
||||
{
|
||||
"id": "9819e3a491c9841ba76a526b215c2adf",
|
||||
"type": "experimental_start_date",
|
||||
"entityRuleId": "DOC.3.0",
|
||||
"page": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Experimental_Completion_Date",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "21/05/2010, 21/05/2010",
|
||||
"originalValue": "21/05/2010, 21/05/2010",
|
||||
"valueDescription": "Convert values of type 'experimental_end_date' to dd/MM/yyyy joined with ', '",
|
||||
"componentRuleId": "CompletionDate.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "9a2a7922adf21476bd8718f154fc1fb0",
|
||||
"type": "experimental_end_date",
|
||||
"entityRuleId": "DOC.4.0",
|
||||
"page": 3
|
||||
},
|
||||
{
|
||||
"id": "9a2a7922adf21476bd8718f154fc1fb0",
|
||||
"type": "experimental_end_date",
|
||||
"entityRuleId": "DOC.4.0",
|
||||
"page": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Certificate_of_Analysis_Batch_Identification",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "AAA111-111-111",
|
||||
"originalValue": "AAA111-111-111",
|
||||
"valueDescription": "Joining all unique values of type batch_number with ', '",
|
||||
"componentRuleId": "AnalysisCertificate.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "2910c0d523ad15f9619e3c6b46200533",
|
||||
"type": "batch_number",
|
||||
"entityRuleId": "DOC.9.1",
|
||||
"page": 6
|
||||
},
|
||||
{
|
||||
"id": "2910c0d523ad15f9619e3c6b46200533",
|
||||
"type": "batch_number",
|
||||
"entityRuleId": "DOC.9.1",
|
||||
"page": 6
|
||||
},
|
||||
{
|
||||
"id": "b028246b799b7e32c0aef31e413c187f",
|
||||
"type": "batch_number",
|
||||
"entityRuleId": "DOC.9.1",
|
||||
"page": 10
|
||||
},
|
||||
{
|
||||
"id": "b028246b799b7e32c0aef31e413c187f",
|
||||
"type": "batch_number",
|
||||
"entityRuleId": "DOC.9.1",
|
||||
"page": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Species",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "rats",
|
||||
"originalValue": "rats",
|
||||
"valueDescription": "First found value of type species or else ''",
|
||||
"componentRuleId": "Species.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "5f0b08c0e3d98545cd7647aac82b6bf2",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "5f0b08c0e3d98545cd7647aac82b6bf2",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "18ab2f51b57c2f91cea9350621e7152f",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "18ab2f51b57c2f91cea9350621e7152f",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "5557fd15f4c4e3e519cce0f47f64d3e1",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "5557fd15f4c4e3e519cce0f47f64d3e1",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "665743f4475ff7c82e642b2901376b28",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "665743f4475ff7c82e642b2901376b28",
|
||||
"type": "species",
|
||||
"entityRuleId": "DOC.5.2",
|
||||
"page": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Strain",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Crl:WI Wistar",
|
||||
"originalValue": "Crl:WI Wistar",
|
||||
"valueDescription": "First found value of type strain or else ''",
|
||||
"componentRuleId": "Strain.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "a77b13568f8d6885faabf90119dd9b40",
|
||||
"type": "strain",
|
||||
"entityRuleId": "DOC.5.3",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "a77b13568f8d6885faabf90119dd9b40",
|
||||
"type": "strain",
|
||||
"entityRuleId": "DOC.5.3",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "818d354d9dc4158e4c05e96de099f39c",
|
||||
"type": "strain",
|
||||
"entityRuleId": "DOC.5.3",
|
||||
"page": 7
|
||||
},
|
||||
{
|
||||
"id": "818d354d9dc4158e4c05e96de099f39c",
|
||||
"type": "strain",
|
||||
"entityRuleId": "DOC.5.3",
|
||||
"page": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Doses_mg_per_kg_bw",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"originalValue": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"valueDescription": "Joining all values of type doses_(mg_kg_bw) with ' '",
|
||||
"componentRuleId": "Necropsy.1.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "92b67bcf7b5f7f7bdfcb6d0991e6b4c2",
|
||||
"type": "doses_(mg_kg_bw)",
|
||||
"entityRuleId": "DOC.35.0",
|
||||
"page": 4
|
||||
},
|
||||
{
|
||||
"id": "92b67bcf7b5f7f7bdfcb6d0991e6b4c2",
|
||||
"type": "doses_(mg_kg_bw)",
|
||||
"entityRuleId": "DOC.35.0",
|
||||
"page": 4
|
||||
},
|
||||
{
|
||||
"id": "67e8421d095ed4c003ca2c21a120c00b",
|
||||
"type": "doses_(mg_kg_bw)",
|
||||
"entityRuleId": "DOC.35.0",
|
||||
"page": 4
|
||||
},
|
||||
{
|
||||
"id": "67e8421d095ed4c003ca2c21a120c00b",
|
||||
"type": "doses_(mg_kg_bw)",
|
||||
"entityRuleId": "DOC.35.0",
|
||||
"page": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Mortality_Statement",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"originalValue": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"valueDescription": "Joining all values of type mortality_statement with ' '",
|
||||
"componentRuleId": "MortalityStatement.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "08b4d86a822d87d6f4e7b1efdd364181",
|
||||
"type": "mortality_statement",
|
||||
"entityRuleId": "DOC.32.0",
|
||||
"page": 8
|
||||
},
|
||||
{
|
||||
"id": "08b4d86a822d87d6f4e7b1efdd364181",
|
||||
"type": "mortality_statement",
|
||||
"entityRuleId": "DOC.32.0",
|
||||
"page": 8
|
||||
},
|
||||
{
|
||||
"id": "cc1c76d7e9bd09483b1ffa91a0749c2c",
|
||||
"type": "mortality_statement",
|
||||
"entityRuleId": "DOC.32.0",
|
||||
"page": 8
|
||||
},
|
||||
{
|
||||
"id": "cc1c76d7e9bd09483b1ffa91a0749c2c",
|
||||
"type": "mortality_statement",
|
||||
"entityRuleId": "DOC.32.0",
|
||||
"page": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Weight_Behavior_Changes",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "",
|
||||
"originalValue": "",
|
||||
"valueDescription": "Joining all values of type with '\n'",
|
||||
"componentRuleId": "WeightBehavior.0.0",
|
||||
"componentLogEntityReferences": []
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Necropsy_Findings",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"originalValue": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"valueDescription": "Joining all values of type necropsy_findings with ' '",
|
||||
"componentRuleId": "Necropsy.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "069397e80191213e72c792f177a22185",
|
||||
"type": "necropsy_findings",
|
||||
"entityRuleId": "DOC.17.0",
|
||||
"page": 9
|
||||
},
|
||||
{
|
||||
"id": "069397e80191213e72c792f177a22185",
|
||||
"type": "necropsy_findings",
|
||||
"entityRuleId": "DOC.17.0",
|
||||
"page": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Deviation_from_the_Guideline",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "There was no deviation from the guidelines and from the Study Plan.\nThere was no deviation from the guidelines and from the Study Plan.",
|
||||
"originalValue": "There was no deviation from the guidelines and from the Study Plan.\nThere was no deviation from the guidelines and from the Study Plan.",
|
||||
"valueDescription": "Joining all values of type guideline_deviation with '\n'",
|
||||
"componentRuleId": "GuidelineDeviation.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "4553fb6da48b0c6d6d5d45860c7e473d",
|
||||
"type": "guideline_deviation",
|
||||
"entityRuleId": "DOC.11.0",
|
||||
"page": 3
|
||||
},
|
||||
{
|
||||
"id": "4553fb6da48b0c6d6d5d45860c7e473d",
|
||||
"type": "guideline_deviation",
|
||||
"entityRuleId": "DOC.11.0",
|
||||
"page": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Conclusion_LD50_Greater_than",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "",
|
||||
"originalValue": "",
|
||||
"valueDescription": "No entity of type 'ld50_greater' found",
|
||||
"componentRuleId": "Conclusion.1.1",
|
||||
"componentLogEntityReferences": []
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Conclusion_LD50_mg_per_kg",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "",
|
||||
"originalValue": "",
|
||||
"valueDescription": "Joining all unique values of type with ', '",
|
||||
"componentRuleId": "Conclusion.0.0",
|
||||
"componentLogEntityReferences": []
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Conclusion_Minimum_Confidence",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "",
|
||||
"originalValue": "",
|
||||
"valueDescription": "Joining all unique values of type with ', '",
|
||||
"componentRuleId": "Conclusion.2.0",
|
||||
"componentLogEntityReferences": []
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Conclusion_Maximum_Confidence",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "",
|
||||
"originalValue": "",
|
||||
"valueDescription": "Joining all unique values of type with ', '",
|
||||
"componentRuleId": "Conclusion.3.0",
|
||||
"componentLogEntityReferences": []
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
},
|
||||
{
|
||||
"name": "Study_Conclusion",
|
||||
"componentValues": [
|
||||
{
|
||||
"value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"originalValue": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
|
||||
"valueDescription": "Joining all values of type study_conclusion with ' '",
|
||||
"componentRuleId": "StudyConclusion.0.0",
|
||||
"componentLogEntityReferences": [
|
||||
{
|
||||
"id": "d9c491f44d607083e9e6609b19498d21",
|
||||
"type": "study_conclusion",
|
||||
"entityRuleId": "DOC.15.0",
|
||||
"page": 4
|
||||
},
|
||||
{
|
||||
"id": "d9c491f44d607083e9e6609b19498d21",
|
||||
"type": "study_conclusion",
|
||||
"entityRuleId": "DOC.15.0",
|
||||
"page": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"overridden": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.shared.mongo.mapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
@ -20,8 +21,20 @@ public interface ComponentLogDocumentMapper {
|
||||
@Mapping(source = "components", target = "componentLogEntries")
|
||||
ComponentLog fromComponentLogDocument(ComponentLogDocument componentLogDocument);
|
||||
|
||||
default List<ComponentDocument> toComponentDocuments(String dossierId, String fileId, List<ComponentLogEntry> componentLogEntries) {
|
||||
List<ComponentDocument> componentDocuments = new ArrayList<>();
|
||||
|
||||
List<ComponentDocument> toComponentDocuments(List<ComponentLogEntry> componentLogEntries);
|
||||
String componentLogId = getComponentLogId(dossierId, fileId);
|
||||
for (ComponentLogEntry componentLogEntry : componentLogEntries) {
|
||||
ComponentDocument componentDocument = new ComponentDocument();
|
||||
componentDocument.setId(getComponentId(componentLogId, componentLogEntry.getName()));
|
||||
componentDocument.setComponentLogId(componentLogId);
|
||||
componentDocument.setName(componentLogEntry.getName());
|
||||
componentDocument.setOverrideValues(componentLogEntry.getComponentValues());
|
||||
componentDocuments.add(componentDocument);
|
||||
}
|
||||
return componentDocuments;
|
||||
}
|
||||
|
||||
|
||||
@Mapping(source = "overrideValues", target = "componentValues")
|
||||
@ -29,10 +42,12 @@ public interface ComponentLogDocumentMapper {
|
||||
|
||||
|
||||
@Mapping(expression = "java(getComponentLogId(dossierId, fileId))", target = "id")
|
||||
@Mapping(expression = "java(toComponentDocuments(dossierId, fileId, componentLog.getComponentLogEntries()))", target = "components")
|
||||
ComponentLogDocument toComponentLogDocument(String dossierId, String fileId, ComponentLog componentLog);
|
||||
|
||||
|
||||
@Mapping(expression = "java(getComponentId(componentLogId, componentLogEntry.getName()))", target = "id")
|
||||
@Mapping(source = "componentLogEntry.componentValues", target = "overrideValues")
|
||||
ComponentDocument toComponentDocument(String componentLogId, ComponentLogEntry componentLogEntry);
|
||||
|
||||
|
||||
|
||||
@ -29,9 +29,10 @@ public class CustomComponentRepositoryImpl implements CustomComponentRepository
|
||||
@Override
|
||||
public List<ComponentDocument> findOverrides(String fileId, String dossierId) {
|
||||
|
||||
LookupOperation lookupOperation = LookupOperation.newLookup().from("componentDocument").localField("components").foreignField("_id").as("componentDocs");
|
||||
LookupOperation lookupOperation = LookupOperation.newLookup().from("components").localField("overrideValues").foreignField("_id").as("componentDocs");
|
||||
|
||||
AggregationOperation matchOperation = match(Criteria.where("fileId").is(fileId).and("dossierId").is(dossierId));
|
||||
AggregationOperation matchOperation = match(Criteria.where("componentLogId").is(dossierId + "/" + fileId));
|
||||
// AggregationOperation matchOperation = match(Criteria.where("fileId").is(fileId).and("dossierId").is(dossierId));
|
||||
|
||||
AggregationOperation unwindOperation = unwind("componentDocs");
|
||||
|
||||
@ -41,7 +42,7 @@ public class CustomComponentRepositoryImpl implements CustomComponentRepository
|
||||
|
||||
Aggregation aggregation = newAggregation(matchOperation, lookupOperation, unwindOperation, matchNonEmptyOverrides, replaceRootOperation);
|
||||
|
||||
AggregationResults<ComponentDocument> results = mongoTemplate.aggregate(aggregation, "componentLogDocument", ComponentDocument.class);
|
||||
AggregationResults<ComponentDocument> results = mongoTemplate.aggregate(aggregation, "component-logs", ComponentDocument.class);
|
||||
|
||||
return results.getMappedResults();
|
||||
}
|
||||
|
||||
@ -97,20 +97,15 @@ public class ComponentLogMongoService {
|
||||
}
|
||||
|
||||
|
||||
public void insertComponentLogEntries(String dossierId, String fileId, ComponentLog componentLog, List<ComponentLogEntry> componentLogEntries) {
|
||||
public void insertComponentLogEntries(String dossierId, String fileId, List<ComponentLogEntry> componentLogEntries) {
|
||||
|
||||
String componentLogId = mapper.getComponentLogId(dossierId, fileId);
|
||||
|
||||
ComponentLogDocument componentLogDocument = mapper.toComponentLogDocument(dossierId, fileId, componentLog);
|
||||
|
||||
List<ComponentDocument> componentDocuments = componentLogEntries.stream()
|
||||
.map(componentLogEntry -> mapper.toComponentDocument(componentLogId, componentLogEntry))
|
||||
.toList();
|
||||
|
||||
componentLogDocument.getComponents().addAll(componentDocuments);
|
||||
|
||||
componentDocumentRepository.insert(componentDocuments);
|
||||
componentLogDocumentRepository.save(componentLogDocument);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user