Skip to content

Commit

Permalink
F - Sender pbu06 direkte med eller uten bruker
Browse files Browse the repository at this point in the history
  • Loading branch information
dskarpas committed Aug 19, 2024
1 parent 5241510 commit e8c4f36
Show file tree
Hide file tree
Showing 16 changed files with 78 additions and 56 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package no.nav.eessi.pensjon.journalforing

import com.fasterxml.jackson.databind.exc.MismatchedInputException
import com.google.cloud.storage.BlobId
import io.micrometer.core.instrument.Metrics
import no.nav.eessi.pensjon.eux.model.BucType
import no.nav.eessi.pensjon.eux.model.BucType.*
Expand Down Expand Up @@ -188,11 +187,18 @@ class JournalforingService(
)

if(journalpostRequest.bruker == null){
vurderBrukerInfo.journalPostUtenBruker(
journalpostRequest,
sedHendelse,
hendelseType)
logger.warn("Journalpost er satt på vent grunnet manglende bruker, rinanr: ${sedHendelse.rinaSakId}")
if(sedHendelse.bucType in listOf(R_BUC_02 , P_BUC_06 ,P_BUC_09)) {
journalpostService.sendJournalPost(JournalpostMedSedInfo(journalpostRequest, sedHendelse, hendelseType), "eessipensjon")
logger.warn("Journalpost for ${sedHendelse.sedType}, for buc: ${sedHendelse.bucType} sendes direkte for rinaid: ${sedHendelse.rinaSakId}")
}
else {
vurderBrukerInfo.journalPostUtenBruker(
journalpostRequest,
sedHendelse,
hendelseType
)
logger.warn("Journalpost er satt på vent grunnet manglende bruker, rinanr: ${sedHendelse.rinaSakId}")
}
return@measure
}
else {
Expand Down Expand Up @@ -281,7 +287,7 @@ class JournalforingService(
}
}

