From fcd058c7be3cdbaca93bf27a842b44128cde88a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig=20Helge=20Str=C3=B8m?= Date: Mon, 7 Oct 2024 12:18:13 +0200 Subject: [PATCH] Sletter kode brukt av slettet app familie-ba-skatteetaten-api --- build.gradle.kts | 2 - .../repository/St\303\270nadRepository.kt" | 17 -- .../rest/controller/SkatteetatenController.kt | 124 ---------- .../ba/infotrygd/service/BarnetrygdService.kt | 158 ------------- .../infotrygd/service/WarmupCacheService.kt | 25 --- .../St\303\270nadRepositoryTest.kt" | 45 ---- .../service/BarnetrygdServiceTest.kt | 211 ------------------ .../nav/familie/ba/infotrygd/skatt/CsvData.kt | 33 --- .../skatt/TestSkatteetatentjenesteUtil.kt | 135 ----------- 9 files changed, 750 deletions(-) delete mode 100644 src/main/kotlin/no/nav/familie/ba/infotrygd/rest/controller/SkatteetatenController.kt delete mode 100644 src/main/kotlin/no/nav/familie/ba/infotrygd/service/WarmupCacheService.kt delete mode 100644 src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/CsvData.kt delete mode 100644 src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/TestSkatteetatentjenesteUtil.kt diff --git a/build.gradle.kts b/build.gradle.kts index aea78c4a..ed71df0c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,7 +64,6 @@ dependencies { val tokenValidationVersion = "5.0.5" val springdocVersion = "2.6.0" val navFoedselsnummerVersion = "1.0-SNAPSHOT.6" - val skattKontraktVersjon = "2.0_20230214104704_706e9c0" val fellesVersjon = "3.20240806111424_fff2930" val kontrakterVersjon = "3.0_20231109091547_fd2cae7" val coroutinesVersion = "1.8.1" @@ -89,7 +88,6 @@ dependencies { // ---------- NAV ---------- \\ implementation("no.nav.familie.kontrakter:felles:$kontrakterVersjon") implementation("no.nav.familie.kontrakter:barnetrygd:$kontrakterVersjon") - implementation("no.nav.familie.eksterne.kontrakter:skatteetaten:$skattKontraktVersjon") implementation("no.nav.familie.felles:log:$fellesVersjon") implementation("no.nav.familie.felles:leader:$fellesVersjon") implementation("no.nav.security:token-validation-spring:$tokenValidationVersion") diff --git "a/src/main/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepository.kt" "b/src/main/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepository.kt" index 7315a2b1..c3297ce6 100644 --- "a/src/main/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepository.kt" +++ "b/src/main/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepository.kt" @@ -37,13 +37,6 @@ interface StønadRepository : JpaRepository { """) fun findTrunkertStønadMedUtbetalingÅrByFnr(fnr: FoedselsNr, år: Int): List - @Query("SELECT new no.nav.familie.ba.infotrygd.model.dl1.TrunkertStønad(s.id, s.personKey, s.fnr, s.sakNr, s.saksblokk, s.status, s.region, s.virkningFom, s.opphørtFom, s.iverksattFom, s.antallBarn, '') FROM Stønad s " + - "WHERE (s.opphørtFom='000000' or CAST(substring(s.opphørtFom, 3, 4) as integer) >= :år) " + - "AND CAST(substring(s.virkningFom, 1, 4) as integer) >= (9999 - :år) " + //datoformatet er av typen "seq" derav 9999 - år - "AND s.status in :statusKoder " + - "AND s.antallBarn > 0") - fun findStønadByÅrAndStatusKoder(år: Int, vararg statusKoder: String): List - @Query( """SELECT new no.nav.familie.ba.infotrygd.model.dl1.TrunkertStønad(s.id, s.personKey, s.fnr, s.sakNr, s.saksblokk, s.status, s.region, s.virkningFom, s.opphørtFom, s.iverksattFom, s.antallBarn, '') FROM Stønad s @@ -102,16 +95,6 @@ interface StønadRepository : JpaRepository { fun findLøpendeStønadByBarnFnr(barnFnr: List): List - - @Query(""" - SELECT s FROM Stønad s - INNER JOIN Person p - ON (s.personKey = p.personKey and - s.region = p.region) - AND s.opphørtFom = '000000' - """) - fun findLøpendeStønader(page: Pageable): List - @Query(""" SELECT s FROM Stønad s WHERE s.personKey = :#{#sak.personKey} diff --git a/src/main/kotlin/no/nav/familie/ba/infotrygd/rest/controller/SkatteetatenController.kt b/src/main/kotlin/no/nav/familie/ba/infotrygd/rest/controller/SkatteetatenController.kt deleted file mode 100644 index e6eb0458..00000000 --- a/src/main/kotlin/no/nav/familie/ba/infotrygd/rest/controller/SkatteetatenController.kt +++ /dev/null @@ -1,124 +0,0 @@ -package no.nav.familie.ba.infotrygd.rest.controller - -import io.micrometer.core.annotation.Timed -import io.swagger.v3.oas.annotations.Operation -import io.swagger.v3.oas.annotations.Parameter -import io.swagger.v3.oas.annotations.media.Content -import io.swagger.v3.oas.annotations.media.ExampleObject -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch -import no.nav.familie.ba.infotrygd.service.BarnetrygdService -import no.nav.familie.ba.infotrygd.service.TilgangskontrollService -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPeriode -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderRequest -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderResponse -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPersonerResponse -import no.nav.familie.log.mdc.MDCConstants -import no.nav.security.token.support.core.api.ProtectedWithClaims -import org.slf4j.LoggerFactory -import org.slf4j.MDC -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.PostMapping -import org.springframework.web.bind.annotation.RequestBody -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RequestParam -import org.springframework.web.bind.annotation.RestController -import java.util.UUID -import io.swagger.v3.oas.annotations.parameters.RequestBody as ApiRequestBody - - -@ProtectedWithClaims(issuer = "azuread") -@RestController -@Timed(value = "infotrygd_historikk_skatt_controller", percentiles = [0.5, 0.95]) -@RequestMapping("/infotrygd/barnetrygd") -class SkatteetatenController( - private val barnetrygdService: BarnetrygdService, - private val tilgangskontrollService: TilgangskontrollService -) { - - private val logger = LoggerFactory.getLogger(javaClass) - private val secureLogger = LoggerFactory.getLogger("secureLogger") - - - @Operation(summary = "Hent alle perioder for utvidet for en liste personer") - @PostMapping(path = ["utvidet/skatteetaten/perioder"], consumes = ["application/json"]) - @ApiRequestBody(content = [Content(examples = [ExampleObject(value = """{"identer": ["12345678910"], "aar": "2020"}""")])]) - fun skatteetatenPerioderUtvidetPersoner( - @RequestBody - request: SkatteetatenPerioderRequest - ): List { - tilgangskontrollService.sjekkTilgang() - - return request.identer.map { - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(it, request.aar.toInt()) - } - } - - @Operation(summary = "Finner alle personer med utvidet barnetrygd innenfor et bestemt år") - @GetMapping(path = ["utvidet"]) - fun personerMedUtvidet(@Parameter(name = "aar") @RequestParam("aar") år: String): SkatteetatenPersonerResponse { - tilgangskontrollService.sjekkTilgang() - return SkatteetatenPersonerResponse(brukere = barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt(år)) - } - - @Operation(summary = "Finner alle personer med utvidet barnetrygd innenfor et bestemt år") - @GetMapping(path = ["delingsprosent"]) - fun identifiserAntallUsikkerDelingsprosent(@Parameter(name = "aar") @RequestParam("aar") år: String): String { - tilgangskontrollService.sjekkTilgang() - - - val allePersoner = personerMedUtvidet(år).brukere - logger.info("Hentet personer med utvidet ${allePersoner.size} for $år") - - - GlobalScope.launch { - try { - MDC.put(MDCConstants.MDC_CALL_ID, UUID.randomUUID().toString() + år) - val identerMedUsikkerDelingsprosent = mutableSetOf() - allePersoner.chunked(10000) { - logger.info("Sjekket ${it.size} nye identer etter delingsprosent usikker for $år") - it.forEach { skatteetatenPerson -> - val perioder = barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(skatteetatenPerson.ident, år.toInt()) - val periode = perioder.brukere.firstOrNull() - val harUsikkerDelingsprosent = - periode?.perioder?.any { it.delingsprosent == SkatteetatenPeriode.Delingsprosent.usikker } - if (harUsikkerDelingsprosent == true) { - secureLogger.info("${skatteetatenPerson.ident} har usikker delingsprosent") - identerMedUsikkerDelingsprosent.add(skatteetatenPerson.ident) - } - } - } - - val identerGruppertByUndervalg = mutableMapOf>() - - identerMedUsikkerDelingsprosent.forEach { - val alleUndervalg = barnetrygdService.listUtvidetStønadstyperForPerson(år.toInt(), fnr = it ) - - alleUndervalg.forEach { undervalg -> - if (identerGruppertByUndervalg.containsKey(undervalg)) { - identerGruppertByUndervalg[undervalg]!!.add(it) - } else { - identerGruppertByUndervalg[undervalg] = mutableSetOf(it) - } - } - } - - identerGruppertByUndervalg.keys.forEach { undervalg -> - logger.info("Usikker delingsprosent $år: $undervalg: ${identerGruppertByUndervalg[undervalg]?.size}") - identerGruppertByUndervalg[undervalg]?.chunked(1000){ chunk -> - secureLogger.info("Usikker delingsprosent $år: $undervalg: ${chunk.size} $chunk") - } - } - logger.info("Ferdig med å sjekke etter delingsprosent usikker for $år. Fant ${identerMedUsikkerDelingsprosent.size} totalt") - } finally { - MDC.clear() - } - } - return "Sjekker ${allePersoner.size} saker for usikker delingsprosent. Sjekk securelogs" - } -} - - - - - diff --git a/src/main/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdService.kt b/src/main/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdService.kt index 55588194..798c8ab2 100644 --- a/src/main/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdService.kt +++ b/src/main/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdService.kt @@ -30,10 +30,6 @@ import no.nav.familie.ba.infotrygd.rest.controller.PensjonController.YtelseTypeE import no.nav.familie.ba.infotrygd.utils.DatoUtils import no.nav.familie.ba.infotrygd.utils.DatoUtils.isSameOrAfter import no.nav.familie.ba.infotrygd.utils.DatoUtils.isSameOrBefore -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPeriode -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioder -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderResponse -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerson import org.slf4j.LoggerFactory import org.springframework.cache.annotation.Cacheable import org.springframework.core.env.Environment @@ -41,7 +37,6 @@ import org.springframework.data.domain.Page import org.springframework.data.domain.PageRequest import org.springframework.stereotype.Service import java.time.LocalDate -import java.time.LocalDateTime import java.time.YearMonth import java.time.format.DateTimeFormatter import java.time.format.DateTimeParseException @@ -222,58 +217,6 @@ class BarnetrygdService( }) } - @Cacheable(cacheManager = "perioderCacheManager", value = ["skatt_perioder"], unless = "#result == null") - fun finnPerioderUtvidetBarnetrygdSkatt( - brukerFnr: String, - år: Int - ): SkatteetatenPerioderResponse { - val bruker = FoedselsNr(brukerFnr) - - val utvidetBarnetrygdStønader = stonadRepository.findStønadByÅrAndStatusKoderAndFnr(bruker, år, "00", "02", "03") - .map { it.tilTrunkertStønad() } - .filter { erUtvidetBarnetrygd(it) } - .filter { filtrerStønaderSomErFeilregistrert(it) } - .filter { - utbetalingRepository.hentUtbetalingerByStønad(it) - .any { it.tom() == null || it.tom()!!.year >= år } - } - - val perioder = konverterTilDtoUtvidetBarnetrygdForSkatteetaten(bruker, utvidetBarnetrygdStønader, år) - - return SkatteetatenPerioderResponse(perioder) - } - - - @Cacheable(cacheManager = "personerCacheManager", value = ["skatt_personer"], unless = "#result == null") - fun finnPersonerUtvidetBarnetrygdSkatt(år: String): List { - val stønaderMedAktuelleKoder = stonadRepository.findStønadByÅrAndStatusKoder(år.toInt(), "00", "02", "03") - .filter { erUtvidetBarnetrygd(it) } - .filter { filtrerStønaderSomErFeilregistrert(it) } - .filter { - val sisteMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom)?.minusMonths(1) - sisteMåned == null || sisteMåned.year >= år.toInt() - } - .filter { - utbetalingRepository.hentUtbetalingerByStønad(it).any { it.tom() == null || it.tom()!!.year >= år.toInt() } - } - - val personer = mutableMapOf() - - stønaderMedAktuelleKoder.filter { it.fnr != null } - .forEach { - if (!personer.containsKey(it.fnr!!.asString)) { - personer[it.fnr.asString] = finnSisteVedtakPåPerson(it.personKey) - } - } - - return personer.map { - SkatteetatenPerson( - ident = it.key, - sisteVedtakPaaIdent = it.value.atDay(1).atStartOfDay() - ) - } - } - @Cacheable(cacheManager = "personerCacheManager", value = ["pensjon_personer"], unless = "#result == null") fun finnPersonerBarnetrygdPensjon(år: String): List { logger.info("henter stønader med aktuelle statuskoder år $år") @@ -292,20 +235,6 @@ class BarnetrygdService( return sisteMåned == null || sisteMåned.year >= år.toInt() } - fun listUtvidetStønadstyperForPerson(år: Int, fnr:String): List { - val utvidetBarnetrygdStønader = stonadRepository.findStønadByÅrAndStatusKoderAndFnr(FoedselsNr(fnr), år, "00", "02", "03").map { it.tilTrunkertStønad() } - .filter { erUtvidetBarnetrygd(it) } - .filter { filtrerStønaderSomErFeilregistrert(it) } - .filter { - val sisteMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom)?.minusMonths(1) - sisteMåned == null || sisteMåned.year >= år.toInt() - } - .filter { - utbetalingRepository.hentUtbetalingerByStønad(it).any { it.tom() == null || it.tom()!!.year >= år } - } - return utvidetBarnetrygdStønader.flatMap { hentUndervalg(it) } - } - fun finnUtvidetBarnetrygdBeløpNårStønadIkkeHarStatus0(utbetaling: Utbetaling): Double { return if (utbetaling.fom()!!.isAfter(YearMonth.of(2019, 2))) UTVIDET_BARNETRYGD_NÅVÆRENDE_SATS.toDouble() else UTVIDET_BARNETRYGD_ELDRE_SATS.toDouble() @@ -412,57 +341,6 @@ class BarnetrygdService( } } - - private fun konverterTilDtoUtvidetBarnetrygdForSkatteetaten( - brukerFnr: FoedselsNr, utvidetBarnetrygdStønader: List, år: Int - ): List { - if (utvidetBarnetrygdStønader.isEmpty()) { - return emptyList() - } - - var sisteVedtakPaaIdent: LocalDateTime? = null - - val allePerioder = mutableListOf() - - utvidetBarnetrygdStønader.forEach { - if (sisteVedtakPaaIdent == null) { - sisteVedtakPaaIdent = finnSisteVedtakPåPerson(it.personKey).atDay(1) - .atStartOfDay() //skatt bruker siste vedtak på en person for å sjekke om de har lest den før. Hvis dato opprettes så leser de den på nytt - } - val fraMåned = DatoUtils.seqDatoTilYearMonth(it.virkningFom)!! - val tomMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom) - allePerioder.add( - SkatteetatenPeriode( - fraMaaned = fraMåned.toString(), - tomMaaned = tomMåned?.minusMonths(1)?.toString(), //Leverer siste dato på stønaden eller null hvis løpenden - delingsprosent = delingsprosent(it, år) - ) - ) - } - - //Slå sammen perioder basert på delingsprosent - val sammenslåttePerioderDelingsprosent = - allePerioder.groupBy { it.delingsprosent }.values - .flatMap(::slåSammenSkatteetatenPeriode).toMutableList() - - val sammenslåttePerioderFiltrert = - sammenslåttePerioderDelingsprosent.filter {// fjerner perioder som ikke er med i årets uttrekk, som kan komme med i sql uttrekket når opphørtFom er første måned i året - val sisteMåned = it.tomMaaned?.let { tom -> YearMonth.parse(tom) } - sisteMåned == null || sisteMåned.year >= år - } - return if (sammenslåttePerioderFiltrert.isNotEmpty()) { - listOf( - SkatteetatenPerioder( - ident = brukerFnr.asString, - perioder = sammenslåttePerioderFiltrert, - sisteVedtakPaaIdent = sisteVedtakPaaIdent!! - ) - ) - } else { - emptyList() - } - } - private fun konverterTilDtoForPensjon( barnetrygdStønader: List, fraDato: YearMonth @@ -544,29 +422,6 @@ class BarnetrygdService( private fun Barn.virkningFom() = DatoUtils.seqDatoTilYearMonth(virkningFom)!! - private fun delingsprosent(stønad: TrunkertStønad, år: Int): SkatteetatenPeriode.Delingsprosent { - val undervalg = hentUndervalg(stønad) - var delingsprosent = SkatteetatenPeriode.Delingsprosent.usikker - if (undervalg.any { it == "EF" || it == "EU" }) { - delingsprosent = SkatteetatenPeriode.Delingsprosent._0 - } else if (undervalg.contains("MD")) { - if (stønad.antallBarn == 1) { - delingsprosent = SkatteetatenPeriode.Delingsprosent._50 - } else if (stønad.antallBarn < 7) { - val sumUtbetaltBeløp = utbetalingRepository.hentUtbetalingerByStønad(stønad).sumOf { it.beløp } - val gyldigeBeløp = utledListeMedGyldigeUtbetalingsbeløp(stønad.antallBarn, år) - - if (gyldigeBeløp.contains(sumUtbetaltBeløp.roundToInt())) { - delingsprosent = SkatteetatenPeriode.Delingsprosent._50 - } else { - secureLogger.info("Delingsprosent usikker, ident ${stønad.fnr}, sumUtbetaltBeløp: $sumUtbetaltBeløp, gyldigeBeløp: $gyldigeBeløp" + - ", antallBarn: ${stønad.antallBarn}, år: $år") - } - } - } - return delingsprosent - } - private fun ytelseProsent(stønad: TrunkertStønad, undervalg: String?, år: Int): YtelseProsent { if (stønad.status.toInt() != 0 ) { return YtelseProsent.FULL @@ -715,19 +570,6 @@ class BarnetrygdService( } } - private fun slåSammenSkatteetatenPeriode(perioderAvEtGittDelingsprosent: List): List { - return perioderAvEtGittDelingsprosent.sortedBy { it.fraMaaned } - .fold(mutableListOf()) { sammenslåttePerioder, nesteUtbetaling -> - val nesteUtbetalingFraMåned = YearMonth.parse(nesteUtbetaling.fraMaaned) - val forrigeUtbetalingTomMåned = sammenslåttePerioder.lastOrNull()?.tomMaaned?.let { YearMonth.parse(it) } - - if (forrigeUtbetalingTomMåned?.isSameOrAfter(nesteUtbetalingFraMåned.minusMonths(1)) == true) { - val nySammenslåing = sammenslåttePerioder.removeLast().copy(tomMaaned = nesteUtbetaling.tomMaaned) - sammenslåttePerioder.apply { add(nySammenslåing) } - } else sammenslåttePerioder.apply { add(nesteUtbetaling) } - } - } - private fun hentUtvidetBarnetrygdUndervalgFraDb2( stønad: TrunkertStønad ) = stønad.fnr?.let { diff --git a/src/main/kotlin/no/nav/familie/ba/infotrygd/service/WarmupCacheService.kt b/src/main/kotlin/no/nav/familie/ba/infotrygd/service/WarmupCacheService.kt deleted file mode 100644 index 3554dcc5..00000000 --- a/src/main/kotlin/no/nav/familie/ba/infotrygd/service/WarmupCacheService.kt +++ /dev/null @@ -1,25 +0,0 @@ -package no.nav.familie.ba.infotrygd.service - -import org.slf4j.LoggerFactory -import org.springframework.scheduling.annotation.Scheduled -import org.springframework.stereotype.Component - -@Component -class WarmupCacheService(val barnetrygdService: BarnetrygdService) { - - private val logger = LoggerFactory.getLogger(WarmupCacheService::class.java) - - @Scheduled(fixedDelay = 24 * 60 * 60 * 1000, initialDelay = 10 * 60 * 1000) - fun warmupSkatteetatenPersonerCache() { - // Varmer opp cache for personer og perioder siste året med særfradrag - // Varmer også opp cache for personer for 2021 og 2022. Siden skatt også kaller oss for 2021 og 2022 - for (år in 2021..2023) { - logger.info("Henter personer med utvidet barnetrygd for å oppdatere cache $år") - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt(år.toString()).let { resultat -> - if (år == 2023) { - resultat.forEach { barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(it.ident, 2023) } - } - } - } - } -} \ No newline at end of file diff --git "a/src/test/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepositoryTest.kt" "b/src/test/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepositoryTest.kt" index 3c2e39a2..cc9463f5 100644 --- "a/src/test/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepositoryTest.kt" +++ "b/src/test/kotlin/no/nav/familie/ba/infotrygd/repository/St\303\270nadRepositoryTest.kt" @@ -66,48 +66,6 @@ class StønadRepositoryTest { } } - @Test - fun `sjekk at antall personer med utvidet barnetrygd er riktig innenfor hvert av årene 2019, 2020 og 2021`() { - val personFraInneværendeÅr = TestData.person() - stønadRepository.saveAll(listOf( - TestData.stønad(TestData.person(), virkningFom = (999999-201901).toString(), status = "01"), // ordinær barnetrygd fra 2019 - TestData.stønad(personFraInneværendeÅr, status = "02"), // utvidet barnetrygd fra 2020 - TestData.stønad(TestData.person(), opphørtFom = "122020", status = "02") // utvidet barnetrygd kun 2020 - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(it) }) - } - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2019").also { - assertThat(it).hasSize(0) - } - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2020").also { - assertThat(it).hasSize(2) - } - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2021").also { - assertThat(it).hasSize(1).extracting("ident").contains(personFraInneværendeÅr.fnr.asString) - } - } - - - @Test - fun `sjekk at man filterer bort utvidede stønader hvor fomMåned = tomMåned, for disse er feilregistrerte stønader som ikke skal med i uttrekket`() { - stønadRepository.saveAll(listOf( - TestData.stønad(TestData.person(), virkningFom = (999999-202101).toString(), opphørtFom = "012021", status = "02") // utvidet barnetrygd kun 2020 - )) - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2021").also { - assertThat(it).hasSize(0) - } - } - - @Test - fun `sjekk at man filterer bort utvidede stønader hvor datofelt ikke kan parser, for disse er feilregistrerte stønader som ikke skal med i uttrekket`() { - stønadRepository.saveAll(listOf( - TestData.stønad(TestData.person(), virkningFom = (999999-202101).toString(), opphørtFom = "404021", status = "02") // utvidet barnetrygd kun 2020 - )) - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2021").also { - assertThat(it).hasSize(0) - } - } - @Test fun `sjekk at man filterer bort utvidede stønader hvor tomMåned er før fomMåned, for disse er feilregistrerte stønader som ikke skal med i uttrekket`() { val person = personRepository.saveAndFlush(TestData.person()) @@ -115,9 +73,6 @@ class StønadRepositoryTest { TestData.stønad(person, virkningFom = (999999-202104).toString(), opphørtFom = "012021", status = "02") // utvidet barnetrygd kun 2020 .also { utbetalingRepository.saveAndFlush(TestData.utbetaling(it)) } )) - barnetrygdService.finnPersonerUtvidetBarnetrygdSkatt("2021").also { - assertThat(it).hasSize(0) - } barnetrygdService.finnUtvidetBarnetrygdBisys(person.fnr, YearMonth.of(2021, 3)).also { assertThat(it.perioder).hasSize(0) } diff --git a/src/test/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdServiceTest.kt b/src/test/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdServiceTest.kt index 23a356b2..594c4fab 100644 --- a/src/test/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/ba/infotrygd/service/BarnetrygdServiceTest.kt @@ -24,7 +24,6 @@ import no.nav.familie.ba.infotrygd.rest.controller.PensjonController import no.nav.familie.ba.infotrygd.rest.controller.PensjonController.YtelseProsent import no.nav.familie.ba.infotrygd.rest.controller.PensjonController.YtelseTypeEkstern import no.nav.familie.ba.infotrygd.testutil.TestData -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPeriode import org.assertj.core.api.Assertions.assertThat import org.hibernate.exception.SQLGrammarException import org.junit.jupiter.api.BeforeEach @@ -531,148 +530,6 @@ internal class BarnetrygdServiceTest { ) } - @Test - fun `Skal returnere SkatteetatenPerioderResponse med perioder av utvidet barnetrygd stønader en person for et bestemt år`() { - val person = personRepository.saveAndFlush(TestData.person()) - val person2 = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - val sakIkkeDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "EF", valg = "UT",saksnummer = "02")) - val sakManuletBeregnet = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "ME", valg = "UT", saksnummer = "03")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd 2019 med delt bosted - TestData.stønad(person, virkningFom = (999999-201901).toString(), opphørtFom = "112019", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region), - // utvidet barnetrygd fra 2020 hvor saken er ikke delt bosted - TestData.stønad(person, virkningFom = (999999-202001).toString(), status = "02", saksblokk = sakIkkeDeltBosted.saksblokk, saksnummer = sakIkkeDeltBosted.saksnummer, region = sakIkkeDeltBosted.region), - // utvidet barnetrygd fra 2017 hvor saken er manuelt beregnet og vi dermed ikke kan utlede delt bosted. Denne slår også sammen perioden fra stønaden 2017-2018 - TestData.stønad(person, virkningFom = (999999-201701).toString(), opphørtFom = "062017", status = "02", saksblokk = sakManuletBeregnet.saksblokk, saksnummer = sakManuletBeregnet.saksnummer, region = sakManuletBeregnet.region), - TestData.stønad(person, virkningFom = (999999-201706).toString(), opphørtFom = "042018", status = "02", saksblokk = sakManuletBeregnet.saksblokk, saksnummer = sakManuletBeregnet.saksnummer, region = sakManuletBeregnet.region), - - //Dette er testdata fra en annen person og skal ikke bli med i uttrekket - TestData.stønad(person2, virkningFom = (999999-201901).toString(), opphørtFom = "112019", status = "02"), // utvidet barnetrygd 2019 - TestData.stønad(person2, virkningFom = (999999-202001).toString(), status = "02"), // utvidet barnetrygd fra 2020 - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(it) }) - } - - //Denne verifiserer at stønaden er deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2019).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2019-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2019-10") - assertThat(it.brukere.first().perioder.first(). - delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._50) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - - //Denne verifiserer at stønaden er ikke deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isNull() - assertThat(it.brukere.first().perioder.first().delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._0) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - //Denne verifiserer samme stønad som over, bare at stønaden er løpende og input er året etter - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2021).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isNull() - assertThat(it.brukere.first().perioder.first().delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._0) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - - //Denne verifiserer at stønaden er manuelt beregnet og vi dermed ikke kan utlede delt bosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2017).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2017-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2018-03") - assertThat(it.brukere.first().perioder.first().delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent.usikker) - } - } - - - @Test - fun `Skal returnere SkatteetatenPerioderResponse med perioder Delingsprosent_50 ved 1 barn over 6 år, med utvidet andel og delt på 2 personer`() { - val person = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd 2020 med delt bosted - TestData.stønad(person, virkningFom = (999999-202001).toString(), opphørtFom = "112020", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region, antallBarn = 1), - - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(stønad = it, beløp = (SATS_BARNETRYGD_OVER_6 + SATS_UTVIDET)/2) }) - } - - //Denne verifiserer at stønaden er deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2020-10") - assertThat(it.brukere.first().perioder.first(). - delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._50) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - } - - @Test - fun `Skal returnere SkatteetatenPerioderResponse med perioder Delingsprosent_50 ved 1 barn under 6 år i 2021, med utvidet andel og delt på 2 personer`() { - val person = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd 2020 med delt bosted - TestData.stønad(person, virkningFom = (999999-202001).toString(), opphørtFom = "112020", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region, antallBarn = 1), - - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(stønad = it, beløp = (SATS_BARNETRYGD_UNDER_6_2021 + SATS_UTVIDET)/2) }) - } - - //Denne verifiserer at stønaden er deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2020-10") - assertThat(it.brukere.first().perioder.first(). - delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._50) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - } - - - - @Test - fun `Skal returnere SkatteetatenPerioderResponse med perioder Delingsprosent_50 ved flere barn og riktig beløp`() { - val person = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd 2020 med delt bosted - TestData.stønad(person, virkningFom = (999999-202001).toString(), opphørtFom = "112020", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region, antallBarn = 2), - - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(it, beløp = 1581.0) }) - } - - //Denne verifiserer at stønaden er deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2020-10") - assertThat(it.brukere.first().perioder.first(). - delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent._50) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - } - @Test fun `gyldige beløp`() { val gyldigeBeløp2Barn2022 = barnetrygdService.utledListeMedGyldigeUtbetalingsbeløp(2, 2022).toList() @@ -682,70 +539,6 @@ internal class BarnetrygdServiceTest { assertThat(gyldigeBeløp2Barn2021).hasSize(4).containsExactly(1581, 1731, 1881, 2181) } - - @Test - fun `Skal returnere SkatteetatenPerioderResponse med perioder usikker ved flere barn og feil beløp`() { - val person = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd 2020 med delt bosted - TestData.stønad(person, virkningFom = (999999-202001).toString(), opphørtFom = "112020", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region, antallBarn = 3), - - )).also { stønader -> - utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(it) }) - } - - //Denne verifiserer at stønaden er deltbosted - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - assertThat(it.brukere.first().perioder).hasSize(1) - assertThat(it.brukere.first().perioder.first().fraMaaned).isEqualTo("2020-01") - assertThat(it.brukere.first().perioder.first().tomMaaned).isEqualTo("2020-10") - assertThat(it.brukere.first().perioder.first(). - delingsprosent).isEqualTo(SkatteetatenPeriode.Delingsprosent.usikker) - assertThat(it.brukere.first().sisteVedtakPaaIdent).isEqualTo(LocalDateTime.of(2020, 5, 1, 0, 0)) - } - - - } - - @Test - fun `Skal hente avgjørende data om utvidet barnetrygd fra db2 dersom en stønad med status 0 mangler sak i dl1`() { - val person = personRepository.save(TestData.person()) - val stønadMedStatus0 = stonadRepository.save(TestData.stønad(person, status = "00")) - val sak = sakRepository.save(TestData.sak(stønadMedStatus0, "UT", "MD")) - utbetalingRepository.save(TestData.utbetaling(stønadMedStatus0)) - - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - } - sakRepository.delete(sak) - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(0) - } - lagraRelevantDb2Data(sak) - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2020).also { - assertThat(it.brukere).hasSize(1) - } - } - - @Test - fun `Skal returnere tom SkatteetatenPerioderResponse hvor en person ikke har noen perioder med utvidet barnetrygd stønader`() { - val person = personRepository.saveAndFlush(TestData.person()) - val sakDeltBosted = sakRepository.saveAndFlush(TestData.sak(person = person, undervalg = "MD", valg = "UT")) - - stonadRepository.saveAll(listOf( - // utvidet barnetrygd stønad som er feilregistrert fordi opphørtFom == virkningFom - TestData.stønad(person, virkningFom = (999999-201911).toString(), opphørtFom = "112019", status = "02", saksblokk = sakDeltBosted.saksblokk, saksnummer = sakDeltBosted.saksnummer, region = sakDeltBosted.region), - )) - - - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2019).also { - assertThat(it.brukere).hasSize(0) - } - } - @Test fun `Skal slå sammen overlappende måneder`() { val person = personRepository.saveAndFlush(TestData.person()) @@ -760,10 +553,6 @@ internal class BarnetrygdServiceTest { utbetalingRepository.saveAll(stønader.map { TestData.utbetaling(it) }) } - barnetrygdService.finnPerioderUtvidetBarnetrygdSkatt(person.fnr.asString, 2021).also { - assertThat(it.brukere).hasSize(1) - } - barnetrygdService.finnUtvidetBarnetrygdBisys(person.fnr, YearMonth.of(2021, 1)).also { assertThat(it.perioder).hasSize(1) } diff --git a/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/CsvData.kt b/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/CsvData.kt deleted file mode 100644 index c33897af..00000000 --- a/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/CsvData.kt +++ /dev/null @@ -1,33 +0,0 @@ -package no.nav.familie.ba.infotrygd.skatt - -import com.opencsv.bean.CsvBindByName -import com.opencsv.bean.CsvDate -import java.util.Date - -class CsvData { - - @CsvBindByName(column = "FNR") - lateinit var fnr: String - - @CsvBindByName(column = "FOM") - @CsvDate("MMyyyy") - lateinit var fom: Date - - @CsvBindByName(column = "TOM") - @CsvDate("MMyyyy") - val tom: Date? = null - - @CsvBindByName(column = "MND IVERKSATT") - @CsvDate("MMyyyy") - lateinit var iverksatt: Date - - @CsvBindByName(column = "BTRYGD-H-H") - var status: Int = 4 - - - override fun toString(): String { - return "CsvData(fnr=$fnr, fom=$fom, tom=$tom), status=$status, iverksatt=$iverksatt" - } - - -} \ No newline at end of file diff --git a/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/TestSkatteetatentjenesteUtil.kt b/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/TestSkatteetatentjenesteUtil.kt deleted file mode 100644 index 6c375de8..00000000 --- a/src/test/kotlin/no/nav/familie/ba/infotrygd/skatt/TestSkatteetatentjenesteUtil.kt +++ /dev/null @@ -1,135 +0,0 @@ -package no.nav.familie.ba.infotrygd.skatt - -import com.opencsv.bean.CsvToBeanBuilder -import no.nav.familie.ba.infotrygd.rest.controller.BisysController -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderRequest -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderResponse -import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPersonerResponse -import no.nav.familie.kontrakter.felles.objectMapper -import org.springframework.http.HttpEntity -import org.springframework.http.HttpHeaders -import org.springframework.http.HttpMethod -import org.springframework.http.MediaType -import org.springframework.web.client.RestTemplate -import java.io.BufferedReader -import java.io.File -import java.io.FileReader -import java.time.YearMonth - -const val FILNAVN_BATCH_CSV = "2021.csv" - -//const val BASE_URL = "https://familie-ba-infotrygd.dev.intern.nav.no" -const val BASE_URL = "https://familie-ba-infotrygd.intern.nav.no" -const val ÅR = 2021 -const val TOKEN = "TOKEN" - -/** - * Sammenligner uttrekk i gammel batchjobb med det som ligger i infotrygd - * - * Generer ett token og inject i TOKEN - * Velg et miljø å gå mot med BASEN_URL - * log på mot onprem-k8-prod for å kjøring mot prod - * - */ -fun main() { - //Leser fil og konverterer til - val file = File(".", FILNAVN_BATCH_CSV) - val fileReader = BufferedReader(FileReader(file)) - - val records: List = CsvToBeanBuilder(fileReader) - .withSeparator(';') - .withType(CsvData::class.java).build().parse() - - val csvRecordsGruppertPåFnr = records.groupBy { it.fnr } - val personerBatchTjeneste = csvRecordsGruppertPåFnr.keys - - //Kommenter inn hvis man sammenligne mot fil -// val personerRestTjeneste = objectMapper.readValue( -// Path("./response.json").toFile(), -// SkatteetatenPersonerResponse::class.java -// ).brukere.map { it.ident }.sorted() - - val personerRestTjeneste = kallInfotrygdPersonerUtvidet().brukere.map { it.ident }.sorted() - - println("Finnes i batch, men ikke i rest: ${personerBatchTjeneste.minus(personerRestTjeneste.toHashSet())}") - println("Finnes i rest, men ikke i batch: ${personerRestTjeneste.minus(personerBatchTjeneste.toHashSet()).size}") - - //Sammenligner alle differ mot periodetjenesten - val resultatSammenlignetMedPeriodeTjeneste = personerRestTjeneste.minus(personerBatchTjeneste.toHashSet()).partition { fnr -> - - val perioder = kallInfotrygdSkattPeriodetjeneste(fnr).first().brukere.firstOrNull()?.perioder?.map { - Pair( - YearMonth.parse(it.fraMaaned), - if (it.tomMaaned == null) null else YearMonth.parse(it.tomMaaned) - ) - } -// println("$fnr harPeriodeIÅr=${harPeriodeIAar(ÅR, perioder)} $perioder") - harPeriodeIAar(ÅR, perioder) - } - - println("har ikke perioder i skatt $ÅR: ${resultatSammenlignetMedPeriodeTjeneste.second.size} ${resultatSammenlignetMedPeriodeTjeneste.second}") - val resultatSammenlignetMedBisys = personerRestTjeneste.minus(personerBatchTjeneste.toHashSet()).partition { fnr -> - val bisysPerioder = kallInfotrygdBisystjeneste(fnr).perioder.map { Pair(it.fomMåned, it.tomMåned) } -// println("$fnr harPeriodeIÅr=${harPeriodeIAar(ÅR, bisysPerioder)} $bisysPerioder") - harPeriodeIAar(ÅR, bisysPerioder) - } - println("har ikke perioder i Bisys $ÅR: ${resultatSammenlignetMedBisys.second.size} ${resultatSammenlignetMedBisys.second}") -} - -fun kallInfotrygdPersonerUtvidet(): SkatteetatenPersonerResponse { - val restTemplate = RestTemplate() - val uri = "$BASE_URL/infotrygd/barnetrygd/utvidet?aar=$ÅR" - val headers = HttpHeaders() - headers.setBearerAuth(TOKEN) - headers.contentType = MediaType.APPLICATION_JSON - - val entity = HttpEntity(null, headers) - - - return restTemplate.exchange(uri, HttpMethod.GET, entity, SkatteetatenPersonerResponse::class.java).body!! -} - -fun kallInfotrygdSkattPeriodetjeneste(personIdent: String): List { - val restTemplate = RestTemplate() - val uri = "$BASE_URL/infotrygd/barnetrygd/utvidet/skatteetaten/perioder" - val headers = HttpHeaders() - headers.setBearerAuth(TOKEN) - headers.contentType = MediaType.APPLICATION_JSON - - val entity = HttpEntity(SkatteetatenPerioderRequest(ÅR.toString(), listOf(personIdent)), headers) - - val response: String? = restTemplate.postForObject(uri, entity, String::class.java) - val r: List = - objectMapper.readerForListOf(SkatteetatenPerioderResponse::class.java).readValue(response) - - return r -} - - -fun kallInfotrygdBisystjeneste(personIdent: String): BisysController.InfotrygdUtvidetBarnetrygdResponse { - val restTemplate = RestTemplate() - val uri = "$BASE_URL/infotrygd/barnetrygd/utvidet" - val headers = HttpHeaders() - headers.setBearerAuth(TOKEN) - headers.contentType = MediaType.APPLICATION_JSON - - val entity = HttpEntity(BisysController.InfotrygdUtvidetBarnetrygdRequest(personIdent, YearMonth.of(ÅR - 1, 12)), headers) - - - return restTemplate.postForEntity( - uri, entity, - BisysController.InfotrygdUtvidetBarnetrygdResponse::class.java - ).body!! -} - -fun harPeriodeIAar(år: Int, perioder: List>?): Boolean { - if (perioder == null) { - return false - } - return perioder.any { - it.first.year == år || it.second?.year == år || (it.first.year <= år && (it.second == null || it.second!!.year > år)) - } -} - - -