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

Bruker periode fra validert k9format søknad vid innsending #1050

Merged
merged 6 commits into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions nais/dev-fss.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@ spec:
- name: SAF_HENTE_DOKUMENT_SCOPES
value: api://dev-fss.teamdokumenthandtering.saf-q1/.default

# SAK
- name: SAK_BASE_URL
value: https://sak-q1.dev.intern.nav.no

# Gosys / Oppgave:
- name: GOSYS_BASE_URL
value: http://oppgave-q1.oppgavehandtering
Expand Down
4 changes: 0 additions & 4 deletions nais/prod-fss.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,6 @@ spec:
- name: SAF_HENTE_DOKUMENT_SCOPES
value: api://prod-fss.teamdokumenthandtering.saf/.default

# SAK
- name: SAK_BASE_URL
value: https://sak.intern.nav.no

# Gosys / Oppgave:
- name: GOSYS_BASE_URL
value: http://oppgave.oppgavehandtering
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import no.nav.k9punsj.integrasjoner.dokarkiv.SaksType
import no.nav.k9punsj.integrasjoner.dokarkiv.Tema
import no.nav.k9punsj.integrasjoner.k9sak.K9SakService
import no.nav.k9punsj.integrasjoner.pdl.PdlService
import no.nav.k9punsj.integrasjoner.sak.SakClient
import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.metrikker.SøknadMetrikkService
import no.nav.k9punsj.utils.objectMapper
Expand All @@ -45,7 +44,6 @@ class SoknadService(
private val søknadMetrikkService: SøknadMetrikkService,
private val safGateway: SafGateway,
private val k9SakService: K9SakService,
private val sakClient: SakClient,
private val pdlService: PdlService,
private val dokarkivGateway: DokarkivGateway
) {
Expand Down Expand Up @@ -97,6 +95,7 @@ class SoknadService(
* Bruker fagsakId fra journalposten om den finnes, ellers henter vi den fra k9sak
* Kaster feil om vi har fler æn 1 unik fagsakId
*/
val søknadEntitet = requireNotNull(søknadRepository.hentSøknad(søknad.søknadId.id))
val k9Saksnummer = if(fagsakIder.isNotEmpty()) {
if(fagsakIder.size > 1) {
throw IllegalStateException("Fant flere fagsakIder på innsending: ${fagsakIder.map { it.second }}")
Expand All @@ -107,7 +106,8 @@ class SoknadService(
fagsakIder.first().second
} else {
val k9Respons = k9SakService.hentEllerOpprettSaksnummer(
søknadEntitet = hentSøknad(søknad.søknadId.id)!!,
ramrock93 marked this conversation as resolved.
Show resolved Hide resolved
k9FormatSøknad = søknad,
søknadEntitet = søknadEntitet,
fagsakYtelseType = fagsakYtelseType
)
require(k9Respons.second.isNullOrBlank()) { "Feil ved henting av saksnummer: ${k9Respons.second}" }
Expand All @@ -117,9 +117,6 @@ class SoknadService(

require(k9Saksnummer != null) { "K9Saksnummer er null" }

// Sikkrer att saken kommer opp som valg i modia, ikke vart implementert sedan flytten till synkron
//sakClient.forsikreSakskoblingFinnes(k9Saksnummer, søknad.søker.toString(), UUID.randomUUID().toString())

// Ferdigstill journalposter
val søkerNavn = pdlService.hentPersonopplysninger(setOf(søkerFnr))
require(søkerNavn.isNotEmpty()) { throw IllegalStateException("Fant ikke søker i PDL") }
Expand Down Expand Up @@ -186,7 +183,7 @@ class SoknadService(
dokumentkategori = DokumentKategori.IS,
fagsystem = FagsakSystem.K9,
sakstype = SaksType.FAGSAK,
saksnummer = k9Saksnummer!!,
saksnummer = k9Saksnummer,
brukerIdent = søkerFnr,
avsenderNavn = punsjetAvSaksbehandler,
pdf = pdf,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,8 @@ interface K9SakService {

suspend fun hentFagsaker(søker: String): Pair<Set<Fagsak>?, String?>

/**
* Henter saksnummer fra K9Sak, hvis det ikke finnes oppretter vi en ny fagsak.
* Periode hentes fra soknaden å defaulter til 1/1 og 31/12 hvis fom eller tom ikke er satt.
*/
suspend fun hentEllerOpprettSaksnummer(
k9FormatSøknad: Søknad,
søknadEntitet: SøknadEntitet,
fagsakYtelseType: FagsakYtelseType
): Pair<String?, String?>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import no.nav.k9.sak.kontrakt.arbeidsforhold.InntektArbeidYtelseArbeidsforholdV2
import no.nav.k9.sak.kontrakt.mottak.FinnEllerOpprettSak
import no.nav.k9.sak.typer.Periode
import no.nav.k9.søknad.Søknad
import no.nav.k9.søknad.ytelse.Ytelse
import no.nav.k9punsj.StandardProfil
import no.nav.k9punsj.domenetjenester.PersonService
import no.nav.k9punsj.felles.ZoneUtils.Oslo
Expand Down Expand Up @@ -64,7 +65,6 @@ class K9SakServiceImpl(
internal const val hentIntektsmeldingerUrl = "/behandling/iay/im-arbeidsforhold-v2"
internal const val sokFagsakerUrl = "/fagsak/sok"
internal const val sendInnSøknadUrl = "/fordel/journalposter"
internal const val sokFagsaker = "/fagsak/sok"
internal const val finnFagsak = "/fordel/fagsak/sok"
}

Expand Down Expand Up @@ -134,7 +134,7 @@ class K9SakServiceImpl(
}
val resultat = objectMapper().readValue<List<Periode>>(json)
val liste = resultat
.map { periode -> PeriodeDto(periode.fom, periode.tom) }.toList()
.map { PeriodeDto(it.fom, it.tom) }.toList()
Pair(liste, null)
} catch (e: Exception) {
Pair(null, "Feilet deserialisering $e")
Expand Down Expand Up @@ -192,9 +192,11 @@ class K9SakServiceImpl(
}

override suspend fun hentEllerOpprettSaksnummer(
k9FormatSøknad: Søknad,
søknadEntitet: SøknadEntitet,
fagsakYtelseType: no.nav.k9punsj.felles.FagsakYtelseType
): Pair<String?, String?> {
// Bruker k9saksnummergrunnlag for å mappe
val k9SaksnummerGrunnlag = søknadEntitet.tilK9saksnummerGrunnlag(fagsakYtelseType)

val søkerAktørId = personService.finnEllerOpprettPersonVedNorskIdent(k9SaksnummerGrunnlag.søker).aktørId
Expand All @@ -206,17 +208,16 @@ class K9SakServiceImpl(
if (!k9SaksnummerGrunnlag.annenPart.isNullOrEmpty() && k9SaksnummerGrunnlag.annenPart != "null") {
personService.finnEllerOpprettPersonVedNorskIdent(k9SaksnummerGrunnlag.annenPart).aktørId
} else null
val periode = Periode(
k9SaksnummerGrunnlag.periode?.fom ?: LocalDate.now().withMonth(1).withDayOfMonth(1),
k9SaksnummerGrunnlag.periode?.tom ?: LocalDate.now().withMonth(12).withDayOfMonth(31)
)

val ytelseTypeKode = FagsakYtelseType.fraKode(fagsakYtelseType.kode).kode
val k9sakPeriode = no.nav.k9.sak.typer.Periode(k9FormatSøknad.getYtelse<Ytelse>().søknadsperiode.iso8601)

val payloadMedAktørId = FinnEllerOpprettSak(
FagsakYtelseType.fraKode(k9SaksnummerGrunnlag.søknadstype.kode).kode,
ytelseTypeKode,
søkerAktørId,
pleietrengendeAktørId,
annenpartAktørId,
periode,
k9sakPeriode,
)

val body = kotlin.runCatching { objectMapper().writeValueAsString(payloadMedAktørId) }.getOrNull()
Expand Down Expand Up @@ -296,94 +297,92 @@ class K9SakServiceImpl(
private fun SøknadEntitet.tilK9saksnummerGrunnlag(
fagsakYtelseType: no.nav.k9punsj.felles.FagsakYtelseType
): HentK9SaksnummerGrunnlag {
// Kontrakt fra k9-sak FagsakYtelseType
// https://github.com/navikt/k9-sak/blob/83b654701d242629a20eabbab642c399c6c27182/kodeverk/src/main/java/no/nav/k9/kodeverk/behandling/FagsakYtelseType.java#L57
return when (fagsakYtelseType) {
no.nav.k9punsj.felles.FagsakYtelseType.PLEIEPENGER_SYKT_BARN -> {
val psbVisning = this.tilPsbvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = psbVisning.soekerId!!,
pleietrengende = psbVisning.barn?.norskIdent,
søker = requireNotNull(psbVisning.soekerId),
pleietrengende = requireNotNull(psbVisning.barn).norskIdent,
annenPart = null,
periode = psbVisning.soeknadsperiode?.firstOrNull()
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OMSORGSPENGER -> {
val omsVisning = this.tilOmsvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = omsVisning.soekerId!!,
søker = requireNotNull(omsVisning.soekerId),
pleietrengende = null,
annenPart = null,
periode = omsVisning.fravaersperioder?.firstOrNull()?.periode
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OMSORGSPENGER_UTBETALING -> {
val omsUtvisning = this.tilOmsUtvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = omsUtvisning.soekerId!!,
søker = requireNotNull(omsUtvisning.soekerId),
pleietrengende = null,
annenPart = null,
periode = omsUtvisning.periodeForHeleAretMedFravaer()
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OMSORGSPENGER_ALENE_OMSORGEN -> {
val omsAoVisning = this.tilOmsAOvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = omsAoVisning.soekerId!!,
pleietrengende = omsAoVisning.barn!!.norskIdent,
søker = requireNotNull(omsAoVisning.soekerId),
pleietrengende = requireNotNull(omsAoVisning.barn).norskIdent,
annenPart = null,
periode = omsAoVisning.periode
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OMSORGSPENGER_MIDLERTIDIG_ALENE -> {
val omsMaVisning = this.tilOmsMAvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = omsMaVisning.soekerId!!,
søker = requireNotNull(omsMaVisning.soekerId),
pleietrengende = null,
annenPart = omsMaVisning.annenForelder!!.norskIdent,
periode = omsMaVisning.annenForelder.periode
annenPart = requireNotNull(omsMaVisning.annenForelder).norskIdent,
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OMSORGSPENGER_KRONISK_SYKT_BARN -> {
val omsKsVisning = this.tilOmsKSBvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = omsKsVisning.soekerId!!,
pleietrengende = omsKsVisning.barn!!.norskIdent,
søker = requireNotNull(omsKsVisning.soekerId),
pleietrengende = requireNotNull(omsKsVisning.barn).norskIdent,
annenPart = null,
periode = omsKsVisning.mottattDato?.periodeDtoForHeleAret()
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.PLEIEPENGER_LIVETS_SLUTTFASE -> {
val tilPlsvisning = this.tilPlsvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = tilPlsvisning.soekerId!!,
pleietrengende = tilPlsvisning.pleietrengende!!.norskIdent,
søker = requireNotNull(tilPlsvisning.soekerId),
pleietrengende = requireNotNull(tilPlsvisning.pleietrengende).norskIdent,
annenPart = null,
periode = tilPlsvisning.soeknadsperiode?.firstOrNull()
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

no.nav.k9punsj.felles.FagsakYtelseType.OPPLÆRINGSPENGER -> {
val tilOlpvisning = this.tilOlpvisning()
HentK9SaksnummerGrunnlag(
søknadstype = fagsakYtelseType,
søker = tilOlpvisning.soekerId!!,
pleietrengende = tilOlpvisning.barn!!.norskIdent,
søker = requireNotNull(tilOlpvisning.soekerId),
pleietrengende = requireNotNull(tilOlpvisning.barn).norskIdent,
annenPart = null,
periode = tilOlpvisning.soeknadsperiode?.firstOrNull()
periode = null
albrektsson marked this conversation as resolved.
Show resolved Hide resolved
)
}

Expand All @@ -392,13 +391,6 @@ class K9SakServiceImpl(
}
}

private fun LocalDate.periodeDtoForHeleAret(): PeriodeDto {
return PeriodeDto(
fom = this.withMonth(1).withDayOfMonth(1),
tom = this.withMonth(12).withDayOfMonth(31)
)
}

internal companion object {
private suspend fun hentCallId() = try {
coroutineContext.hentCallId()
Expand Down Expand Up @@ -436,13 +428,6 @@ class K9SakServiceImpl(
val pleietrengende: String? = null,
)

data class HentSaksnummerForPeriodeDto(
val ytelseType: FagsakYtelseType,
val bruker: String,
val pleietrengende: List<String>? = null,
val periode: PeriodeDto?
)

data class FinnFagsakDto(
val ytelseType: FagsakYtelseType,
val aktørId: String,
Expand Down
71 changes: 0 additions & 71 deletions src/main/kotlin/no/nav/k9punsj/integrasjoner/sak/SakClient.kt

This file was deleted.

2 changes: 0 additions & 2 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ no.nav:
gosys:
base_url: ${GOSYS_BASE_URL}
scope: ${GOSYS_BASE_SCOPE}
sak:
base_url: ${SAK_BASE_URL}
security:
sts:
client:
Expand Down
4 changes: 1 addition & 3 deletions src/test/kotlin/no/nav/k9punsj/MockConfiguration.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import no.nav.k9punsj.wiremock.getGosysBaseUrl
import no.nav.k9punsj.wiremock.getK9sakBaseUrl
import no.nav.k9punsj.wiremock.getPdlBaseUrl
import no.nav.k9punsj.wiremock.getSafBaseUrl
import no.nav.k9punsj.wiremock.getSakBaseUrl
import java.net.URI

internal object MockConfiguration {
Expand Down Expand Up @@ -65,8 +64,7 @@ internal object MockConfiguration {
"AAREG_SCOPE" to "aareg-services-nais/.default",
"EREG_BASE_URL" to wireMockServer.getEregBaseUrl(),
"SEND_BREVBESTILLING_TIL_K9_FORMIDLING" to "privat-k9-dokumenthendelse",
"SEND_AKSJONSPUNKTHENDELSE_TIL_K9LOS" to "privat-k9punsj-aksjonspunkthendelse-v1",
"SAK_BASE_URL" to wireMockServer.getSakBaseUrl(),
"SEND_AKSJONSPUNKTHENDELSE_TIL_K9LOS" to "privat-k9punsj-aksjonspunkthendelse-v1"
)
}
}
Loading