diff --git a/OMDSServiceDefinition/pom.xml b/OMDSServiceDefinition/pom.xml
index 31b0300a..1109a0b2 100644
--- a/OMDSServiceDefinition/pom.xml
+++ b/OMDSServiceDefinition/pom.xml
@@ -209,7 +209,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
javafx-maven-plugin
0.0.8
- at.vvo.omds.client.gui.AllinOneView
+ at.vvo.omds.client.gui.MainView
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/ItemAttribute.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/ItemAttribute.java
index ceefab5a..5198a416 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/ItemAttribute.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/ItemAttribute.java
@@ -88,9 +88,9 @@ public class ItemAttribute {
&& infoBoxFromItem.get(newSelection).get(stringAttribut) != null
&& !infoBoxFromItem.get(newSelection).get(stringAttribut).isEmpty()){
textField.setText(infoBoxFromItem.get(newSelection).get(stringAttribut));
- } else if (stringAttribut.getValue() != null) {
+ } else if (stringAttribut.getValue() != null && !stringAttribut.getValue().equals("null")) {
textField.setText(stringAttribut.getValue());
- } else if (stringAttribut.getValue() == null && stringAttribut.getDefault() != null) {
+ } else if (stringAttribut.getDefault() != null) {
textField.setText(stringAttribut.getDefault());
}
textField.setPromptText("Text eingeben");
@@ -113,9 +113,9 @@ public class ItemAttribute {
&& infoBoxFromItem.get(newSelection).get(attributDezimal) != null
&& !infoBoxFromItem.get(newSelection).get(attributDezimal).isEmpty()){
textField.setText(infoBoxFromItem.get(newSelection).get(attributDezimal));
- } else if (attributDezimal.getValue() != null) {
+ } else if (attributDezimal.getValue() != null && !(attributDezimal.getValue().toString().equals("-1"))) {
textField.setText(attributDezimal.getValue().toString());
- } else if (attributDezimal.getValue() == null && attributDezimal.getDefault() != null) {
+ } else if (attributDezimal.getDefault() != null) {
textField.setText(attributDezimal.getDefault().toString());
}
textField.setPromptText("Dezimalzahl eingeben");
@@ -136,9 +136,9 @@ public class ItemAttribute {
&& infoBoxFromItem.get(newSelection).get(attributInt) != null
&& !infoBoxFromItem.get(newSelection).get(attributInt).isEmpty()){
textField.setText(infoBoxFromItem.get(newSelection).get(attributInt));
- } else if (attributInt.getValue() != null) {
+ } else if (attributInt.getValue() != null && !attributInt.getValue().equals(-1)) {
textField.setText(attributInt.getValue().toString());
- } else if (attributInt.getValue() == null && attributInt.getDefault() != null) {
+ } else if (attributInt.getDefault() != null) {
textField.setText(attributInt.getDefault().toString());
}
textField.setPromptText("Ganzzahl eingeben");
@@ -309,16 +309,18 @@ public class ItemAttribute {
+ ((FahrzeugType) risikoobjekte.get(i)).getBaujahr() + ")");
int finalI = i;
- if (((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().stream().anyMatch(v -> ((FahrzeugType) v).getHandelsbez().equals(((FahrzeugType) risikoobjekte.get(finalI)).getHandelsbez()))) {
+
+ if (((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte()
+ .stream().anyMatch(v -> ((FahrzeugType) v).getHandelsbez()
+ .equals(((FahrzeugType) risikoobjekte.get(finalI)).getHandelsbez()))) {
checkBox.setSelected(true);
}
checkBox.selectedProperty().addListener((observableValue, oldValue, newValue) -> {
if (newValue) {
((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().add(risikoobjekte.get(finalI));
-
} else {
- ((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().remove(risikoobjekte.get(finalI));
+ ((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().remove(finalI);
}
});
}
@@ -340,6 +342,7 @@ public class ItemAttribute {
if (produktbaustein.getMeldungen() != null && !produktbaustein.getMeldungen().isEmpty()) {
attributBox.getChildren().removeIf(n -> n.getId() != null && n.getId().equals("faultsbox"));
VBox faultsBox = new VBox();
+ faultsBox.setId("faultsbox");
for (ServiceFault sf : produktbaustein.getMeldungen()) {
HBox singleFaultBox = new HBox();
@@ -357,7 +360,7 @@ public class ItemAttribute {
singleFaultBox.getChildren().addAll(symbole, errorText);
singleFaultBox.setId("singleFaultBox");
- faultsBox.getChildren().add(singleFaultBox);
+ faultsBox.getChildren().add(singleFaultBox);
}
if (!faultsBox.getChildren().isEmpty()) {
@@ -405,16 +408,17 @@ public class ItemAttribute {
vpLabel.setPadding(new Insets(10));
attributBox.getChildren().addFirst(vpLabel);
- VBox vpMeldungenTexts = new VBox();
- vp.getMeldungen().forEach( m -> {
- Label vpMeldungText = new Label(m.getErrorMsg() + System.lineSeparator());
- vpMeldungText.setPadding(new Insets(10));
- vpMeldungenTexts.getChildren().add(vpMeldungText);
- });
+// VBox vpMeldungenTexts = new VBox();
+// vp.getMeldungen().forEach( m -> {
+// Label vpMeldungText = new Label(m.getErrorMsg() + System.lineSeparator());
+// vpMeldungText.setPadding(new Insets(10));
+//
+// vpMeldungenTexts.getChildren().add(vpMeldungText);
+// });
attributBox.getChildren().removeIf(c -> c.getId() != null && c.getId().equals("vpMeldungenTexts"));
- attributBox.getChildren().addAll(vpMeldungenTexts);
+// attributBox.getChildren().addAll(vpMeldungenTexts);
return attributBox;
}
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/MainView.java
similarity index 90%
rename from OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java
rename to OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/MainView.java
index dfc28ff4..aace2e23 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/AllinOneView.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/MainView.java
@@ -40,7 +40,7 @@ import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
-public class AllinOneView extends Application {
+public class MainView extends Application {
Map timesItemisIncludedById = new HashMap<>();
Map, Map> infoBoxFromItem = new HashMap<>();
@@ -58,7 +58,7 @@ public class AllinOneView extends Application {
public void start(Stage stage) {
stage.setTitle("OMDS Client");
- stage.getIcons().add(new Image(AllinOneView.class.getResourceAsStream("/logo/VVO_Logo_2024.png")));
+ stage.getIcons().add(new Image(MainView.class.getResourceAsStream("/logo/VVO_Logo_2024.png")));
TabPane tabPane = new TabPane();
Tab baumView = new Tab("Deckungsbaum");
@@ -285,11 +285,13 @@ public class AllinOneView extends Application {
tv.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
if (newSelection != null) {
-
if (!infoBox.getChildren().isEmpty()) {
infoBox.getChildren().removeAll(infoBox.getChildren());
}
+ if (isMeldungVorhanden((ProduktbausteinType) newSelection.getValue().getProdukt(), tv)){
+ ((ProduktbausteinType) newSelection.getValue().getProdukt()).getAttribute().removeIf(a -> a.getBezeichnung().equals("Praemie"));
+ }
ItemAttribute itemAttribute = new ItemAttribute();
itemAttribute.setRisikoobjekte(risikoobjektView.getRisikoobjekte());
if (!infoBoxFromItem.isEmpty()) itemAttribute.setInfoBoxFromItem(infoBoxFromItem);
@@ -389,7 +391,7 @@ public class AllinOneView extends Application {
TreeItem clone = null;
try {
clone = treeHelper.cloneTreeItem(
- treeHelper.findTreeItem((ProduktbausteinType) item.getProdukt(), originalRoot));
+ treeHelper.findTreeItem((ProduktbausteinType) item.getProdukt(), tv.getRoot()));
} catch (Exception ex) {
throw new RuntimeException(ex);
}
@@ -402,22 +404,11 @@ public class AllinOneView extends Application {
tv.refresh();
}
- VerkaufsproduktType neuRoot = checkPlausis(plausiList, tv.getRoot());
- TreeItem newRoot = new TreeItem<>(new GuiProdukt(neuRoot));
- newRoot.setExpanded(true);
-
- try {
- treeHelper.produktToTree(neuRoot, newRoot);
-
- TreeItem abc = new TreeItem<>();
-
- treeHelper.aprioriProduktToTree(verkaufsprodukt, abc);
-
- tv.setRoot(treeHelper.sortTree(treeHelper.addAprioriToCalc(newRoot, abc)));
-// tv.setRoot(treeHelper.sortTree(newRoot));
+ TreeItem newRoot = checkPlausis(plausiList, tv.getRoot(), verkaufsprodukt);
+ if (newRoot != null) {
+ newRoot.setExpanded(true);
+ tv.setRoot(newRoot);
tv.refresh();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
}
});
@@ -445,6 +436,15 @@ public class AllinOneView extends Application {
} else {
getTreeItem().getParent().getChildren().remove((getTreeItem()));
}
+
+ TreeItem newRoot = checkPlausis(plausiList, tv.getRoot(), verkaufsprodukt);
+ if (newRoot != null) {
+ newRoot.setExpanded(true);
+
+ tv.setRoot(newRoot);
+ tv.refresh();
+ }
+
timesItemisIncludedById.clear();
refreshTimesItemisIncludedById(tv.getRoot());
});
@@ -486,19 +486,29 @@ public class AllinOneView extends Application {
treeHelper.setTimesItemisIncludedById(timesItemisIncludedById);
if (serverBtn.isSelected()) {
VerkaufsproduktType calcResponse = s.calculateRDFAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
+ newRoot.getValue().setProdukt(calcResponse);
treeHelper.produktToTree(calcResponse, newRoot);
-
}else {
CalculateResponse calcResponse = s.calculateAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
+ newRoot.getValue().setProdukt(calcResponse.getBerechnungsantwort().getVerkaufsprodukt());
treeHelper.produktToTree(calcResponse.getBerechnungsantwort().getVerkaufsprodukt(), newRoot);
}
timesItemisIncludedById = treeHelper.getTimesItemisIncludedById();
newRoot.setExpanded(true);
- newRoot = treeHelper.addAprioriToCalc(newRoot, originalRoot);
- newRoot = treeHelper.sortTree(newRoot);
- tv.setRoot(newRoot);
+ TreeItem finalRoot = checkPlausis(plausiList, newRoot, verkaufsprodukt);
+ if (finalRoot != null) {
+ finalRoot.setExpanded(true);
+ tv.setRoot(finalRoot);
+ } else {
+ newRoot = treeHelper.addAprioriToCalc(newRoot, originalRoot);
+ newRoot = treeHelper.sortTree(newRoot);
+ tv.setRoot(newRoot);
+ }
+
+
+
timesItemisIncludedById.clear();
refreshTimesItemisIncludedById(tv.getRoot());
@@ -574,7 +584,7 @@ public class AllinOneView extends Application {
}
}
- private boolean shouldBeIncluded(TreeItem treeItem) {
+ public boolean shouldBeIncluded(TreeItem treeItem) {
return !(((treeItem.getParent() != null && treeItem.getParent().getValue().isNotIncluded()) || treeItem.getValue().isNotIncluded() ||
(((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() != null && ((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() == 0 &&
(timesItemisIncludedById.get(((ProduktbausteinType) treeItem.getValue().getProdukt()).getId()) == null ||
@@ -634,7 +644,7 @@ public class AllinOneView extends Application {
return erg;
}
- private boolean isMeldungVorhanden(ProduktbausteinType produkt, TreeView tv) {
+ public boolean isMeldungVorhanden(ProduktbausteinType produkt, TreeView tv) {
TreeHelper treeHelper = new TreeHelper();
TreeItem actual = treeHelper.findTreeItem(produkt, tv.getRoot());
@@ -647,7 +657,7 @@ public class AllinOneView extends Application {
return false;
}
- public VerkaufsproduktType checkPlausis(List plausiList, TreeItem vp){
+ public TreeItem checkPlausis(List plausiList, TreeItem vp, APrioriProduktbausteinType verkaufsprodukt){
Repository repo = new SailRepository(new MemoryStore());
repo.init();
@@ -656,19 +666,43 @@ public class AllinOneView extends Application {
conn.add(model);
- for (Plausi plausi : plausiList) {
- String sparql = plausi.getQuery();
+ plausiList.stream().filter(p -> p.getArt().equals("update")).forEach(p -> {
+ String query = p.getQuery();
+
+ conn.prepareUpdate(query).execute();
+ });
+
+ model.clear();
+ conn.getStatements(null, null, null).forEach(model::add);
+
+ plausiList.stream().filter(p -> p.getArt().equals("graph")).forEach(p -> {
+ String sparql = p.getQuery();
GraphQuery q = conn.prepareGraphQuery(sparql);
Model validatedModel = QueryResults.asModel(q.evaluate());
model.addAll(validatedModel);
+ });
- }
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Rio.write(model, baos, RDFFormat.JSONLD);
- return rdfHelper.calculateRequestToVerkaufsprodukt(baos.toString());
+
+ VerkaufsproduktType neuRoot = rdfHelper.calculateRequestToVerkaufsprodukt(baos.toString());
+ TreeItem newRoot = new TreeItem<>(new GuiProdukt(neuRoot));
+ newRoot.setExpanded(true);
+
+ try {
+ treeHelper.produktToTree(neuRoot, newRoot);
+
+ TreeItem aprioriTree = new TreeItem<>();
+ treeHelper.aprioriProduktToTree(verkaufsprodukt, aprioriTree);
+
+ return (treeHelper.sortTree(treeHelper.addAprioriToCalc(newRoot, aprioriTree)));
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
} catch(Exception ignored) {
+ ignored.printStackTrace();
System.out.println("CheckPlausi: " + ignored.getMessage());
return null;
}
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/Plausi.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/Plausi.java
index 2c2256a5..b1081dfa 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/Plausi.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/Plausi.java
@@ -3,11 +3,14 @@ package at.vvo.omds.client.gui;
public class Plausi {
String id;
String beschreibung;
+ String art;
String query;
- public Plausi(String name, String beschreibung, String query) {
+
+ public Plausi(String name, String beschreibung,String art, String query) {
this.id = name;
this.beschreibung = beschreibung;
+ this.art = art;
this.query = query;
}
@@ -34,4 +37,8 @@ public class Plausi {
public void setQuery(String query) {
this.query = query;
}
+
+ public String getArt() { return art; }
+
+ public void setArt(String art) { this.art = art; }
}
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RDFHelper.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RDFHelper.java
index a415148f..4ed9fc7f 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RDFHelper.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RDFHelper.java
@@ -1,6 +1,9 @@
package at.vvo.omds.client.gui;
import at.vvo.omds.types.omds3.r2025_05.common.*;
+import at.vvo.omds.types.omds3.r2025_05.on2antrag.sachPrivat.RisikoGebaeudeType;
+import at.vvo.omds.types.omds3.r2025_05.on2antrag.sachPrivat.RisikoHaushaltType;
+import at.vvo.omds.types.omds3.r2025_05.on2antrag.sachPrivat.VersichertesObjektSachPrivatType;
import jakarta.xml.bind.JAXBElement;
import javafx.scene.control.TreeItem;
import javafx.util.Pair;
@@ -49,7 +52,6 @@ public class RDFHelper {
private List> getAttributesFromRequest(String response) throws IOException {
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
- Rio.write(model, System.out, RDFFormat.TURTLE);
List> erg = new ArrayList<>();
String baseIri = "http://vvo.pisanoapi.at/";
@@ -61,12 +63,15 @@ public class RDFHelper {
IRI minIri = iri(baseIri + "min");
IRI defaultIri = iri(baseIri + "default");
IRI valueIri = iri(baseIri + "value");
+ IRI aenderbarIri = iri(baseIri + "aenderbar");
for (Resource iri : Models.subjectIRIs(model)) {
String bez = Models.objectLiteral(model.filter(iri, bezIri, null)).map(Literal::getLabel).orElse(null);
String prodId = Models.objectResource(model.filter(iri, produktIri, null)).map(Resource::stringValue).orElse(null);
Boolean required = Boolean.valueOf(Models.objectLiteral(model.filter(iri, requiredIri, null)).map(Literal::getLabel).orElse(null));
+ Boolean aenderbar = Boolean.valueOf(Models.objectLiteral(model.filter(iri, aenderbarIri, null)).map(Literal::getLabel).orElse("true"));
+
if (iri.stringValue().contains("ElemBoolean")) {
AttributBooleanType ab = new AttributBooleanType();
@@ -81,6 +86,7 @@ public class RDFHelper {
ab.setDefault(def);
ab.setPflichtfeld(required);
ab.setValue(val);
+ ab.setAenderbar(aenderbar);
Pair atPair = new Pair<>(prodId, ab);
erg.add(atPair);
@@ -100,7 +106,8 @@ public class RDFHelper {
ai.setPflichtfeld(required);
ai.setMax(max);
ai.setMin(min);
- ai.setValue(val);
+ if (!val.equals(-1))ai.setValue(val);
+ ai.setAenderbar(aenderbar);
Pair atPair = new Pair<>(prodId, ai);
erg.add(atPair);
@@ -120,7 +127,8 @@ public class RDFHelper {
ad.setPflichtfeld(required);
ad.setMax(max);
ad.setMin(min);
- ad.setValue(val);
+ if (!val.equals(BigDecimal.valueOf(-1)))ad.setValue(val);
+ ad.setAenderbar(aenderbar);
Pair atPair = new Pair<>(prodId, ad);
erg.add(atPair);
@@ -137,6 +145,7 @@ public class RDFHelper {
as.setDefault(def);
as.setPflichtfeld(required);
as.setValue(val);
+ as.setAenderbar(aenderbar);
Pair atPair = new Pair<>(prodId, as);
erg.add(atPair);
@@ -151,8 +160,8 @@ public class RDFHelper {
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
for (Resource iri : Models.subjectIRIs(model)) {
- if (iri.stringValue().contains("plausi")) {
- String id = iri.stringValue().replace("http://vvo.pisanoapi.at/plausi", "");
+ if (iri.stringValue().contains("Plausi")) {
+ String id = iri.stringValue().replace("http://vvo.pisanoapi.at/Plausi", "");
ValueFactory vf = SimpleValueFactory.getInstance();
String beschreibung = Models.objectLiteral(model.filter(iri, vf.createIRI(
@@ -161,7 +170,10 @@ public class RDFHelper {
String query = Models.objectLiteral(model.filter(iri, vf.createIRI(
"http://vvo.pisanoapi.at/query"), null)).map(Literal::getLabel).orElse(null);
- result.add(new Plausi(id, beschreibung, query));
+ String art = Models.objectLiteral(model.filter(iri, vf.createIRI(
+ "http://vvo.pisanoapi.at/art"), null)).map(Literal::getLabel).orElse(null);
+
+ result.add(new Plausi(id, beschreibung, art, query));
}
}
return result;
@@ -177,8 +189,6 @@ public class RDFHelper {
if (iri.stringValue().contains("ProdElement")) {
String id = iri.stringValue();
-
- System.out.println(iri.stringValue());
ValueFactory vf = SimpleValueFactory.getInstance();
int insId = Integer.parseInt(Models.objectLiteral(model.filter(iri, vf.createIRI(
@@ -205,7 +215,7 @@ public class RDFHelper {
.map(Literal::getLabel).orElse(null)) : null;
Optional parentId = Models.objectResource(model.filter(iri, vf.createIRI(
- "http://vvo.pisanoapi.at/parent"), null)).map(Resource::stringValue);
+ "http://vvo.pisanoapi.at/Parent"), null)).map(Resource::stringValue);
APrioriProduktbausteinType verkaufsproduktType;
if (parentId.isPresent()) {
@@ -241,8 +251,6 @@ public class RDFHelper {
Object baustein = entry.getValue();
String parentId = parents.get(id);
- System.out.println(id + " " + baustein.getClass().getName());
-
if (parentId != null && bausteine.containsKey(parentId)){
bausteine.get(parentId).getBausteine().add((APrioriUnterbausteinType) baustein);
}else {
@@ -254,7 +262,6 @@ public class RDFHelper {
}
public VerkaufsproduktType getCalculateRDF(String r) throws DatatypeConfigurationException, IOException {
-
return calculateRequestToVerkaufsprodukt(restClient.post()
.uri("http://localhost:9090/CalculateRequest")
.contentType(MediaType.APPLICATION_JSON)
@@ -271,8 +278,12 @@ public class RDFHelper {
Map parents = new HashMap<>();
List> attListe = getAttributesFromRequest(calculateRequest);
- for (Resource iri : Models.subjectIRIs(model)) {
+ List> risikoObjektListe = getRisikoObjekteFromRequest(calculateRequest);
+ List subjects = new ArrayList<>(Models.subjectIRIs(model));
+ Collections.reverse(subjects);
+
+ for (Resource iri : subjects) {
if (iri.stringValue().contains("Prod")) {
String id = iri.stringValue();
@@ -290,8 +301,21 @@ public class RDFHelper {
"http://vvo.pisanoapi.at/type"), null)).map(Literal::getLabel).orElse(null);
String risikoobjektType = Models.objectLiteral(model.filter(iri, vf.createIRI(
"http://vvo.pisanoapi.at/risikoobjektType"), null)).map(Literal::getLabel).orElse(null);
- String meldung = Models.objectLiteral(model.filter(iri, vf.createIRI(
- "http://vvo.pisanoapi.at/meldung"), null)).map(Literal::getLabel).orElse(null);
+ List meldungen = model.filter(iri, vf.createIRI(
+ "http://vvo.pisanoapi.at/Meldung"), null).objects().stream()
+ .filter(s -> s instanceof IRI).map(s -> {
+ IRI spezMeldung = (IRI) s;
+
+ String msg = Models.objectLiteral(model.filter(spezMeldung, vf.createIRI("http://vvo.pisanoapi.at/errorMsg"), null)).map(Literal::getLabel).orElse(null);
+ String errorType = Models.objectLiteral(model.filter(spezMeldung, vf.createIRI("http://vvo.pisanoapi.at/errorType"), null)).map(Literal::getLabel).orElse(null);
+
+ ServiceFault serviceFault = new ServiceFault();
+
+ serviceFault.setErrorMsg(msg);
+ serviceFault.setErrorType(BigInteger.valueOf(Integer.parseInt("1")));
+
+ return serviceFault;
+ }).toList();
XMLGregorianCalendar verkaufsoffenVon = Models.objectLiteral(model.filter(iri, vf.createIRI(
"http://vvo.pisanoapi.at/salesFrom"), null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
Models.objectLiteral(model.filter(iri, vf.createIRI(
@@ -300,12 +324,16 @@ public class RDFHelper {
"http://vvo.pisanoapi.at/salesTo"), null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
Models.objectLiteral(model.filter(iri, vf.createIRI(
"http://vvo.pisanoapi.at/salesTo"), null)).map(Literal::getLabel).orElse(null)) : null;
+ List fahrzeuge = model.filter(iri, vf.createIRI(
+ "http://vvo.pisanoapi.at/VersichertesInteresseType"), null).objects().stream()
+ .filter(s -> s instanceof IRI).map(Value::stringValue).toList();
Optional parentId = Models.objectResource(model.filter(iri, vf.createIRI(
- "http://vvo.pisanoapi.at/parent"), null)).map(Resource::stringValue);
+ "http://vvo.pisanoapi.at/Parent"), null)).map(Resource::stringValue);
ObjectFactoryFactory off = new ObjectFactoryFactory();
- ProduktbausteinType verkaufsproduktType = (ProduktbausteinType) off.create(type);
+
+ ProduktbausteinType verkaufsproduktType = off.create(type);
verkaufsproduktType.setId(iri.stringValue().substring("http://vvo.pisanoapi.at/ProdElement".length(), iri.stringValue().indexOf("-") > 0 ? iri.stringValue().indexOf("-") : iri.stringValue().length()));
verkaufsproduktType.setBezeichnung(bez);
@@ -316,11 +344,21 @@ public class RDFHelper {
verkaufsproduktType.setMinVorkommen(minOccurrence);
verkaufsproduktType.setRisikoobjektErforderlich(risikoobjektType != null);
- if (meldung != null) {
- ServiceFault tmp = new ServiceFault();
- tmp.setErrorMsg(meldung);
- tmp.setErrorType(BigInteger.ONE);
- verkaufsproduktType.getMeldungen().add(tmp);
+ for (ServiceFault meldung : meldungen) {
+ if (meldung != null) {
+ ServiceFault tmp = new ServiceFault();
+ tmp.setErrorMsg(meldung.getErrorMsg());
+ tmp.setErrorType(meldung.getErrorType());
+ verkaufsproduktType.getMeldungen().add(tmp);
+ }
+ }
+
+ for (Pair pair : risikoObjektListe) {
+ for (String fahrzeugId : fahrzeuge) {
+ if (pair.getKey().equals(fahrzeugId)) {
+ verkaufsproduktType.getVersicherteObjekte().add(pair.getValue());
+ }
+ }
}
for (Pair pair : attListe) {
@@ -336,6 +374,7 @@ public class RDFHelper {
List verkaufsprodukteList = new ArrayList<>();
+
for (Map.Entry entry : bausteine.entrySet()){
String id = entry.getKey();
ProduktbausteinType baustein = entry.getValue();
@@ -351,17 +390,86 @@ public class RDFHelper {
return verkaufsprodukteList.getFirst();
}
+ private List> getRisikoObjekteFromRequest(String calculateRequest) throws IOException, DatatypeConfigurationException {
+ Model model = Rio.parse(new StringReader(calculateRequest), "", RDFFormat.JSONLD);
+ List> erg = new ArrayList<>();
+
+ String baseIri = "http://vvo.pisanoapi.at/";
+
+ IRI bezIri = iri(baseIri + "bez");
+ IRI baujahrIri = iri(baseIri + "baujahr");
+ IRI erstzulassungIri = iri(baseIri + "erstzulassung");
+
+ for (Resource iri : Models.subjectIRIs(model)) {
+ if (iri.stringValue().contains("Fahrzeug")) {
+ String id = iri.stringValue();
+
+ String bez = Models.objectLiteral(model.filter(iri, bezIri, null)).map(Literal::getLabel).orElse(null);
+ int baujahr = Integer.parseInt(Models.objectLiteral(model.filter(iri, baujahrIri, null)).map(Literal::getLabel).orElse("-1"));
+ XMLGregorianCalendar erstzulassung = Models.objectLiteral(model.filter(iri, erstzulassungIri, null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
+ Models.objectLiteral(model.filter(iri, erstzulassungIri, null)).map(Literal::getLabel).orElse(null)) : null;
+
+ FahrzeugType fahrzeug = new FahrzeugType();
+
+ fahrzeug.setErstzulassdat(erstzulassung);
+ fahrzeug.setBaujahr(baujahr);
+ fahrzeug.setHandelsbez(bez);
+
+ erg.add(new Pair<>(id, fahrzeug));
+ }
+ }
+ return erg;
+ }
+
public Model createRdfModel(TreeItem vp) {
Model erg = new LinkedHashModel();
String baseIri = "http://vvo.pisanoapi.at/";
- Map occCounter = new HashMap<>();
- addProduktToModel(vp, erg, baseIri, null, occCounter);
+ Map idCount = new LinkedHashMap<>();
+ createIdCount(idCount, vp);
+
+ Map, IRI> iriMap = new LinkedHashMap<>();
+ createIriMap(vp, baseIri, idCount, iriMap);
+
+ addProduktToModel(vp, erg, baseIri, null, iriMap);
+
+ Rio.write(erg, System.out, RDFFormat.TURTLE);
return erg;
}
- public void addProduktToModel(TreeItem guiProdukt, Model model, String baseIri, String parentId, Map occCounter) {
+ private void createIdCount(Map idCount, TreeItem vp) {
+ if (!idCount.containsKey(((ProduktbausteinType) vp.getValue().getProdukt()).getId())) {
+ idCount.put(((ProduktbausteinType) vp.getValue().getProdukt()).getId(), 1);
+ }else {
+ idCount.put(((ProduktbausteinType) vp.getValue().getProdukt()).getId(), idCount.get(((ProduktbausteinType) vp.getValue().getProdukt()).getId()) + 1);
+ }
+
+ for (TreeItem child : vp.getChildren()){
+ createIdCount(idCount, child);
+ }
+
+ }
+
+ private void createIriMap(TreeItem produkt, String baseIri, Map idCount, Map, IRI> iriMap) {
+ IRI baseElemIri = iri(baseIri + "ProdElement");
+
+ for (int i = 1; i < idCount.get(((ProduktbausteinType)produkt.getValue().getProdukt()).getId())+1; i++) {
+ IRI tmpIri = iri(baseElemIri + ((ProduktbausteinType) produkt.getValue().getProdukt()).getId() + "-" + i);
+
+ if (!iriMap.containsValue(tmpIri)) {
+ iriMap.put(produkt, tmpIri);
+ break;
+ }
+ }
+
+ for (TreeItem child : produkt.getChildren()){
+ createIriMap(child, baseIri, idCount, iriMap);
+ }
+
+ }
+
+ public void addProduktToModel(TreeItem guiProdukt, Model model, String baseIri, String parentId, Map, IRI> iriMap) {
ProduktbausteinType produkt = (ProduktbausteinType) guiProdukt.getValue().getProdukt();
IRI prodelemIri = iri(baseIri + "ProdElement");
@@ -374,21 +482,24 @@ public class RDFHelper {
IRI maxOccurrenceIri = iri(baseIri + "maxOccurrence");
IRI typeIri = iri(baseIri + "type");
IRI risikoobjektTypeIri = iri(baseIri + "risikoobjektType");
- IRI bausteinIri = iri(baseIri + "baustein");
- IRI parentIri = iri(baseIri + "parent");
+ IRI bausteinIri = iri(baseIri + "Baustein");
+ IRI parentIri = iri(baseIri + "Parent");
- int occ = occCounter.merge(String.valueOf(produkt.getId()), 1, Integer::sum);
- IRI vpIri = iri(baseIri + "ProdElement" + produkt.getId() + "-" + occ);
+ IRI vpIri = iriMap.get(guiProdukt);
if (!guiProdukt.getValue().isNotIncluded()) {
model.add(vpIri, RDF.TYPE, prodelemIri);
model.add(vpIri, bezIri, Values.literal(produkt.getBezeichnung()));
- model.add(vpIri, salesFromIri, Values.literal(produkt.getVerkaufsoffenVon()));
+ if (produkt.getVerkaufsoffenVon() != null)
+ model.add(vpIri, salesFromIri, Values.literal(produkt.getVerkaufsoffenVon()));
if (produkt.getVerkaufsoffenBis() != null)
model.add(vpIri, salesToIri, Values.literal(produkt.getVerkaufsoffenBis()));
- model.add(vpIri, minOccurrenceIri, Values.literal(produkt.getMinVorkommen()));
- model.add(vpIri, maxOccurrenceIri, Values.literal(produkt.getMaxVorkommen()));
+ if (produkt.getMinVorkommen() != null)
+ model.add(vpIri, minOccurrenceIri, Values.literal(produkt.getMinVorkommen()));
+ if (produkt.getMaxVorkommen() != null)
+ model.add(vpIri, maxOccurrenceIri, Values.literal(produkt.getMaxVorkommen()));
model.add(vpIri, typeIri, Values.literal(produkt.getTyp()));
+ if (produkt.isRisikoobjektErforderlich()) model.add(vpIri, risikoobjektTypeIri, Values.literal("FahrzeugType"));
if (parentId != null) model.add(vpIri, parentIri, Values.iri(parentId));
@@ -402,6 +513,7 @@ public class RDFHelper {
IRI atMax = iri(baseIri + "max");
IRI atMin = iri(baseIri + "min");
IRI atDefault = iri(baseIri + "default");
+ IRI atAenderbar = iri(baseIri + "aenderbar");
if (attribut instanceof AttributIntType){
IRI specificAt = iri(baseIri + "ElemInt" + attribut.getId());
@@ -414,6 +526,7 @@ public class RDFHelper {
model.add(specificAt, atMax, Values.literal(((AttributIntType) attribut).getMax()));
model.add(specificAt, atMin, Values.literal(((AttributIntType) attribut).getMin()));
model.add(specificAt, atDefault, Values.literal(((AttributIntType) attribut).getDefault()));
+ model.add(specificAt, atAenderbar, Values.literal(attribut.isAenderbar() != null ? attribut.isAenderbar().toString() : true));
} else if (attribut instanceof AttributBooleanType) {
IRI specificAt = iri(baseIri + "ElemBoolean" + attribut.getId());
@@ -444,24 +557,64 @@ public class RDFHelper {
if (((AttributDezimalType) attribut).getValue() != null) model.add(specificAt, atValue, Values.literal(((AttributDezimalType) attribut).getValue()));
model.add(specificAt, atProd, vpIri);
if (((AttributDezimalType) attribut).getMax() != null) model.add(specificAt, atMax, Values.literal(((AttributDezimalType) attribut).getMax()));
- if (((AttributDezimalType) attribut).getMin() != null)model.add(specificAt, atMin, Values.literal(((AttributDezimalType) attribut).getMin()));
- if (((AttributDezimalType) attribut).getDefault() != null)model.add(specificAt, atDefault, Values.literal(((AttributDezimalType) attribut).getDefault()));
+ if (((AttributDezimalType) attribut).getMin() != null) model.add(specificAt, atMin, Values.literal(((AttributDezimalType) attribut).getMin()));
+ if (((AttributDezimalType) attribut).getDefault() != null) model.add(specificAt, atDefault, Values.literal(((AttributDezimalType) attribut).getDefault()));
+ }
+ }
+
+ int meldungId = 1;
+ for (ServiceFault sf : produkt.getMeldungen()){
+ IRI meldung = iri(baseIri + "Meldung");
+ IRI spezMeldung = iri(baseIri + "Meldung" + meldungId);
+ IRI meldungMsg = iri(baseIri + "errorMsg");
+ IRI meldungType = iri(baseIri + "errorType");
+
+ model.add(vpIri, meldung, spezMeldung);
+ model.add(spezMeldung, meldungMsg, Values.literal(sf.getErrorMsg()));
+ model.add(spezMeldung, meldungType, Values.literal(sf.getErrorType()));
+
+ meldungId++;
+ }
+
+ int fahrzeugId = 1;
+ for (VersichertesInteresseType ro : produkt.getVersicherteObjekte()){
+ if (ro instanceof FahrzeugType fa){
+ IRI fahrzeugIri = iri(baseIri + "FahrzeugType");
+ IRI faIri = iri(fahrzeugIri.stringValue() + fahrzeugId);
+ IRI faBaujahrIri = iri(baseIri + "baujahr");
+ IRI faBezIri = iri(baseIri + "bez");
+ IRI faErstZuIri = iri(baseIri + "erstzulassung");
+ IRI prodRoIri = iri(baseIri + "VersichertesInteresseType");
+
+ model.add(faIri, RDF.TYPE, fahrzeugIri);
+ model.add(faIri, faBaujahrIri, Values.literal(fa.getBaujahr()));
+ model.add(faIri, faBezIri, Values.literal(fa.getHandelsbez()));
+ model.add(faIri, faErstZuIri, Values.literal(fa.getErstzulassdat()));
+
+ model.add(vpIri, prodRoIri, faIri);
+
+ fahrzeugId++;
+ } else if (ro instanceof VersicherteLiegenschaftType) {
+ //To-Do
+ } else if (ro instanceof RisikoGebaeudeType) {
+ //To-Do
+ }else if (ro instanceof RisikoHaushaltType) {
+ //To-Do
+ }else if (ro instanceof VersichertePersonType) {
+ //To-Do
+ }else if (ro instanceof VersichertesObjektSachPrivatType) {
+ //To-Do
}
}
-// for (int i = 0; i < vp.getVersicherteObjekte().size(); i++) {
-// erg.add(vpIri, risikoobjektTypeIri, Values.literal(vp.getVersicherteObjekte().get(i)));
-// }
for (int i = 0; i < guiProdukt.getChildren().size(); i++) {
- IRI unterbausteinIri = iri(baseIri + "ProdElement" + ((ProduktbausteinType)guiProdukt.getChildren().get(i).getValue().getProdukt()).getId() +
- "-" + occCounter.getOrDefault(((ProduktbausteinType)guiProdukt.getChildren().get(i).getValue()
- .getProdukt()).getId(), 1));
+ IRI unterbausteinIri = iriMap.get(guiProdukt.getChildren().get(i));
if (!guiProdukt.getValue().isNotIncluded()) {
model.add(vpIri, bausteinIri, unterbausteinIri);
}
String newParentId = vpIri.stringValue();
- addProduktToModel(guiProdukt.getChildren().get(i), model, baseIri, newParentId, occCounter);
+ addProduktToModel(guiProdukt.getChildren().get(i), model, baseIri, newParentId, iriMap);
}
}
}
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RisikoobjektView.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RisikoobjektView.java
index 63ac73d6..f7ebcfc6 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RisikoobjektView.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/RisikoobjektView.java
@@ -119,6 +119,10 @@ public class RisikoobjektView {
choiceBox.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
if (newVal != null) {
+ int a = createForm.getChildren().size();
+ for (int i = 1; i < a; i++) {
+ createForm.getChildren().remove(i);
+ }
switch (newVal) {
case "Versichertes objekt SachPrivat": {
System.out.println("formular sach Privat");
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/TreeHelper.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/TreeHelper.java
index a56370d0..e7615e18 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/TreeHelper.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/TreeHelper.java
@@ -2,6 +2,7 @@ package at.vvo.omds.client.gui;
import at.vvo.omds.types.omds3.r2025_05.common.APrioriProduktbausteinType;
import at.vvo.omds.types.omds3.r2025_05.common.ProduktbausteinType;
+import javafx.collections.FXCollections;
import javafx.scene.control.TreeItem;
import java.util.*;
@@ -87,6 +88,7 @@ public class TreeHelper {
if (!produkt.getBausteine().isEmpty()) {
for (int i = 0; i < produkt.getBausteine().size(); i++) {
TreeItem up = aprioriItemToCalcItem(new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i))));
+ up.getValue().setNotIncluded(true);
up.setExpanded(true);
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
aprioriProduktToTree(produkt.getBausteine().get(i), up);
@@ -101,6 +103,7 @@ public class TreeHelper {
for (int i = 0; i < produkt.getBausteine().size(); i++) {
TreeItem up = new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i)));
up.setExpanded(true);
+
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
produktToTree(produkt.getBausteine().get(i), up);
}
@@ -115,36 +118,34 @@ public class TreeHelper {
public TreeItem aprioriItemToCalcItem(TreeItem produkt) throws Exception {
TreeItem ergItem = new TreeItem<>();
- Object erg = new ObjectFactoryFactory().create(
+ ProduktbausteinType erg = new ObjectFactoryFactory().create(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
if (erg != null) {
if (ProduktbausteinType.class.isAssignableFrom(erg.getClass())) {
- ((ProduktbausteinType) erg).setId(
+ erg.setId(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getId());
- ((ProduktbausteinType) erg).setBezeichnung(
+ erg.setBezeichnung(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getName());
- ((ProduktbausteinType) erg).setVerkaufsoffenVon(
+ erg.setVerkaufsoffenVon(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getFrom());
- ((ProduktbausteinType) erg).setVerkaufsoffenBis(
+ erg.setVerkaufsoffenBis(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getTo());
- ((ProduktbausteinType) erg).getMeldungen().addAll(
+ erg.getMeldungen().addAll(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMeldungen());
- ((ProduktbausteinType) erg).getAttribute().addAll(
+ erg.getAttribute().addAll(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getAttribute());
- ((ProduktbausteinType) erg).setMinVorkommen(
+ erg.setMinVorkommen(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMinOccurrences());
- ((ProduktbausteinType) erg).setMaxVorkommen(
+ erg.setMaxVorkommen(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMaxOccurrences());
- ((ProduktbausteinType) erg).setTyp(
+ erg.setTyp(
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
-
- if (((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getRisikoobjektType() != null) {
- ((ProduktbausteinType) erg).setRisikoobjektErforderlich(true);
- }
+ erg.setRisikoobjektErforderlich(
+ ((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getRisikoobjektType() != null);
for (int i = 0; i < ((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getBausteine().size(); i++) {
- ((ProduktbausteinType) erg).getBausteine().add((ProduktbausteinType) aprioriItemToCalcItem(
+ erg.getBausteine().add((ProduktbausteinType) aprioriItemToCalcItem(
new TreeItem<>(new GuiProdukt(((APrioriProduktbausteinType) produkt.getValue().getProdukt())
.getBausteine().get(i)))).getValue().getProdukt());
}
@@ -161,76 +162,37 @@ public class TreeHelper {
return ergItem;
}
-// public TreeItem addAprioriToCalc(TreeItem calcItem, TreeItem aprioriItem) {
-// for (TreeItem aprioriChild : aprioriItem.getChildren()) {
-// boolean isInCalc = false;
-// int i = 0;
-// for (TreeItem calcChild : calcItem.getChildren()) {
-// if (((ProduktbausteinType) calcChild.getValue().getProdukt()).getId().equals(
-// ((ProduktbausteinType) aprioriChild.getValue().getProdukt()).getId())
-// && !calcChild.getValue().isNotIncluded()) {
-// isInCalc = true;
-// if (!aprioriChild.getChildren().isEmpty()) {
-// addAprioriToCalc(calcChild, aprioriChild);
-//// calcItem.getChildren().set(i, calcChild);
-// }
-// }
-// i++;
-// }
-// if (!isInCalc) {
-// TreeItem missingCalcItem = cloneTreeItem(aprioriChild);
-// calcItem.getChildren().add(missingCalcItem);
-// missingCalcItem.getValue().setNotIncluded(true);
-// }
-// }
-// return calcItem;
-// }
-
public TreeItem addAprioriToCalc(TreeItem calcItem, TreeItem aprioriItem) {
-
for (TreeItem aprioriChild : aprioriItem.getChildren()) {
- ProduktbausteinType aprioriProd = (ProduktbausteinType) aprioriChild.getValue().getProdukt();
- String aprioriId = aprioriProd.getId();
-
- TreeItem matchingCalcChild = calcItem.getChildren().stream()
- .filter(c -> {
- ProduktbausteinType calcProd = (ProduktbausteinType) c.getValue().getProdukt();
- return calcProd.getId().equals(aprioriId) && !c.getValue().isNotIncluded();
- })
- .findFirst()
- .orElse(null);
-
- if (matchingCalcChild != null) {
- if (!aprioriChild.getChildren().isEmpty()) {
- addAprioriToCalc(matchingCalcChild, aprioriChild);
+ boolean isInCalc = false;
+ int i = 0;
+ for (TreeItem calcChild : calcItem.getChildren()) {
+ if (((ProduktbausteinType) calcChild.getValue().getProdukt()).getId().equals(
+ ((ProduktbausteinType) aprioriChild.getValue().getProdukt()).getId())
+ && !calcChild.getValue().isNotIncluded()) {
+ isInCalc = true;
+ if (!aprioriChild.getChildren().isEmpty()) {
+ addAprioriToCalc(calcChild, aprioriChild);
+ }
}
- } else {
- TreeItem cloned = cloneTreeItem(aprioriChild);
- cloned.getValue().setNotIncluded(true);
-
- calcItem.getChildren().add(cloned);
+ i++;
+ }
+ if (!isInCalc) {
+ TreeItem missingCalcItem = cloneTreeItem(aprioriChild);
+ calcItem.getChildren().add(missingCalcItem);
}
}
-
return calcItem;
}
public TreeItem sortTree(TreeItem parent) {
-// FXCollections.sort(parent.getChildren(), Comparator.comparing(
-// item -> ((ProduktbausteinType)((TreeItem)item).getValue().getProdukt()).getBezeichnung()
-// ));
-//
-// Comparator> compareBez = (s1, s2) -> {
-// int erg = ((ProduktbausteinType)s1.getValue().getProdukt()).getBezeichnung().compareTo(((ProduktbausteinType)s2.getValue().getProdukt()).getBezeichnung());
-// if (erg == 0) {
-// return 1;
-// }else {
-// return erg;
-// }
-// };
-// for (TreeItem child : parent.getChildren()) {
-// sortTree(child);
-// }
+ FXCollections.sort(parent.getChildren(), Comparator.comparing(
+ item -> ((ProduktbausteinType)item.getValue().getProdukt()).getBezeichnung()
+ ));
+
+ for (TreeItem child : parent.getChildren()) {
+ sortTree(child);
+ }
return parent;
}
}
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/BuildCalculateRequestAuskunft.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/BuildCalculateRequestAuskunft.java
index 2dd02307..21cef5f9 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/BuildCalculateRequestAuskunft.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/BuildCalculateRequestAuskunft.java
@@ -38,13 +38,8 @@ public class BuildCalculateRequestAuskunft {
}
static public String buildRDFRequestFromTreeView(TreeView treeView, XMLGregorianCalendar vtBeg) {
- VerkaufsproduktType verkaufsprodukt = TreeViewToVerkaufsprodukt(treeView, vtBeg);
- verkaufsprodukt.setVtgBeg(vtBeg);
- verkaufsprodukt.setTyp(((ProduktbausteinType)treeView.getRoot().getValue().getProdukt()).getTyp());
-
RDFHelper rdf = new RDFHelper();
-
- Model requestModel = rdf.createRdfModel(new TreeItem<>(new GuiProdukt(verkaufsprodukt, true)));
+ Model requestModel = rdf.createRdfModel(treeView.getRoot());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Rio.write(requestModel, baos, RDFFormat.JSONLD);
@@ -58,7 +53,7 @@ public class BuildCalculateRequestAuskunft {
}
public static ProduktbausteinType TreeItemToBaustein(TreeItem treeItem) {
- ProduktbausteinType baustein = (ProduktbausteinType) new ObjectFactoryFactory().create(
+ ProduktbausteinType baustein = new ObjectFactoryFactory().create(
((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
baustein.setBezeichnung(((ProduktbausteinType)treeItem.getValue().getProdukt()).getBezeichnung());
@@ -69,6 +64,7 @@ public class BuildCalculateRequestAuskunft {
baustein.setTyp(((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
baustein.setMinVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMinVorkommen());
baustein.setMaxVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMaxVorkommen());
+ baustein.getVersicherteObjekte().addAll(((ProduktbausteinType) treeItem.getValue().getProdukt()).getVersicherteObjekte());
return baustein;
}
@@ -87,7 +83,7 @@ public class BuildCalculateRequestAuskunft {
}
public static ProduktbausteinType addUpFromTreeItem(TreeItem treeItem) {
- ProduktbausteinType baustein = (ProduktbausteinType) TreeItemToBaustein(treeItem);
+ ProduktbausteinType baustein = TreeItemToBaustein(treeItem);
if (!treeItem.getChildren().isEmpty()) {
for (int i = 0; i < treeItem.getChildren().size(); i++) {
diff --git a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/CalculateRequestAuskunftService.java b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/CalculateRequestAuskunftService.java
index aebc65dc..fb115a06 100644
--- a/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/CalculateRequestAuskunftService.java
+++ b/OMDSServiceDefinition/src/main/java/at/vvo/omds/client/gui/api/calc/CalculateRequestAuskunftService.java
@@ -43,8 +43,6 @@ public class CalculateRequestAuskunftService {
String request = BuildCalculateRequestAuskunft.buildRDFRequestFromTreeView(treeView, vtBeg);
- System.out.println(request);
-
RDFHelper rdfHelper = new RDFHelper();
VerkaufsproduktType response = rdfHelper.getCalculateRDF(request);
log.info("Got Response As below ========= : ");