Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/tfp 5605 #2437

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ private boolean gjelderMor(FagsakBackend fagsak) {
private void mapAvslåttePerioder(Behandling behandling,
ForeldrepengerAvslagDokumentdata.Builder dokumentdataBuilder,
Optional<ForeldrepengerUttak> uttakResultatPerioder) {
var tilkjentYtelseFP = domeneobjektProvider.hentTilkjentYtelseFPHvisFinnes(behandling);
var tilkjentYtelseFP = domeneobjektProvider.hentTilkjentYtelseDagytelseHvisFinnes(behandling);
var avslåttePerioderOgLovhjemmel = AvslåttPeriodeMapper.mapAvslåttePerioderOgLovhjemmel(behandling,
tilkjentYtelseFP.map(TilkjentYtelseForeldrepenger::getPerioder).orElse(Collections.emptyList()), uttakResultatPerioder);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public String getTemplateNavn() {
var svpUttaksresultat = domeneobjektProvider.hentSvangerskapspengerUttakHvisFinnes(behandling);
var familieHendelse = domeneobjektProvider.hentFamiliehendelse(behandling);
var iay = domeneobjektProvider.hentInntektsmeldinger(behandling);
var tilkjentYtelsePerioder = domeneobjektProvider.hentTilkjentYtelseFPHvisFinnes(behandling)
var tilkjentYtelsePerioder = domeneobjektProvider.hentTilkjentYtelseDagytelseHvisFinnes(behandling)
.map(TilkjentYtelseForeldrepenger::getPerioder)
.orElse(Collections.emptyList());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,13 @@ public Optional<Behandling> hentOriginalBehandlingHvisFinnes(Behandling behandli
}

public TilkjentYtelseForeldrepenger hentTilkjentYtelseForeldrepenger(Behandling behandling) {
return TilkjentYtelseDtoMapper.mapTilkjentYtelseFPFraDto(
behandlingRestKlient.hentTilkjentYtelseForeldrepenger(behandling.getResourceLinker()), arbeidsgiverTjeneste::hentArbeidsgiverNavn);
return TilkjentYtelseDtoMapper.mapTilkjentYtelseDagytelseFraDto(
behandlingRestKlient.hentTilkjentYtelseDagytelse(behandling.getResourceLinker()), arbeidsgiverTjeneste::hentArbeidsgiverNavn);
}

public Optional<TilkjentYtelseForeldrepenger> hentTilkjentYtelseFPHvisFinnes(Behandling behandling) {
return behandlingRestKlient.hentTilkjentYtelseForeldrepengerHvisFinnes(behandling.getResourceLinker())
.map(r -> TilkjentYtelseDtoMapper.mapTilkjentYtelseFPFraDto(r, arbeidsgiverTjeneste::hentArbeidsgiverNavn));
public Optional<TilkjentYtelseForeldrepenger> hentTilkjentYtelseDagytelseHvisFinnes(Behandling behandling) {
return behandlingRestKlient.hentTilkjentYtelseDagytelseHvisFinnes(behandling.getResourceLinker())
.map(r -> TilkjentYtelseDtoMapper.mapTilkjentYtelseDagytelseFraDto(r, arbeidsgiverTjeneste::hentArbeidsgiverNavn));
}

public FamilieHendelse hentFamiliehendelse(Behandling behandling) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.klage.MottattKlagedokumentDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.personopplysning.VergeDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.soknad.SoknadBackendDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelseEngangsstønadDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelseMedUttaksplanDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.StartdatoUtsattDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.UttakResultatPerioderDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.YtelseFordelingDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.saldo.SaldoerDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.svp.SvangerskapspengerUttakResultatDto;
import no.nav.foreldrepenger.kontrakter.formidling.v1.DokumentProdusertDto;
import no.nav.foreldrepenger.kontrakter.fpsak.beregningsgrunnlag.v2.BeregningsgrunnlagDto;
import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.TilkjentYtelseDagytelseDto;
import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.TilkjentYtelseEngangsstønadDto;

public interface Behandlinger {

Expand Down Expand Up @@ -69,7 +69,7 @@ default Optional<FamilieHendelseGrunnlagDto> hentFamiliehendelseHvisFinnes(List<

default Optional<TilkjentYtelseEngangsstønadDto> hentTilkjentYtelseEngangsstønadHvisFinnes(List<BehandlingResourceLink> resourceLinker) {
return resourceLinker.stream()
.filter(dto -> "beregningsresultat-engangsstonad".equals(dto.getRel()))
.filter(dto -> "tilkjentytelse-engangsstonad".equals(dto.getRel()))
.findFirst()
.flatMap(link -> hentDtoFraLink(link, TilkjentYtelseEngangsstønadDto.class));
}
Expand All @@ -79,17 +79,17 @@ default Optional<FamilieHendelseGrunnlagDto> hentFamiliehendelseHvisFinnes(List<
() -> new IllegalStateException("Klarte ikke hente Tilkjent ytelse engangsstønad for behandling: " + hentBehandlingId(resourceLinker)));
}

default TilkjentYtelseMedUttaksplanDto hentTilkjentYtelseForeldrepenger(List<BehandlingResourceLink> resourceLinker) {
return hentTilkjentYtelseForeldrepengerHvisFinnes(resourceLinker).orElseThrow(() -> {
default TilkjentYtelseDagytelseDto hentTilkjentYtelseDagytelse(List<BehandlingResourceLink> resourceLinker) {
return hentTilkjentYtelseDagytelseHvisFinnes(resourceLinker).orElseThrow(() -> {
throw new IllegalStateException("Klarte ikke hente Tilkjent ytelse foreldrepenger for behandling: " + hentBehandlingId(resourceLinker));
});
}

default Optional<TilkjentYtelseMedUttaksplanDto> hentTilkjentYtelseForeldrepengerHvisFinnes(List<BehandlingResourceLink> resourceLinker) {
default Optional<TilkjentYtelseDagytelseDto> hentTilkjentYtelseDagytelseHvisFinnes(List<BehandlingResourceLink> resourceLinker) {
return resourceLinker.stream()
.filter(dto -> "beregningsresultat-dagytelse".equals(dto.getRel()))
.filter(dto -> "tilkjentytelse-dagytelse".equals(dto.getRel()))
.findFirst()
.flatMap(link -> hentDtoFraLink(link, TilkjentYtelseMedUttaksplanDto.class));
.flatMap(link -> hentDtoFraLink(link, TilkjentYtelseDagytelseDto.class));
}

default Optional<SoknadBackendDto> hentSoknadHvisFinnes(List<BehandlingResourceLink> resourceLinker) {
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.mapper;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.UnaryOperator;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.AktivitetStatus;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelseAndelDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelseEngangsstønadDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelseMedUttaksplanDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.tilkjentytelse.TilkjentYtelsePeriodeDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.mapper.sortering.PeriodeComparator;
import no.nav.foreldrepenger.fpformidling.tilkjentytelse.TilkjentYtelseAndel;
import no.nav.foreldrepenger.fpformidling.tilkjentytelse.TilkjentYtelseEngangsstønad;
Expand All @@ -18,6 +15,8 @@
import no.nav.foreldrepenger.fpformidling.typer.ArbeidsforholdRef;
import no.nav.foreldrepenger.fpformidling.typer.DatoIntervall;
import no.nav.foreldrepenger.fpformidling.virksomhet.Arbeidsgiver;
import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.TilkjentYtelseDagytelseDto;
import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.TilkjentYtelseEngangsstønadDto;

public class TilkjentYtelseDtoMapper {

Expand All @@ -29,31 +28,32 @@ private TilkjentYtelseDtoMapper() {
return new TilkjentYtelseEngangsstønad(dto.beregnetTilkjentYtelse());
}

public static TilkjentYtelseForeldrepenger mapTilkjentYtelseFPFraDto(TilkjentYtelseMedUttaksplanDto dto, UnaryOperator<String> hentNavn) {
var tilkjentYtelsePerioder = Arrays.stream(dto.getPerioder())
public static TilkjentYtelseForeldrepenger mapTilkjentYtelseDagytelseFraDto(TilkjentYtelseDagytelseDto dto, UnaryOperator<String> hentNavn) {
var tilkjentYtelsePerioder = dto.perioder()
.stream()
.map(p -> mapPeriodeFraDto(p, hentNavn))
.sorted(PeriodeComparator.TILKJENTYTELSERESULTAT)
.toList();
return TilkjentYtelseForeldrepenger.ny().leggTilPerioder(tilkjentYtelsePerioder).build();
}


private static TilkjentYtelsePeriode mapPeriodeFraDto(TilkjentYtelsePeriodeDto dto, UnaryOperator<String> hentNavn) {
private static TilkjentYtelsePeriode mapPeriodeFraDto(TilkjentYtelseDagytelseDto.@Valid @NotNull TilkjentYtelsePeriodeDto dto, UnaryOperator<String> hentNavn) {
List<TilkjentYtelseAndel> andelListe = new ArrayList<>();
for (var tilkjentYtelseAndelDto : dto.getAndeler()) {
for (var tilkjentYtelseAndelDto : dto.andeler()) {
andelListe.add(mapAndelFraDto(tilkjentYtelseAndelDto, hentNavn));
}
return TilkjentYtelsePeriode.ny()
.medDagsats((long) dto.getDagsats())
.medPeriode(DatoIntervall.fraOgMedTilOgMed(dto.getFom(), dto.getTom()))
.medDagsats((long) dto.dagsats())
.medPeriode(DatoIntervall.fraOgMedTilOgMed(dto.fom(), dto.tom()))
.medAndeler(andelListe)
.build();
}

//Fpsak slår sammen andeler i dto, så vi må eventuelt splitte dem opp igjen
private static TilkjentYtelseAndel mapAndelFraDto(TilkjentYtelseAndelDto dto, UnaryOperator<String> hentNavn) {
private static TilkjentYtelseAndel mapAndelFraDto(TilkjentYtelseDagytelseDto.@Valid @NotNull TilkjentYtelseAndelDto dto, UnaryOperator<String> hentNavn) {
return TilkjentYtelseAndel.ny()
.medAktivitetStatus(dto.aktivitetStatus())
.medAktivitetStatus(mapAktivitetstatusFraKontrakt(dto.aktivitetstatus()))
.medArbeidsforholdRef(
dto.arbeidsforholdId() != null && !dto.arbeidsforholdId().isEmpty() ? ArbeidsforholdRef.ref(dto.arbeidsforholdId()) : null)
.medArbeidsgiver(mapArbeidsgiverFraDto(dto, hentNavn))
Expand All @@ -65,14 +65,32 @@ private static TilkjentYtelseAndel mapAndelFraDto(TilkjentYtelseAndelDto dto, Un
.build();
}

private static Arbeidsgiver mapArbeidsgiverFraDto(TilkjentYtelseAndelDto dto, UnaryOperator<String> hentNavn) {
if (!AktivitetStatus.ARBEIDSTAKER.equals(dto.aktivitetStatus()) || dto.arbeidsgiverReferanse() == null) {
private static AktivitetStatus mapAktivitetstatusFraKontrakt(TilkjentYtelseDagytelseDto.Aktivitetstatus aktivitetstatus) {
return switch(aktivitetstatus) {
case ARBEIDSAVKLARINGSPENGER -> AktivitetStatus.ARBEIDSAVKLARINGSPENGER;
case ARBEIDSTAKER -> AktivitetStatus.ARBEIDSTAKER;
case DAGPENGER -> AktivitetStatus.DAGPENGER;
case FRILANSER -> AktivitetStatus.FRILANSER;
case MILITÆR_ELLER_SIVIL -> AktivitetStatus.MILITÆR_ELLER_SIVIL;
case SELVSTENDIG_NÆRINGSDRIVENDE -> AktivitetStatus.SELVSTENDIG_NÆRINGSDRIVENDE;
case BRUKERS_ANDEL -> AktivitetStatus.BRUKERS_ANDEL;
case KUN_YTELSE -> AktivitetStatus.KUN_YTELSE;
case TTLSTØTENDE_YTELSE -> AktivitetStatus.TTLSTØTENDE_YTELSE;
case VENTELØNN_VARTPENGER -> AktivitetStatus.VENTELØNN_VARTPENGER;
case KOMBINERT_AT_FL, KOMBINERT_AT_SN, KOMBINERT_FL_SN,
KOMBINERT_AT_FL_SN, UDEFINERT -> throw new IllegalStateException("Ugyldig aktivitetstatus for tilkjent ytelse andel: " + aktivitetstatus);
};
}


private static Arbeidsgiver mapArbeidsgiverFraDto(TilkjentYtelseDagytelseDto.@Valid @NotNull TilkjentYtelseAndelDto dto, UnaryOperator<String> hentNavn) {
if (!TilkjentYtelseDagytelseDto.Aktivitetstatus.ARBEIDSTAKER.equals(dto.aktivitetstatus()) || dto.arbeidsgiverReferanse() == null) {
return null;
}
return new Arbeidsgiver(dto.arbeidsgiverReferanse(), hentNavn.apply(dto.arbeidsgiverReferanse()));
}

private static int summerDagsats(TilkjentYtelseAndelDto dto) {
private static int summerDagsats(TilkjentYtelseDagytelseDto.TilkjentYtelseAndelDto dto) {
var sum = 0;
if (dto.tilSoker() != null) {
sum += dto.tilSoker();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ void before() {
when(domeneobjektProvider.hentFagsakBackend(any(Behandling.class))).thenReturn(opprettFagsakBackend());
when(domeneobjektProvider.hentMottatteDokumenter(any(Behandling.class))).thenReturn(opprettMottattDokument());
when(domeneobjektProvider.hentFamiliehendelse(any(Behandling.class))).thenReturn(opprettFamiliehendelse());
when(domeneobjektProvider.hentTilkjentYtelseFPHvisFinnes(any(Behandling.class))).thenReturn(opprettTilkjentYtelseFP());
when(domeneobjektProvider.hentTilkjentYtelseDagytelseHvisFinnes(any(Behandling.class))).thenReturn(opprettTilkjentYtelseFP());
when(domeneobjektProvider.hentBeregningsgrunnlagHvisFinnes(any(Behandling.class))).thenReturn(opprettBeregningsgrunnlag());
lenient().when(domeneobjektProvider.hentForeldrepengerUttakHvisFinnes(any(Behandling.class))).thenReturn(opprettUttaksresultat());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ void before() {
when(domeneobjektProvider.hentFamiliehendelse(any(Behandling.class))).thenReturn(opprettFamiliehendelse());
when(domeneobjektProvider.hentBeregningsgrunnlagHvisFinnes(any(Behandling.class))).thenReturn(opprettBeregningsgrunnlag());
when(domeneobjektProvider.hentSvangerskapspengerUttakHvisFinnes(any(Behandling.class))).thenReturn(opprettUttaksresultat());
when(domeneobjektProvider.hentTilkjentYtelseFPHvisFinnes(any(Behandling.class))).thenReturn(opprettTilkjentYtelse());
when(domeneobjektProvider.hentTilkjentYtelseDagytelseHvisFinnes(any(Behandling.class))).thenReturn(opprettTilkjentYtelse());
}

@Test
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<!-- Felles artefakter -->
<felles.version>5.1.1</felles.version>
<prosesstask.version>4.0.0</prosesstask.version>
<kontrakter.version>7.1.1</kontrakter.version>
<kontrakter.version>7.1.3</kontrakter.version>

<!-- Eksterne -->
<handlebars.version>4.3.1</handlebars.version>
Expand Down