From f2de31444f5f9047314673396d8c361fc0465b45 Mon Sep 17 00:00:00 2001 From: LukasJuraczka Date: Mon, 22 Sep 2025 16:11:05 +0200 Subject: [PATCH] =?UTF-8?q?ModelToProdukt=20und=20ProduktToModel=20hinzuge?= =?UTF-8?q?f=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EndpointsZentralesBOA.java | 3 +- .../calculate/CalculateService.java | 44 +++++++++++++------ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/kapdion/omds/productdefinitions/EndpointsZentralesBOA.java b/src/main/java/com/kapdion/omds/productdefinitions/EndpointsZentralesBOA.java index 2f604c3..7dadc45 100644 --- a/src/main/java/com/kapdion/omds/productdefinitions/EndpointsZentralesBOA.java +++ b/src/main/java/com/kapdion/omds/productdefinitions/EndpointsZentralesBOA.java @@ -23,8 +23,7 @@ public class EndpointsZentralesBOA { @PostMapping("/CalculateRequest") public String calc(@RequestBody String calculateRequest) throws IOException, DatatypeConfigurationException { CalculateService cs = new CalculateService(); - cs.buildResponse(calculateRequest); - return ""; + return cs.buildResponse(calculateRequest); }; } diff --git a/src/main/java/com/kapdion/omds/productdefinitions/calculate/CalculateService.java b/src/main/java/com/kapdion/omds/productdefinitions/calculate/CalculateService.java index 25a8cf3..cae2cdb 100644 --- a/src/main/java/com/kapdion/omds/productdefinitions/calculate/CalculateService.java +++ b/src/main/java/com/kapdion/omds/productdefinitions/calculate/CalculateService.java @@ -1,13 +1,11 @@ package com.kapdion.omds.productdefinitions.calculate; -import at.vvo.omds.types.omds3.r2025_05.common.ProduktAllgemeinType; -import at.vvo.omds.types.omds3.r2025_05.common.ProduktbausteinType; -import at.vvo.omds.types.omds3.r2025_05.common.VerkaufsproduktAllgemeinType; -import at.vvo.omds.types.omds3.r2025_05.common.VerkaufsproduktType; +import at.vvo.omds.types.omds3.r2025_05.common.*; import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.impl.TreeModel; import org.eclipse.rdf4j.model.util.Models; +import org.eclipse.rdf4j.model.util.Values; import org.eclipse.rdf4j.rio.RDFFormat; import org.eclipse.rdf4j.rio.Rio; @@ -35,9 +33,8 @@ public class CalculateService { ByteArrayOutputStream baos = new ByteArrayOutputStream(); -// Rio.write(response, baos, RDFFormat.JSONLD); -// return baos.toString(); - return ""; + Rio.write(response, baos, RDFFormat.JSONLD); + return baos.toString(); } private VerkaufsproduktType calculateRequestToVerkaufsprodukt(String calculateRequest) throws IOException, DatatypeConfigurationException { @@ -141,8 +138,6 @@ public class CalculateService { produktbausteinType.setMaxVorkommen(maxOccurrence); produktbausteinType.setMinVorkommen(minOccurrence); produktbausteinType.setRisikoobjektErforderlich(risikoobjektType != null); - - break; } } @@ -178,11 +173,16 @@ public class CalculateService { private void pruefeVUNr(String vuNr) { } - private Model createRdfModel(VerkaufsproduktType vp) { + private Model createRdfModel(ProduktbausteinType vp) { Model erg = new TreeModel(); - String baseIri = "http://vvo.pisanoapi.at/"; + addProduktToModel(vp, erg, baseIri); + + return erg; + } + + public void addProduktToModel(ProduktbausteinType produkt, Model model, String baseIri) { IRI prodelemIri = iri(baseIri + "ProdElement"); IRI insIdIri = iri(baseIri + "ins_id"); IRI bezIri = iri(baseIri + "bez"); @@ -195,14 +195,30 @@ public class CalculateService { IRI risikoobjektTypeIri = iri(baseIri + "risikoobjektType"); IRI bausteinIri = iri(baseIri + "baustein"); - IRI vpIri = iri(baseIri + "ProdElement" + vp.getId()); + IRI vpIri = iri(baseIri + "ProdElement" + produkt.getId()); +// erg.add(vpIri, insIdIri, vp.getinsid()) + model.add(vpIri, bezIri, Values.literal(produkt.getBezeichnung())); +// erg.add(vpIri, createdIri, Values.literal(vp.get())); + model.add(vpIri, salesFromIri, Values.literal(produkt.getVerkaufsoffenVon())); + model.add(vpIri, salesToIri, Values.literal(produkt.getVerkaufsoffenBis())); + model.add(vpIri, minOccurrenceIri, Values.literal(produkt.getMinVorkommen())); + model.add(vpIri, maxOccurrenceIri, Values.literal(produkt.getMaxVorkommen())); + model.add(vpIri, typeIri, Values.literal(produkt.getTyp())); -// erg.add() +// for (int i = 0; i < vp.getVersicherteObjekte().size(); i++) { +// erg.add(vpIri, risikoobjektTypeIri, Values.literal(vp.getVersicherteObjekte().get(i))); +// } + for (int i = 0; i < produkt.getBausteine().size(); i++) { + IRI unterbausteinIri = iri(baseIri + "ProdElement" + produkt.getBausteine().get(i).getId()); + model.add(vpIri, bausteinIri, unterbausteinIri); + addProduktToModel(produkt.getBausteine().get(i), model, baseIri); + } + } + public void addRisikoobjektToModel(VersichertesInteresseType ro, Model model, String baseIri) { - return null; } private void calculate() {