From 938a338ceb7cea2d81027248dcbcad3168f73999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Thu, 19 Dec 2024 14:28:03 +0100 Subject: [PATCH] =?UTF-8?q?H=C3=A5ndtere=20ekskludering=20av=20dokumentasj?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ef/mottak/service/Feltformaterer.kt | 42 +++++++------- .../service/S\303\270knadTilFeltMap.kt" | 55 ++++++++++++++----- .../service/S\303\270knadTreeWalker.kt" | 23 +++++--- 3 files changed, 78 insertions(+), 42 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt index aa8e7d8b..10814b0f 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt @@ -17,46 +17,59 @@ object Feltformaterer { /** * Håndterer formatering utover vanlig toString for endenodene */ - fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): VerdilisteElement = feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) + fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): VerdilisteElement = mapTilVerdiListeElement(entitet) - fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement { + fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement? { // skal ekskluderes if (entitet.label == "Jeg har sendt inn denne dokumentasjonen til Nav tidligere" && entitet.verdi.toString() == "false" ) { - // return emptyMap() - return VerdilisteElement(label = "", verdi = "") + return null } - return feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) + return mapTilVerdiListeElement(entitet) } - fun mapVedlegg(vedleggTitler: List): VerdilisteElement { - val verdi = vedleggTitler.joinToString("\n\n") - return feltMap("Vedlegg", verdi) - } + fun mapVedlegg(vedleggTitler: List): VerdilisteElement = VerdilisteElement("Vedlegg", verdi = vedleggTitler.joinToString("\n\n")) + + private fun mapTilVerdiListeElement(entitet: Søknadsfelt<*>) = + VerdilisteElement( + entitet.label, + verdi = mapVerdi(entitet.verdi!!), + alternativer = entitet.alternativer?.joinToString(" / "), + ) private fun mapVerdi(verdi: Any): String = when (verdi) { is Month -> tilUtskriftsformat(verdi) + is Boolean -> tilUtskriftsformat(verdi) + is Double -> tilUtskriftsformat(verdi) + is List<*> -> verdi.joinToString("\n\n") { mapVerdi(it!!) } + is Fødselsnummer -> verdi.verdi + is Adresse -> tilUtskriftsformat(verdi) + is LocalDate -> tilUtskriftsformat(verdi) + is LocalDateTime -> tilUtskriftsformat(verdi) + is MånedÅrPeriode -> tilUtskriftsformat(verdi) + is Datoperiode -> tilUtskriftsformat(verdi) + else -> verdi.toString() } @@ -81,15 +94,4 @@ object Feltformaterer { listOf(adresse.postnummer, adresse.poststedsnavn).joinToString(" "), adresse.land, ).joinToString("\n\n") - - fun feltMap( - label: String, - verdi: String, - alternativer: List? = null, - ): VerdilisteElement = - if (alternativer != null) { - VerdilisteElement(label = label, verdi = verdi, alternativer = alternativer.joinToString(" / ")) - } else { - VerdilisteElement(label = label, verdi = verdi) - } } diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index 07540e9b..a260d995 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -47,7 +47,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } @@ -56,7 +56,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } @@ -65,7 +65,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } @@ -83,15 +83,15 @@ object SøknadTilFeltMap { label = "Ettersending av vedlegg", verdiliste = listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( + VerdilisteElement("Stønadstype", verdi = ettersending.stønadType), + VerdilisteElement("Fødselsnummer", verdi = ettersending.fnr), + VerdilisteElement( "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + verdi = ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), ), ), ) - val vedleggMap = VerdilisteElement("Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedleggMap = mapTilVedlegg(vedleggTitler, "Dokumenter vedlagt") return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) } @@ -121,22 +121,40 @@ object SøknadTilFeltMap { return mapDokumentasjon(entitet as Søknadsfelt) } if (entitet.verdi!!::class in endNodes) { - return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) + return Feltformaterer.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) } ?: emptyList() } if (entitet.label == "Barna dine") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_BARN.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.TABELL_BARN.toString(), + ), + ) } if (entitet.label == "Om arbeidsforholdet ditt") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_ARBEIDSFORHOLD.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.TABELL_ARBEIDSFORHOLD.toString(), + ), + ) } if (entitet.label == "Vedlegg") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.VEDLEGG.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.VEDLEGG.toString(), + ), + ) } if (entitet.verdi is List<*>) { val verdiliste = entitet.verdi as List<*> if (verdiliste.firstOrNull() is String) { - return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) + return Feltformaterer.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) } ?: emptyList() } } // skal ekskluderes @@ -153,7 +171,7 @@ object SøknadTilFeltMap { if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { return emptyList() } - return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list.filterNotNull())) } /** @@ -176,6 +194,15 @@ object SøknadTilFeltMap { * Konstruktørparametere er det eneste som gir oss en garantert rekkefølge for feltene, så vi henter disse først. */ private fun konstruktørparametere(entity: Any) = entity::class.primaryConstructor?.parameters ?: emptyList() + + private fun mapTilVedlegg( + vedleggTitler: List, + label: String = "Vedlegg", + ) = VerdilisteElement( + label, + verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), + visningsVariant = VisningsVariant.VEDLEGG.toString(), + ) } enum class VisningsVariant { diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" index 4a65adce..1d74b27c 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" @@ -47,7 +47,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } @@ -56,7 +57,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } @@ -65,7 +67,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } @@ -83,15 +86,19 @@ object SøknadTreeWalker { label = "Ettersending av vedlegg", verdiliste = listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( + VerdilisteElement("Stønadstype", verdi = ettersending.stønadType), + VerdilisteElement("Fødselsnummer", verdi = ettersending.fnr), + VerdilisteElement( "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + verdi = ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), ), ), ) - val vedleggMap = VerdilisteElement(label = "Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedleggMap = + VerdilisteElement( + label = "Dokumenter vedlagt", + verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), + ) return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) }