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

distribuer feltet arsakTilInnsending (ny, endring) til spleis #614

Merged
merged 5 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from 4 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
25 changes: 9 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
# Syfoinntektsmelding

[![Actions Status](https://github.com/navikt/syfoinntektsmelding/workflows/Bygg%20og%20deploy%20til%20prod/badge.svg)](https://github.com/navikt/syfoinntektsmelding/actions)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=navikt_syfoinntektsmelding&metric=alert_status)](https://sonarcloud.io/dashboard?id=navikt_syfoinntektsmelding)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=navikt_syfoinntektsmelding&metric=coverage)](https://sonarcloud.io/dashboard?id=navikt_syfoinntektsmelding)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=navikt_syfoinntektsmelding&metric=security_rating)](https://sonarcloud.io/dashboard?id=navikt_syfoinntektsmelding)
[![Known Vulnerabilities](https://snyk.io/test/github/navikt/syfoinntektsmelding/badge.svg)](https://app.snyk.io/org/helsearbeidsgiver/project/5473b422-69d5-4b60-8596-0b7402691762)

## Formål
Applikasjonen tar imot innkommende inntektsmeldinger for sykepenger, journalfører dette og oppretter oppgaver i
Gosys for behandlende enhet. Dersom behandlede enhet ikke er funnet blir det opprettet en fordelingsoppgave istedet.
Expand Down Expand Up @@ -57,16 +51,15 @@ i køen for Oppgave i avsnittet over.
## Utvikling

### Kjøre applikasjonen lokalt
Applikasjonen er avhengig av mange tjenester og det enkleste er å starte den inne fra en
tynnklient hvor tjenestene er
tilgjengelige.

Applikasjonen må kjøres som en spring-boot applikasjon med local som profil. For å kunne starte
så MÅ du sette tre
environment variabler ellers vil den ikke starte. Det er filen `application-local.properties`
som bestemmer hvilke tjenster som blir benytter lokalt. For å kunne kjøre må du påse at alle
disse miljø innstillingene er riktig og fylle ut innstillinger for passord da de nå er satt
til dummy.
Om du ønsker å kjøre applikasjonen lokalt, må du starte kafka, zookeeper og database fra lokal docker:

``
cd docker/local
docker-compose up --remove-orphans
``

Og deretter starte App.kt fra din IDE


### Ktlint

Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ apacheKafkaStreamsVersion=3.8.0
assertJVersion=3.23.1
bakgrunnsjobbVersion=1.0.4
brukernotifikasjonSchemasVersion=1.2021.01.18-11.12-b9c8c40b98d1
cxfVersion=3.5.2
cxfVersion=3.5.8
flywayVersion=10.1.0
guavaVersion=31.0.1-jre
hagDomeneInntektsmeldingVersion=0.1.6
hagUtilsVersion=0.9.0
hikariVersion=5.0.1
imkontraktVersion=2024.05.15-12-49-09d7b
imkontraktVersion=2025.01.09-02-19-08031
jacksonVersion=2.13.3
jetbrainsStdLib=kotlin-stdlib-jdk8
joarkHendelseVersion=1.1.6
Expand All @@ -30,7 +30,7 @@ koinVersion=3.4.3
kotlinCoroutinesVersion=1.6.0-native-mt
kotlinLibsVersion=kotlin-stdlib-jdk8
kotlinxSerializationVersion=1.6.0
ktorVersion=2.3.12
ktorVersion=2.3.5
logbackClassicVersion=1.4.8
logbackVersion=7.2
micrometerVersion=1.8.3
Expand Down
13 changes: 13 additions & 0 deletions src/main/kotlin/no/nav/syfo/mapping/InntektsmeldingMapper.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.syfo.mapping

import no.nav.inntektsmeldingkontrakt.Arbeidsgivertype
import no.nav.inntektsmeldingkontrakt.ArsakTilInnsending
import no.nav.inntektsmeldingkontrakt.AvsenderSystem
import no.nav.inntektsmeldingkontrakt.EndringIRefusjon
import no.nav.inntektsmeldingkontrakt.GjenopptakelseNaturalytelse
Expand All @@ -13,6 +14,9 @@ import no.nav.inntektsmeldingkontrakt.Status
import no.nav.syfo.domain.inntektsmelding.Gyldighetsstatus
import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
import no.nav.syfo.domain.inntektsmelding.SpinnInntektEndringAarsak
import org.slf4j.LoggerFactory

private val sikkerlogger = LoggerFactory.getLogger("tjenestekall")

fun mapInntektsmeldingKontrakt(
inntektsmelding: Inntektsmelding,
Expand Down Expand Up @@ -52,8 +56,17 @@ fun mapInntektsmeldingKontrakt(
naerRelasjon = inntektsmelding.nærRelasjon,
avsenderSystem = mapAvsenderSystem(inntektsmelding.avsenderSystem),
inntektEndringAarsak = inntektsmelding.rapportertInntekt?.endringAarsakData?.tilInntektEndringAarsak(),
arsakTilInnsending = konverterArsakTilInnsending(inntektsmelding.arsakTilInnsending),
)

fun konverterArsakTilInnsending(arsakTilInnsending: String): ArsakTilInnsending =
try {
ArsakTilInnsending.valueOf(arsakTilInnsending)
} catch (e: IllegalArgumentException) {
sikkerlogger.error("Ugyldig verdi for årsakTilInnsending: $arsakTilInnsending, returnerer ${ArsakTilInnsending.Ny}")
ArsakTilInnsending.Ny
}

fun SpinnInntektEndringAarsak.tilInntektEndringAarsak(): InntektEndringAarsak =
InntektEndringAarsak(
aarsak = aarsak,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.syfo.mapping

import no.nav.helsearbeidsgiver.domene.inntektsmelding.deprecated.BegrunnelseIngenEllerRedusertUtbetalingKode
import no.nav.inntektsmeldingkontrakt.ArsakTilInnsending
import no.nav.syfo.domain.Periode
import no.nav.syfo.domain.inntektsmelding.Gyldighetsstatus
import no.nav.syfo.domain.inntektsmelding.Kontaktinformasjon
Expand All @@ -12,6 +13,8 @@ import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Assertions.assertNull
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Test
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import java.math.BigDecimal
import java.time.LocalDate
import java.util.UUID
Expand Down Expand Up @@ -113,4 +116,21 @@ class InntektsmeldingMapperFraInternSyfoTilHAGKontraktTest {
mapInntektsmeldingKontrakt(inntektsmelding, "123", Gyldighetsstatus.GYLDIG, "arkivref123", UUID.randomUUID().toString())
assertTrue(kontraktIM.matcherSpleis)
}

@ParameterizedTest
@ValueSource(strings = arrayOf("Ny", "ny", "TEST", "ugyldig", "", "ENDRING", "Endret"))
fun `mapInntektsmeldingKontrakt felt arsakTilInnsending settes til defaultverdi Ny ved ugyldige verdier`(aarsak: String) {
val inntektsmelding = grunnleggendeInntektsmelding.copy(arsakTilInnsending = aarsak)
val kontraktIM =
mapInntektsmeldingKontrakt(inntektsmelding, "123", Gyldighetsstatus.GYLDIG, "arkivref123", UUID.randomUUID().toString())
assertEquals(ArsakTilInnsending.Ny, kontraktIM.arsakTilInnsending)
}

@Test
fun `mapInntektsmeldingKontrakt felt arsakTilInnsending settes til Endring`() {
val inntektsmelding = grunnleggendeInntektsmelding.copy(arsakTilInnsending = "Endring")
val kontraktIM =
mapInntektsmeldingKontrakt(inntektsmelding, "123", Gyldighetsstatus.GYLDIG, "arkivref123", UUID.randomUUID().toString())
assertEquals(ArsakTilInnsending.Endring, kontraktIM.arsakTilInnsending)
}
}
Loading