Skip to content

Commit

Permalink
Bruk journalpost fra familie-kontrakter, slett intern journalpost met…
Browse files Browse the repository at this point in the history
…ode (#1212)

* Bruk journalpost fra familie-kontrakter, slett intern journalpost metode

* Bruk metoder fra kontrakter etter flytting av metoder til kontrakter

* Bruk metoder fra kontrakter etter flytting av metoder til kontrakter

Bruk metoder fra kontrakter etter flytting av metoder til kontrakter

* Fiks mergeconflict i pom

* Fiks etter import av nye kontrakt versjon

* Fiks merge conflicts
  • Loading branch information
UyQuangNguyen authored Nov 27, 2024
1 parent a8888c5 commit 56ede87
Show file tree
Hide file tree
Showing 33 changed files with 247 additions and 252 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
<mockk.version>1.13.13</mockk.version>
<confluent.version>7.7.1</confluent.version>
<prosessering.version>2.20241118095311_c66bd61</prosessering.version>

<kontrakter.version>3.0_20241025090301_fcf1202</kontrakter.version>

<felles.version>3.20241121151626_836e7ca</felles.version>
<kontrakter.version>3.0_20241125142330_0a07b16</kontrakter.version>

<main-class>no.nav.familie.baks.mottak.LauncherKt</main-class>
<spring.cloud.version>4.1.4</spring.cloud.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,14 @@ import io.micrometer.core.instrument.Metrics
import no.nav.familie.baks.mottak.domene.HendelseConsumer
import no.nav.familie.baks.mottak.domene.Hendelseslogg
import no.nav.familie.baks.mottak.domene.HendelsesloggRepository
import no.nav.familie.baks.mottak.integrasjoner.BrukerIdType.ORGNR
import no.nav.familie.baks.mottak.integrasjoner.Journalpost
import no.nav.familie.baks.mottak.integrasjoner.JournalpostClient
import no.nav.familie.baks.mottak.integrasjoner.Journalposttype
import no.nav.familie.baks.mottak.integrasjoner.Journalstatus
import no.nav.familie.baks.mottak.integrasjoner.erBarnetrygdOrdinærSøknad
import no.nav.familie.baks.mottak.integrasjoner.erBarnetrygdUtvidetSøknad
import no.nav.familie.baks.mottak.integrasjoner.erKontantstøtteSøknad
import no.nav.familie.baks.mottak.task.JournalhendelseBarnetrygdRutingTask
import no.nav.familie.baks.mottak.task.JournalhendelseKontantstøtteRutingTask
import no.nav.familie.kontrakter.felles.BrukerIdType
import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import no.nav.familie.kontrakter.felles.journalpost.Journalposttype
import no.nav.familie.kontrakter.felles.journalpost.Journalstatus
import no.nav.familie.log.IdUtils
import no.nav.familie.log.mdc.MDCConstants
import no.nav.familie.prosessering.domene.Task
Expand Down Expand Up @@ -145,15 +142,15 @@ class JournalhendelseService(

private fun behandleSkanningHendelser(journalpost: Journalpost) {
logger.info("Ny Journalhendelse med [journalpostId=${journalpost.journalpostId}, status=${journalpost.journalstatus}, tema=${journalpost.tema}, kanal=${journalpost.kanal}]")
val erOrdinærBarnetrygdSøknad = journalpost.erBarnetrygdOrdinærSøknad()
val erUtvidetBarnetrygdSøknad = journalpost.erBarnetrygdUtvidetSøknad()
val erKontantstøtteSøknad = journalpost.erKontantstøtteSøknad()
val harOrdinærBarnetrygdSøknad = journalpost.harBarnetrygdOrdinærSøknad()
val harUtvidetBarnetrygdSøknad = journalpost.harBarnetrygdUtvidetSøknad()
val harKontantstøtteSøknad = journalpost.harKontantstøtteSøknad()

opprettJournalhendelseRutingTask(journalpost)

if (erOrdinærBarnetrygdSøknad) skannetOrdinærBarnetrygdSøknadCounter.increment()
if (erUtvidetBarnetrygdSøknad) skannetUtvidetBarnetrygdSøknadCounter.increment()
if (erKontantstøtteSøknad) skannetKontantstøtteSøknadCounter.increment()
if (harOrdinærBarnetrygdSøknad) skannetOrdinærBarnetrygdSøknadCounter.increment()
if (harUtvidetBarnetrygdSøknad) skannetUtvidetBarnetrygdSøknadCounter.increment()
if (harKontantstøtteSøknad) skannetKontantstøtteSøknadCounter.increment()

incrementKanalCounter(journalpost)
}
Expand Down Expand Up @@ -196,8 +193,10 @@ class JournalhendelseService(

private fun opprettMetadata(journalpost: Journalpost): Properties =
Properties().apply {
if (journalpost.bruker != null && journalpost.bruker.type != ORGNR) {
this["personIdent"] = journalpost.bruker.id
val journalpostBruker = journalpost.bruker

if (journalpostBruker != null && journalpostBruker.type != BrukerIdType.ORGNR) {
this["personIdent"] = journalpostBruker.id
}
this["journalpostId"] = journalpost.journalpostId
if (!MDC.get(MDCConstants.MDC_CALL_ID).isNullOrEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import no.nav.familie.baks.mottak.util.erDnummer
import no.nav.familie.baks.mottak.util.erOrgnr
import no.nav.familie.baks.mottak.util.fristFerdigstillelse
import no.nav.familie.kontrakter.felles.Behandlingstema
import no.nav.familie.kontrakter.felles.BrukerIdType
import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import no.nav.familie.kontrakter.felles.oppgave.Behandlingstype
import no.nav.familie.kontrakter.felles.oppgave.IdentGruppe
import no.nav.familie.kontrakter.felles.oppgave.OppgaveIdentV2
Expand Down Expand Up @@ -63,7 +65,9 @@ abstract class AbstractOppgaveMapper(
journalpost: Journalpost,
oppgavetype: Oppgavetype,
): OppgaveIdentV2? {
if (journalpost.bruker == null) {
val journalpostBruker = journalpost.bruker

if (journalpostBruker == null) {
when (oppgavetype) {
Oppgavetype.BehandleSak -> error("Journalpost ${journalpost.journalpostId} mangler bruker")
Oppgavetype.Journalføring -> return null
Expand All @@ -73,32 +77,32 @@ abstract class AbstractOppgaveMapper(
}
}

return when (journalpost.bruker?.type) {
return when (journalpostBruker?.type) {
BrukerIdType.FNR -> {
hentAktørIdFraPdl(journalpost.bruker.id.trim(), Tema.valueOf(journalpost.tema!!))?.let {
hentAktørIdFraPdl(journalpostBruker.id.trim(), Tema.valueOf(journalpost.tema!!))?.let {
OppgaveIdentV2(
ident = it,
gruppe = IdentGruppe.AKTOERID,
)
} ?: if (oppgavetype == Oppgavetype.BehandleSak) {
throw IntegrasjonException(
msg = "Fant ikke aktørId på person i PDL",
ident = journalpost.bruker.id,
ident = journalpostBruker.id,
)
} else {
null
}
}

BrukerIdType.ORGNR -> {
if (erOrgnr(journalpost.bruker.id.trim())) {
OppgaveIdentV2(ident = journalpost.bruker.id.trim(), gruppe = IdentGruppe.ORGNR)
if (erOrgnr(journalpostBruker.id.trim())) {
OppgaveIdentV2(ident = journalpostBruker.id.trim(), gruppe = IdentGruppe.ORGNR)
} else {
null
}
}

BrukerIdType.AKTOERID -> OppgaveIdentV2(ident = journalpost.bruker.id.trim(), gruppe = IdentGruppe.AKTOERID)
BrukerIdType.AKTOERID -> OppgaveIdentV2(ident = journalpostBruker.id.trim(), gruppe = IdentGruppe.AKTOERID)
else -> null
}
}
Expand All @@ -121,26 +125,29 @@ abstract class AbstractOppgaveMapper(
when {
journalpost.journalforendeEnhet == "2101" -> "4806" // Enhet 2101 er nedlagt. Rutes til 4806
journalpost.journalforendeEnhet == "4847" -> "4817" // Enhet 4847 skal legges ned. Rutes til 4817
journalpost.erDigitalKanal() && (journalpost.erBarnetrygdSøknad() || journalpost.erKontantstøtteSøknad()) -> hentBehandlendeEnhetForPerson(journalpost)
journalpost.harDigitalBarnetrygdSøknad() || journalpost.harDigitalKontantstøtteSøknad() -> hentBehandlendeEnhetForPerson(journalpost)
journalpost.journalforendeEnhet.isNullOrBlank() -> null
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).status.uppercase(Locale.getDefault()) == "NEDLAGT" -> null
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).oppgavebehandler -> journalpost.journalforendeEnhet
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet!!).status.uppercase(Locale.getDefault()) == "NEDLAGT" -> null
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet!!).oppgavebehandler -> journalpost.journalforendeEnhet
else -> {
logger.warn("Enhet ${journalpost.journalforendeEnhet} kan ikke ta i mot oppgaver")
null
}
}

private fun hentBehandlendeEnhetForPerson(journalpost: Journalpost): String? =
if (journalpost.bruker != null) {
val personIdentPåJournalpost = journalpostBrukerService.tilPersonIdent(journalpost.bruker, this.tema)
private fun hentBehandlendeEnhetForPerson(journalpost: Journalpost): String? {
val journalpostBruker = journalpost.bruker

return if (journalpostBruker != null) {
val personIdentPåJournalpost = journalpostBrukerService.tilPersonIdent(journalpostBruker, this.tema)
val behandlendeEnhetPåIdent = arbeidsfordelingClient.hentBehandlendeEnhetPåIdent(personIdentPåJournalpost, this.tema)

behandlendeEnhetPåIdent.enhetId
} else {
logger.warn("Fant ikke bruker på journalpost ved forsøk på henting av behandlende enhet")
null
}
}

private fun hentAktørIdFraPdl(
brukerId: String,
Expand All @@ -160,8 +167,8 @@ abstract class AbstractOppgaveMapper(
journalpost: Journalpost,
): Boolean {
return when (journalpost.bruker?.type) {
BrukerIdType.FNR -> erDnummer(journalpost.bruker.id)
BrukerIdType.AKTOERID -> erDnummer(pdlClient.hentPersonident(journalpost.bruker.id, tema).takeIf { it.isNotEmpty() } ?: return false)
BrukerIdType.FNR -> erDnummer(journalpost.bruker!!.id)
BrukerIdType.AKTOERID -> erDnummer(pdlClient.hentPersonident(journalpost.bruker!!.id, tema).takeIf { it.isNotEmpty() } ?: return false)
else -> false
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.nav.familie.baks.mottak.søknad.barnetrygd.domene.SøknadRepository
import no.nav.familie.baks.mottak.søknad.barnetrygd.domene.harEøsSteg
import no.nav.familie.kontrakter.felles.Behandlingstema
import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import no.nav.familie.kontrakter.felles.oppgave.Behandlingstype
import no.nav.familie.unleash.UnleashService
import org.springframework.stereotype.Service
Expand All @@ -31,7 +32,7 @@ class BarnetrygdOppgaveMapper(
// Behandlingstema og behandlingstype settes basert på regelsettet som er dokumentert nederst her: https://confluence.adeo.no/display/TFA/Mottak+av+dokumenter
override fun hentBehandlingstema(journalpost: Journalpost): Behandlingstema? =
when {
journalpost.erBarnetrygdSøknad() && journalpost.erDigitalKanal() ->
journalpost.harBarnetrygdSøknad() && journalpost.erDigitalKanal() ->
if (utledBehandlingUnderkategoriFraSøknad(journalpost) == BehandlingUnderkategori.UTVIDET) {
Behandlingstema.UtvidetBarnetrygd
} else {
Expand All @@ -47,7 +48,7 @@ class BarnetrygdOppgaveMapper(

override fun hentBehandlingstype(journalpost: Journalpost): Behandlingstype? =
when {
journalpost.erBarnetrygdSøknad() && journalpost.erDigitalKanal() ->
journalpost.harBarnetrygdSøknad() && journalpost.erDigitalKanal() ->
if (utledBehandlingKategoriFraSøknad(journalpost) == BehandlingKategori.EØS) {
Behandlingstype.EØS
} else {
Expand All @@ -61,7 +62,7 @@ class BarnetrygdOppgaveMapper(
override fun hentBehandlingstypeVerdi(journalpost: Journalpost): String? = hentBehandlingstype(journalpost)?.value

fun utledBehandlingKategoriFraSøknad(journalpost: Journalpost): BehandlingKategori {
check(journalpost.erBarnetrygdSøknad()) { "Journalpost m/ id ${journalpost.journalpostId} er ikke en barnetrygd søknad" }
check(journalpost.harBarnetrygdSøknad()) { "Journalpost m/ id ${journalpost.journalpostId} er ikke en barnetrygd søknad" }
val søknad = søknadRepository.getByJournalpostId(journalpost.journalpostId)

return when {
Expand All @@ -72,7 +73,7 @@ class BarnetrygdOppgaveMapper(

fun utledBehandlingUnderkategoriFraSøknad(journalpost: Journalpost) =
when {
journalpost.erBarnetrygdUtvidetSøknad() -> BehandlingUnderkategori.UTVIDET
journalpost.harBarnetrygdUtvidetSøknad() -> BehandlingUnderkategori.UTVIDET
else -> BehandlingUnderkategori.ORDINÆR
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.dokarkiv.ArkiverDokumentResponse
import no.nav.familie.kontrakter.felles.dokarkiv.v2.ArkiverDokumentRequest
import no.nav.familie.kontrakter.felles.getDataOrThrow
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Qualifier
import org.springframework.beans.factory.annotation.Value
Expand Down Expand Up @@ -36,9 +37,11 @@ class DokarkivClient(
else -> throw IllegalArgumentException("Tema $tema støtter ikke oppdatering av journalpost sak")
}

val journalpostBruker = jp.bruker

val request =
TilknyttFagsakRequest(
bruker = Bruker(idType = IdType.valueOf(jp.bruker!!.type.name), id = jp.bruker.id),
bruker = Bruker(idType = IdType.valueOf(journalpostBruker!!.type.name), id = journalpostBruker.id),
tema = tema.name,
sak = sak,
)
Expand All @@ -48,7 +51,7 @@ class DokarkivClient(
"Oppdatering av journalpost ${jp.journalpostId} med fagsak $fagsakId feilet",
response,
uri,
jp.bruker.id,
journalpostBruker.id,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.familie.baks.mottak.integrasjoner
import no.nav.familie.baks.mottak.journalføring.AdressebeskyttelesesgraderingService
import no.nav.familie.baks.mottak.journalføring.JournalpostBrukerService
import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
Expand All @@ -21,35 +22,41 @@ class EnhetsnummerService(
fun hentEnhetsnummer(
journalpost: Journalpost,
): String? {
if (journalpost.tema == null) {
val journalpostTema = journalpost.tema

if (journalpostTema == null) {
logger.error("Journalpost tema er null for journalpost ${journalpost.journalpostId}.")
throw IllegalStateException("Tema er null")
}

if (journalpost.bruker == null) {
val journalpostBruker = journalpost.bruker

if (journalpostBruker == null) {
logger.error("Bruker for journalpost ${journalpost.journalpostId} er null. Usikker på hvordan dette burde håndteres. Se SecureLogs.")
secureLogger.error("Bruker for journalpost $journalpost er null. Usikker på hvordan dette burde håndteres.")
throw IllegalStateException("Bruker for journalpost ${journalpost.journalpostId} er null. Usikker på hvordan dette burde håndteres.")
}

val tema = Tema.valueOf(journalpost.tema)
val tema = Tema.valueOf(journalpostTema)

val erEnAvPersoneneStrengtFortrolig =
adressebeskyttelesesgraderingService.finnesStrengtFortroligAdressebeskyttelsegraderingPåJournalpost(
tema = tema,
journalpost = journalpost,
)

val journalførendeEnhet = journalpost.journalforendeEnhet

return when {
erEnAvPersoneneStrengtFortrolig -> "2103"
journalpost.journalforendeEnhet == "2101" -> "4806" // Enhet 2101 er nedlagt. Rutes til 4806
journalpost.journalforendeEnhet == "4847" -> "4817" // Enhet 4847 skal legges ned. Rutes til 4817
journalpost.erDigitalSøknad() -> arbeidsfordelingClient.hentBehandlendeEnhetPåIdent(journalpostBrukerService.tilPersonIdent(journalpost.bruker, tema), tema).enhetId
journalpost.journalforendeEnhet.isNullOrBlank() -> null
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).status.uppercase(Locale.getDefault()) == "NEDLAGT" -> null
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).oppgavebehandler -> journalpost.journalforendeEnhet
journalførendeEnhet == "2101" -> "4806" // Enhet 2101 er nedlagt. Rutes til 4806
journalførendeEnhet == "4847" -> "4817" // Enhet 4847 skal legges ned. Rutes til 4817
journalpost.harDigitalSøknad(tema) -> arbeidsfordelingClient.hentBehandlendeEnhetPåIdent(journalpostBrukerService.tilPersonIdent(journalpostBruker, tema), tema).enhetId
journalførendeEnhet.isNullOrBlank() -> null
hentEnhetClient.hentEnhet(journalførendeEnhet).status.uppercase(Locale.getDefault()) == "NEDLAGT" -> null
hentEnhetClient.hentEnhet(journalførendeEnhet).oppgavebehandler -> journalførendeEnhet
else -> {
logger.warn("Enhet ${journalpost.journalforendeEnhet} kan ikke ta i mot oppgaver")
logger.warn("Enhet $journalførendeEnhet kan ikke ta i mot oppgaver")
null
}
}
Expand Down
Loading

0 comments on commit 56ede87

Please sign in to comment.