|
|
@@ -9,12 +9,16 @@ import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
+import io.swagger.v3.oas.annotations.Operation;
|
|
|
+import io.swagger.v3.oas.annotations.Parameter;
|
|
|
+import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import java.util.*;
|
|
|
import java.io.*;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
@Controller
|
|
|
@RequestMapping("/hhm-einkommen")
|
|
|
+@Tag(name = "HHM-Einkommen", description = "Haushaltsmitglieder und Einkommen Vergleich")
|
|
|
public class HhmEinkommenController {
|
|
|
private final ObjectMapper om;
|
|
|
private final SchemaValidationService validator;
|
|
|
@@ -67,16 +71,27 @@ public class HhmEinkommenController {
|
|
|
}
|
|
|
|
|
|
@PostMapping
|
|
|
+ @Operation(summary = "Haushaltsmitglieder und Einkommen vergleichen", description = "Führt einen Vergleich von Haushaltsmitglieder- und Einkommensdaten zwischen zwei JSON-Datensätzen durch")
|
|
|
public String vergleich(
|
|
|
+ @Parameter(description = "JSON-Daten für Vergleichsbasis (links)", required = true)
|
|
|
@RequestParam String leftJson,
|
|
|
+ @Parameter(description = "JSON-Daten für aktuellen Stand (rechts)", required = true)
|
|
|
@RequestParam String rightJson,
|
|
|
+ @Parameter(description = "Schema-Validierung aktivieren")
|
|
|
@RequestParam(required = false, defaultValue = "true") boolean validate,
|
|
|
+ @Parameter(description = "Name des Validierungsschemas")
|
|
|
@RequestParam(required = false, defaultValue = "haushalt-einkommen") String schemaName,
|
|
|
+ @Parameter(description = "ID des zu vergleichenden linken Vorgangs")
|
|
|
@RequestParam(required = false) String leftVorgangId,
|
|
|
+ @Parameter(description = "ID des zu vergleichenden linken Zeitraums")
|
|
|
@RequestParam(required = false) String leftZeitraumId,
|
|
|
+ @Parameter(description = "ID des zu vergleichenden rechten Zeitraums")
|
|
|
@RequestParam(required = false) String rightZeitraumId,
|
|
|
+ @Parameter(description = "ID der ausgewählten Person")
|
|
|
@RequestParam(required = false) String personId,
|
|
|
+ @Parameter(description = "Kunden-ID")
|
|
|
@RequestParam(required = false) String kunde,
|
|
|
+ @Parameter(description = "Kunden-ID aus Header")
|
|
|
@RequestHeader(value = "X-Kunde", required = false) String kundeHeader,
|
|
|
Model model) {
|
|
|
|
|
|
@@ -188,12 +203,19 @@ public class HhmEinkommenController {
|
|
|
|
|
|
@PostMapping("/api/person-details")
|
|
|
@ResponseBody
|
|
|
+ @Operation(summary = "Personendetails abrufen", description = "Ruft detaillierte Informationen zu einer bestimmten Person ab")
|
|
|
public ResponseEntity<PersonDetailsResponse> getPersonDetails(
|
|
|
+ @Parameter(description = "JSON-Daten für Vergleichsbasis (links)", required = true)
|
|
|
@RequestParam String leftJson,
|
|
|
+ @Parameter(description = "JSON-Daten für aktuellen Stand (rechts)", required = true)
|
|
|
@RequestParam String rightJson,
|
|
|
+ @Parameter(description = "ID des linken Vorgangs", required = true)
|
|
|
@RequestParam String leftVorgangId,
|
|
|
+ @Parameter(description = "ID des linken Zeitraums", required = true)
|
|
|
@RequestParam String leftZeitraumId,
|
|
|
+ @Parameter(description = "ID des rechten Zeitraums", required = true)
|
|
|
@RequestParam String rightZeitraumId,
|
|
|
+ @Parameter(description = "ID der Person", required = true)
|
|
|
@RequestParam String personId) throws Exception {
|
|
|
|
|
|
JsonNode left = om.readTree(leftJson);
|
|
|
@@ -220,11 +242,17 @@ public class HhmEinkommenController {
|
|
|
|
|
|
@PostMapping("/api/vorgang-change")
|
|
|
@ResponseBody
|
|
|
+ @Operation(summary = "Vorgang wechseln", description = "Wechselt zu einem anderen Vorgang und aktualisiert die Vergleichsdaten")
|
|
|
public ResponseEntity<VorgangChangeResponse> changeLeftVorgang(
|
|
|
+ @Parameter(description = "JSON-Daten für Vergleichsbasis (links)", required = true)
|
|
|
@RequestParam String leftJson,
|
|
|
+ @Parameter(description = "JSON-Daten für aktuellen Stand (rechts)", required = true)
|
|
|
@RequestParam String rightJson,
|
|
|
+ @Parameter(description = "ID des rechten Zeitraums", required = true)
|
|
|
@RequestParam String rightZeitraumId,
|
|
|
+ @Parameter(description = "ID der ausgewählten Person", required = true)
|
|
|
@RequestParam String personId,
|
|
|
+ @Parameter(description = "ID des neuen linken Vorgangs", required = true)
|
|
|
@RequestParam String newLeftVorgangId) throws Exception {
|
|
|
|
|
|
JsonNode left = om.readTree(leftJson);
|
|
|
@@ -272,12 +300,19 @@ public class HhmEinkommenController {
|
|
|
|
|
|
@PostMapping("/api/zeitraum-change")
|
|
|
@ResponseBody
|
|
|
+ @Operation(summary = "Zeitraum wechseln", description = "Wechselt zu einem anderen Zeitraum und aktualisiert die Vergleichsdaten")
|
|
|
public ResponseEntity<ZeitraumChangeResponse> changeLeftZeitraum(
|
|
|
+ @Parameter(description = "JSON-Daten für Vergleichsbasis (links)", required = true)
|
|
|
@RequestParam String leftJson,
|
|
|
+ @Parameter(description = "JSON-Daten für aktuellen Stand (rechts)", required = true)
|
|
|
@RequestParam String rightJson,
|
|
|
+ @Parameter(description = "ID des linken Vorgangs", required = true)
|
|
|
@RequestParam String leftVorgangId,
|
|
|
+ @Parameter(description = "ID des rechten Zeitraums", required = true)
|
|
|
@RequestParam String rightZeitraumId,
|
|
|
+ @Parameter(description = "ID der ausgewählten Person", required = true)
|
|
|
@RequestParam String personId,
|
|
|
+ @Parameter(description = "ID des neuen linken Zeitraums", required = true)
|
|
|
@RequestParam String newLeftZeitraumId) throws Exception {
|
|
|
|
|
|
JsonNode left = om.readTree(leftJson);
|
|
|
@@ -382,4 +417,36 @@ public class HhmEinkommenController {
|
|
|
List<FreibetragZeile> freibetragZeilen,
|
|
|
List<KitaZeile> kitaZeilen
|
|
|
) {}
|
|
|
+
|
|
|
+ // ===== Response Classes =====
|
|
|
+
|
|
|
+ public record PersonDetailsResponse(
|
|
|
+ String personId,
|
|
|
+ String personLabel,
|
|
|
+ List<EinkommenZeile> einkommenZeilen,
|
|
|
+ List<FreibetragZeile> freibetragZeilen,
|
|
|
+ List<KitaZeile> kitaZeilen
|
|
|
+ ) {}
|
|
|
+
|
|
|
+ public record VorgangChangeResponse(
|
|
|
+ String newLeftVorgangId,
|
|
|
+ String newLeftZeitraumId,
|
|
|
+ List<Z> leftZeitraeumeOfSelected,
|
|
|
+ List<MitgliedRow> mitgliederRows,
|
|
|
+ String personId,
|
|
|
+ String personLabel,
|
|
|
+ List<EinkommenZeile> einkommenZeilen,
|
|
|
+ List<FreibetragZeile> freibetragZeilen,
|
|
|
+ List<KitaZeile> kitaZeilen
|
|
|
+ ) {}
|
|
|
+
|
|
|
+ public record ZeitraumChangeResponse(
|
|
|
+ String newLeftZeitraumId,
|
|
|
+ List<MitgliedRow> mitgliederRows,
|
|
|
+ String personId,
|
|
|
+ String personLabel,
|
|
|
+ List<EinkommenZeile> einkommenZeilen,
|
|
|
+ List<FreibetragZeile> freibetragZeilen,
|
|
|
+ List<KitaZeile> kitaZeilen
|
|
|
+ ) {}
|
|
|
}
|