Risikoobjekte werden auch mit RDF verarbeitet. Plausi art hinzugefügt. Häufigere prüfung von Plausis. Attribute können änderbar oder nicht änderbar gesetzt werden. Sortieren angepasst.
This commit is contained in:
@@ -209,7 +209,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
|
|||||||
<artifactId>javafx-maven-plugin</artifactId>
|
<artifactId>javafx-maven-plugin</artifactId>
|
||||||
<version>0.0.8</version>
|
<version>0.0.8</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<mainClass>at.vvo.omds.client.gui.AllinOneView</mainClass>
|
<mainClass>at.vvo.omds.client.gui.MainView</mainClass>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|||||||
@@ -88,9 +88,9 @@ public class ItemAttribute {
|
|||||||
&& infoBoxFromItem.get(newSelection).get(stringAttribut) != null
|
&& infoBoxFromItem.get(newSelection).get(stringAttribut) != null
|
||||||
&& !infoBoxFromItem.get(newSelection).get(stringAttribut).isEmpty()){
|
&& !infoBoxFromItem.get(newSelection).get(stringAttribut).isEmpty()){
|
||||||
textField.setText(infoBoxFromItem.get(newSelection).get(stringAttribut));
|
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());
|
textField.setText(stringAttribut.getValue());
|
||||||
} else if (stringAttribut.getValue() == null && stringAttribut.getDefault() != null) {
|
} else if (stringAttribut.getDefault() != null) {
|
||||||
textField.setText(stringAttribut.getDefault());
|
textField.setText(stringAttribut.getDefault());
|
||||||
}
|
}
|
||||||
textField.setPromptText("Text eingeben");
|
textField.setPromptText("Text eingeben");
|
||||||
@@ -113,9 +113,9 @@ public class ItemAttribute {
|
|||||||
&& infoBoxFromItem.get(newSelection).get(attributDezimal) != null
|
&& infoBoxFromItem.get(newSelection).get(attributDezimal) != null
|
||||||
&& !infoBoxFromItem.get(newSelection).get(attributDezimal).isEmpty()){
|
&& !infoBoxFromItem.get(newSelection).get(attributDezimal).isEmpty()){
|
||||||
textField.setText(infoBoxFromItem.get(newSelection).get(attributDezimal));
|
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());
|
textField.setText(attributDezimal.getValue().toString());
|
||||||
} else if (attributDezimal.getValue() == null && attributDezimal.getDefault() != null) {
|
} else if (attributDezimal.getDefault() != null) {
|
||||||
textField.setText(attributDezimal.getDefault().toString());
|
textField.setText(attributDezimal.getDefault().toString());
|
||||||
}
|
}
|
||||||
textField.setPromptText("Dezimalzahl eingeben");
|
textField.setPromptText("Dezimalzahl eingeben");
|
||||||
@@ -136,9 +136,9 @@ public class ItemAttribute {
|
|||||||
&& infoBoxFromItem.get(newSelection).get(attributInt) != null
|
&& infoBoxFromItem.get(newSelection).get(attributInt) != null
|
||||||
&& !infoBoxFromItem.get(newSelection).get(attributInt).isEmpty()){
|
&& !infoBoxFromItem.get(newSelection).get(attributInt).isEmpty()){
|
||||||
textField.setText(infoBoxFromItem.get(newSelection).get(attributInt));
|
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());
|
textField.setText(attributInt.getValue().toString());
|
||||||
} else if (attributInt.getValue() == null && attributInt.getDefault() != null) {
|
} else if (attributInt.getDefault() != null) {
|
||||||
textField.setText(attributInt.getDefault().toString());
|
textField.setText(attributInt.getDefault().toString());
|
||||||
}
|
}
|
||||||
textField.setPromptText("Ganzzahl eingeben");
|
textField.setPromptText("Ganzzahl eingeben");
|
||||||
@@ -309,16 +309,18 @@ public class ItemAttribute {
|
|||||||
+ ((FahrzeugType) risikoobjekte.get(i)).getBaujahr() + ")");
|
+ ((FahrzeugType) risikoobjekte.get(i)).getBaujahr() + ")");
|
||||||
|
|
||||||
int finalI = i;
|
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.setSelected(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkBox.selectedProperty().addListener((observableValue, oldValue, newValue) -> {
|
checkBox.selectedProperty().addListener((observableValue, oldValue, newValue) -> {
|
||||||
if (newValue) {
|
if (newValue) {
|
||||||
((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().add(risikoobjekte.get(finalI));
|
((ProduktbausteinType) newSelection.getValue().getProdukt()).getVersicherteObjekte().add(risikoobjekte.get(finalI));
|
||||||
|
|
||||||
} else {
|
} 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()) {
|
if (produktbaustein.getMeldungen() != null && !produktbaustein.getMeldungen().isEmpty()) {
|
||||||
attributBox.getChildren().removeIf(n -> n.getId() != null && n.getId().equals("faultsbox"));
|
attributBox.getChildren().removeIf(n -> n.getId() != null && n.getId().equals("faultsbox"));
|
||||||
VBox faultsBox = new VBox();
|
VBox faultsBox = new VBox();
|
||||||
|
faultsBox.setId("faultsbox");
|
||||||
|
|
||||||
for (ServiceFault sf : produktbaustein.getMeldungen()) {
|
for (ServiceFault sf : produktbaustein.getMeldungen()) {
|
||||||
HBox singleFaultBox = new HBox();
|
HBox singleFaultBox = new HBox();
|
||||||
@@ -405,16 +408,17 @@ public class ItemAttribute {
|
|||||||
vpLabel.setPadding(new Insets(10));
|
vpLabel.setPadding(new Insets(10));
|
||||||
attributBox.getChildren().addFirst(vpLabel);
|
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().removeIf(c -> c.getId() != null && c.getId().equals("vpMeldungenTexts"));
|
||||||
attributBox.getChildren().addAll(vpMeldungenTexts);
|
// attributBox.getChildren().addAll(vpMeldungenTexts);
|
||||||
|
|
||||||
return attributBox;
|
return attributBox;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import java.util.*;
|
|||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
public class AllinOneView extends Application {
|
public class MainView extends Application {
|
||||||
|
|
||||||
Map<String, Integer> timesItemisIncludedById = new HashMap<>();
|
Map<String, Integer> timesItemisIncludedById = new HashMap<>();
|
||||||
Map<TreeItem<GuiProdukt>, Map<AttributType, String>> infoBoxFromItem = new HashMap<>();
|
Map<TreeItem<GuiProdukt>, Map<AttributType, String>> infoBoxFromItem = new HashMap<>();
|
||||||
@@ -58,7 +58,7 @@ public class AllinOneView extends Application {
|
|||||||
public void start(Stage stage) {
|
public void start(Stage stage) {
|
||||||
|
|
||||||
stage.setTitle("OMDS Client");
|
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();
|
TabPane tabPane = new TabPane();
|
||||||
Tab baumView = new Tab("Deckungsbaum");
|
Tab baumView = new Tab("Deckungsbaum");
|
||||||
@@ -285,11 +285,13 @@ public class AllinOneView extends Application {
|
|||||||
|
|
||||||
tv.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
|
tv.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
|
||||||
if (newSelection != null) {
|
if (newSelection != null) {
|
||||||
|
|
||||||
if (!infoBox.getChildren().isEmpty()) {
|
if (!infoBox.getChildren().isEmpty()) {
|
||||||
infoBox.getChildren().removeAll(infoBox.getChildren());
|
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 itemAttribute = new ItemAttribute();
|
||||||
itemAttribute.setRisikoobjekte(risikoobjektView.getRisikoobjekte());
|
itemAttribute.setRisikoobjekte(risikoobjektView.getRisikoobjekte());
|
||||||
if (!infoBoxFromItem.isEmpty()) itemAttribute.setInfoBoxFromItem(infoBoxFromItem);
|
if (!infoBoxFromItem.isEmpty()) itemAttribute.setInfoBoxFromItem(infoBoxFromItem);
|
||||||
@@ -389,7 +391,7 @@ public class AllinOneView extends Application {
|
|||||||
TreeItem<GuiProdukt> clone = null;
|
TreeItem<GuiProdukt> clone = null;
|
||||||
try {
|
try {
|
||||||
clone = treeHelper.cloneTreeItem(
|
clone = treeHelper.cloneTreeItem(
|
||||||
treeHelper.findTreeItem((ProduktbausteinType) item.getProdukt(), originalRoot));
|
treeHelper.findTreeItem((ProduktbausteinType) item.getProdukt(), tv.getRoot()));
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
@@ -402,22 +404,11 @@ public class AllinOneView extends Application {
|
|||||||
tv.refresh();
|
tv.refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
VerkaufsproduktType neuRoot = checkPlausis(plausiList, tv.getRoot());
|
TreeItem<GuiProdukt> newRoot = checkPlausis(plausiList, tv.getRoot(), verkaufsprodukt);
|
||||||
TreeItem<GuiProdukt> newRoot = new TreeItem<>(new GuiProdukt(neuRoot));
|
if (newRoot != null) {
|
||||||
newRoot.setExpanded(true);
|
newRoot.setExpanded(true);
|
||||||
|
tv.setRoot(newRoot);
|
||||||
try {
|
|
||||||
treeHelper.produktToTree(neuRoot, newRoot);
|
|
||||||
|
|
||||||
TreeItem<GuiProdukt> abc = new TreeItem<>();
|
|
||||||
|
|
||||||
treeHelper.aprioriProduktToTree(verkaufsprodukt, abc);
|
|
||||||
|
|
||||||
tv.setRoot(treeHelper.sortTree(treeHelper.addAprioriToCalc(newRoot, abc)));
|
|
||||||
// tv.setRoot(treeHelper.sortTree(newRoot));
|
|
||||||
tv.refresh();
|
tv.refresh();
|
||||||
} catch (Exception ex) {
|
|
||||||
throw new RuntimeException(ex);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -445,6 +436,15 @@ public class AllinOneView extends Application {
|
|||||||
} else {
|
} else {
|
||||||
getTreeItem().getParent().getChildren().remove((getTreeItem()));
|
getTreeItem().getParent().getChildren().remove((getTreeItem()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TreeItem<GuiProdukt> newRoot = checkPlausis(plausiList, tv.getRoot(), verkaufsprodukt);
|
||||||
|
if (newRoot != null) {
|
||||||
|
newRoot.setExpanded(true);
|
||||||
|
|
||||||
|
tv.setRoot(newRoot);
|
||||||
|
tv.refresh();
|
||||||
|
}
|
||||||
|
|
||||||
timesItemisIncludedById.clear();
|
timesItemisIncludedById.clear();
|
||||||
refreshTimesItemisIncludedById(tv.getRoot());
|
refreshTimesItemisIncludedById(tv.getRoot());
|
||||||
});
|
});
|
||||||
@@ -486,19 +486,29 @@ public class AllinOneView extends Application {
|
|||||||
treeHelper.setTimesItemisIncludedById(timesItemisIncludedById);
|
treeHelper.setTimesItemisIncludedById(timesItemisIncludedById);
|
||||||
if (serverBtn.isSelected()) {
|
if (serverBtn.isSelected()) {
|
||||||
VerkaufsproduktType calcResponse = s.calculateRDFAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
|
VerkaufsproduktType calcResponse = s.calculateRDFAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
|
||||||
|
newRoot.getValue().setProdukt(calcResponse);
|
||||||
treeHelper.produktToTree(calcResponse, newRoot);
|
treeHelper.produktToTree(calcResponse, newRoot);
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
CalculateResponse calcResponse = s.calculateAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
|
CalculateResponse calcResponse = s.calculateAuskunft(new TreeView<>(cleanedRoot), stichtag.get());
|
||||||
|
newRoot.getValue().setProdukt(calcResponse.getBerechnungsantwort().getVerkaufsprodukt());
|
||||||
treeHelper.produktToTree(calcResponse.getBerechnungsantwort().getVerkaufsprodukt(), newRoot);
|
treeHelper.produktToTree(calcResponse.getBerechnungsantwort().getVerkaufsprodukt(), newRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
timesItemisIncludedById = treeHelper.getTimesItemisIncludedById();
|
timesItemisIncludedById = treeHelper.getTimesItemisIncludedById();
|
||||||
newRoot.setExpanded(true);
|
newRoot.setExpanded(true);
|
||||||
|
|
||||||
|
TreeItem<GuiProdukt> finalRoot = checkPlausis(plausiList, newRoot, verkaufsprodukt);
|
||||||
|
if (finalRoot != null) {
|
||||||
|
finalRoot.setExpanded(true);
|
||||||
|
tv.setRoot(finalRoot);
|
||||||
|
} else {
|
||||||
newRoot = treeHelper.addAprioriToCalc(newRoot, originalRoot);
|
newRoot = treeHelper.addAprioriToCalc(newRoot, originalRoot);
|
||||||
newRoot = treeHelper.sortTree(newRoot);
|
newRoot = treeHelper.sortTree(newRoot);
|
||||||
tv.setRoot(newRoot);
|
tv.setRoot(newRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
timesItemisIncludedById.clear();
|
timesItemisIncludedById.clear();
|
||||||
|
|
||||||
refreshTimesItemisIncludedById(tv.getRoot());
|
refreshTimesItemisIncludedById(tv.getRoot());
|
||||||
@@ -574,7 +584,7 @@ public class AllinOneView extends Application {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldBeIncluded(TreeItem<GuiProdukt> treeItem) {
|
public boolean shouldBeIncluded(TreeItem<GuiProdukt> treeItem) {
|
||||||
return !(((treeItem.getParent() != null && treeItem.getParent().getValue().isNotIncluded()) || treeItem.getValue().isNotIncluded() ||
|
return !(((treeItem.getParent() != null && treeItem.getParent().getValue().isNotIncluded()) || treeItem.getValue().isNotIncluded() ||
|
||||||
(((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() != null && ((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() == 0 &&
|
(((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() != null && ((ProduktbausteinType) treeItem.getValue().getProdukt()).getMinVorkommen() == 0 &&
|
||||||
(timesItemisIncludedById.get(((ProduktbausteinType) treeItem.getValue().getProdukt()).getId()) == null ||
|
(timesItemisIncludedById.get(((ProduktbausteinType) treeItem.getValue().getProdukt()).getId()) == null ||
|
||||||
@@ -634,7 +644,7 @@ public class AllinOneView extends Application {
|
|||||||
|
|
||||||
return erg;
|
return erg;
|
||||||
}
|
}
|
||||||
private boolean isMeldungVorhanden(ProduktbausteinType produkt, TreeView<GuiProdukt> tv) {
|
public boolean isMeldungVorhanden(ProduktbausteinType produkt, TreeView<GuiProdukt> tv) {
|
||||||
TreeHelper treeHelper = new TreeHelper();
|
TreeHelper treeHelper = new TreeHelper();
|
||||||
TreeItem<GuiProdukt> actual = treeHelper.findTreeItem(produkt, tv.getRoot());
|
TreeItem<GuiProdukt> actual = treeHelper.findTreeItem(produkt, tv.getRoot());
|
||||||
|
|
||||||
@@ -647,7 +657,7 @@ public class AllinOneView extends Application {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VerkaufsproduktType checkPlausis(List<Plausi> plausiList, TreeItem<GuiProdukt> vp){
|
public TreeItem<GuiProdukt> checkPlausis(List<Plausi> plausiList, TreeItem<GuiProdukt> vp, APrioriProduktbausteinType verkaufsprodukt){
|
||||||
Repository repo = new SailRepository(new MemoryStore());
|
Repository repo = new SailRepository(new MemoryStore());
|
||||||
repo.init();
|
repo.init();
|
||||||
|
|
||||||
@@ -656,19 +666,43 @@ public class AllinOneView extends Application {
|
|||||||
|
|
||||||
conn.add(model);
|
conn.add(model);
|
||||||
|
|
||||||
for (Plausi plausi : plausiList) {
|
plausiList.stream().filter(p -> p.getArt().equals("update")).forEach(p -> {
|
||||||
String sparql = plausi.getQuery();
|
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);
|
GraphQuery q = conn.prepareGraphQuery(sparql);
|
||||||
Model validatedModel = QueryResults.asModel(q.evaluate());
|
Model validatedModel = QueryResults.asModel(q.evaluate());
|
||||||
|
|
||||||
model.addAll(validatedModel);
|
model.addAll(validatedModel);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
Rio.write(model, baos, RDFFormat.JSONLD);
|
Rio.write(model, baos, RDFFormat.JSONLD);
|
||||||
return rdfHelper.calculateRequestToVerkaufsprodukt(baos.toString());
|
|
||||||
|
VerkaufsproduktType neuRoot = rdfHelper.calculateRequestToVerkaufsprodukt(baos.toString());
|
||||||
|
TreeItem<GuiProdukt> newRoot = new TreeItem<>(new GuiProdukt(neuRoot));
|
||||||
|
newRoot.setExpanded(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
treeHelper.produktToTree(neuRoot, newRoot);
|
||||||
|
|
||||||
|
TreeItem<GuiProdukt> aprioriTree = new TreeItem<>();
|
||||||
|
treeHelper.aprioriProduktToTree(verkaufsprodukt, aprioriTree);
|
||||||
|
|
||||||
|
return (treeHelper.sortTree(treeHelper.addAprioriToCalc(newRoot, aprioriTree)));
|
||||||
|
} catch (Exception ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
} catch(Exception ignored) {
|
} catch(Exception ignored) {
|
||||||
|
ignored.printStackTrace();
|
||||||
System.out.println("CheckPlausi: " + ignored.getMessage());
|
System.out.println("CheckPlausi: " + ignored.getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -3,11 +3,14 @@ package at.vvo.omds.client.gui;
|
|||||||
public class Plausi {
|
public class Plausi {
|
||||||
String id;
|
String id;
|
||||||
String beschreibung;
|
String beschreibung;
|
||||||
|
String art;
|
||||||
String query;
|
String query;
|
||||||
|
|
||||||
public Plausi(String name, String beschreibung, String query) {
|
|
||||||
|
public Plausi(String name, String beschreibung,String art, String query) {
|
||||||
this.id = name;
|
this.id = name;
|
||||||
this.beschreibung = beschreibung;
|
this.beschreibung = beschreibung;
|
||||||
|
this.art = art;
|
||||||
this.query = query;
|
this.query = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,4 +37,8 @@ public class Plausi {
|
|||||||
public void setQuery(String query) {
|
public void setQuery(String query) {
|
||||||
this.query = query;
|
this.query = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getArt() { return art; }
|
||||||
|
|
||||||
|
public void setArt(String art) { this.art = art; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package at.vvo.omds.client.gui;
|
package at.vvo.omds.client.gui;
|
||||||
|
|
||||||
import at.vvo.omds.types.omds3.r2025_05.common.*;
|
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 jakarta.xml.bind.JAXBElement;
|
||||||
import javafx.scene.control.TreeItem;
|
import javafx.scene.control.TreeItem;
|
||||||
import javafx.util.Pair;
|
import javafx.util.Pair;
|
||||||
@@ -49,7 +52,6 @@ public class RDFHelper {
|
|||||||
|
|
||||||
private List<Pair<String, AttributType>> getAttributesFromRequest(String response) throws IOException {
|
private List<Pair<String, AttributType>> getAttributesFromRequest(String response) throws IOException {
|
||||||
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
|
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
|
||||||
Rio.write(model, System.out, RDFFormat.TURTLE);
|
|
||||||
List<Pair<String, AttributType>> erg = new ArrayList<>();
|
List<Pair<String, AttributType>> erg = new ArrayList<>();
|
||||||
|
|
||||||
String baseIri = "http://vvo.pisanoapi.at/";
|
String baseIri = "http://vvo.pisanoapi.at/";
|
||||||
@@ -61,12 +63,15 @@ public class RDFHelper {
|
|||||||
IRI minIri = iri(baseIri + "min");
|
IRI minIri = iri(baseIri + "min");
|
||||||
IRI defaultIri = iri(baseIri + "default");
|
IRI defaultIri = iri(baseIri + "default");
|
||||||
IRI valueIri = iri(baseIri + "value");
|
IRI valueIri = iri(baseIri + "value");
|
||||||
|
IRI aenderbarIri = iri(baseIri + "aenderbar");
|
||||||
|
|
||||||
|
|
||||||
for (Resource iri : Models.subjectIRIs(model)) {
|
for (Resource iri : Models.subjectIRIs(model)) {
|
||||||
String bez = Models.objectLiteral(model.filter(iri, bezIri, null)).map(Literal::getLabel).orElse(null);
|
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);
|
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 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")) {
|
if (iri.stringValue().contains("ElemBoolean")) {
|
||||||
AttributBooleanType ab = new AttributBooleanType();
|
AttributBooleanType ab = new AttributBooleanType();
|
||||||
@@ -81,6 +86,7 @@ public class RDFHelper {
|
|||||||
ab.setDefault(def);
|
ab.setDefault(def);
|
||||||
ab.setPflichtfeld(required);
|
ab.setPflichtfeld(required);
|
||||||
ab.setValue(val);
|
ab.setValue(val);
|
||||||
|
ab.setAenderbar(aenderbar);
|
||||||
|
|
||||||
Pair<String, AttributType> atPair = new Pair<>(prodId, ab);
|
Pair<String, AttributType> atPair = new Pair<>(prodId, ab);
|
||||||
erg.add(atPair);
|
erg.add(atPair);
|
||||||
@@ -100,7 +106,8 @@ public class RDFHelper {
|
|||||||
ai.setPflichtfeld(required);
|
ai.setPflichtfeld(required);
|
||||||
ai.setMax(max);
|
ai.setMax(max);
|
||||||
ai.setMin(min);
|
ai.setMin(min);
|
||||||
ai.setValue(val);
|
if (!val.equals(-1))ai.setValue(val);
|
||||||
|
ai.setAenderbar(aenderbar);
|
||||||
|
|
||||||
Pair<String, AttributType> atPair = new Pair<>(prodId, ai);
|
Pair<String, AttributType> atPair = new Pair<>(prodId, ai);
|
||||||
erg.add(atPair);
|
erg.add(atPair);
|
||||||
@@ -120,7 +127,8 @@ public class RDFHelper {
|
|||||||
ad.setPflichtfeld(required);
|
ad.setPflichtfeld(required);
|
||||||
ad.setMax(max);
|
ad.setMax(max);
|
||||||
ad.setMin(min);
|
ad.setMin(min);
|
||||||
ad.setValue(val);
|
if (!val.equals(BigDecimal.valueOf(-1)))ad.setValue(val);
|
||||||
|
ad.setAenderbar(aenderbar);
|
||||||
|
|
||||||
Pair<String, AttributType> atPair = new Pair<>(prodId, ad);
|
Pair<String, AttributType> atPair = new Pair<>(prodId, ad);
|
||||||
erg.add(atPair);
|
erg.add(atPair);
|
||||||
@@ -137,6 +145,7 @@ public class RDFHelper {
|
|||||||
as.setDefault(def);
|
as.setDefault(def);
|
||||||
as.setPflichtfeld(required);
|
as.setPflichtfeld(required);
|
||||||
as.setValue(val);
|
as.setValue(val);
|
||||||
|
as.setAenderbar(aenderbar);
|
||||||
|
|
||||||
Pair<String, AttributType> atPair = new Pair<>(prodId, as);
|
Pair<String, AttributType> atPair = new Pair<>(prodId, as);
|
||||||
erg.add(atPair);
|
erg.add(atPair);
|
||||||
@@ -151,8 +160,8 @@ public class RDFHelper {
|
|||||||
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
|
Model model = Rio.parse(new StringReader(response), "", RDFFormat.JSONLD);
|
||||||
|
|
||||||
for (Resource iri : Models.subjectIRIs(model)) {
|
for (Resource iri : Models.subjectIRIs(model)) {
|
||||||
if (iri.stringValue().contains("plausi")) {
|
if (iri.stringValue().contains("Plausi")) {
|
||||||
String id = iri.stringValue().replace("http://vvo.pisanoapi.at/plausi", "");
|
String id = iri.stringValue().replace("http://vvo.pisanoapi.at/Plausi", "");
|
||||||
ValueFactory vf = SimpleValueFactory.getInstance();
|
ValueFactory vf = SimpleValueFactory.getInstance();
|
||||||
|
|
||||||
String beschreibung = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
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(
|
String query = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
||||||
"http://vvo.pisanoapi.at/query"), null)).map(Literal::getLabel).orElse(null);
|
"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;
|
return result;
|
||||||
@@ -177,8 +189,6 @@ public class RDFHelper {
|
|||||||
if (iri.stringValue().contains("ProdElement")) {
|
if (iri.stringValue().contains("ProdElement")) {
|
||||||
|
|
||||||
String id = iri.stringValue();
|
String id = iri.stringValue();
|
||||||
|
|
||||||
System.out.println(iri.stringValue());
|
|
||||||
ValueFactory vf = SimpleValueFactory.getInstance();
|
ValueFactory vf = SimpleValueFactory.getInstance();
|
||||||
|
|
||||||
int insId = Integer.parseInt(Models.objectLiteral(model.filter(iri, vf.createIRI(
|
int insId = Integer.parseInt(Models.objectLiteral(model.filter(iri, vf.createIRI(
|
||||||
@@ -205,7 +215,7 @@ public class RDFHelper {
|
|||||||
.map(Literal::getLabel).orElse(null)) : null;
|
.map(Literal::getLabel).orElse(null)) : null;
|
||||||
|
|
||||||
Optional<String> parentId = Models.objectResource(model.filter(iri, vf.createIRI(
|
Optional<String> 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;
|
APrioriProduktbausteinType verkaufsproduktType;
|
||||||
if (parentId.isPresent()) {
|
if (parentId.isPresent()) {
|
||||||
@@ -241,8 +251,6 @@ public class RDFHelper {
|
|||||||
Object baustein = entry.getValue();
|
Object baustein = entry.getValue();
|
||||||
String parentId = parents.get(id);
|
String parentId = parents.get(id);
|
||||||
|
|
||||||
System.out.println(id + " " + baustein.getClass().getName());
|
|
||||||
|
|
||||||
if (parentId != null && bausteine.containsKey(parentId)){
|
if (parentId != null && bausteine.containsKey(parentId)){
|
||||||
bausteine.get(parentId).getBausteine().add((APrioriUnterbausteinType) baustein);
|
bausteine.get(parentId).getBausteine().add((APrioriUnterbausteinType) baustein);
|
||||||
}else {
|
}else {
|
||||||
@@ -254,7 +262,6 @@ public class RDFHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public VerkaufsproduktType getCalculateRDF(String r) throws DatatypeConfigurationException, IOException {
|
public VerkaufsproduktType getCalculateRDF(String r) throws DatatypeConfigurationException, IOException {
|
||||||
|
|
||||||
return calculateRequestToVerkaufsprodukt(restClient.post()
|
return calculateRequestToVerkaufsprodukt(restClient.post()
|
||||||
.uri("http://localhost:9090/CalculateRequest")
|
.uri("http://localhost:9090/CalculateRequest")
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
@@ -271,8 +278,12 @@ public class RDFHelper {
|
|||||||
Map<String, String> parents = new HashMap<>();
|
Map<String, String> parents = new HashMap<>();
|
||||||
|
|
||||||
List<Pair<String, AttributType>> attListe = getAttributesFromRequest(calculateRequest);
|
List<Pair<String, AttributType>> attListe = getAttributesFromRequest(calculateRequest);
|
||||||
for (Resource iri : Models.subjectIRIs(model)) {
|
List<Pair<String, FahrzeugType>> risikoObjektListe = getRisikoObjekteFromRequest(calculateRequest);
|
||||||
|
|
||||||
|
List<Resource> subjects = new ArrayList<>(Models.subjectIRIs(model));
|
||||||
|
Collections.reverse(subjects);
|
||||||
|
|
||||||
|
for (Resource iri : subjects) {
|
||||||
if (iri.stringValue().contains("Prod")) {
|
if (iri.stringValue().contains("Prod")) {
|
||||||
String id = iri.stringValue();
|
String id = iri.stringValue();
|
||||||
|
|
||||||
@@ -290,8 +301,21 @@ public class RDFHelper {
|
|||||||
"http://vvo.pisanoapi.at/type"), null)).map(Literal::getLabel).orElse(null);
|
"http://vvo.pisanoapi.at/type"), null)).map(Literal::getLabel).orElse(null);
|
||||||
String risikoobjektType = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
String risikoobjektType = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
||||||
"http://vvo.pisanoapi.at/risikoobjektType"), null)).map(Literal::getLabel).orElse(null);
|
"http://vvo.pisanoapi.at/risikoobjektType"), null)).map(Literal::getLabel).orElse(null);
|
||||||
String meldung = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
List<ServiceFault> meldungen = model.filter(iri, vf.createIRI(
|
||||||
"http://vvo.pisanoapi.at/meldung"), null)).map(Literal::getLabel).orElse(null);
|
"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(
|
XMLGregorianCalendar verkaufsoffenVon = Models.objectLiteral(model.filter(iri, vf.createIRI(
|
||||||
"http://vvo.pisanoapi.at/salesFrom"), null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
|
"http://vvo.pisanoapi.at/salesFrom"), null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
|
||||||
Models.objectLiteral(model.filter(iri, vf.createIRI(
|
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(
|
"http://vvo.pisanoapi.at/salesTo"), null)).map(Literal::getLabel).isPresent() ? DatatypeFactory.newInstance().newXMLGregorianCalendar(
|
||||||
Models.objectLiteral(model.filter(iri, vf.createIRI(
|
Models.objectLiteral(model.filter(iri, vf.createIRI(
|
||||||
"http://vvo.pisanoapi.at/salesTo"), null)).map(Literal::getLabel).orElse(null)) : null;
|
"http://vvo.pisanoapi.at/salesTo"), null)).map(Literal::getLabel).orElse(null)) : null;
|
||||||
|
List<String> fahrzeuge = model.filter(iri, vf.createIRI(
|
||||||
|
"http://vvo.pisanoapi.at/VersichertesInteresseType"), null).objects().stream()
|
||||||
|
.filter(s -> s instanceof IRI).map(Value::stringValue).toList();
|
||||||
|
|
||||||
Optional<String> parentId = Models.objectResource(model.filter(iri, vf.createIRI(
|
Optional<String> 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();
|
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.setId(iri.stringValue().substring("http://vvo.pisanoapi.at/ProdElement".length(), iri.stringValue().indexOf("-") > 0 ? iri.stringValue().indexOf("-") : iri.stringValue().length()));
|
||||||
verkaufsproduktType.setBezeichnung(bez);
|
verkaufsproduktType.setBezeichnung(bez);
|
||||||
@@ -316,12 +344,22 @@ public class RDFHelper {
|
|||||||
verkaufsproduktType.setMinVorkommen(minOccurrence);
|
verkaufsproduktType.setMinVorkommen(minOccurrence);
|
||||||
verkaufsproduktType.setRisikoobjektErforderlich(risikoobjektType != null);
|
verkaufsproduktType.setRisikoobjektErforderlich(risikoobjektType != null);
|
||||||
|
|
||||||
|
for (ServiceFault meldung : meldungen) {
|
||||||
if (meldung != null) {
|
if (meldung != null) {
|
||||||
ServiceFault tmp = new ServiceFault();
|
ServiceFault tmp = new ServiceFault();
|
||||||
tmp.setErrorMsg(meldung);
|
tmp.setErrorMsg(meldung.getErrorMsg());
|
||||||
tmp.setErrorType(BigInteger.ONE);
|
tmp.setErrorType(meldung.getErrorType());
|
||||||
verkaufsproduktType.getMeldungen().add(tmp);
|
verkaufsproduktType.getMeldungen().add(tmp);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Pair<String, FahrzeugType> pair : risikoObjektListe) {
|
||||||
|
for (String fahrzeugId : fahrzeuge) {
|
||||||
|
if (pair.getKey().equals(fahrzeugId)) {
|
||||||
|
verkaufsproduktType.getVersicherteObjekte().add(pair.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (Pair<String, AttributType> pair : attListe) {
|
for (Pair<String, AttributType> pair : attListe) {
|
||||||
if (pair.getKey().equals(id)) {
|
if (pair.getKey().equals(id)) {
|
||||||
@@ -336,6 +374,7 @@ public class RDFHelper {
|
|||||||
|
|
||||||
List<VerkaufsproduktType> verkaufsprodukteList = new ArrayList<>();
|
List<VerkaufsproduktType> verkaufsprodukteList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
for (Map.Entry<String, ProduktbausteinType> entry : bausteine.entrySet()){
|
for (Map.Entry<String, ProduktbausteinType> entry : bausteine.entrySet()){
|
||||||
String id = entry.getKey();
|
String id = entry.getKey();
|
||||||
ProduktbausteinType baustein = entry.getValue();
|
ProduktbausteinType baustein = entry.getValue();
|
||||||
@@ -351,17 +390,86 @@ public class RDFHelper {
|
|||||||
return verkaufsprodukteList.getFirst();
|
return verkaufsprodukteList.getFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Pair<String, FahrzeugType>> getRisikoObjekteFromRequest(String calculateRequest) throws IOException, DatatypeConfigurationException {
|
||||||
|
Model model = Rio.parse(new StringReader(calculateRequest), "", RDFFormat.JSONLD);
|
||||||
|
List<Pair<String, FahrzeugType>> 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<GuiProdukt> vp) {
|
public Model createRdfModel(TreeItem<GuiProdukt> vp) {
|
||||||
Model erg = new LinkedHashModel();
|
Model erg = new LinkedHashModel();
|
||||||
String baseIri = "http://vvo.pisanoapi.at/";
|
String baseIri = "http://vvo.pisanoapi.at/";
|
||||||
|
|
||||||
Map<String,Integer> occCounter = new HashMap<>();
|
Map<String, Integer> idCount = new LinkedHashMap<>();
|
||||||
addProduktToModel(vp, erg, baseIri, null, occCounter);
|
createIdCount(idCount, vp);
|
||||||
|
|
||||||
|
Map<TreeItem<GuiProdukt>, IRI> iriMap = new LinkedHashMap<>();
|
||||||
|
createIriMap(vp, baseIri, idCount, iriMap);
|
||||||
|
|
||||||
|
addProduktToModel(vp, erg, baseIri, null, iriMap);
|
||||||
|
|
||||||
|
Rio.write(erg, System.out, RDFFormat.TURTLE);
|
||||||
|
|
||||||
return erg;
|
return erg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addProduktToModel(TreeItem<GuiProdukt> guiProdukt, Model model, String baseIri, String parentId, Map<String,Integer> occCounter) {
|
private void createIdCount(Map<String, Integer> idCount, TreeItem<GuiProdukt> 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<GuiProdukt> child : vp.getChildren()){
|
||||||
|
createIdCount(idCount, child);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createIriMap(TreeItem<GuiProdukt> produkt, String baseIri, Map<String, Integer> idCount, Map<TreeItem<GuiProdukt>, 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<GuiProdukt> child : produkt.getChildren()){
|
||||||
|
createIriMap(child, baseIri, idCount, iriMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProduktToModel(TreeItem<GuiProdukt> guiProdukt, Model model, String baseIri, String parentId, Map<TreeItem<GuiProdukt>, IRI> iriMap) {
|
||||||
ProduktbausteinType produkt = (ProduktbausteinType) guiProdukt.getValue().getProdukt();
|
ProduktbausteinType produkt = (ProduktbausteinType) guiProdukt.getValue().getProdukt();
|
||||||
|
|
||||||
IRI prodelemIri = iri(baseIri + "ProdElement");
|
IRI prodelemIri = iri(baseIri + "ProdElement");
|
||||||
@@ -374,21 +482,24 @@ public class RDFHelper {
|
|||||||
IRI maxOccurrenceIri = iri(baseIri + "maxOccurrence");
|
IRI maxOccurrenceIri = iri(baseIri + "maxOccurrence");
|
||||||
IRI typeIri = iri(baseIri + "type");
|
IRI typeIri = iri(baseIri + "type");
|
||||||
IRI risikoobjektTypeIri = iri(baseIri + "risikoobjektType");
|
IRI risikoobjektTypeIri = iri(baseIri + "risikoobjektType");
|
||||||
IRI bausteinIri = iri(baseIri + "baustein");
|
IRI bausteinIri = iri(baseIri + "Baustein");
|
||||||
IRI parentIri = iri(baseIri + "parent");
|
IRI parentIri = iri(baseIri + "Parent");
|
||||||
|
|
||||||
int occ = occCounter.merge(String.valueOf(produkt.getId()), 1, Integer::sum);
|
IRI vpIri = iriMap.get(guiProdukt);
|
||||||
IRI vpIri = iri(baseIri + "ProdElement" + produkt.getId() + "-" + occ);
|
|
||||||
|
|
||||||
if (!guiProdukt.getValue().isNotIncluded()) {
|
if (!guiProdukt.getValue().isNotIncluded()) {
|
||||||
model.add(vpIri, RDF.TYPE, prodelemIri);
|
model.add(vpIri, RDF.TYPE, prodelemIri);
|
||||||
model.add(vpIri, bezIri, Values.literal(produkt.getBezeichnung()));
|
model.add(vpIri, bezIri, Values.literal(produkt.getBezeichnung()));
|
||||||
|
if (produkt.getVerkaufsoffenVon() != null)
|
||||||
model.add(vpIri, salesFromIri, Values.literal(produkt.getVerkaufsoffenVon()));
|
model.add(vpIri, salesFromIri, Values.literal(produkt.getVerkaufsoffenVon()));
|
||||||
if (produkt.getVerkaufsoffenBis() != null)
|
if (produkt.getVerkaufsoffenBis() != null)
|
||||||
model.add(vpIri, salesToIri, Values.literal(produkt.getVerkaufsoffenBis()));
|
model.add(vpIri, salesToIri, Values.literal(produkt.getVerkaufsoffenBis()));
|
||||||
|
if (produkt.getMinVorkommen() != null)
|
||||||
model.add(vpIri, minOccurrenceIri, Values.literal(produkt.getMinVorkommen()));
|
model.add(vpIri, minOccurrenceIri, Values.literal(produkt.getMinVorkommen()));
|
||||||
|
if (produkt.getMaxVorkommen() != null)
|
||||||
model.add(vpIri, maxOccurrenceIri, Values.literal(produkt.getMaxVorkommen()));
|
model.add(vpIri, maxOccurrenceIri, Values.literal(produkt.getMaxVorkommen()));
|
||||||
model.add(vpIri, typeIri, Values.literal(produkt.getTyp()));
|
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));
|
if (parentId != null) model.add(vpIri, parentIri, Values.iri(parentId));
|
||||||
|
|
||||||
@@ -402,6 +513,7 @@ public class RDFHelper {
|
|||||||
IRI atMax = iri(baseIri + "max");
|
IRI atMax = iri(baseIri + "max");
|
||||||
IRI atMin = iri(baseIri + "min");
|
IRI atMin = iri(baseIri + "min");
|
||||||
IRI atDefault = iri(baseIri + "default");
|
IRI atDefault = iri(baseIri + "default");
|
||||||
|
IRI atAenderbar = iri(baseIri + "aenderbar");
|
||||||
|
|
||||||
if (attribut instanceof AttributIntType){
|
if (attribut instanceof AttributIntType){
|
||||||
IRI specificAt = iri(baseIri + "ElemInt" + attribut.getId());
|
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, atMax, Values.literal(((AttributIntType) attribut).getMax()));
|
||||||
model.add(specificAt, atMin, Values.literal(((AttributIntType) attribut).getMin()));
|
model.add(specificAt, atMin, Values.literal(((AttributIntType) attribut).getMin()));
|
||||||
model.add(specificAt, atDefault, Values.literal(((AttributIntType) attribut).getDefault()));
|
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) {
|
} else if (attribut instanceof AttributBooleanType) {
|
||||||
IRI specificAt = iri(baseIri + "ElemBoolean" + attribut.getId());
|
IRI specificAt = iri(baseIri + "ElemBoolean" + attribut.getId());
|
||||||
@@ -448,20 +561,60 @@ public class RDFHelper {
|
|||||||
if (((AttributDezimalType) attribut).getDefault() != null) model.add(specificAt, atDefault, Values.literal(((AttributDezimalType) attribut).getDefault()));
|
if (((AttributDezimalType) attribut).getDefault() != null) model.add(specificAt, atDefault, Values.literal(((AttributDezimalType) attribut).getDefault()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// for (int i = 0; i < vp.getVersicherteObjekte().size(); i++) {
|
|
||||||
// erg.add(vpIri, risikoobjektTypeIri, Values.literal(vp.getVersicherteObjekte().get(i)));
|
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 < guiProdukt.getChildren().size(); i++) {
|
for (int i = 0; i < guiProdukt.getChildren().size(); i++) {
|
||||||
IRI unterbausteinIri = iri(baseIri + "ProdElement" + ((ProduktbausteinType)guiProdukt.getChildren().get(i).getValue().getProdukt()).getId() +
|
IRI unterbausteinIri = iriMap.get(guiProdukt.getChildren().get(i));
|
||||||
"-" + occCounter.getOrDefault(((ProduktbausteinType)guiProdukt.getChildren().get(i).getValue()
|
|
||||||
.getProdukt()).getId(), 1));
|
|
||||||
if (!guiProdukt.getValue().isNotIncluded()) {
|
if (!guiProdukt.getValue().isNotIncluded()) {
|
||||||
model.add(vpIri, bausteinIri, unterbausteinIri);
|
model.add(vpIri, bausteinIri, unterbausteinIri);
|
||||||
}
|
}
|
||||||
|
|
||||||
String newParentId = vpIri.stringValue();
|
String newParentId = vpIri.stringValue();
|
||||||
addProduktToModel(guiProdukt.getChildren().get(i), model, baseIri, newParentId, occCounter);
|
addProduktToModel(guiProdukt.getChildren().get(i), model, baseIri, newParentId, iriMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,10 @@ public class RisikoobjektView {
|
|||||||
|
|
||||||
choiceBox.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
|
choiceBox.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
|
||||||
if (newVal != null) {
|
if (newVal != null) {
|
||||||
|
int a = createForm.getChildren().size();
|
||||||
|
for (int i = 1; i < a; i++) {
|
||||||
|
createForm.getChildren().remove(i);
|
||||||
|
}
|
||||||
switch (newVal) {
|
switch (newVal) {
|
||||||
case "Versichertes objekt SachPrivat": {
|
case "Versichertes objekt SachPrivat": {
|
||||||
System.out.println("formular sach Privat");
|
System.out.println("formular sach Privat");
|
||||||
|
|||||||
@@ -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.APrioriProduktbausteinType;
|
||||||
import at.vvo.omds.types.omds3.r2025_05.common.ProduktbausteinType;
|
import at.vvo.omds.types.omds3.r2025_05.common.ProduktbausteinType;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
import javafx.scene.control.TreeItem;
|
import javafx.scene.control.TreeItem;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -87,6 +88,7 @@ public class TreeHelper {
|
|||||||
if (!produkt.getBausteine().isEmpty()) {
|
if (!produkt.getBausteine().isEmpty()) {
|
||||||
for (int i = 0; i < produkt.getBausteine().size(); i++) {
|
for (int i = 0; i < produkt.getBausteine().size(); i++) {
|
||||||
TreeItem<GuiProdukt> up = aprioriItemToCalcItem(new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i))));
|
TreeItem<GuiProdukt> up = aprioriItemToCalcItem(new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i))));
|
||||||
|
up.getValue().setNotIncluded(true);
|
||||||
up.setExpanded(true);
|
up.setExpanded(true);
|
||||||
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
|
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
|
||||||
aprioriProduktToTree(produkt.getBausteine().get(i), up);
|
aprioriProduktToTree(produkt.getBausteine().get(i), up);
|
||||||
@@ -101,6 +103,7 @@ public class TreeHelper {
|
|||||||
for (int i = 0; i < produkt.getBausteine().size(); i++) {
|
for (int i = 0; i < produkt.getBausteine().size(); i++) {
|
||||||
TreeItem<GuiProdukt> up = new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i)));
|
TreeItem<GuiProdukt> up = new TreeItem<>(new GuiProdukt(produkt.getBausteine().get(i)));
|
||||||
up.setExpanded(true);
|
up.setExpanded(true);
|
||||||
|
|
||||||
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
|
if (!produkt.getBausteine().get(i).getBausteine().isEmpty()) {
|
||||||
produktToTree(produkt.getBausteine().get(i), up);
|
produktToTree(produkt.getBausteine().get(i), up);
|
||||||
}
|
}
|
||||||
@@ -115,36 +118,34 @@ public class TreeHelper {
|
|||||||
public TreeItem<GuiProdukt> aprioriItemToCalcItem(TreeItem<GuiProdukt> produkt) throws Exception {
|
public TreeItem<GuiProdukt> aprioriItemToCalcItem(TreeItem<GuiProdukt> produkt) throws Exception {
|
||||||
|
|
||||||
TreeItem<GuiProdukt> ergItem = new TreeItem<>();
|
TreeItem<GuiProdukt> ergItem = new TreeItem<>();
|
||||||
Object erg = new ObjectFactoryFactory().create(
|
ProduktbausteinType erg = new ObjectFactoryFactory().create(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
|
||||||
|
|
||||||
if (erg != null) {
|
if (erg != null) {
|
||||||
if (ProduktbausteinType.class.isAssignableFrom(erg.getClass())) {
|
if (ProduktbausteinType.class.isAssignableFrom(erg.getClass())) {
|
||||||
((ProduktbausteinType) erg).setId(
|
erg.setId(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getId());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getId());
|
||||||
((ProduktbausteinType) erg).setBezeichnung(
|
erg.setBezeichnung(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getName());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getName());
|
||||||
((ProduktbausteinType) erg).setVerkaufsoffenVon(
|
erg.setVerkaufsoffenVon(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getFrom());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getFrom());
|
||||||
((ProduktbausteinType) erg).setVerkaufsoffenBis(
|
erg.setVerkaufsoffenBis(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getTo());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getTo());
|
||||||
((ProduktbausteinType) erg).getMeldungen().addAll(
|
erg.getMeldungen().addAll(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMeldungen());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMeldungen());
|
||||||
((ProduktbausteinType) erg).getAttribute().addAll(
|
erg.getAttribute().addAll(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getAttribute());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getAttribute());
|
||||||
((ProduktbausteinType) erg).setMinVorkommen(
|
erg.setMinVorkommen(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMinOccurrences());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMinOccurrences());
|
||||||
((ProduktbausteinType) erg).setMaxVorkommen(
|
erg.setMaxVorkommen(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMaxOccurrences());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getMaxOccurrences());
|
||||||
((ProduktbausteinType) erg).setTyp(
|
erg.setTyp(
|
||||||
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getType());
|
||||||
|
erg.setRisikoobjektErforderlich(
|
||||||
if (((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getRisikoobjektType() != null) {
|
((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getRisikoobjektType() != null);
|
||||||
((ProduktbausteinType) erg).setRisikoobjektErforderlich(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < ((APrioriProduktbausteinType) produkt.getValue().getProdukt()).getBausteine().size(); i++) {
|
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())
|
new TreeItem<>(new GuiProdukt(((APrioriProduktbausteinType) produkt.getValue().getProdukt())
|
||||||
.getBausteine().get(i)))).getValue().getProdukt());
|
.getBausteine().get(i)))).getValue().getProdukt());
|
||||||
}
|
}
|
||||||
@@ -161,76 +162,37 @@ public class TreeHelper {
|
|||||||
return ergItem;
|
return ergItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public TreeItem<GuiProdukt> addAprioriToCalc(TreeItem<GuiProdukt> calcItem, TreeItem<GuiProdukt> aprioriItem) {
|
|
||||||
// for (TreeItem<GuiProdukt> aprioriChild : aprioriItem.getChildren()) {
|
|
||||||
// boolean isInCalc = false;
|
|
||||||
// int i = 0;
|
|
||||||
// for (TreeItem<GuiProdukt> 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<GuiProdukt> missingCalcItem = cloneTreeItem(aprioriChild);
|
|
||||||
// calcItem.getChildren().add(missingCalcItem);
|
|
||||||
// missingCalcItem.getValue().setNotIncluded(true);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return calcItem;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public TreeItem<GuiProdukt> addAprioriToCalc(TreeItem<GuiProdukt> calcItem, TreeItem<GuiProdukt> aprioriItem) {
|
public TreeItem<GuiProdukt> addAprioriToCalc(TreeItem<GuiProdukt> calcItem, TreeItem<GuiProdukt> aprioriItem) {
|
||||||
|
|
||||||
for (TreeItem<GuiProdukt> aprioriChild : aprioriItem.getChildren()) {
|
for (TreeItem<GuiProdukt> aprioriChild : aprioriItem.getChildren()) {
|
||||||
ProduktbausteinType aprioriProd = (ProduktbausteinType) aprioriChild.getValue().getProdukt();
|
boolean isInCalc = false;
|
||||||
String aprioriId = aprioriProd.getId();
|
int i = 0;
|
||||||
|
for (TreeItem<GuiProdukt> calcChild : calcItem.getChildren()) {
|
||||||
TreeItem<GuiProdukt> matchingCalcChild = calcItem.getChildren().stream()
|
if (((ProduktbausteinType) calcChild.getValue().getProdukt()).getId().equals(
|
||||||
.filter(c -> {
|
((ProduktbausteinType) aprioriChild.getValue().getProdukt()).getId())
|
||||||
ProduktbausteinType calcProd = (ProduktbausteinType) c.getValue().getProdukt();
|
&& !calcChild.getValue().isNotIncluded()) {
|
||||||
return calcProd.getId().equals(aprioriId) && !c.getValue().isNotIncluded();
|
isInCalc = true;
|
||||||
})
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
if (matchingCalcChild != null) {
|
|
||||||
if (!aprioriChild.getChildren().isEmpty()) {
|
if (!aprioriChild.getChildren().isEmpty()) {
|
||||||
addAprioriToCalc(matchingCalcChild, aprioriChild);
|
addAprioriToCalc(calcChild, aprioriChild);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
TreeItem<GuiProdukt> cloned = cloneTreeItem(aprioriChild);
|
i++;
|
||||||
cloned.getValue().setNotIncluded(true);
|
}
|
||||||
|
if (!isInCalc) {
|
||||||
calcItem.getChildren().add(cloned);
|
TreeItem<GuiProdukt> missingCalcItem = cloneTreeItem(aprioriChild);
|
||||||
|
calcItem.getChildren().add(missingCalcItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return calcItem;
|
return calcItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreeItem<GuiProdukt> sortTree(TreeItem<GuiProdukt> parent) {
|
public TreeItem<GuiProdukt> sortTree(TreeItem<GuiProdukt> parent) {
|
||||||
// FXCollections.sort(parent.getChildren(), Comparator.comparing(
|
FXCollections.sort(parent.getChildren(), Comparator.comparing(
|
||||||
// item -> ((ProduktbausteinType)((TreeItem<GuiProdukt>)item).getValue().getProdukt()).getBezeichnung()
|
item -> ((ProduktbausteinType)item.getValue().getProdukt()).getBezeichnung()
|
||||||
// ));
|
));
|
||||||
//
|
|
||||||
// Comparator<TreeItem<GuiProdukt>> compareBez = (s1, s2) -> {
|
for (TreeItem<GuiProdukt> child : parent.getChildren()) {
|
||||||
// int erg = ((ProduktbausteinType)s1.getValue().getProdukt()).getBezeichnung().compareTo(((ProduktbausteinType)s2.getValue().getProdukt()).getBezeichnung());
|
sortTree(child);
|
||||||
// if (erg == 0) {
|
}
|
||||||
// return 1;
|
|
||||||
// }else {
|
|
||||||
// return erg;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// for (TreeItem<GuiProdukt> child : parent.getChildren()) {
|
|
||||||
// sortTree(child);
|
|
||||||
// }
|
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,13 +38,8 @@ public class BuildCalculateRequestAuskunft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static public String buildRDFRequestFromTreeView(TreeView<GuiProdukt> treeView, XMLGregorianCalendar vtBeg) {
|
static public String buildRDFRequestFromTreeView(TreeView<GuiProdukt> treeView, XMLGregorianCalendar vtBeg) {
|
||||||
VerkaufsproduktType verkaufsprodukt = TreeViewToVerkaufsprodukt(treeView, vtBeg);
|
|
||||||
verkaufsprodukt.setVtgBeg(vtBeg);
|
|
||||||
verkaufsprodukt.setTyp(((ProduktbausteinType)treeView.getRoot().getValue().getProdukt()).getTyp());
|
|
||||||
|
|
||||||
RDFHelper rdf = new RDFHelper();
|
RDFHelper rdf = new RDFHelper();
|
||||||
|
Model requestModel = rdf.createRdfModel(treeView.getRoot());
|
||||||
Model requestModel = rdf.createRdfModel(new TreeItem<>(new GuiProdukt(verkaufsprodukt, true)));
|
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
Rio.write(requestModel, baos, RDFFormat.JSONLD);
|
Rio.write(requestModel, baos, RDFFormat.JSONLD);
|
||||||
@@ -58,7 +53,7 @@ public class BuildCalculateRequestAuskunft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ProduktbausteinType TreeItemToBaustein(TreeItem<GuiProdukt> treeItem) {
|
public static ProduktbausteinType TreeItemToBaustein(TreeItem<GuiProdukt> treeItem) {
|
||||||
ProduktbausteinType baustein = (ProduktbausteinType) new ObjectFactoryFactory().create(
|
ProduktbausteinType baustein = new ObjectFactoryFactory().create(
|
||||||
((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
|
((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
|
||||||
|
|
||||||
baustein.setBezeichnung(((ProduktbausteinType)treeItem.getValue().getProdukt()).getBezeichnung());
|
baustein.setBezeichnung(((ProduktbausteinType)treeItem.getValue().getProdukt()).getBezeichnung());
|
||||||
@@ -69,6 +64,7 @@ public class BuildCalculateRequestAuskunft {
|
|||||||
baustein.setTyp(((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
|
baustein.setTyp(((ProduktbausteinType)treeItem.getValue().getProdukt()).getTyp());
|
||||||
baustein.setMinVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMinVorkommen());
|
baustein.setMinVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMinVorkommen());
|
||||||
baustein.setMaxVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMaxVorkommen());
|
baustein.setMaxVorkommen(((ProduktbausteinType)treeItem.getValue().getProdukt()).getMaxVorkommen());
|
||||||
|
baustein.getVersicherteObjekte().addAll(((ProduktbausteinType) treeItem.getValue().getProdukt()).getVersicherteObjekte());
|
||||||
|
|
||||||
return baustein;
|
return baustein;
|
||||||
}
|
}
|
||||||
@@ -87,7 +83,7 @@ public class BuildCalculateRequestAuskunft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ProduktbausteinType addUpFromTreeItem(TreeItem<GuiProdukt> treeItem) {
|
public static ProduktbausteinType addUpFromTreeItem(TreeItem<GuiProdukt> treeItem) {
|
||||||
ProduktbausteinType baustein = (ProduktbausteinType) TreeItemToBaustein(treeItem);
|
ProduktbausteinType baustein = TreeItemToBaustein(treeItem);
|
||||||
|
|
||||||
if (!treeItem.getChildren().isEmpty()) {
|
if (!treeItem.getChildren().isEmpty()) {
|
||||||
for (int i = 0; i < treeItem.getChildren().size(); i++) {
|
for (int i = 0; i < treeItem.getChildren().size(); i++) {
|
||||||
|
|||||||
@@ -43,8 +43,6 @@ public class CalculateRequestAuskunftService {
|
|||||||
|
|
||||||
String request = BuildCalculateRequestAuskunft.buildRDFRequestFromTreeView(treeView, vtBeg);
|
String request = BuildCalculateRequestAuskunft.buildRDFRequestFromTreeView(treeView, vtBeg);
|
||||||
|
|
||||||
System.out.println(request);
|
|
||||||
|
|
||||||
RDFHelper rdfHelper = new RDFHelper();
|
RDFHelper rdfHelper = new RDFHelper();
|
||||||
VerkaufsproduktType response = rdfHelper.getCalculateRDF(request);
|
VerkaufsproduktType response = rdfHelper.getCalculateRDF(request);
|
||||||
log.info("Got Response As below ========= : ");
|
log.info("Got Response As below ========= : ");
|
||||||
|
|||||||
Reference in New Issue
Block a user