Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bruk journalpost fra familie-kontrakter, slett intern journalpost metode #1212

Merged
merged 9 commits into from
Nov 27, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,16 @@ 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 @@ -147,7 +146,7 @@ class JournalhendelseService(
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 erKontantstøtteSøknad = journalpost.erDigitalKontantstøtteSøknad()
UyQuangNguyen marked this conversation as resolved.
Show resolved Hide resolved

opprettJournalhendelseRutingTask(journalpost)

Expand Down Expand Up @@ -196,8 +195,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.erDigitalBarnetrygdSøknad() || journalpost.erDigitalKontantstøtteSøknad() -> hentBehandlendeEnhetForPerson(journalpost)
UyQuangNguyen marked this conversation as resolved.
Show resolved Hide resolved
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 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
stigebil marked this conversation as resolved.
Show resolved Hide resolved

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.erDigitalSø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

This file was deleted.

UyQuangNguyen marked this conversation as resolved.
Show resolved Hide resolved
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.http.client.AbstractRestClient
import no.nav.familie.kontrakter.felles.Ressurs
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.Autowired
import org.springframework.beans.factory.annotation.Qualifier
Expand Down Expand Up @@ -44,3 +45,16 @@ class JournalpostClient
}
}
}

fun Journalpost.erKontantstøtteSøknad(): Boolean = dokumenter?.any { it.brevkode == "NAV 34-00.08" } ?: false
UyQuangNguyen marked this conversation as resolved.
Show resolved Hide resolved

fun Journalpost.erBarnetrygdOrdinærSøknad(): Boolean = dokumenter?.any { it.brevkode == "NAV 33-00.07" } ?: false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disse 2 er ikke kontakter, men kunne godt vært der, men brevkodene er der


fun Journalpost.erBarnetrygdUtvidetSøknad(): Boolean = dokumenter?.any { it.brevkode == "NAV 33-00.09" } ?: false

fun Journalpost.erBarnetrygdSøknad(): Boolean = erBarnetrygdOrdinærSøknad() || erBarnetrygdUtvidetSøknad()

fun Journalpost.hentHovedDokumentTittel(): String? {
if (dokumenter.isNullOrEmpty()) error("Journalpost $journalpostId mangler dokumenter")
return dokumenter!!.firstOrNull { it.brevkode != null }?.tittel
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import no.nav.familie.baks.mottak.søknad.kontantstøtte.domene.KontantstøtteS
import no.nav.familie.baks.mottak.søknad.kontantstøtte.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 Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import no.nav.familie.baks.mottak.util.fristFerdigstillelse
import no.nav.familie.http.client.AbstractRestClient
import no.nav.familie.kontrakter.felles.Ressurs
import no.nav.familie.kontrakter.felles.Tema
import no.nav.familie.kontrakter.felles.journalpost.Journalpost
import no.nav.familie.kontrakter.felles.oppgave.FinnOppgaveRequest
import no.nav.familie.kontrakter.felles.oppgave.FinnOppgaveResponseDto
import no.nav.familie.kontrakter.felles.oppgave.IdentGruppe
Expand Down
Loading