Skip to content

Commit

Permalink
Merge branch 'main' into enable_JournalhendelseKontantstøtteRutingTas…
Browse files Browse the repository at this point in the history
…k_i_prod
  • Loading branch information
UyQuangNguyen authored Jan 8, 2024
2 parents b57d08b + c20fa54 commit 35bf339
Show file tree
Hide file tree
Showing 12 changed files with 235 additions and 85 deletions.
2 changes: 1 addition & 1 deletion .deploy/nais/app-preprod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ spec:
groups:
- id: "928636f4-fd0d-4149-978e-a6fb68bb19de" # 0000-GA-STDAPPS
kafka:
pool: nav-dev
pool: nav-dev
12 changes: 7 additions & 5 deletions .github/workflows/build-and-deploy-preprod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ on:
pull_request:
types: [ opened, synchronize, reopened, ready_for_review ]
workflow_dispatch:
merge_group:

jobs:
ktlint:
Expand All @@ -14,7 +15,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
Expand All @@ -34,10 +35,11 @@ jobs:
id-token: "write"
packages: write
steps:
- run: echo "event navn er:" ${{ github.event_name }} ${{ github.event.action }}
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
Expand Down Expand Up @@ -73,10 +75,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Deploy til dev-gcp team namespace
if: github.triggering_actor != 'dependabot[bot]'
uses: nais/deploy/actions/deploy@v1
if: (github.triggering_actor != 'dependabot[bot]' && github.event_name != 'merge_group')
uses: nais/deploy/actions/deploy@v2
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
CLUSTER: dev-gcp
RESOURCE: .deploy/nais/app-preprod.yaml
IMAGE: ${{ needs.build-dev.outputs.image }}
VAR: image=${{ needs.build-dev.outputs.image }}
10 changes: 5 additions & 5 deletions .github/workflows/build-and-deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
id-token: "write"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
Expand All @@ -22,7 +22,7 @@ jobs:
SONAR_PROJECTKEY: ${{ secrets.SONAR_PROJECTKEY }}
SONAR_LOGIN: ${{ secrets.SONAR_LOGIN }}
GITHUB_USERNAME: x-access-token
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn -B --no-transfer-progress package verify --settings .m2/maven-settings.xml --file pom.xml
# run: mvn -B --no-transfer-progress package verify sonar:sonar --settings .m2/maven-settings.xml --file pom.xml
- uses: nais/docker-build-push@v0
Expand All @@ -36,17 +36,17 @@ jobs:
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
byosbom: target/bom.json
- name: Deploy til dev-gcp
uses: nais/deploy/actions/deploy@v1
uses: nais/deploy/actions/deploy@v2
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
CLUSTER: dev-gcp
RESOURCE: .deploy/nais/app-preprod.yaml
IMAGE: ${{ steps.docker-push.outputs.image }}
- name: Deploy til prod-gcp
if: github.ref == 'refs/heads/main'
uses: nais/deploy/actions/deploy@v1
uses: nais/deploy/actions/deploy@v2
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
CLUSTER: prod-gcp
RESOURCE: .deploy/nais/app-prod.yaml
IMAGE: ${{ steps.docker-push.outputs.image }}
VAR: image=${{ steps.docker-push.outputs.image }}
4 changes: 2 additions & 2 deletions .github/workflows/krise-rett-i-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
Expand All @@ -37,7 +37,7 @@ jobs:
- name: Push Docker image med 'latest' tag
run: docker push ${IMAGE_LATEST}
- name: Deploy til prod-gcp
uses: nais/deploy/actions/deploy@v1
uses: nais/deploy/actions/deploy@v2
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
CLUSTER: prod-gcp
Expand Down
28 changes: 16 additions & 12 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.5</version>
<version>3.2.1</version>
</parent>

