diff --git a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/AdminController.kt b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/AdminController.kt index 083ee763..9ff3a49e 100644 --- a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/AdminController.kt +++ b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/AdminController.kt @@ -186,13 +186,13 @@ class AdminController( @Unprotected @PostMapping("sjekk-for-klar-for-innsending") fun sjekkForKlarforInnsending() { - StatusJobb(refusjonRepository, leaderPodCheck).sjekkOmKlarForInnsending() + StatusJobb(refusjonRepository, leaderPodCheck, automatiskUtbetaling).fraForTidligTilKlarForInnsending() } @Unprotected @PostMapping("sjekk-for-utgått") fun sjekkForUtgått() { - StatusJobb(refusjonRepository, leaderPodCheck).sjekkOmUtgått() + StatusJobb(refusjonRepository, leaderPodCheck, automatiskUtbetaling).fraKlarForInnsendingTilUtgått() } @Unprotected diff --git a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/automatisk_utbetaling/AutomatiskUtbetaling.kt b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/automatisk_utbetaling/AutomatiskUtbetaling.kt index 5626231b..0ac371ec 100644 --- a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/automatisk_utbetaling/AutomatiskUtbetaling.kt +++ b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/automatisk_utbetaling/AutomatiskUtbetaling.kt @@ -1,33 +1,25 @@ package no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling import no.nav.arbeidsgiver.tiltakrefusjon.autorisering.SYSTEM_BRUKER -import no.nav.arbeidsgiver.tiltakrefusjon.leader.LeaderPodCheck import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Refusjon import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonRepository import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tiltakstype import org.slf4j.LoggerFactory -import org.springframework.scheduling.annotation.Scheduled import org.springframework.stereotype.Component @Component class AutomatiskUtbetaling( - private val leaderPodCheck: LeaderPodCheck, private val refusjonRepository: RefusjonRepository ) { val log = LoggerFactory.getLogger(AutomatiskUtbetaling::class.java.name) - @Scheduled(cron = "0 0 2,4 * * *") - fun automatiskUtbetaling() { - if (!leaderPodCheck.isLeaderPod) return + fun utførAutomatiskUtbetaling() { + val vtaoRefusjoner = refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn(RefusjonStatus.KLAR_FOR_INNSENDING, Tiltakstype.somUtbetalesAutomatisk()) - // Finn alle VTAO-refusjoner som er klar for innsending, men ikke har blitt sendt inn enda: - val refusjoner = refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn( - RefusjonStatus.KLAR_FOR_INNSENDING, - Tiltakstype.somUtbetalesAutomatisk() - ) - - refusjoner.forEach { utførAutomatiskUtbetaling(it) } + vtaoRefusjoner.forEach { refusjon -> + utførAutomatiskUtbetaling(refusjon) + } } fun utførAutomatiskUtbetaling(refusjon: Refusjon) { @@ -36,5 +28,6 @@ class AutomatiskUtbetaling( refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.løpenummer, refusjon.id) refusjon.godkjennForArbeidsgiver(utførtAv = SYSTEM_BRUKER) + refusjonRepository.save(refusjon) } } diff --git a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/StatusJobb.kt b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/StatusJobb.kt index 3769471c..202fdfc5 100644 --- a/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/StatusJobb.kt +++ b/src/main/kotlin/no/nav/arbeidsgiver/tiltakrefusjon/refusjon/StatusJobb.kt @@ -1,5 +1,6 @@ package no.nav.arbeidsgiver.tiltakrefusjon.refusjon +import no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling.AutomatiskUtbetaling import no.nav.arbeidsgiver.tiltakrefusjon.leader.LeaderPodCheck import no.nav.arbeidsgiver.tiltakrefusjon.utils.Now import org.slf4j.LoggerFactory @@ -10,6 +11,7 @@ import org.springframework.stereotype.Component class StatusJobb( val refusjonRepository: RefusjonRepository, val leaderPodCheck: LeaderPodCheck, + private val automatiskUtbetaling: AutomatiskUtbetaling, ) { private val logger = LoggerFactory.getLogger(javaClass) @@ -20,12 +22,13 @@ class StatusJobb( logger.info("Pod er ikke leader, så kjører ikke jobb for å finne refusjoner med statusendring") return } - sjekkOmUtgått() - sjekkOmKlarForInnsending() + fraKlarForInnsendingTilUtgått() + fraForTidligTilKlarForInnsending() + automatiskUtbetaling.utførAutomatiskUtbetaling() } - fun sjekkOmKlarForInnsending() { - logger.info("Sjekker statuser som skal får KLAR_FOR_INNSENDING") + fun fraForTidligTilKlarForInnsending() { + logger.info("Sjekker for tidliger refusjoner som skal settes til KLAR_FOR_INNSENDING") val refusjoner = refusjonRepository.findAllByStatus(RefusjonStatus.FOR_TIDLIG) var antallEndretTilKlarForInnsending: Int = 0; refusjoner.forEach { @@ -43,7 +46,7 @@ class StatusJobb( logger.info("Endret til KLAR_FOR_INNSENDING på $antallEndretTilKlarForInnsending refusjoner") } - fun sjekkOmUtgått() { + fun fraKlarForInnsendingTilUtgått() { val refusjoner = refusjonRepository.findAllByStatus(RefusjonStatus.KLAR_FOR_INNSENDING) var antallEndretTilUtgått: Int = 0 refusjoner.forEach {