Переглянути джерело

Bufgifxes:Gelöscht Person wird nicht angezeigt., Bessere Anzeige Vorgang

Leonard Schulz 1 рік тому
батько
коміт
e4074dfc18

+ 84 - 16
src/main/java/com/tsystems/inwo/vgl/web/VergleichController.java

@@ -122,10 +122,27 @@ public class VergleichController {
         JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
         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
         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 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
         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 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<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);
@@ -325,10 +376,27 @@ public class VergleichController {
         JsonNode rightPerson = personenPairs.getOrDefault(personId, new Pair<>(null, null)).right;
         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<FreibetragZeile> freibetragZeilen = dataExtractor.buildFreibetragZeilen(rightPerson, leftPerson);

+ 0 - 45
src/main/resources/static/example-neu.json

@@ -89,51 +89,6 @@
                   }
                 ]
               },
-              {
-                "person": {
-                  "id": "person-002",
-                  "nachname": "Müller",
-                  "vorname": "Anna",
-                  "anrede": "Frau",
-                  "geburtsdatum": "1992-08-20",
-                  "geburtsort": "Berlin",
-                  "alterName": "Schmidt",
-                  "geschlecht": "weiblich",
-                  "familienstand": "verheiratet",
-                  "blockname": false,
-                  "sozialstellung": "Angestellte",
-                  "verwandtschaftsverhaeltnis": "Ehepartner",
-                  "telefon": "030-87654321",
-                  "email": "anna.mueller@example.com",
-                  "antragsteller": false
-                },
-                "einkommen": [
-                  {
-                    "id": "einkommen-002",
-                    "art": "Erwerbstätigkeit",
-                    "artZusatz": "Teilzeit",
-                    "faktor": 12,
-                    "betrag": 2100.00,
-                    "werbungskosten": 80.00
-                  }
-                ],
-                "freibetraege": [
-                  {
-                    "id": "freibetrag-002",
-                    "typ": "F",
-                    "art": "Erwerbstätigenfreibetrag",
-                    "faktor": 12,
-                    "betrag": 210.00
-                  },
-                  {
-                    "id": "pauschale-002",
-                    "typ": "P",
-                    "art": "Versicherungspauschale",
-                    "faktor": 12,
-                    "betrag": 30.00
-                  }
-                ]
-              },
               {
                 "person": {
                   "id": "person-003",

+ 5 - 2
src/main/resources/templates/fragments/header.html

@@ -38,9 +38,12 @@
       <div class="vorgang-info" th:if="${stammvorgangRight != null}" role="contentinfo" aria-label="Vorgang in Bearbeitung">
         <span>Vorgang in der Bearbeitung: </span>
         <span th:if="${!#strings.isEmpty(stammvorgangRight.vorgangstyp)}" th:text="${stammvorgangRight.vorgangstyp}">Weiterleistungsantrag</span>
-        <span th:if="${#strings.isEmpty(stammvorgangRight.vorgangstyp)}">-</span>
+        <span>
+          (<span th:text="${!#strings.isEmpty(stammvorgangRight.id) ? stammvorgangRight.id : '-'}">-</span>)
+        </span>
+        </span>
         <span th:if="${!#strings.isEmpty(stammvorgangRight.vorgangsstatus)}">
-          (Status: <span th:text="${stammvorgangRight.vorgangsstatus}">aktiv</span>)
+          - <span th:text="${stammvorgangRight.vorgangsstatus}">aktiv</span>
         </span>
       </div>