<properties>
Expand All @@ -20,17 +20,16 @@
<changelist>-SNAPSHOT</changelist>
<java.version>21</java.version>
<jvmTarget>21</jvmTarget>
<kotlin.version>1.9.20</kotlin.version>
<kotlin.version>1.9.22</kotlin.version>
<mockk.version>1.13.8</mockk.version>
<confluent.version>7.5.1</confluent.version>
<prosessering.version>2.20231026103714_2f17845</prosessering.version>
<felles.version>2.20231023162434_fa320ce</felles.version>
<kontrakter.version>3.0_20231109091547_fd2cae7</kontrakter.version>
<prosessering.version>2.20231212093500_bfa0e7c</prosessering.version>

<felles.version>2.20231201131108_ea25dd3</felles.version>
<kontrakter.version>3.0_20231215081141_948d3f9</kontrakter.version>
<main-class>no.nav.familie.baks.mottak.LauncherKt</main-class>
<spring.cloud.version>4.0.4</spring.cloud.version>
<token-validation-spring.version>3.1.0</token-validation-spring.version>
<spring.cloud.version>4.0.3</spring.cloud.version>
<token-validation-spring.version>3.1.0</token-validation-spring.version>
<spring.cloud.version>4.1.0</spring.cloud.version>
<token-validation-spring.version>3.2.0</token-validation-spring.version>
<avro.version>1.11.3</avro.version>

<!--suppress UnresolvedMavenProperty Ligger som secret i github-->
Expand Down Expand Up @@ -132,6 +131,11 @@
<artifactId>leader</artifactId>
<version>${felles.version}</version>
</dependency>
<dependency>
<groupId>no.nav.security</groupId>
<artifactId>token-client-core</artifactId>
<version>${token-validation-spring.version}</version>
</dependency>
<dependency>
<groupId>no.nav.security</groupId>
<artifactId>token-client-spring</artifactId>
Expand Down Expand Up @@ -182,7 +186,7 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
<version>42.7.1</version>
</dependency>
<dependency>
<groupId>com.papertrailapp</groupId>
Expand Down Expand Up @@ -237,7 +241,7 @@
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
<version>1.19.1</version>
<version>1.19.3</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -421,7 +425,7 @@
<dependency>
<groupId>com.pinterest.ktlint</groupId>
<artifactId>ktlint-cli</artifactId>
<version>1.0.1</version>
<version>1.1.0</version>
</dependency>
<!-- additional 3rd party ruleset(s) can be specified here -->
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ data class RestMinimalFagsak(
class RestVisningBehandling(
val behandlingId: Long,
val opprettetTidspunkt: LocalDateTime,
val kategori: BehandlingKategori,
val underkategori: BehandlingUnderkategori?,
val aktiv: Boolean,
val årsak: String? = null,
val type: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ class KsSakClient
)
}

