From 1a77be41ed161b3f8902e57ebea7856fd4f418b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20P=C3=B8hner?= Date: Thu, 17 Oct 2024 13:17:04 +0200 Subject: [PATCH] =?UTF-8?q?Juster=20og=20videref=C3=B8r=20eksisterende=20o?= =?UTF-8?q?ppholdsperioder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SvpTilretteleggingEntitet.java | 3 +- .../v3/S\303\270knadOversetter.java" | 54 ++++++++++--------- ...=> V4.1_32__TFP-5853-svpopphold-kilde.sql} | 0 3 files changed, 31 insertions(+), 26 deletions(-) rename migreringer/src/main/resources/db/migration/defaultDS/4.1/{V4.1_31__TFP-5853-svpopphold-kilde.sql => V4.1_32__TFP-5853-svpopphold-kilde.sql} (100%) diff --git a/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/behandlingslager/behandling/tilrettelegging/SvpTilretteleggingEntitet.java b/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/behandlingslager/behandling/tilrettelegging/SvpTilretteleggingEntitet.java index cbc74579f7b..c21f4b69134 100644 --- a/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/behandlingslager/behandling/tilrettelegging/SvpTilretteleggingEntitet.java +++ b/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/behandlingslager/behandling/tilrettelegging/SvpTilretteleggingEntitet.java @@ -214,8 +214,7 @@ public static Builder fraEksisterende(SvpTilretteleggingEntitet tilrettelegging) .medOpplysningerOmTilretteleggingstiltak(tilrettelegging.getOpplysningerOmTilretteleggingstiltak().orElse(null)) .medSkalBrukes(tilrettelegging.getSkalBrukes()) .medMottattTidspunkt(tilrettelegging.getMottattTidspunkt()) - .medTilretteleggingFraDatoer(tilrettelegging.getTilretteleggingFOMListe()) - .medAvklarteOpphold(tilrettelegging.getAvklarteOpphold()); + .medTilretteleggingFraDatoer(tilrettelegging.getTilretteleggingFOMListe()); } public Builder(SvpTilretteleggingEntitet tilretteleggingEntitet) { mal = new SvpTilretteleggingEntitet(tilretteleggingEntitet, null); diff --git "a/domenetjenester/mottak/src/main/java/no/nav/foreldrepenger/mottak/dokumentpersiterer/impl/s\303\270knad/v3/S\303\270knadOversetter.java" "b/domenetjenester/mottak/src/main/java/no/nav/foreldrepenger/mottak/dokumentpersiterer/impl/s\303\270knad/v3/S\303\270knadOversetter.java" index 21b26ece123..078dd59bbaa 100644 --- "a/domenetjenester/mottak/src/main/java/no/nav/foreldrepenger/mottak/dokumentpersiterer/impl/s\303\270knad/v3/S\303\270knadOversetter.java" +++ "b/domenetjenester/mottak/src/main/java/no/nav/foreldrepenger/mottak/dokumentpersiterer/impl/s\303\270knad/v3/S\303\270knadOversetter.java" @@ -329,7 +329,6 @@ private void byggFamilieHendelseForSvangerskap(Svangerskapspenger omYtelse, if (fødselsdato != null) { hendelseBuilder.erFødsel().medFødselsDato(fødselsdato).medAntallBarn(1); } - } private RelasjonsRolleType utledRolle(FagsakYtelseType ytelseType, Bruker bruker, Long behandlingId, AktørId aktørId) { @@ -408,29 +407,23 @@ private void oversettOgLagreTilretteleggingOgVurderEksisterende(Svangerskapspeng var tilretteleggingListe = svangerskapspenger.getTilretteleggingListe().getTilrettelegging(); for (var tilrettelegging : tilretteleggingListe) { - var builder = new SvpTilretteleggingEntitet.Builder(); builder.medBehovForTilretteleggingFom(tilrettelegging.getBehovForTilretteleggingFom()) .medKopiertFraTidligereBehandling(false) .medMottattTidspunkt(brukMottattTidspunkt) .medAvklarteOpphold(mapAvtaltFerie(tilrettelegging, svangerskapspenger)); - if (tilrettelegging.getHelTilrettelegging() != null) { - tilrettelegging.getHelTilrettelegging() - .forEach(helTilrettelegging -> builder.medHelTilrettelegging( - helTilrettelegging.getTilrettelagtArbeidFom(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD)); - } - if (tilrettelegging.getDelvisTilrettelegging() != null) { - tilrettelegging.getDelvisTilrettelegging() - .forEach(delvisTilrettelegging -> builder.medDelvisTilrettelegging( - delvisTilrettelegging.getTilrettelagtArbeidFom(), delvisTilrettelegging.getStillingsprosent(), brukMottattTidspunkt.toLocalDate(), - SvpTilretteleggingFomKilde.SØKNAD)); - } - if (tilrettelegging.getIngenTilrettelegging() != null) { - tilrettelegging.getIngenTilrettelegging() - .forEach(ingenTilrettelegging -> builder.medIngenTilrettelegging( - ingenTilrettelegging.getSlutteArbeidFom(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD)); - } + tilrettelegging.getHelTilrettelegging() + .forEach(helTilrettelegging -> builder.medHelTilrettelegging(helTilrettelegging.getTilrettelagtArbeidFom(), + brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD)); + + tilrettelegging.getDelvisTilrettelegging() + .forEach(delvisTilrettelegging -> builder.medDelvisTilrettelegging(delvisTilrettelegging.getTilrettelagtArbeidFom(), + delvisTilrettelegging.getStillingsprosent(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD)); + + tilrettelegging.getIngenTilrettelegging() + .forEach(ingenTilrettelegging -> builder.medIngenTilrettelegging(ingenTilrettelegging.getSlutteArbeidFom(), + brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD)); oversettArbeidsforhold(builder, tilrettelegging.getArbeidsforhold()); nyeTilrettelegginger.add(builder.build()); @@ -489,9 +482,8 @@ private void oversettOgLagreTilretteleggingOgVurderEksisterende(Svangerskapspeng private SvpTilretteleggingEntitet oppdaterEksisterendeTlrMedNyeFOMs(SvpTilretteleggingEntitet nyTlR, SvpTilretteleggingEntitet eksisterendeTlr) { - List nyFomListe = new ArrayList<>(nyTlR.getTilretteleggingFOMListe()); + var nyFomListe = new ArrayList<>(nyTlR.getTilretteleggingFOMListe()); var tidligsteNyFom = nyFomListe.stream().map(TilretteleggingFOM::getFomDato).min(LocalDate::compareTo).orElse(LocalDate.EPOCH); - var eksisterendeFOMSomSkalKopieres = eksisterendeTlr.getTilretteleggingFOMListe().stream().filter(f -> f.getFomDato().isBefore(tidligsteNyFom)).toList(); eksisterendeFOMSomSkalKopieres.forEach(eksFom -> @@ -504,17 +496,31 @@ private SvpTilretteleggingEntitet oppdaterEksisterendeTlrMedNyeFOMs(SvpTilrettel nyFomListe.sort(Comparator.comparing(TilretteleggingFOM::getFomDato)); - return SvpTilretteleggingEntitet.Builder.fraEksisterende(eksisterendeTlr) + var justertTilrettelegging = SvpTilretteleggingEntitet.Builder.fraEksisterende(eksisterendeTlr) .medBehovForTilretteleggingFom(nyFomListe.stream().map(TilretteleggingFOM::getFomDato).min(LocalDate::compareTo).orElse(null)) - .medTilretteleggingFraDatoer(nyFomListe).build(); + .medTilretteleggingFraDatoer(nyFomListe); + var justerteOppholdsperioder = eksisterendeTlr.getAvklarteOpphold().stream() + .filter(opphold -> opphold.getFom().isBefore(tidligsteNyFom)) + .map(opphold -> { + if (!opphold.getTom().isBefore(tidligsteNyFom)) { + return SvpAvklartOpphold.Builder.nytt() + .medKilde(opphold.getKilde()) + .medOppholdÅrsak(opphold.getOppholdÅrsak()) + .medOppholdPeriode(opphold.getFom(), tidligsteNyFom.minusDays(1)) + .build(); + } + return opphold; + }); + justerteOppholdsperioder.forEach(justertTilrettelegging::medAvklartOpphold); + nyTlR.getAvklarteOpphold().forEach(justertTilrettelegging::medAvklartOpphold); + + return justertTilrettelegging.build(); } private void oversettArbeidsforhold(SvpTilretteleggingEntitet.Builder builder, Arbeidsforhold arbeidsforhold) { - if (arbeidsforhold instanceof no.nav.vedtak.felles.xml.soeknad.svangerskapspenger.v1.Arbeidsgiver arbeidsgiverType) { builder.medArbeidType(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD); Arbeidsgiver arbeidsgiver; - if (arbeidsforhold instanceof no.nav.vedtak.felles.xml.soeknad.svangerskapspenger.v1.Virksomhet virksomhetType) { var orgnr = virksomhetType.getIdentifikator(); virksomhetTjeneste.hentOrganisasjon(orgnr); diff --git a/migreringer/src/main/resources/db/migration/defaultDS/4.1/V4.1_31__TFP-5853-svpopphold-kilde.sql b/migreringer/src/main/resources/db/migration/defaultDS/4.1/V4.1_32__TFP-5853-svpopphold-kilde.sql similarity index 100% rename from migreringer/src/main/resources/db/migration/defaultDS/4.1/V4.1_31__TFP-5853-svpopphold-kilde.sql rename to migreringer/src/main/resources/db/migration/defaultDS/4.1/V4.1_32__TFP-5853-svpopphold-kilde.sql