diff --git a/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt b/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt index 1a83f881fea..2c6f4b1df57 100644 --- a/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt +++ b/apps/etterlatte-beregning-kafka/src/main/kotlin/no/nav/etterlatte/beregningkafka/OmregningHendelserBeregningRiver.kt @@ -64,8 +64,11 @@ internal class OmregningHendelserBeregningRiver( val beregning = beregn(omregningData) packet[BEREGNING_KEY] = beregning.beregning - // TODO bør vi ha slike ting her? - if (omregningData.revurderingaarsak == Revurderingaarsak.REGULERING) { + if ( + omregningData.revurderingaarsak == Revurderingaarsak.REGULERING || + omregningData.revurderingaarsak == Revurderingaarsak.AARLIG_INNTEKTSJUSTERING || + omregningData.revurderingaarsak == Revurderingaarsak.INNTEKTSENDRING + ) { sendMedInformasjonTilKontrollsjekking(beregning, packet) } } diff --git a/apps/etterlatte-oppdater-behandling/src/main/kotlin/Application.kt b/apps/etterlatte-oppdater-behandling/src/main/kotlin/Application.kt index d65d08ed59a..3b0a2627551 100644 --- a/apps/etterlatte-oppdater-behandling/src/main/kotlin/Application.kt +++ b/apps/etterlatte-oppdater-behandling/src/main/kotlin/Application.kt @@ -34,7 +34,7 @@ private fun settOppRivers( FinnSakerTilReguleringRiver(rapidsConnection, behandlingservice) ReguleringsforespoerselRiver(rapidsConnection, behandlingservice, featureToggleService) OmregningFeiletRiver(rapidsConnection, behandlingservice) - VedtakAttestertRiver(rapidsConnection, behandlingservice) + VedtakAttestertRiver(rapidsConnection, behandlingservice, featureToggleService) AvbrytBehandlingHvisMigreringFeilaRiver(rapidsConnection, behandlingservice) YtelseIkkeLoependeRiver(rapidsConnection, behandlingservice) TidshendelseRiver(rapidsConnection, tidshendelseService) diff --git a/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/ReguleringsforespoerselRiver.kt b/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/ReguleringsforespoerselRiver.kt index 13582e8ebe8..985ab715bad 100644 --- a/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/ReguleringsforespoerselRiver.kt +++ b/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/ReguleringsforespoerselRiver.kt @@ -136,6 +136,7 @@ enum class ReguleringFeatureToggle( private val key: String, ) : FeatureToggle { START_REGULERING("start-regulering"), + SKAL_STOPPE_ETTER_FATTET_VEDTAK("regulering-skal-stoppe-etter-fattet-vedtak"), ; override fun key() = key diff --git a/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/VedtakAttestertRiver.kt b/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/VedtakAttestertRiver.kt index 63f2f7e05d9..fe3d973b79b 100644 --- a/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/VedtakAttestertRiver.kt +++ b/apps/etterlatte-oppdater-behandling/src/main/kotlin/regulering/VedtakAttestertRiver.kt @@ -1,6 +1,9 @@ package no.nav.etterlatte.regulering import no.nav.etterlatte.BehandlingService +import no.nav.etterlatte.funksjonsbrytere.FeatureToggleService +import no.nav.etterlatte.libs.common.rapidsandrivers.EVENT_NAME_KEY +import no.nav.etterlatte.libs.common.rapidsandrivers.eventName import no.nav.etterlatte.libs.common.sak.KjoeringStatus import no.nav.etterlatte.libs.common.sak.LagreKjoeringRequest import no.nav.etterlatte.libs.common.vedtak.VedtakKafkaHendelseHendelseType @@ -25,12 +28,21 @@ import java.math.BigDecimal internal class VedtakAttestertRiver( rapidsConnection: RapidsConnection, private val behandlingService: BehandlingService, + private val featureToggleService: FeatureToggleService, ) : ListenerMedLoggingOgFeilhaandtering() { private val logger = LoggerFactory.getLogger(this::class.java) init { - initialiserRiver(rapidsConnection, VedtakKafkaHendelseHendelseType.ATTESTERT) { - // TODO lytt på noe annet? eksplisitt klar for ferdigstil elns? + initialiserRiverUtenEventName(rapidsConnection) { + validate { + it.demandAny( + EVENT_NAME_KEY, + listOf( + VedtakKafkaHendelseHendelseType.FATTET.lagEventnameForType(), + VedtakKafkaHendelseHendelseType.ATTESTERT.lagEventnameForType(), + ), + ) + } validate { it.requireKey(OmregningDataPacket.KEY) } validate { it.requireKey(OmregningDataPacket.SAK_ID) } validate { it.requireKey(OmregningDataPacket.KJOERING) } @@ -52,13 +64,27 @@ internal class VedtakAttestertRiver( packet: JsonMessage, context: MessageContext, ) { + val erFattetVedtak = packet.eventName == VedtakKafkaHendelseHendelseType.FATTET.lagEventnameForType() + if (erFattetVedtak && + !featureToggleService.isEnabled( + ReguleringFeatureToggle.SKAL_STOPPE_ETTER_FATTET_VEDTAK, + false, + ) + ) { + return + } + val sakId = packet.omregningData.sakId val kjoering = packet.omregningData.kjoering logger.info("Sak $sakId er ferdig omregnet, oppdaterer status") val request = LagreKjoeringRequest( kjoering = kjoering, - status = KjoeringStatus.FERDIGSTILT, + status = + when (erFattetVedtak) { + true -> KjoeringStatus.FERDIGSTILT_FATTET + false -> KjoeringStatus.FERDIGSTILT + }, sakId = sakId, beregningBeloepFoer = bigDecimal(packet, BEREGNING_BELOEP_FOER), beregningBeloepEtter = bigDecimal(packet, BEREGNING_BELOEP_ETTER), @@ -70,8 +96,6 @@ internal class VedtakAttestertRiver( vedtakBeloep = bigDecimal(packet, VEDTAK_BELOEP), ) - // TODO Burde ikke ferdigstille kun basert på attestert men også om brev er ordentlig distribuert osv. Bør gjøre en sanity check er først? - behandlingService.lagreFullfoertKjoering(request) logger.info("Sak $sakId er ferdig omregnet, status oppdatert til: ${request.status}") } diff --git a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt index d948caa1a80..b0ac2c7239f 100644 --- a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt +++ b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt @@ -39,6 +39,7 @@ enum class KjoeringStatus { FEILA, IKKE_LOEPENDE, FERDIGSTILT, + FERDIGSTILT_FATTET, TIL_MANUELL, TIL_MANUELL_UTEN_OPPGAVE, } diff --git a/libs/rapidsandrivers-extras/src/main/kotlin/rapidsandrivers/ListenerMedLoggingOgFeilhaandtering.kt b/libs/rapidsandrivers-extras/src/main/kotlin/rapidsandrivers/ListenerMedLoggingOgFeilhaandtering.kt index 11152a3d6bc..58b06a3f9f7 100644 --- a/libs/rapidsandrivers-extras/src/main/kotlin/rapidsandrivers/ListenerMedLoggingOgFeilhaandtering.kt +++ b/libs/rapidsandrivers-extras/src/main/kotlin/rapidsandrivers/ListenerMedLoggingOgFeilhaandtering.kt @@ -63,7 +63,15 @@ abstract class ListenerMedLoggingOgFeilhaandtering : River.PacketListener { block: River.() -> Unit = {}, ) { logger.info("Initialiserer river for ${this.javaClass.simpleName}") - checkInternFeil(kontekst() in setOf(Kontekst.MIGRERING, Kontekst.REGULERING, Kontekst.OMREGNING, Kontekst.TEST)) { + checkInternFeil( + kontekst() in + setOf( + Kontekst.MIGRERING, + Kontekst.REGULERING, + Kontekst.OMREGNING, + Kontekst.TEST, + ), + ) { "Bruk heller ${ListenerMedLogging::class.simpleName}, denne her svelger feilmeldinger" } River(rapidsConnection) @@ -73,4 +81,16 @@ abstract class ListenerMedLoggingOgFeilhaandtering : River.PacketListener { block() }.register(this) } + + protected fun initialiserRiverUtenEventName( + rapidsConnection: RapidsConnection, + block: River.() -> Unit = {}, + ) { + logger.info("Initialiserer river for ${this.javaClass.simpleName}") + River(rapidsConnection) + .apply { + correlationId() + block() + }.register(this) + } }