fun lagJournalpostOgOppgave(journalpostRequest: LagretJournalpostMedSedInfo, saksbehandlerIdent: String? = null, blobId: BlobId){
fun lagJournalpostOgOppgave(journalpostRequest: JournalpostMedSedInfo, saksbehandlerIdent: String? = null){
val response = journalpostService.sendJournalPost(journalpostRequest, "eessipensjon")

logger.info("""Lagret JP hentet fra GCP:
Expand All @@ -302,7 +308,7 @@ class JournalforingService(
oppgaveType = OppgaveType.JOURNALFORING,
).also { oppgaveMelding -> logger.info("Opprettet journalforingsoppgave for sak med rinaId: ${oppgaveMelding.rinaSakId}") }
oppgaveHandler.opprettOppgaveMeldingPaaKafkaTopic(melding)
gcpStorageService.slettJournalpostDetaljer(blobId)

} else {
logger.error("Journalpost ikke opprettet")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import no.nav.eessi.pensjon.models.Behandlingstema
import no.nav.eessi.pensjon.models.Tema
import no.nav.eessi.pensjon.oppgaverouting.Enhet
import no.nav.eessi.pensjon.oppgaverouting.HendelseType
import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentifisertPerson
import no.nav.eessi.pensjon.utils.mapAnyToJson
import java.io.IOException
import java.time.LocalDateTime
Expand Down Expand Up @@ -49,7 +48,7 @@ data class OpprettJournalpostRequest(
}
}

data class LagretJournalpostMedSedInfo(
data class JournalpostMedSedInfo(
val journalpostRequest: OpprettJournalpostRequest,
val sedHendelse: SedHendelse,
val sedHendelseType: HendelseType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class VurderBrukerInfo (
sedHendelse: SedHendelse,
sedHendelseType: HendelseType
) {
val lagretJournalpost = LagretJournalpostMedSedInfo(journalpostRequest!!, sedHendelse, sedHendelseType)
val lagretJournalpost = JournalpostMedSedInfo(journalpostRequest!!, sedHendelse, sedHendelseType)
logger.debug("""Journalposten mangler bruker og vil bli lagret for fremtidig vurdering
| ${lagretJournalpost.toJson()}
""".trimMargin())
Expand All @@ -57,7 +57,7 @@ class VurderBrukerInfo (
logger.info("Henter tidligere journalføring for å sette bruker for sed: $rinaId")

gcpStorageService.hentOpprettJournalpostRequest(rinaId)?.let { (journalpost, blob) ->
val lagretJournalPost = mapJsonToAny<LagretJournalpostMedSedInfo>(journalpost)
val lagretJournalPost = mapJsonToAny<JournalpostMedSedInfo>(journalpost)

val jprUtenBrukerOppdatert = lagretJournalPost.copy(
journalpostRequest = updateRequest(lagretJournalPost.journalpostRequest, jprMedBruker)
Expand Down Expand Up @@ -95,7 +95,7 @@ class VurderBrukerInfo (
}

fun opprettOppgave(
jprUtenBrukerOppdatert: LagretJournalpostMedSedInfo,
jprUtenBrukerOppdatert: JournalpostMedSedInfo,
opprettetJournalpost: OpprettJournalPostResponse?,
identifisertPerson: IdentifisertPerson?
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class JournalpostService(private val journalpostKlient: JournalpostKlient) {
return journalpostKlient.opprettJournalpost(journalpostRequest, forsokFerdigstill, saksbehandlerIdent)
}

fun sendJournalPost(journalpostRequest: LagretJournalpostMedSedInfo,
fun sendJournalPost(journalpostRequest: JournalpostMedSedInfo,
saksbehandlerIdent: String?): OpprettJournalPostResponse? {
return sendJournalPost(journalpostRequest.journalpostRequest, journalpostRequest.sedHendelse, journalpostRequest.sedHendelseType, saksbehandlerIdent)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import no.nav.eessi.pensjon.eux.model.BucType
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.gcp.GcpStorageService
import no.nav.eessi.pensjon.journalforing.JournalforingService
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.JournalpostMedSedInfo
import no.nav.eessi.pensjon.utils.mapJsonToAny
import no.nav.eessi.pensjon.utils.toJson
import org.slf4j.LoggerFactory
Expand All @@ -24,9 +24,10 @@ class OpprettJournalpostUkjentBruker(

logger.info("Daglig sjekk viser ${jp?.size} saker fra GCP som mangler bruker og som nå journalføres")
jp?.forEach { journalpostDetaljer ->
mapJsonToAny<LagretJournalpostMedSedInfo>(journalpostDetaljer.first)
mapJsonToAny<JournalpostMedSedInfo>(journalpostDetaljer.first)
.also {
journalforingService.lagJournalpostOgOppgave(it, "eessipensjon", journalpostDetaljer.second)
journalforingService.lagJournalpostOgOppgave(it, "eessipensjon")
gcpStorageService.slettJournalpostDetaljer(journalpostDetaljer.second).also { logger.info("") }
} }
}

Expand All @@ -42,7 +43,7 @@ class OpprettJournalpostUkjentBruker(
}

jp?.forEach { journalpostDetaljer ->
val lagretJournalpostMedSedInfo = mapJsonToAny<LagretJournalpostMedSedInfo>(journalpostDetaljer.first)
val lagretJournalpostMedSedInfo = mapJsonToAny<JournalpostMedSedInfo>(journalpostDetaljer.first)

lagretJournalpostMedSedInfo.sedHendelse.sedType?.let {
sedTypeCounts[it] = sedTypeCounts[it]!! + 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ open class GcpStorageServiceTest {
private lateinit var gcpStorageService: GcpStorageService

private val storage: Storage = mockk(relaxed = true)
lateinit var lagretJournalPost: LagretJournalpostMedSedInfo
lateinit var lagretJournalPost: JournalpostMedSedInfo
lateinit var sedMedBruker: SedHendelse
lateinit var sedUtenBruker: SedHendelse

Expand All @@ -34,7 +34,7 @@ open class GcpStorageServiceTest {
rinaSakId = sedMedBruker.rinaSakId
)
val lagretJournalpostRquest = opprettJournalpostRequest(bruker = null, enhet = Enhet.ID_OG_FORDELING, tema = Tema.UFORETRYGD, )
lagretJournalPost = LagretJournalpostMedSedInfo(lagretJournalpostRquest, sedUtenBruker, HendelseType.SENDT)
lagretJournalPost = JournalpostMedSedInfo(lagretJournalpostRquest, sedUtenBruker, HendelseType.SENDT)

gcpStorageService = GcpStorageService("gjennyB", "journalB", storage)
every { storage.get(BlobId.of("journalB", sedUtenBruker.rinaSakId)) } returns mockk {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.google.cloud.storage.Storage
import io.mockk.every
import io.mockk.mockk
import no.nav.eessi.pensjon.eux.model.SedHendelse
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.JournalpostMedSedInfo
import no.nav.eessi.pensjon.utils.toJson
import java.time.OffsetDateTime

Expand All @@ -16,7 +16,7 @@ class GcpStorageTestHelper {
companion object {
fun simulerGcpStorage(
sedHendelse: SedHendelse,
lagretJournalPost: List<Pair<LagretJournalpostMedSedInfo, BlobId>>,
lagretJournalPost: List<Pair<JournalpostMedSedInfo, BlobId>>,
gcpStorage: Storage
) {
val blob = createMockBlob(sedHendelse, lagretJournalPost)
Expand All @@ -27,7 +27,7 @@ class GcpStorageTestHelper {

private fun createMockBlob(
sedHendelse: SedHendelse,
lagretJournalPost: List<Pair<LagretJournalpostMedSedInfo, BlobId>>
lagretJournalPost: List<Pair<JournalpostMedSedInfo, BlobId>>
): Blob {
return mockk<Blob>().apply {
every { name } returns sedHendelse.rinaSakId
Expand All @@ -37,7 +37,7 @@ class GcpStorageTestHelper {
}
}

private fun createMockPage(blob: Blob, sedHendelse: SedHendelse, lagretJournalPost: LagretJournalpostMedSedInfo): Page<Blob> {
private fun createMockPage(blob: Blob, sedHendelse: SedHendelse, lagretJournalPost: JournalpostMedSedInfo): Page<Blob> {
return mockk<Page<Blob>>().apply {
every { iterateAll() } returns mutableListOf(blob)
every { values } returns mockk<MutableIterable<Blob>>().apply {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import io.mockk.slot
import no.nav.eessi.pensjon.eux.model.SedHendelse
import no.nav.eessi.pensjon.eux.model.buc.DocumentsItem
import no.nav.eessi.pensjon.journalforing.JournalforingService
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.JournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.OpprettJournalpostRequest
import no.nav.eessi.pensjon.journalforing.VurderBrukerInfo
import no.nav.eessi.pensjon.listeners.SedMottattListener
Expand Down Expand Up @@ -179,12 +179,11 @@ abstract class IntegrasjonsBase {
// del 2: sender manuel generering av JP og oppgave som batch / gcp storage ville gjort
if (journalpostRequest.isCaptured && journalpostRequest.captured.bruker == null) {
journalforingService.lagJournalpostOgOppgave(
LagretJournalpostMedSedInfo(
JournalpostMedSedInfo(
journalpostRequest = journalpostRequest.captured,
mapJsonToAny<SedHendelse>(hendelse),
HendelseType.MOTTATT
),
blobId = mockk()
)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,12 +267,11 @@ internal open class JournalforingTestBase {
) {
if (journalpostRequest.isCaptured && journalpostRequest.captured.bruker == null) {
journalforingService.lagJournalpostOgOppgave(
LagretJournalpostMedSedInfo(
JournalpostMedSedInfo(
journalpostRequest = journalpostRequest.captured,
mapJsonToAny<SedHendelse>(hendelse),
hendelseType
),
blobId = mockk()
)
)
}
}
Expand All @@ -293,9 +292,10 @@ internal open class JournalforingTestBase {
land: String = "NOR",
hendelseType: HendelseType = SENDT,
bucType: BucType = P_BUC_01,
sedType: SedType = SedType.P8000,
assertBlock: (OpprettJournalpostRequest) -> Unit
) {
val sed = SED.generateSedToClass<P8000>(createSed(sedType = SedType.P8000, fnr = fnr, eessiSaknr = sakId))
val sed = SED.generateSedToClass<P8000>(createSed(sedType = sedType, fnr = fnr, eessiSaknr = sakId))
initCommonMocks(sed, bucType = bucType)

every { personService.harAdressebeskyttelse(any()) } returns false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package no.nav.eessi.pensjon.integrasjonstest.saksflyt

import com.google.cloud.storage.BlobId
import io.mockk.*
import no.nav.eessi.pensjon.eux.model.BucType.P_BUC_01
import no.nav.eessi.pensjon.eux.model.SedHendelse
import no.nav.eessi.pensjon.eux.model.SedType.*
import no.nav.eessi.pensjon.eux.model.buc.Buc
import no.nav.eessi.pensjon.eux.model.buc.SakStatus.LOPENDE
Expand All @@ -19,7 +17,6 @@ import no.nav.eessi.pensjon.eux.model.sed.P8000
import no.nav.eessi.pensjon.eux.model.sed.SED
import no.nav.eessi.pensjon.eux.model.sed.SivilstandItem
import no.nav.eessi.pensjon.eux.model.sed.StatsborgerskapItem
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.OpprettJournalpostRequest
import no.nav.eessi.pensjon.journalforing.krav.BehandleHendelseModel
import no.nav.eessi.pensjon.journalforing.krav.HendelseKode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,13 +344,12 @@ internal class PBuc03IntegrationTest : JournalforingTestBase() {

if (!journalpostResponse.journalpostferdigstilt && oppgaveMeldingList.isEmpty() && journalpostRequest.captured.bruker == null) {
journalforingService.lagJournalpostOgOppgave(
LagretJournalpostMedSedInfo(
JournalpostMedSedInfo(
journalpostRequest = journalpostRequest.captured,
mapJsonToAny<SedHendelse>(hendelse),
hendelseType
),
"",
BlobId.of("", "")
""
)
}
val kravMeldingList: List<BehandleHendelseModel> = kravmeldingSlot.map {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package no.nav.eessi.pensjon.integrasjonstest.saksflyt

import com.google.cloud.storage.BlobId
import io.mockk.*
import no.nav.eessi.pensjon.eux.model.BucType.P_BUC_05
import no.nav.eessi.pensjon.eux.model.SedHendelse
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.eux.model.buc.Buc
import no.nav.eessi.pensjon.eux.model.buc.SakStatus.*
Expand All @@ -14,7 +12,6 @@ import no.nav.eessi.pensjon.eux.model.document.SedStatus
import no.nav.eessi.pensjon.eux.model.sed.P5000
import no.nav.eessi.pensjon.eux.model.sed.P8000
import no.nav.eessi.pensjon.eux.model.sed.SED
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.OpprettJournalpostRequest
import no.nav.eessi.pensjon.journalforing.opprettoppgave.OppgaveMelding
import no.nav.eessi.pensjon.journalforing.opprettoppgave.OppgaveType
Expand All @@ -34,8 +31,11 @@ import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent
import no.nav.eessi.pensjon.shared.person.Fodselsnummer
import no.nav.eessi.pensjon.utils.mapJsonToAny
import no.nav.eessi.pensjon.utils.toJson
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test

@DisplayName("P_BUC_05 - IntegrationTest")
internal class PBuc05IntegrationTest : JournalforingTestBase() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package no.nav.eessi.pensjon.integrasjonstest.saksflyt

import com.google.cloud.storage.BlobId
import io.mockk.*
import no.nav.eessi.pensjon.eux.model.BucType.P_BUC_10
import no.nav.eessi.pensjon.eux.model.SedHendelse
Expand All @@ -13,7 +12,7 @@ import no.nav.eessi.pensjon.eux.model.document.ForenkletSED
import no.nav.eessi.pensjon.eux.model.document.SedStatus
import no.nav.eessi.pensjon.eux.model.sed.*
import no.nav.eessi.pensjon.eux.model.sed.KravType.*
import no.nav.eessi.pensjon.journalforing.LagretJournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.JournalpostMedSedInfo
import no.nav.eessi.pensjon.journalforing.OpprettJournalpostRequest
import no.nav.eessi.pensjon.journalforing.opprettoppgave.OppgaveMelding
import no.nav.eessi.pensjon.journalforing.opprettoppgave.OppgaveType
Expand Down Expand Up @@ -937,13 +936,12 @@ internal class PBuc10IntegrationTest : JournalforingTestBase() {
if (!meldingSlot.isCaptured && journalpostRequest.captured.bruker == null) {
println("""Opprettet manuell journalføring: | ${journalpostRequest.captured.toJson()}""".trimMargin())
journalforingService.lagJournalpostOgOppgave(
LagretJournalpostMedSedInfo(
JournalpostMedSedInfo(
journalpostRequest = journalpostRequest.captured,
mapJsonToAny<SedHendelse>(hendelse),
hendelseType
),
"",
BlobId.of("", "")
"eessi-pensjon"
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ class JournalforingServiceMedGCPTest {
every { getContent() } returns GjennySak("123", "").toJson().toByteArray()
} andThen mockk<Blob>().apply {
every { exists() } returns true
every { getContent() } returns Pair(LagretJournalpostMedSedInfo(mockk(relaxed = true), mockk(relaxed = true), mockk(relaxed = true)), mockk<BlobId>(relaxed = true)).toJson().toByteArray()
every { getContent() } returns Pair(JournalpostMedSedInfo(mockk(relaxed = true), mockk(relaxed = true), mockk(relaxed = true)), mockk<BlobId>(relaxed = true)).toJson().toByteArray()
}
val blobList = mockk<Page<Blob>>().apply {
every { iterateAll() } returns listOf(mockk<Blob>("blob").apply {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package no.nav.eessi.pensjon.journalforing

import io.mockk.every
import io.mockk.justRun
import io.mockk.mockk
import io.mockk.slot
import io.mockk.*
import no.nav.eessi.pensjon.eux.model.SedHendelse
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.eux.model.buc.SakStatus
Expand Down Expand Up @@ -58,8 +55,6 @@ internal class JournalforingServiceMedJournalpostTest : JournalforingServiceBas
val journalpostRequest = requestSlot.captured
val erMuligAaFerdigstille = forsoekFedrigstillSlot.captured

println(journalpostRequest)

Assertions.assertEquals("22874955", journalpostRequest.sak?.fagsakid)
Assertions.assertEquals(true, erMuligAaFerdigstille)

Expand Down Expand Up @@ -95,6 +90,34 @@ internal class JournalforingServiceMedJournalpostTest : JournalforingServiceBas
Assertions.assertEquals(false, erMuligAaFerdigstille)
}

@Test
fun `Sendt P_BUC_06 med manglende bruker skal lage journalpost`() {
val hendelse = javaClass.getResource("/eux/hendelser/P_BUC_06_P6000.json")!!.readText()
val sedHendelse = SedHendelse.fromJson(hendelse)

// val identifisertPerson = identifisertPersonPDL(
// AKTOERID,
// sedPersonRelasjon(LEALAUS_KAKE, Relasjon.FORSIKRET, rinaDocumentId = RINADOK_ID)
// )

val forsoekFerdigstillSlot = slot<Boolean>()
every { journalpostKlient.opprettJournalpost(any(), capture(forsoekFerdigstillSlot), any()) } returns mockk(relaxed = true)

journalforingService.journalfor(
sedHendelse,
HendelseType.SENDT,
null,
LEALAUS_KAKE.getBirthDate(),
currentSed = SED(type = SedType.P6000),
identifisertePersoner = 1,
navAnsattInfo = navAnsattInfo(),
kravTypeFraSed = null,
)
val erMuligAaFerdigstille = forsoekFerdigstillSlot.captured

Assertions.assertEquals(false, erMuligAaFerdigstille)
}

@Test
fun `Innkommende P2000 fra utlanded som oppfyller alle krav til maskinell journalføring skal opprette behandle SED oppgave`() {

Expand Down
Loading

0 comments on commit e8c4f36

Please sign in to comment.