Skip to content

Commit 4dec58c

Browse files
committed
Effektivisere splitIntoInntektsPerioder
1 parent 928033b commit 4dec58c

File tree

1 file changed

+13
-26
lines changed
  • dp-inntekt-kontrakter/src/main/kotlin/no/nav/dagpenger/inntekt/v1

1 file changed

+13
-26
lines changed

dp-inntekt-kontrakter/src/main/kotlin/no/nav/dagpenger/inntekt/v1/Inntekt.kt

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,20 @@ class Inntekt(
1111
val sisteAvsluttendeKalenderMåned: YearMonth,
1212
val hentetTidspunkt: LocalDateTime? = null,
1313
) {
14-
fun splitIntoInntektsPerioder(): InntektsPerioder =
15-
Triple(
16-
(0L..11L)
17-
.map { i ->
18-
inntektsListe.find { it.årMåned == sisteAvsluttendeKalenderMåned.minusMonths(i) }
19-
?: KlassifisertInntektMåned(
20-
sisteAvsluttendeKalenderMåned.minusMonths(i),
21-
emptyList(),
22-
)
23-
}.sortedBy { it.årMåned },
24-
(12L..23L)
25-
.map { i ->
26-
inntektsListe.find { it.årMåned == sisteAvsluttendeKalenderMåned.minusMonths(i) }
27-
?: KlassifisertInntektMåned(
28-
sisteAvsluttendeKalenderMåned.minusMonths(i),
29-
emptyList(),
30-
)
31-
}.sortedBy { it.årMåned },
32-
(24L..35L)
33-
.map { i ->
34-
inntektsListe.find { it.årMåned == sisteAvsluttendeKalenderMåned.minusMonths(i) }
35-
?: KlassifisertInntektMåned(
36-
sisteAvsluttendeKalenderMåned.minusMonths(i),
37-
emptyList(),
38-
)
39-
}.sortedBy { it.årMåned },
14+
fun splitIntoInntektsPerioder(): InntektsPerioder {
15+
val inntektMap = inntektsListe.associateBy { it.årMåned }
16+
17+
fun getOrCreateInntektMåned(antallMånederTilbake: Long): KlassifisertInntektMåned {
18+
val måned = sisteAvsluttendeKalenderMåned.minusMonths(antallMånederTilbake)
19+
return inntektMap[måned] ?: KlassifisertInntektMåned(måned, emptyList())
20+
}
21+
22+
return Triple(
23+
(0L..11L).map { getOrCreateInntektMåned(it) }.sortedBy { it.årMåned },
24+
(12L..23L).map { getOrCreateInntektMåned(it) }.sortedBy { it.årMåned },
25+
(24L..35L).map { getOrCreateInntektMåned(it) }.sortedBy { it.årMåned },
4026
)
27+
}
4128

4229
fun filterPeriod(
4330
from: YearMonth,

0 commit comments

Comments
 (0)