Skip to content

Commit

Permalink
Inntektsjobb beloeper (#6368)
Browse files Browse the repository at this point in the history
* Kontrollbeløper for inntektsjusteringer

* Ferdigstiller omregninger etter vedtak også for fattet hvis bryter er på
  • Loading branch information
Bjodn authored Nov 18, 2024
1 parent b38edda commit e8d1145
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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) }
Expand All @@ -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),
Expand All @@ -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}")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ enum class KjoeringStatus {
FEILA,
IKKE_LOEPENDE,
FERDIGSTILT,
FERDIGSTILT_FATTET,
TIL_MANUELL,
TIL_MANUELL_UTEN_OPPGAVE,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
}
}

0 comments on commit e8d1145

Please sign in to comment.