|
@@ -122,10 +122,27 @@ public class VergleichController {
|
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
|
|
|
|
|
|
- String personLabel = (rightPerson != null)
|
|
|
|
|
- ? rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("")
|
|
|
|
|
- : "(keine Person)";
|
|
|
|
|
- Map<String, String> personNameByIdRight = personenRight.stream().collect(Collectors.toMap(p -> p.id, p -> p.label));
|
|
|
|
|
|
|
+ // Create personLabel from either right or left person data
|
|
|
|
|
+ String personLabel = "(keine Person)";
|
|
|
|
|
+ if (rightPerson != null) {
|
|
|
|
|
+ personLabel = rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ } else if (leftPerson != null) {
|
|
|
|
|
+ personLabel = leftPerson.path("person").path("nachname").asText("") + ", " + leftPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Create a comprehensive person name map that includes persons from both right AND left JSON
|
|
|
|
|
+ Map<String, String> personNameByIdRight = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ // Add all persons from right (current) JSON
|
|
|
|
|
+ personenRight.stream().forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+
|
|
|
|
|
+ // Add persons from left JSON that are not already in the map
|
|
|
|
|
+ if (leftZeitraum != null) {
|
|
|
|
|
+ List<PersonRef> personenLeft = jsonNavigationService.listRightPersons(leftZeitraum);
|
|
|
|
|
+ personenLeft.stream()
|
|
|
|
|
+ .filter(p -> !personNameByIdRight.containsKey(p.id))
|
|
|
|
|
+ .forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// Einkommen / Freibeträge / Kita: jeweils UNION per id
|
|
// Einkommen / Freibeträge / Kita: jeweils UNION per id
|
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
@@ -192,10 +209,27 @@ public class VergleichController {
|
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
|
|
|
|
|
|
- String personLabel = (rightPerson != null)
|
|
|
|
|
- ? rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("")
|
|
|
|
|
- : "(keine Person)";
|
|
|
|
|
- Map<String, String> personNameByIdRight = personenRight.stream().collect(Collectors.toMap(p -> p.id, p -> p.label));
|
|
|
|
|
|
|
+ // Create personLabel from either right or left person data
|
|
|
|
|
+ String personLabel = "(keine Person)";
|
|
|
|
|
+ if (rightPerson != null) {
|
|
|
|
|
+ personLabel = rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ } else if (leftPerson != null) {
|
|
|
|
|
+ personLabel = leftPerson.path("person").path("nachname").asText("") + ", " + leftPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Create a comprehensive person name map that includes persons from both right AND left JSON
|
|
|
|
|
+ Map<String, String> personNameByIdRight = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ // Add all persons from right (current) JSON
|
|
|
|
|
+ personenRight.stream().forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+
|
|
|
|
|
+ // Add persons from left JSON that are not already in the map
|
|
|
|
|
+ if (leftZeitraum != null) {
|
|
|
|
|
+ List<PersonRef> personenLeft = jsonNavigationService.listRightPersons(leftZeitraum);
|
|
|
|
|
+ personenLeft.stream()
|
|
|
|
|
+ .filter(p -> !personNameByIdRight.containsKey(p.id))
|
|
|
|
|
+ .forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// Einkommen / Freibeträge / Kita: jeweils UNION per id
|
|
// Einkommen / Freibeträge / Kita: jeweils UNION per id
|
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
@@ -263,10 +297,27 @@ public class VergleichController {
|
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
|
|
|
|
|
|
- String personLabel = (rightPerson != null)
|
|
|
|
|
- ? rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("")
|
|
|
|
|
- : "(keine Person)";
|
|
|
|
|
- Map<String, String> personNameByIdRight = personenRight.stream().collect(Collectors.toMap(p -> p.id, p -> p.label));
|
|
|
|
|
|
|
+ // Create personLabel from either right or left person data
|
|
|
|
|
+ String personLabel = "(keine Person)";
|
|
|
|
|
+ if (rightPerson != null) {
|
|
|
|
|
+ personLabel = rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ } else if (leftPerson != null) {
|
|
|
|
|
+ personLabel = leftPerson.path("person").path("nachname").asText("") + ", " + leftPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Create a comprehensive person name map that includes persons from both right AND left JSON
|
|
|
|
|
+ Map<String, String> personNameByIdRight = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ // Add all persons from right (current) JSON
|
|
|
|
|
+ personenRight.stream().forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+
|
|
|
|
|
+ // Add persons from left JSON that are not already in the map
|
|
|
|
|
+ if (leftZeitraum != null) {
|
|
|
|
|
+ List<PersonRef> personenLeft = jsonNavigationService.listRightPersons(leftZeitraum);
|
|
|
|
|
+ personenLeft.stream()
|
|
|
|
|
+ .filter(p -> !personNameByIdRight.containsKey(p.id))
|
|
|
|
|
+ .forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
|
List<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);
|
|
List<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);
|
|
@@ -325,10 +376,27 @@ public class VergleichController {
|
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
|
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
JsonNode leftPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).left;
|
|
|
|
|
|
|
|
- String personLabel = (rightPerson != null)
|
|
|
|
|
- ? rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("")
|
|
|
|
|
- : "(keine Person)";
|
|
|
|
|
- Map<String, String> personNameByIdRight = personenRight.stream().collect(Collectors.toMap(p -> p.id, p -> p.label));
|
|
|
|
|
|
|
+ // Create personLabel from either right or left person data
|
|
|
|
|
+ String personLabel = "(keine Person)";
|
|
|
|
|
+ if (rightPerson != null) {
|
|
|
|
|
+ personLabel = rightPerson.path("person").path("nachname").asText("") + ", " + rightPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ } else if (leftPerson != null) {
|
|
|
|
|
+ personLabel = leftPerson.path("person").path("nachname").asText("") + ", " + leftPerson.path("person").path("vorname").asText("");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Create a comprehensive person name map that includes persons from both right AND left JSON
|
|
|
|
|
+ Map<String, String> personNameByIdRight = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ // Add all persons from right (current) JSON
|
|
|
|
|
+ personenRight.stream().forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+
|
|
|
|
|
+ // Add persons from left JSON that are not already in the map
|
|
|
|
|
+ if (leftZeitraum != null) {
|
|
|
|
|
+ List<PersonRef> personenLeft = jsonNavigationService.listRightPersons(leftZeitraum);
|
|
|
|
|
+ personenLeft.stream()
|
|
|
|
|
+ .filter(p -> !personNameByIdRight.containsKey(p.id))
|
|
|
|
|
+ .forEach(p -> personNameByIdRight.put(p.id, p.label));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
List<EinkommenZeile> einkommenZeilen = dataExtractor.buildEinkommenZeilen(rightPerson, leftPerson);
|
|
|
List<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);
|
|
List<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);
|