10
10
import no .nav .ung .sak .behandlingslager .tilkjentytelse .KontrollertInntektPeriode ;
11
11
import no .nav .ung .sak .behandlingslager .tilkjentytelse .TilkjentYtelseRepository ;
12
12
import no .nav .ung .sak .domene .typer .tid .DatoIntervallEntitet ;
13
- import no .nav .ung .sak .perioder .ProsessTriggerPeriodeUtleder ;
14
13
15
14
import java .math .BigDecimal ;
16
15
import java .util .HashSet ;
@@ -36,43 +35,47 @@ public KontrollerteInntektperioderTjeneste(TilkjentYtelseRepository tilkjentYtel
36
35
37
36
public void opprettKontrollerteInntekterPerioderFraBruker (Long behandlingId , LocalDateTimeline <Set <RapportertInntekt >> inntektTidslinje , LocalDateTimeline <Set <BehandlingÅrsakType >> prosesstriggerTidslinje ) {
38
37
final var relevantePerioderForKontroll = prosesstriggerTidslinje .filterValue (it -> it .contains (BehandlingÅrsakType .RE_KONTROLL_REGISTER_INNTEKT ));
39
- final var kontrollertePerioder = mapTilKontrollerteInntektperioder (inntektTidslinje .mapValue (it -> new RapportertInntektOgKilde (KontrollertInntektKilde .BRUKER , it )), relevantePerioderForKontroll , Optional .of (KontrollertInntektKilde .BRUKER ));
38
+ final var kontrollertePerioder = mapTilKontrollerteInntektperioder (inntektTidslinje .mapValue (it -> new RapportertInntektOgKilde (KontrollertInntektKilde .BRUKER , it )), relevantePerioderForKontroll , Optional .of (KontrollertInntektKilde .BRUKER ), false );
40
39
tilkjentYtelseRepository .lagre (behandlingId , kontrollertePerioder );
41
40
}
42
41
43
- public void opprettKontrollerteInntekterPerioderFraRegister (Long behandlingId , LocalDateTimeline <RapportertInntektOgKilde > inntektTidslinje , LocalDateTimeline <Set <BehandlingÅrsakType >> prosesstriggerTidslinje ) {
42
+ public void opprettKontrollerteInntekterPerioderFraEtterManuellVurdering (Long behandlingId , LocalDateTimeline <RapportertInntektOgKilde > inntektTidslinje , LocalDateTimeline <Set <BehandlingÅrsakType >> prosesstriggerTidslinje ) {
44
43
final var relevantePerioderForKontroll = prosesstriggerTidslinje .filterValue (it -> it .contains (BehandlingÅrsakType .RE_KONTROLL_REGISTER_INNTEKT ));
45
- final var kontrollertePerioder = mapTilKontrollerteInntektperioder (inntektTidslinje , relevantePerioderForKontroll , Optional .empty ());
44
+ final var kontrollertePerioder = mapTilKontrollerteInntektperioder (inntektTidslinje , relevantePerioderForKontroll , Optional .empty (), true );
46
45
tilkjentYtelseRepository .lagre (behandlingId , kontrollertePerioder );
47
46
}
48
47
49
48
public LocalDateTimeline <Set <RapportertInntekt >> hentTidslinje (Long behandlingId ) {
50
49
return tilkjentYtelseRepository .hentKontrollertInntektPerioder (behandlingId )
51
- .stream ()
52
- .flatMap (it -> it .getPerioder ().stream ())
53
- .map (p -> {
54
- Set <RapportertInntekt > rapportertInntekter = new HashSet <>();
55
- if (p .getArbeidsinntekt () != null ) {
56
- rapportertInntekter .add (new RapportertInntekt (InntektType .ARBEIDSTAKER_ELLER_FRILANSER , p .getArbeidsinntekt ()));
57
- }
58
- if (p .getYtelse () != null ) {
59
- rapportertInntekter .add (new RapportertInntekt (InntektType .YTELSE , p .getYtelse ()));
60
- }
61
- return new LocalDateTimeline <>(p .getPeriode ().getFomDato (), p .getPeriode ().getTomDato (), rapportertInntekter );
62
- }).reduce (LocalDateTimeline ::crossJoin )
63
- .orElse (LocalDateTimeline .empty ());
50
+ .stream ()
51
+ .flatMap (it -> it .getPerioder ().stream ())
52
+ .map (p -> {
53
+ Set <RapportertInntekt > rapportertInntekter = new HashSet <>();
54
+ if (p .getArbeidsinntekt () != null ) {
55
+ rapportertInntekter .add (new RapportertInntekt (InntektType .ARBEIDSTAKER_ELLER_FRILANSER , p .getArbeidsinntekt ()));
56
+ }
57
+ if (p .getYtelse () != null ) {
58
+ rapportertInntekter .add (new RapportertInntekt (InntektType .YTELSE , p .getYtelse ()));
59
+ }
60
+ return new LocalDateTimeline <>(p .getPeriode ().getFomDato (), p .getPeriode ().getTomDato (), rapportertInntekter );
61
+ }).reduce (LocalDateTimeline ::crossJoin )
62
+ .orElse (LocalDateTimeline .empty ());
64
63
}
65
64
66
- private static List <KontrollertInntektPeriode > mapTilKontrollerteInntektperioder (LocalDateTimeline <RapportertInntektOgKilde > inntektTidslinje , LocalDateTimeline <Set <BehandlingÅrsakType >> relevantePerioderForKontroll , Optional <KontrollertInntektKilde > defaultKilde ) {
65
+ private static List <KontrollertInntektPeriode > mapTilKontrollerteInntektperioder (LocalDateTimeline <RapportertInntektOgKilde > inntektTidslinje ,
66
+ LocalDateTimeline <Set <BehandlingÅrsakType >> relevantePerioderForKontroll ,
67
+ Optional <KontrollertInntektKilde > defaultKilde ,
68
+ boolean erManueltVurdert ) {
67
69
return relevantePerioderForKontroll .combine (inntektTidslinje , lagTomListeForIngenInntekter (defaultKilde ), LocalDateTimeline .JoinStyle .LEFT_JOIN )
68
- .toSegments ().stream ().map (
69
- s -> KontrollertInntektPeriode .ny ()
70
- .medPeriode (DatoIntervallEntitet .fraOgMedTilOgMed (s .getFom (), s .getTom ()))
71
- .medArbeidsinntekt (finnInntektAvType (s .getValue ().rapporterteInntekter (), InntektType .ARBEIDSTAKER_ELLER_FRILANSER ))
72
- .medYtelse (finnInntektAvType (s .getValue ().rapporterteInntekter (), InntektType .YTELSE ))
73
- .medKilde (s .getValue ().kilde ())
74
- .build ()
75
- ).toList ();
70
+ .toSegments ().stream ().map (
71
+ s -> KontrollertInntektPeriode .ny ()
72
+ .medPeriode (DatoIntervallEntitet .fraOgMedTilOgMed (s .getFom (), s .getTom ()))
73
+ .medArbeidsinntekt (finnInntektAvType (s .getValue ().rapporterteInntekter (), InntektType .ARBEIDSTAKER_ELLER_FRILANSER ))
74
+ .medYtelse (finnInntektAvType (s .getValue ().rapporterteInntekter (), InntektType .YTELSE ))
75
+ .medKilde (s .getValue ().kilde ())
76
+ .medErManueltVurdert (erManueltVurdert )
77
+ .build ()
78
+ ).toList ();
76
79
}
77
80
78
81
private static LocalDateSegmentCombinator <Set <BehandlingÅrsakType >, RapportertInntektOgKilde , RapportertInntektOgKilde > lagTomListeForIngenInntekter (Optional <KontrollertInntektKilde > kilde ) {
@@ -81,10 +84,10 @@ private static List<KontrollertInntektPeriode> mapTilKontrollerteInntektperioder
81
84
82
85
private static BigDecimal finnInntektAvType (Set <RapportertInntekt > s , InntektType inntektType ) {
83
86
return s .stream ()
84
- .filter (it -> it .inntektType ().equals (inntektType ))
85
- .map (RapportertInntekt ::beløp )
86
- .reduce (BigDecimal ::add )
87
- .orElse (null );
87
+ .filter (it -> it .inntektType ().equals (inntektType ))
88
+ .map (RapportertInntekt ::beløp )
89
+ .reduce (BigDecimal ::add )
90
+ .orElse (null );
88
91
}
89
92
90
93
}
0 commit comments