diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepository.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/InntektsendringerRepository.kt similarity index 68% rename from src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepository.kt rename to src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/InntektsendringerRepository.kt index 42367447..cd439ee6 100644 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepository.kt +++ b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/InntektsendringerRepository.kt @@ -1,77 +1,16 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak +package no.nav.familie.ef.personhendelse.inntekt -import no.nav.familie.ef.personhendelse.inntekt.BeregningResultat -import no.nav.familie.ef.personhendelse.inntekt.Inntektsendring -import no.nav.familie.kontrakter.felles.ef.EnsligForsørgerVedtakhendelse -import no.nav.familie.kontrakter.felles.ef.StønadType import org.springframework.jdbc.core.namedparam.MapSqlParameterSource import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate import org.springframework.stereotype.Repository import java.sql.ResultSet import java.time.LocalDateTime -import java.time.YearMonth import java.util.UUID @Repository -class EfVedtakRepository( +class InntektsendringerRepository( val namedParameterJdbcTemplate: NamedParameterJdbcTemplate, ) { - fun lagreEfVedtakshendelse( - vedtakshendelse: EnsligForsørgerVedtakhendelse, - aarMaanedProsessert: YearMonth = YearMonth.now(), - ) { - val sql = - "INSERT INTO efvedtakhendelse VALUES(:behandlingId, :personIdent, :stønadType, :aar_maaned_prosessert, :versjon)" + - " ON CONFLICT DO NOTHING" - val params = - MapSqlParameterSource( - mapOf( - "behandlingId" to vedtakshendelse.behandlingId, - "personIdent" to vedtakshendelse.personIdent, - "stønadType" to vedtakshendelse.stønadType.toString(), - "aar_maaned_prosessert" to aarMaanedProsessert.toString(), - "versjon" to 1, - ), - ) - namedParameterJdbcTemplate.update(sql, params) - } - - fun hentAllePersonerMedVedtak(): List { - val sql = - "SELECT MAX(behandling_id) as behandling_id, person_ident, stonadstype, aar_maaned_prosessert, versjon FROM efvedtakhendelse GROUP BY person_ident, stonadstype, aar_maaned_prosessert, versjon ORDER BY behandling_id" - val mapSqlParameterSource = MapSqlParameterSource("stonadstype", StønadType.OVERGANGSSTØNAD.toString()) - return namedParameterJdbcTemplate.query(sql, mapSqlParameterSource, vedtakhendelseInntektberegningMapper) - } - - fun hentPersonerMedVedtakIkkeBehandlet(): List { - val sql = "SELECT * FROM efvedtakhendelse WHERE aar_maaned_prosessert != '${YearMonth.now()}'" - return namedParameterJdbcTemplate.query(sql, vedtakhendelseInntektberegningMapper) - } - - private val vedtakhendelseInntektberegningMapper = { rs: ResultSet, _: Int -> - VedtakhendelseInntektberegning( - rs.getLong("behandling_id"), - rs.getString("person_ident"), - StønadType.valueOf(rs.getString("stonadstype")), - YearMonth.parse(rs.getString("aar_maaned_prosessert")), - rs.getInt("versjon"), - ) - } - - fun oppdaterAarMaanedProsessert( - personIdent: String, - yearMonth: YearMonth = YearMonth.now(), - ) { - val sql = - "UPDATE efvedtakhendelse SET aar_maaned_prosessert = :yearMonth " + - "WHERE person_ident = :personIdent" - val mapSqlParameterSource = - MapSqlParameterSource("personIdent", personIdent) - .addValue("yearMonth", yearMonth.toString()) - - namedParameterJdbcTemplate.update(sql, mapSqlParameterSource) - } - fun lagreVedtakOgInntektsendringForPersonIdent( personIdent: String, harNyeVedtak: Boolean, diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerService.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerService.kt index 80fa77c8..9ff5d0fd 100644 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerService.kt +++ b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerService.kt @@ -5,8 +5,6 @@ import no.nav.familie.ef.personhendelse.client.ForventetInntektForPerson import no.nav.familie.ef.personhendelse.client.OppgaveClient import no.nav.familie.ef.personhendelse.client.SakClient import no.nav.familie.ef.personhendelse.client.fristFerdigstillelse -import no.nav.familie.ef.personhendelse.inntekt.vedtak.EfVedtakRepository -import no.nav.familie.ef.personhendelse.inntekt.vedtak.InntektOgVedtakEndring import no.nav.familie.kontrakter.felles.Behandlingstema import no.nav.familie.kontrakter.felles.Tema import no.nav.familie.kontrakter.felles.ef.StønadType @@ -23,7 +21,7 @@ import java.time.format.DateTimeFormatter @Service class VedtakendringerService( - val efVedtakRepository: EfVedtakRepository, + val inntektsendringerRepository: InntektsendringerRepository, val inntektClient: InntektClient, val oppgaveClient: OppgaveClient, val sakClient: SakClient, @@ -41,7 +39,7 @@ class VedtakendringerService( fun beregnInntektsendringerOgLagreIDb() { logger.info("Starter beregning av inntektsendringer") val personerMedAktivStønad = sakClient.hentPersonerMedAktivStønadIkkeManueltRevurdertSisteMåneder(3) - efVedtakRepository.clearInntektsendringer() + inntektsendringerRepository.clearInntektsendringer() logger.info("Antall personer med aktiv stønad: ${personerMedAktivStønad.size}") var counter = 0 personerMedAktivStønad.chunked(500).forEach { @@ -71,7 +69,7 @@ class VedtakendringerService( ) { val nyeVedtak = nyeVedtak(response) val endretInntekt = inntektsendringerService.beregnEndretInntekt(response, forventetInntektForPerson) - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( + inntektsendringerRepository.lagreVedtakOgInntektsendringForPersonIdent( forventetInntektForPerson.personIdent, nyeVedtak?.isNotEmpty() ?: false, nyeVedtak?.joinToString(), @@ -80,7 +78,7 @@ class VedtakendringerService( } fun opprettOppgaverForInntektsendringer(skalOppretteOppgave: Boolean): Int { - val inntektsendringer = efVedtakRepository.hentInntektsendringerSomSkalHaOppgave() + val inntektsendringer = inntektsendringerRepository.hentInntektsendringerSomSkalHaOppgave() if (skalOppretteOppgave) { inntektsendringer.forEach { opprettOppgaveForInntektsendring(it, lagOppgavetekstForInntektsendring(it)) @@ -92,7 +90,7 @@ class VedtakendringerService( } fun opprettOppgaverForNyeVedtakUføretrygd() { - val nyeUføretrygdVedtak = efVedtakRepository.hentInntektsendringerForUføretrygd() + val nyeUføretrygdVedtak = inntektsendringerRepository.hentInntektsendringerForUføretrygd() nyeUføretrygdVedtak.forEach { opprettOppgaveForInntektsendring(it, lagOppgavetekstVedNyYtelseUføretrygd()) } diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListener.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListener.kt deleted file mode 100644 index 96fc6dd6..00000000 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListener.kt +++ /dev/null @@ -1,42 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak - -import com.fasterxml.jackson.module.kotlin.readValue -import no.nav.familie.kontrakter.felles.ef.EnsligForsørgerVedtakhendelse -import no.nav.familie.kontrakter.felles.objectMapper -import org.apache.kafka.clients.consumer.ConsumerRecord -import org.slf4j.LoggerFactory -import org.springframework.kafka.annotation.KafkaListener -import org.springframework.kafka.listener.ConsumerSeekAware -import org.springframework.stereotype.Component - -/** - * Lytter på hendelser som produseres av ef-iverksett som lages når vedtak iverksettes - */ -@Component -class EfVedtakListener( - private val efVedtakRepository: EfVedtakRepository, -) : ConsumerSeekAware { - private val logger = LoggerFactory.getLogger(javaClass) - private val securelogger = LoggerFactory.getLogger("secureLogger") - - @KafkaListener( - id = "familie-ef-personhendelse-vedtak", - topics = ["\${FAMILIE_EF_VEDTAK_TOPIC}"], - containerFactory = "kafkaVedtakListenerContainerFactory", - groupId = "familie-ef-personhendelse-vedtak", - ) - fun listen(consumerRecord: ConsumerRecord) { - val efVedtakshendelse = objectMapper.readValue(consumerRecord.value()) - try { - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - } catch (e: Exception) { - logger.error("Feil ved håndtering av personhendelse med behandlingId: ${efVedtakshendelse.behandlingId}") - securelogger.error( - "Feil ved håndtering av personhendelse med behandlingId ${efVedtakshendelse.behandlingId}: ${e.message}" + - " hendelse={}", - objectMapper.writeValueAsString(efVedtakshendelse), - ) - throw e - } - } -} diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/VedtakhendelseInntektberegning.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/VedtakhendelseInntektberegning.kt deleted file mode 100644 index a540d643..00000000 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/VedtakhendelseInntektberegning.kt +++ /dev/null @@ -1,12 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak - -import no.nav.familie.kontrakter.felles.ef.StønadType -import java.time.YearMonth - -data class VedtakhendelseInntektberegning( - val behandlingId: Long, - val personIdent: String, - val stønadType: StønadType, - val aarMaanedProsessert: YearMonth, - val versjon: Int, -) diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakListener.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakListener.kt deleted file mode 100644 index 9ad462e9..00000000 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakListener.kt +++ /dev/null @@ -1,63 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak.ekstern - -import com.fasterxml.jackson.module.kotlin.readValue -import no.nav.familie.ef.personhendelse.client.pdl.secureLogger -import no.nav.familie.kontrakter.felles.objectMapper -import org.apache.kafka.clients.consumer.ConsumerRecord -import org.slf4j.LoggerFactory -import org.springframework.kafka.annotation.KafkaListener -import org.springframework.kafka.support.Acknowledgment -import org.springframework.stereotype.Component -import java.time.LocalDate - -@Component -class EksternVedtakListener( - val eksternVedtakService: EksternVedtakService, -) { - private val logger = LoggerFactory.getLogger(javaClass) - private val securelogger = LoggerFactory.getLogger("secureLogger") - - @KafkaListener( - id = "familie-ef-personhendelse-eksternt-vedtak", - topics = ["teamfamilie.privat-ensligforsorger-eksterne-vedtak"], - containerFactory = "kafkaVedtakListenerContainerFactory", - groupId = "familie-ef-personhendelse-vedtak", - ) - fun listen( - consumerRecord: ConsumerRecord, - ack: Acknowledgment, - ) { - val vedtakhendelse = objectMapper.readValue(consumerRecord.value()) - try { - if (eksternVedtakService.mottarEfStønad(vedtakhendelse)) { - logger.info("Person med aktiv stønad har fått nytt vedtak ${vedtakhendelse.ytelse}") - secureLogger.info( - "Person med fnr: ${vedtakhendelse.fødselsnummer} med aktiv stønad har fått vedtak om " + - "${vedtakhendelse.ytelse} fra dato: ${vedtakhendelse.fraDato} og til dato: ${vedtakhendelse.tilDato}", - ) - // Skal opprette oppgaver automatisk her, men starter med logging for å observere først - } - ack.acknowledge() - } catch (e: Exception) { - logger.error("Feil ved håndtering av vedtakhendelse: ${vedtakhendelse.ytelse} - se securelogs for mer detaljer") - securelogger.error( - "Feil ved håndtering av vedtakhendelse for person ${vedtakhendelse.fødselsnummer} med ytelse ${vedtakhendelse.ytelse} : ${e.message}" + - " hendelse={}", - objectMapper.writeValueAsString(vedtakhendelse), - ) - throw e - } - } -} - -data class Vedtakhendelse( - val fødselsnummer: String, - val ytelse: Ytelse, - val fraDato: LocalDate?, - val tilDato: LocalDate?, -) - -enum class Ytelse { - SYKEPENGER, - FORELDREPENGER, -} diff --git a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakService.kt b/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakService.kt deleted file mode 100644 index a36d8a25..00000000 --- a/src/main/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/ekstern/EksternVedtakService.kt +++ /dev/null @@ -1,11 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak.ekstern - -import no.nav.familie.ef.personhendelse.client.SakClient -import org.springframework.stereotype.Service - -@Service -class EksternVedtakService( - val sakClient: SakClient, -) { - fun mottarEfStønad(vedtakhendelse: Vedtakhendelse): Boolean = sakClient.harLøpendeStønad(setOf(vedtakhendelse.fødselsnummer)) -} diff --git a/src/main/resources/db/migration/V14__slett_efvedtakhendelse_tabell.sql b/src/main/resources/db/migration/V14__slett_efvedtakhendelse_tabell.sql new file mode 100644 index 00000000..904ef753 --- /dev/null +++ b/src/main/resources/db/migration/V14__slett_efvedtakhendelse_tabell.sql @@ -0,0 +1 @@ +DROP TABLE efvedtakhendelse; \ No newline at end of file diff --git a/src/main/resources/pdl/schema.graphql b/src/main/resources/pdl/schema.graphql index 89ce2a49..826c693d 100644 --- a/src/main/resources/pdl/schema.graphql +++ b/src/main/resources/pdl/schema.graphql @@ -749,7 +749,7 @@ input Criterion { input SearchRule { # Sjekker om feltet finnes / at det ikke har en null verdi. - exists:String + exists:Boolean # Filtrerer bort treff hvor felt inneholder input verdi notEquals:String # Begrenser treff til kun de hvor felt har input verdi @@ -759,7 +759,7 @@ input SearchRule { # Søk som gir treff også for små variasjoner i skrivemåte fuzzy:String # Søk som gir tilfeldig poengsum til hvert treff (kun ment til generering av testdata) - random:String + random:Float # Bruk "?" som wildcard for enkelt tegn, og "*" som wildcard for 0 eller flere tegn. wildcard:String # Gir treff når opgitt feltstarter med opgitt verdi. diff --git a/src/test/kotlin/no/nav/familie/ef/personhendelse/IntegrasjonSpringRunnerTest.kt b/src/test/kotlin/no/nav/familie/ef/personhendelse/IntegrasjonSpringRunnerTest.kt index 7b62f3e6..91078eef 100644 --- a/src/test/kotlin/no/nav/familie/ef/personhendelse/IntegrasjonSpringRunnerTest.kt +++ b/src/test/kotlin/no/nav/familie/ef/personhendelse/IntegrasjonSpringRunnerTest.kt @@ -44,7 +44,6 @@ abstract class IntegrasjonSpringRunnerTest { private fun resetDatabase() { namedParameterJdbcTemplate.update("TRUNCATE TABLE hendelse CASCADE", MapSqlParameterSource()) - namedParameterJdbcTemplate.update("TRUNCATE TABLE efvedtakhendelse CASCADE", MapSqlParameterSource()) namedParameterJdbcTemplate.update("TRUNCATE TABLE utsattoppgave CASCADE", MapSqlParameterSource()) } diff --git a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerServiceTest.kt b/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerServiceTest.kt index f430e72b..9f069b13 100644 --- a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/VedtakendringerServiceTest.kt @@ -5,8 +5,6 @@ import io.mockk.mockk import no.nav.familie.ef.personhendelse.client.ArbeidsfordelingClient import no.nav.familie.ef.personhendelse.client.OppgaveClient import no.nav.familie.ef.personhendelse.client.SakClient -import no.nav.familie.ef.personhendelse.inntekt.vedtak.EfVedtakRepository -import no.nav.familie.ef.personhendelse.inntekt.vedtak.InntektOgVedtakEndring import no.nav.familie.kontrakter.felles.Behandlingstema import no.nav.familie.kontrakter.felles.ef.StønadType import no.nav.familie.kontrakter.felles.objectMapper @@ -17,7 +15,7 @@ import java.time.LocalDateTime import java.time.YearMonth class VedtakendringerServiceTest { - private val efVedtakRepository = mockk() + private val inntektsendringerRepository = mockk() private val inntektClient = mockk() private val oppgaveClient = mockk() private val sakClient = mockk() @@ -25,7 +23,7 @@ class VedtakendringerServiceTest { private val inntektsendringerService = mockk() private val vedtakendringer = VedtakendringerService( - efVedtakRepository, + inntektsendringerRepository, inntektClient, oppgaveClient, sakClient, diff --git a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListenerTest.kt b/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListenerTest.kt deleted file mode 100644 index f93c1869..00000000 --- a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakListenerTest.kt +++ /dev/null @@ -1,49 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak - -import io.mockk.MockKAnnotations -import io.mockk.Runs -import io.mockk.clearAllMocks -import io.mockk.every -import io.mockk.impl.annotations.MockK -import io.mockk.just -import io.mockk.verify -import no.nav.familie.ef.personhendelse.inntekt.VedtakendringerService -import no.nav.familie.kontrakter.felles.ef.EnsligForsørgerVedtakhendelse -import no.nav.familie.kontrakter.felles.ef.StønadType -import no.nav.familie.kontrakter.felles.objectMapper -import org.apache.kafka.clients.consumer.ConsumerRecord -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test - -class EfVedtakListenerTest { - @MockK - lateinit var efVedtakRepository: EfVedtakRepository - - @MockK - lateinit var vedtakendringerService: VedtakendringerService - - private lateinit var efVedtakListener: EfVedtakListener - - @BeforeEach - internal fun setUp() { - MockKAnnotations.init(this) - efVedtakListener = EfVedtakListener(efVedtakRepository) - clearAllMocks() - } - - @Test - fun `send inn gyldig consumer record, forvent lagring av efvedtakhendelse til db`() { - every { - efVedtakRepository.lagreEfVedtakshendelse(any()) - } just Runs - every { - vedtakendringerService.beregnInntektsendringerOgLagreIDb() - } just Runs - val efVedtakshendelse = EnsligForsørgerVedtakhendelse(1L, "personIdent", StønadType.OVERGANGSSTØNAD) - val hendelse = ConsumerRecord("topic", 1, 1, "key", objectMapper.writeValueAsString(efVedtakshendelse)) - efVedtakListener.listen(hendelse) - verify(exactly = 1) { - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - } - } -} diff --git a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepositoryTest.kt b/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepositoryTest.kt deleted file mode 100644 index 88f883df..00000000 --- a/src/test/kotlin/no/nav/familie/ef/personhendelse/inntekt/vedtak/EfVedtakRepositoryTest.kt +++ /dev/null @@ -1,152 +0,0 @@ -package no.nav.familie.ef.personhendelse.inntekt.vedtak - -import no.nav.familie.ef.personhendelse.IntegrasjonSpringRunnerTest -import no.nav.familie.ef.personhendelse.inntekt.BeregningResultat -import no.nav.familie.ef.personhendelse.inntekt.Inntektsendring -import no.nav.familie.kontrakter.felles.ef.EnsligForsørgerVedtakhendelse -import no.nav.familie.kontrakter.felles.ef.StønadType -import org.assertj.core.api.Assertions -import org.junit.jupiter.api.Test -import org.springframework.beans.factory.annotation.Autowired -import java.time.YearMonth - -class EfVedtakRepositoryTest : IntegrasjonSpringRunnerTest() { - @Autowired - lateinit var efVedtakRepository: EfVedtakRepository - - @Test - fun `lagre og hent EnsligForsørgerVedtakshendelse`() { - val efVedtakshendelse = EnsligForsørgerVedtakhendelse(1L, "personIdent1", StønadType.OVERGANGSSTØNAD) - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - - val vedtakshendelse = efVedtakRepository.hentAllePersonerMedVedtak().first() - Assertions.assertThat(vedtakshendelse).isNotNull - Assertions.assertThat(vedtakshendelse.behandlingId).isEqualTo(1L) - Assertions.assertThat(StønadType.OVERGANGSSTØNAD).isEqualTo(vedtakshendelse.stønadType) - Assertions.assertThat(YearMonth.now()).isEqualTo(vedtakshendelse.aarMaanedProsessert) - Assertions.assertThat(1).isEqualTo(vedtakshendelse.versjon) - } - - @Test - fun `lagre og hent EnsligForsørgerVedtakshendelser med to like personidenter, men to ulike behandlingId`() { - val efVedtakshendelse = EnsligForsørgerVedtakhendelse(1L, "personIdent1", StønadType.OVERGANGSSTØNAD) - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - - val efVedtakshendelse2 = EnsligForsørgerVedtakhendelse(2L, "personIdent1", StønadType.OVERGANGSSTØNAD) - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse2) - - val vedtakshendelse = efVedtakRepository.hentAllePersonerMedVedtak().first() - Assertions.assertThat(vedtakshendelse).isNotNull - Assertions.assertThat(vedtakshendelse.behandlingId).isEqualTo(2L) - Assertions.assertThat(vedtakshendelse.stønadType).isEqualTo(StønadType.OVERGANGSSTØNAD) - Assertions.assertThat(vedtakshendelse.aarMaanedProsessert).isEqualTo(YearMonth.now()) - Assertions.assertThat(vedtakshendelse.versjon).isEqualTo(1) - } - - @Test - fun `lagre og hent ikke behandlede ensligForsørgerVedtakshendelse`() { - val efVedtakshendelse = EnsligForsørgerVedtakhendelse(2L, "personIdent2", StønadType.OVERGANGSSTØNAD) - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - - val vedtakshendelse = efVedtakRepository.hentPersonerMedVedtakIkkeBehandlet() - Assertions.assertThat(vedtakshendelse).isNotNull - Assertions.assertThat(vedtakshendelse.size).isEqualTo(0) - } - - @Test - fun `lagre og oppdater ensligForsørgerVedtakshendelse`() { - val efVedtakshendelse = EnsligForsørgerVedtakhendelse(3L, "personIdent3", StønadType.OVERGANGSSTØNAD) - efVedtakRepository.lagreEfVedtakshendelse(efVedtakshendelse) - efVedtakRepository.oppdaterAarMaanedProsessert("personIdent3", YearMonth.of(2021, 12)) - - val vedtakshendelseList = efVedtakRepository.hentPersonerMedVedtakIkkeBehandlet() - Assertions.assertThat(vedtakshendelseList).isNotNull - Assertions.assertThat(vedtakshendelseList.size).isEqualTo(1) - Assertions.assertThat(vedtakshendelseList.first().aarMaanedProsessert).isEqualTo(YearMonth.of(2021, 12)) - } - - @Test - fun `lagre inntektsendringer og hent ut de som skal ha oppgave`() { - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( - "1", - true, - "SYKEPENGER, UFØRETRYGD", - Inntektsendring( - BeregningResultat(150, 15, 10000), - BeregningResultat(250, 10, 7500), - BeregningResultat(350, 25, 2500), - BeregningResultat(500, 35, 12000), - ), - ) - - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( - "2", - false, - null, - Inntektsendring( - BeregningResultat(1500, 15, 10000), - BeregningResultat(2500, 5, 5000), - BeregningResultat(3500, 25, 2500), - BeregningResultat(15000, 35, 1200), - ), - ) - var hentInntektsendringer = efVedtakRepository.hentInntektsendringerSomSkalHaOppgave() - Assertions.assertThat(hentInntektsendringer.size).isEqualTo(1) - - val inntektsendring = hentInntektsendringer.first() - Assertions.assertThat(inntektsendring.personIdent).isEqualTo("1") - Assertions.assertThat(inntektsendring.harNyeVedtak).isTrue - Assertions.assertThat(inntektsendring.nyeYtelser).isEqualTo("SYKEPENGER, UFØRETRYGD") - Assertions.assertThat(inntektsendring.inntektsendringFireMånederTilbake.beløp).isEqualTo(150) - Assertions.assertThat(inntektsendring.inntektsendringTreMånederTilbake.beløp).isEqualTo(250) - Assertions.assertThat(inntektsendring.inntektsendringToMånederTilbake.beløp).isEqualTo(350) - Assertions.assertThat(inntektsendring.inntektsendringForrigeMåned.beløp).isEqualTo(500) - Assertions.assertThat(inntektsendring.inntektsendringFireMånederTilbake.prosent).isEqualTo(15) - Assertions.assertThat(inntektsendring.inntektsendringTreMånederTilbake.prosent).isEqualTo(10) - Assertions.assertThat(inntektsendring.inntektsendringToMånederTilbake.prosent).isEqualTo(25) - Assertions.assertThat(inntektsendring.inntektsendringForrigeMåned.prosent).isEqualTo(35) - Assertions.assertThat(inntektsendring.inntektsendringFireMånederTilbake.feilutbetaling).isEqualTo(10000) - Assertions.assertThat(inntektsendring.inntektsendringTreMånederTilbake.feilutbetaling).isEqualTo(7500) - Assertions.assertThat(inntektsendring.inntektsendringToMånederTilbake.feilutbetaling).isEqualTo(2500) - Assertions.assertThat(inntektsendring.inntektsendringForrigeMåned.feilutbetaling).isEqualTo(12000) - - efVedtakRepository.clearInntektsendringer() - hentInntektsendringer = efVedtakRepository.hentInntektsendringerSomSkalHaOppgave() - Assertions.assertThat(hentInntektsendringer.isEmpty()).isTrue - } - - @Test - fun `lagre inntektsendringer og hent vedtak for uføretrygd`() { - val inntektsendring = - Inntektsendring( - BeregningResultat(150, 15, 10000), - BeregningResultat(250, 10, 5000), - BeregningResultat(350, 25, 2500), - BeregningResultat(500, 35, 12000), - ) - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( - "1", - true, - "sykepenger, ufoeretrygd", - inntektsendring, - ) - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( - "2", - true, - "sykepenger", - inntektsendring, - ) - efVedtakRepository.lagreVedtakOgInntektsendringForPersonIdent( - "2", - false, - "sykepenger, ufoeretrygd", - inntektsendring, - ) - - var hentInntektsendringer = efVedtakRepository.hentInntektsendringerForUføretrygd() - Assertions.assertThat(hentInntektsendringer.size).isEqualTo(1) - - val inntektsendringMedNyYtelseForUføretrygd = hentInntektsendringer.first() - Assertions.assertThat(inntektsendringMedNyYtelseForUføretrygd.nyeYtelser).contains("ufoeretrygd") - } -}