Skip to content

Commit

Permalink
Merge branch 'main' into EY-4773-sanksjon
Browse files Browse the repository at this point in the history
  • Loading branch information
andreasbalevik authored Dec 2, 2024
2 parents 3740a00 + df71874 commit ffeb846
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ import java.time.YearMonth
import java.util.UUID

interface GrunnlagService {
suspend fun grunnlagFinnes(
sakId: SakId,
brukerTokenInfo: BrukerTokenInfo,
): Boolean

suspend fun leggInnNyttGrunnlagSak(
sak: Sak,
persongalleri: Persongalleri,
Expand Down Expand Up @@ -74,6 +79,11 @@ interface GrunnlagService {
class GrunnlagServiceImpl(
private val grunnlagKlient: GrunnlagKlient,
) : GrunnlagService {
override suspend fun grunnlagFinnes(
sakId: SakId,
brukerTokenInfo: BrukerTokenInfo,
): Boolean = grunnlagKlient.grunnlagFinnes(sakId, brukerTokenInfo)

override suspend fun leggInnNyttGrunnlagSak(
sak: Sak,
persongalleri: Persongalleri,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ import java.time.YearMonth
import java.util.UUID

interface GrunnlagKlient : Pingable {
suspend fun grunnlagFinnes(
sakId: SakId,
brukerTokenInfo: BrukerTokenInfo,
): Boolean

suspend fun finnPersonOpplysning(
behandlingId: UUID,
opplysningsType: Opplysningstype,
Expand Down Expand Up @@ -132,6 +137,22 @@ class GrunnlagKlientImpl(
private val resourceUrl = config.getString("grunnlag.resource.url")
private val resourceApiUrl = resourceUrl.plus("/api")

override suspend fun grunnlagFinnes(
sakId: SakId,
brukerTokenInfo: BrukerTokenInfo,
): Boolean {
logger.info("Sjekker om det allerede finnes grunnlag på sak=$sakId")

return downstreamResourceClient
.get(
Resource(clientId, "$resourceApiUrl/grunnlag/sak/$sakId/grunnlag-finnes"),
brukerTokenInfo = brukerTokenInfo,
).mapBoth(
success = { deserialize(it.response!!.toString()) },
failure = { throw it },
)
}

override suspend fun finnPersonOpplysning(
behandlingId: UUID,
opplysningsType: Opplysningstype,
Expand Down
29 changes: 23 additions & 6 deletions apps/etterlatte-behandling/src/main/kotlin/sak/SakService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import no.nav.etterlatte.libs.common.grunnlag.opplysningstyper.Opplysningstype
import no.nav.etterlatte.libs.common.person.AdressebeskyttelseGradering
import no.nav.etterlatte.libs.common.person.HentAdressebeskyttelseRequest
import no.nav.etterlatte.libs.common.person.PersonIdent
import no.nav.etterlatte.libs.common.person.maskerFnr
import no.nav.etterlatte.libs.common.sak.Sak
import no.nav.etterlatte.libs.common.sak.SakId
import no.nav.etterlatte.libs.common.sak.SakMedGraderingOgSkjermet
Expand Down Expand Up @@ -236,24 +237,38 @@ class SakServiceImpl(
): Sak {
val sak = finnEllerOpprettSak(fnr, type, overstyrendeEnhet)

leggTilGrunnlag(sak)

return sak
}

private fun leggTilGrunnlag(sak: Sak) {
runBlocking {
val harGrunnlag = grunnlagService.grunnlagFinnes(sak.id, HardkodaSystembruker.opprettGrunnlag)

if (harGrunnlag) {
logger.info("Finnes allerede grunnlag på sak=${sak.id}")
return@runBlocking
}
logger.info("Fant ingen grunnlag på sak=${sak.id} - oppretter grunnlag")

val kilde = Grunnlagsopplysning.Gjenny(Fagsaksystem.EY.navn, Tidspunkt.now())
val spraak = hentSpraak(sak.ident)
val spraakOpplysning = lagOpplysning(Opplysningstype.SPRAAK, kilde, spraak.verdi.toJsonNode())

grunnlagService.leggInnNyttGrunnlagSak(
sak,
Persongalleri(sak.ident),
HardkodaSystembruker.opprettGrunnlag,
)
}
val kilde = Grunnlagsopplysning.Gjenny(Fagsaksystem.EY.navn, Tidspunkt.now())
val spraak = hentSpraak(sak.ident)
val spraakOpplysning = lagOpplysning(Opplysningstype.SPRAAK, kilde, spraak.verdi.toJsonNode())
runBlocking {

grunnlagService.leggTilNyeOpplysningerBareSak(
sakId = sak.id,
opplysninger = NyeSaksopplysninger(sak.id, listOf(spraakOpplysning)),
HardkodaSystembruker.opprettGrunnlag,
)
logger.info("Grunnlag opprettet på sak=${sak.id}")
}
return sak
}

override fun oppdaterIdentForSak(
Expand Down Expand Up @@ -321,6 +336,8 @@ class SakServiceImpl(
): Sak {
var sak = finnSakForPerson(fnr, type)
if (sak == null) {
logger.info("Fant ingen sak av type=$type på person ${fnr.maskerFnr()} - oppretter ny sak")

val enhet = sjekkEnhetFraNorg(fnr, type, overstyrendeEnhet)
sak = dao.opprettSak(fnr, type, enhet)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ internal class EgenAnsattServiceTest(
mockk<GrunnlagService> {
coEvery { leggInnNyttGrunnlagSak(any(), any(), any()) } just runs
coEvery { leggTilNyeOpplysningerBareSak(any(), any(), any()) } just runs
coEvery { grunnlagFinnes(any(), any()) } returns false
}
val featureToggleService = mockk<FeatureToggleService>()
val skjermingKlient = mockk<SkjermingKlient>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ import java.time.YearMonth
import java.util.UUID

class GrunnlagKlientTest : GrunnlagKlient {
override suspend fun grunnlagFinnes(
sakId: SakId,
brukerTokenInfo: BrukerTokenInfo,
): Boolean = false

override suspend fun finnPersonOpplysning(
behandlingId: UUID,
opplysningsType: Opplysningstype,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ internal class SakServiceTest {
coEvery { skjermingKlient.personErSkjermet(KONTANT_FOT.value) } returns false
every { sakSkrivDao.markerSakerMedSkjerming(any(), any()) } just runs
every { sakSkrivDao.oppdaterAdresseBeskyttelse(sakId1, AdressebeskyttelseGradering.UGRADERT) } returns 1

coEvery { grunnlagservice.grunnlagFinnes(any(), any()) } returns true
every {
norg2Klient.hentArbeidsfordelingForOmraadeOgTema(
ArbeidsFordelingRequest(
Expand Down Expand Up @@ -466,6 +466,7 @@ internal class SakServiceTest {
coEvery { pdlTjenesterKlient.hentPdlFolkeregisterIdenter(any()) } returns dummyPdlResponse(KONTANT_FOT.value)
every { sakLesDao.finnSaker(KONTANT_FOT.value, SakType.BARNEPENSJON) } returns emptyList()
coEvery { skjermingKlient.personErSkjermet(KONTANT_FOT.value) } returns false
coEvery { grunnlagservice.grunnlagFinnes(any(), any()) } returns true
every { sakSkrivDao.markerSakerMedSkjerming(any(), any()) } just runs
every {
sakSkrivDao.opprettSak(KONTANT_FOT.value, SakType.BARNEPENSJON, Enheter.PORSGRUNN.enhetNr)
Expand Down Expand Up @@ -563,6 +564,7 @@ internal class SakServiceTest {
every { sakSkrivDao.oppdaterEnheterPaaSaker(any()) } just runs
every { sakSkrivDao.oppdaterAdresseBeskyttelse(sakId1, AdressebeskyttelseGradering.UGRADERT) } returns 1
every { sakSkrivDao.markerSakerMedSkjerming(any(), any()) } just runs
coEvery { grunnlagservice.grunnlagFinnes(any(), any()) } returns true

every {
norg2Klient.hentArbeidsfordelingForOmraadeOgTema(
Expand Down

0 comments on commit ffeb846

Please sign in to comment.