From 42e72f252bb7458c6c94242dae2fc84792309a26 Mon Sep 17 00:00:00 2001 From: Espen Johansen Velsvik Date: Tue, 29 Oct 2024 21:10:54 +0100 Subject: [PATCH] Forenkler tidslinjer --- .../tilkommetInntekt/TilkommetInntektPeriodeTjeneste.java | 2 +- .../tilkommetInntekt/TilkommetInntektsforholdTjeneste.java | 5 +++-- .../AvklaringsbehovUtlederTilkommetInntektTest.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektPeriodeTjeneste.java b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektPeriodeTjeneste.java index 018e51a6..b7c22022 100644 --- a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektPeriodeTjeneste.java +++ b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektPeriodeTjeneste.java @@ -55,7 +55,7 @@ public BeregningsgrunnlagDto splittPerioderVedTilkommetInntekt(Beregningsgrunnla .combine(opprettTidslinje(input.getForlengelseperioder()), StandardCombinators::leftOnly, input.getForlengelseperioder().isEmpty() ? LocalDateTimeline.JoinStyle.LEFT_JOIN : LocalDateTimeline.JoinStyle.INNER_JOIN); if (ytelseGrunnlag.getTilkommetInntektHensyntasFom().isPresent()) { - tidlinjeMedTilkommetAktivitet = tidlinjeMedTilkommetAktivitet.combine(new LocalDateSegment<>(new LocalDateInterval(ytelseGrunnlag.getTilkommetInntektHensyntasFom().get(), LocalDateInterval.TIDENES_ENDE), Boolean.TRUE), StandardCombinators::leftOnly, LocalDateTimeline.JoinStyle.INNER_JOIN); + tidlinjeMedTilkommetAktivitet = tidlinjeMedTilkommetAktivitet.intersection(new LocalDateInterval(ytelseGrunnlag.getTilkommetInntektHensyntasFom().get(), LocalDateInterval.TIDENES_ENDE)); } else if (!tidlinjeMedTilkommetAktivitet.isEmpty()) { throw new IllegalStateException("Hadde ikke startdato for nye regler, men fikk tilkommet inntekt"); } diff --git a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java index 39988c3b..4a4b4091 100644 --- a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java +++ b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java @@ -110,8 +110,9 @@ private static LocalDateTimeline> finnDagpengetidslinje(Inn private static LocalDateTimeline finnTidslinjeForUtbetalingsperiode(UtbetalingsgradGrunnlag utbetalingsgradGrunnlag) { return utbetalingsgradGrunnlag.getUtbetalingsgradPrAktivitet().stream() .flatMap(a -> a.getPeriodeMedUtbetalingsgrad().stream()) - .map(p -> new LocalDateSegment<>(p.getPeriode().getFomDato(), p.getPeriode().getTomDato(), Boolean.TRUE)) - .collect(Collectors.collectingAndThen(Collectors.toList(), s -> new LocalDateTimeline<>(s, StandardCombinators::alwaysTrueForMatch))); + .map(p -> new LocalDateTimeline<>(p.getPeriode().getFomDato(), p.getPeriode().getTomDato(), true)) + .reduce(LocalDateTimeline::crossJoin) + .orElse(LocalDateTimeline.empty()); } private static List>> mapTilkommetTidslinje(Collection andeler, diff --git a/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/steg/fordeling/avklaringsbehov/AvklaringsbehovUtlederTilkommetInntektTest.java b/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/steg/fordeling/avklaringsbehov/AvklaringsbehovUtlederTilkommetInntektTest.java index c9db78d7..e6ca6808 100644 --- a/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/steg/fordeling/avklaringsbehov/AvklaringsbehovUtlederTilkommetInntektTest.java +++ b/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/steg/fordeling/avklaringsbehov/AvklaringsbehovUtlederTilkommetInntektTest.java @@ -103,7 +103,7 @@ void skal_finne_tilkommet_andel_dersom_en_andel_fra_start_og_direkte_overgang_ut assertThat(tilkomneAndeler.size()).isEqualTo(1); assertThat(tilkomneAndeler.iterator().next().arbeidsgiver()).isEqualTo(arbeidsgiver2); } - + @Test void skal_finne_tilkommet_andel_dersom_en_andel_fra_start_med_overlapp_til_nytt_arbeid() {