ModelToProdukt und ProduktToModel hinzugefügt

This commit is contained in:
2025-09-22 16:11:05 +02:00
parent ada228d552
commit f2de31444f
2 changed files with 31 additions and 16 deletions

View File

@@ -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);
};
}

View File

@@ -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() {