fun hentRestFagsak(fagsakId: Long): RestFagsak {
val uri = URI.create("$ksSakServiceUri/fagsaker/$fagsakId")
fun hentMinimalRestFagsak(fagsakId: Long): RestMinimalFagsak {
val uri = URI.create("$ksSakServiceUri/fagsaker/minimal/$fagsakId")
return runCatching {
getForEntity<Ressurs<RestFagsak>>(uri)
getForEntity<Ressurs<RestMinimalFagsak>>(uri)
}.fold(
onSuccess = { it.data ?: throw IntegrasjonException(it.melding, null, uri) },
onFailure = { throw IntegrasjonException("Feil ved henting av RestFagsak fra ks-sak.", it, uri) },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import no.nav.familie.baks.mottak.integrasjoner.OppgaveClient
import no.nav.familie.baks.mottak.integrasjoner.OppgaveVurderLivshendelseDto
import no.nav.familie.baks.mottak.integrasjoner.PdlClient
import no.nav.familie.baks.mottak.integrasjoner.PdlPersonData
import no.nav.familie.baks.mottak.integrasjoner.RestFagsak
import no.nav.familie.baks.mottak.integrasjoner.RestFagsakIdOgTilknyttetAktørId
import no.nav.familie.baks.mottak.integrasjoner.RestUtvidetBehandling
import no.nav.familie.baks.mottak.integrasjoner.RestMinimalFagsak
import no.nav.familie.baks.mottak.integrasjoner.RestVisningBehandling
import no.nav.familie.baks.mottak.integrasjoner.Sivilstand
import no.nav.familie.kontrakter.felles.Behandlingstema
import no.nav.familie.kontrakter.felles.Tema
Expand Down Expand Up @@ -68,13 +68,6 @@ class VurderLivshendelseService(
secureLog.info("Har mottatt dødsfallshendelse for person $personIdent")
val pdlPersonData = pdlClient.hentPerson(personIdent, "hentperson-relasjon-dødsfall", tema)
secureLog.info("dødsfallshendelse person fødselsdato = ${pdlPersonData.fødsel.firstOrNull()}")
if (pdlPersonData.dødsfall.firstOrNull()?.dødsdato == null) {
secureLog.info("Har mottatt dødsfallshendelse uten dødsdato $pdlPersonData")
throw RekjørSenereException(
årsak = "Har mottatt dødsfallshendelse uten dødsdato",
triggerTid = LocalDateTime.now().plusDays(1),
)
}

val berørteBrukere = finnBrukereBerørtAvDødsfallEllerUtflyttingHendelseForIdent(personIdent, tema)
secureLog.info(
Expand All @@ -83,6 +76,14 @@ class VurderLivshendelseService(
} tema = $tema ",
)

if (berørteBrukere.isNotEmpty() && pdlPersonData.dødsfall.firstOrNull()?.dødsdato == null) {
secureLog.info("Har mottatt dødsfallshendelse uten dødsdato $pdlPersonData")
throw RekjørSenereException(
årsak = "Har mottatt dødsfallshendelse uten dødsdato",
triggerTid = LocalDateTime.now().plusDays(1),
)
}

berørteBrukere.forEach {
if (opprettEllerOppdaterVurderLivshendelseOppgave(
hendelseType = VurderLivshendelseType.DØDSFALL,
Expand Down Expand Up @@ -229,7 +230,7 @@ class VurderLivshendelseService(

private fun hentBehandlingstema(
tema: Tema,
restBehandling: RestUtvidetBehandling,
restBehandling: RestVisningBehandling,
) = when (tema) {
Tema.BAR -> tilBarnetrygdBehandlingstema(restBehandling)
Tema.KON -> tilKontanstøtteBehandlingstema(restBehandling)
Expand Down Expand Up @@ -286,23 +287,23 @@ class VurderLivshendelseService(
private fun hentRestFagsak(
fagsakId: Long,
tema: Tema,
): RestFagsak {
): RestMinimalFagsak {
return when (tema) {
Tema.BAR -> baSakClient.hentRestFagsak(fagsakId)
Tema.KON -> ksSakClient.hentRestFagsak(fagsakId)
Tema.BAR -> baSakClient.hentMinimalRestFagsak(fagsakId)
Tema.KON -> ksSakClient.hentMinimalRestFagsak(fagsakId)
Tema.ENF, Tema.OPP -> throw RuntimeException("Tema $tema er ikke støttet")
}.also {
secureLog.info("Hentet rest fagsak: $it, tema: $tema")
}
}

private fun hentSisteBehandlingSomErIverksatt(restFagsak: RestFagsak): RestUtvidetBehandling? {
private fun hentSisteBehandlingSomErIverksatt(restFagsak: RestMinimalFagsak): RestVisningBehandling? {
return restFagsak.behandlinger
.filter { it.steg == STEG_TYPE_BEHANDLING_AVSLUTTET }
.filter { it.status == STATUS_AVSLUTTET }
.maxByOrNull { it.opprettetTidspunkt }
}

private fun hentAktivBehandling(restFagsak: RestFagsak): RestUtvidetBehandling {
private fun hentAktivBehandling(restFagsak: RestMinimalFagsak): RestVisningBehandling {
return restFagsak.behandlinger.firstOrNull { it.aktiv }
?: error("Fagsak ${restFagsak.id} mangler aktiv behandling. Får ikke opprettet VurderLivshendelseOppgave")
}
Expand Down Expand Up @@ -352,32 +353,32 @@ class VurderLivshendelseService(
return listeMedFagsakIdOgTilknyttetAktør
}

private fun tilBarnetrygdBehandlingstema(restUtvidetBehandling: RestUtvidetBehandling?): Behandlingstema {
private fun tilBarnetrygdBehandlingstema(restBehandling: RestVisningBehandling?): Behandlingstema {
return when {
restUtvidetBehandling == null -> Behandlingstema.Barnetrygd
restUtvidetBehandling.kategori == BehandlingKategori.EØS -> Behandlingstema.BarnetrygdEØS
restUtvidetBehandling.kategori == BehandlingKategori.NASJONAL && restUtvidetBehandling.underkategori == BehandlingUnderkategori.ORDINÆR -> Behandlingstema.OrdinærBarnetrygd
restUtvidetBehandling.kategori == BehandlingKategori.NASJONAL && restUtvidetBehandling.underkategori == BehandlingUnderkategori.UTVIDET -> Behandlingstema.UtvidetBarnetrygd
restBehandling == null -> Behandlingstema.Barnetrygd
restBehandling.kategori == BehandlingKategori.EØS -> Behandlingstema.BarnetrygdEØS
restBehandling.kategori == BehandlingKategori.NASJONAL && restBehandling.underkategori == BehandlingUnderkategori.ORDINÆR -> Behandlingstema.OrdinærBarnetrygd
restBehandling.kategori == BehandlingKategori.NASJONAL && restBehandling.underkategori == BehandlingUnderkategori.UTVIDET -> Behandlingstema.UtvidetBarnetrygd
else -> Behandlingstema.Barnetrygd
}
}

private fun tilKontanstøtteBehandlingstema(restUtvidetBehandling: RestUtvidetBehandling?): Behandlingstema =
private fun tilKontanstøtteBehandlingstema(restBehandling: RestVisningBehandling?): Behandlingstema =
when {
restUtvidetBehandling == null -> Behandlingstema.Kontantstøtte
restUtvidetBehandling.kategori == BehandlingKategori.EØS -> Behandlingstema.KontantstøtteEØS
restBehandling == null -> Behandlingstema.Kontantstøtte
restBehandling.kategori == BehandlingKategori.EØS -> Behandlingstema.KontantstøtteEØS
else -> Behandlingstema.Kontantstøtte
}

private fun sjekkOmDatoErEtterEldsteVedtaksdato(
dato: LocalDate,
aktivFaksak: RestFagsak,
aktivFaksak: RestMinimalFagsak,
personIdent: String,
tema: Tema,
): Boolean {
val tidligsteVedtakIBaSak =
aktivFaksak.behandlinger
.filter { it.resultat == RESULTAT_INNVILGET && it.steg == STEG_TYPE_BEHANDLING_AVSLUTTET }
.filter { it.resultat == RESULTAT_INNVILGET && it.status == STATUS_AVSLUTTET }
.minByOrNull { it.opprettetTidspunkt } ?: return false

if (dato.isAfter(tidligsteVedtakIBaSak.opprettetTidspunkt.toLocalDate())) {
Expand Down Expand Up @@ -468,7 +469,7 @@ class VurderLivshendelseService(
"${VurderLivshendelseType.SIVILSTAND.beskrivelse}: ${if (personErBruker) "bruker" else "barn $personIdent"} er registrert som gift fra $formatertDato"

companion object {
const val STEG_TYPE_BEHANDLING_AVSLUTTET = "BEHANDLING_AVSLUTTET"
const val STATUS_AVSLUTTET = "AVSLUTTET"
const val RESULTAT_INNVILGET = "INNVILGET"
const val BEHANDLING_TYPE_MIGRERING = "MIGRERING_FRA_INFOTRYGD"
}
Expand Down
Loading

0 comments on commit 35bf339

Please sign in to comment.