Skip to content

Commit fcb0f5f

Browse files
committed
1302: Bruk riktig oppgavetype ved søk og opprettelse av oppgave
+ Lagt til mer logging
1 parent 1b663be commit fcb0f5f

File tree

7 files changed

+39
-23
lines changed

7 files changed

+39
-23
lines changed

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/clients/oppgave/OppgaveDto.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import java.time.DayOfWeek
66
import java.time.LocalDate
77

88
const val TEMA_TILTAKSPENGER: String = "IND"
9-
const val OPPGAVETYPE_BEHANDLE_SAK: String = "BEH_SAK"
10-
const val OPPGAVETYPE_VURDER_KONSEKVENS_FOR_YTELSE: String = "VUR_KONS_YTE"
11-
const val OPPGAVETYPE_VURDER_HENVENDELSE: String = "VUR_HENV"
129

1310
const val BEHANDLES_AV_APPLIKASJON = "TILTAKSPENGER"
1411

@@ -33,7 +30,7 @@ data class OpprettOppgaveRequest(
3330
journalpostId = journalpostId.toString(),
3431
beskrivelse = "Ny søknad om tiltakspenger. Behandles i ny løsning.",
3532
behandlesAvApplikasjon = BEHANDLES_AV_APPLIKASJON,
36-
oppgavetype = OPPGAVETYPE_BEHANDLE_SAK,
33+
oppgavetype = OppgaveType.OPPGAVETYPE_BEHANDLE_SAK.value,
3734
)
3835

3936
fun opprettOppgaveRequestForEndretTiltaksdeltaker(
@@ -43,7 +40,7 @@ data class OpprettOppgaveRequest(
4340
journalpostId = null,
4441
beskrivelse = "Det har skjedd en endring i tiltaksdeltakelsen som kan påvirke tiltakspengeytelsen.",
4542
behandlesAvApplikasjon = null,
46-
oppgavetype = OPPGAVETYPE_VURDER_KONSEKVENS_FOR_YTELSE,
43+
oppgavetype = OppgaveType.OPPGAVETYPE_VURDER_KONSEKVENS_FOR_YTELSE.value,
4744
)
4845

4946
fun opprettOppgaveRequestForMeldekort(
@@ -54,7 +51,7 @@ data class OpprettOppgaveRequest(
5451
journalpostId = journalpostId.toString(),
5552
beskrivelse = "Nytt meldekort for tiltakspenger. Behandles i ny løsning.",
5653
behandlesAvApplikasjon = BEHANDLES_AV_APPLIKASJON,
57-
oppgavetype = OPPGAVETYPE_VURDER_HENVENDELSE,
54+
oppgavetype = OppgaveType.OPPGAVETYPE_VURDER_HENVENDELSE.value,
5855
)
5956
}
6057
}
@@ -106,3 +103,9 @@ data class FerdigstillOppgaveRequest(
106103
val versjon: Int,
107104
val status: OppgaveStatus,
108105
)
106+
107+
enum class OppgaveType(val value: String) {
108+
OPPGAVETYPE_BEHANDLE_SAK("BEH_SAK"),
109+
OPPGAVETYPE_VURDER_KONSEKVENS_FOR_YTELSE("VUR_KONS_YTE"),
110+
OPPGAVETYPE_VURDER_HENVENDELSE("VURD_HENV"),
111+
}

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/clients/oppgave/OppgaveHttpClient.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import kotlinx.coroutines.future.await
55
import mu.KotlinLogging
66
import no.nav.tiltakspenger.felles.OppgaveId
77
import no.nav.tiltakspenger.felles.journalføring.JournalpostId
8+
import no.nav.tiltakspenger.felles.sikkerlogg
89
import no.nav.tiltakspenger.libs.common.AccessToken
910
import no.nav.tiltakspenger.libs.common.Fnr
1011
import no.nav.tiltakspenger.libs.json.objectMapper
@@ -40,12 +41,6 @@ class OppgaveHttpClient(
4041
journalpostId: JournalpostId,
4142
oppgavebehov: Oppgavebehov,
4243
): OppgaveId {
43-
val callId = UUID.randomUUID()
44-
val oppgaveResponse = finnOppgave(journalpostId, callId)
45-
if (oppgaveResponse.antallTreffTotalt > 0 && oppgaveResponse.oppgaver.isNotEmpty()) {
46-
logger.warn { "Oppgave for journalpostId: $journalpostId finnes fra før, callId: $callId" }
47-
return OppgaveId(oppgaveResponse.oppgaver.first().id.toString())
48-
}
4944
val opprettOppgaveRequest = when (oppgavebehov) {
5045
Oppgavebehov.NY_SOKNAD -> {
5146
OpprettOppgaveRequest.opprettOppgaveRequestForSoknad(
@@ -66,6 +61,13 @@ class OppgaveHttpClient(
6661
throw IllegalArgumentException("Ukjent oppgavebehov for oppgave med journalpost: ${oppgavebehov.name}")
6762
}
6863
}
64+
65+
val callId = UUID.randomUUID()
66+
val oppgaveResponse = finnOppgave(journalpostId, opprettOppgaveRequest.oppgavetype, callId)
67+
if (oppgaveResponse.antallTreffTotalt > 0 && oppgaveResponse.oppgaver.isNotEmpty()) {
68+
logger.warn { "Oppgave for journalpostId: $journalpostId finnes fra før, callId: $callId" }
69+
return OppgaveId(oppgaveResponse.oppgaver.first().id.toString())
70+
}
6971
return opprettOppgave(opprettOppgaveRequest, callId)
7072
}
7173

@@ -110,6 +112,7 @@ class OppgaveHttpClient(
110112
val status = httpResponse.statusCode()
111113
if (status != 201) {
112114
logger.error { "Kunne ikke opprette oppgave, statuskode $status. CallId: $callId ${opprettOppgaveRequest.journalpostId?.let { ", journalpostId: $it" }}" }
115+
sikkerlogg.error { httpResponse.body() }
113116
error("Kunne ikke opprette oppgave, statuskode $status")
114117
}
115118
val jsonResponse = httpResponse.body()
@@ -120,13 +123,15 @@ class OppgaveHttpClient(
120123

121124
private suspend fun finnOppgave(
122125
journalpostId: JournalpostId,
126+
oppgaveType: String,
123127
callId: UUID,
124128
): FinnOppgaveResponse {
125-
val request = createGetRequest(createGetOppgaveUri(journalpostId), getToken().token, callId)
129+
val request = createGetRequest(createGetOppgaveUri(journalpostId, oppgaveType), getToken().token, callId)
126130
val httpResponse = client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).await()
127131
val status = httpResponse.statusCode()
128132
if (status != 200) {
129133
logger.error { "Noe gikk galt ved søk etter oppgave, statuskode $status. JournalpostId: $journalpostId, callId: $callId" }
134+
sikkerlogg.error { httpResponse.body() }
130135
error("Noe gikk galt ved søk etter oppgave, statuskode $status")
131136
}
132137
val jsonResponse = httpResponse.body()
@@ -142,6 +147,7 @@ class OppgaveHttpClient(
142147
val status = httpResponse.statusCode()
143148
if (status != 200) {
144149
logger.error { "Noe gikk galt ved henting av oppgave med id $oppgaveId, statuskode $status, callId: $callId" }
150+
sikkerlogg.error { httpResponse.body() }
145151
error("Noe gikk galt ved henting av oppgave, statuskode $status")
146152
}
147153
val jsonResponse = httpResponse.body()
@@ -162,6 +168,7 @@ class OppgaveHttpClient(
162168
val status = httpResponse.statusCode()
163169
if (status != 200) {
164170
logger.error { "Noe gikk galt ved ferdigstilling av oppgave med id ${oppgave.id}, statuskode $status, callId: $callId" }
171+
sikkerlogg.error { httpResponse.body() }
165172
error("Noe gikk galt ved ferdigstilling av oppgave, statuskode $status")
166173
}
167174
}
@@ -218,7 +225,7 @@ class OppgaveHttpClient(
218225
.build()
219226
}
220227

221-
private fun createGetOppgaveUri(journalpostId: JournalpostId): URI {
222-
return URI.create("$uri?tema=$TEMA_TILTAKSPENGER&oppgavetype=$OPPGAVETYPE_BEHANDLE_SAK&journalpostId=$journalpostId&statuskategori=AAPEN")
228+
private fun createGetOppgaveUri(journalpostId: JournalpostId, oppgaveType: String): URI {
229+
return URI.create("$uri?tema=$TEMA_TILTAKSPENGER&oppgavetype=$oppgaveType&journalpostId=$journalpostId&statuskategori=AAPEN")
223230
}
224231
}

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/repository/meldekort/BrukersMeldekortPostgresRepo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class BrukersMeldekortPostgresRepo(
8383
}
8484
}
8585

86-
override fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
86+
override fun hentMeldekortSomIkkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
8787
return sessionFactory.withSession(sessionContext) { session ->
8888
session.run(
8989
sqlQuery(

app/src/test/kotlin/no/nav/tiltakspenger/meldekort/service/OppgaveMeldekortServiceTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class OppgaveMeldekortServiceTest {
3636
every { meldekort.journalpostId } returns journalpostId
3737
every { meldekort.sakId } returns SakId.random()
3838

39-
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
39+
coEvery { brukersMeldekortRepo.hentMeldekortSomIkkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
4040
coEvery { sakRepo.hentForSakId(any()) } returns mockk(relaxed = true)
4141

4242
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
@@ -56,7 +56,7 @@ class OppgaveMeldekortServiceTest {
5656
runTest {
5757
val meldekort = mockk<BrukersMeldekort>()
5858
every { meldekort.journalpostId } returns null
59-
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
59+
coEvery { brukersMeldekortRepo.hentMeldekortSomIkkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
6060

6161
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
6262

@@ -70,7 +70,7 @@ class OppgaveMeldekortServiceTest {
7070
val meldekort = mockk<BrukersMeldekort>()
7171
every { meldekort.journalpostId } returns JournalpostIdGenerator().neste()
7272
every { meldekort.sakId } returns SakId.random()
73-
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
73+
coEvery { brukersMeldekortRepo.hentMeldekortSomIkkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
7474
coEvery { sakRepo.hentForSakId(any()) } returns null
7575

7676
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
@@ -83,7 +83,7 @@ class OppgaveMeldekortServiceTest {
8383
fun `skal opprette oppgaver for gyldige meldekort`() {
8484
runTest {
8585
val meldekort = (1..20).map { mockk<BrukersMeldekort>(relaxed = true) }
86-
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns meldekort
86+
coEvery { brukersMeldekortRepo.hentMeldekortSomIkkeSkalGodkjennesAutomatisk() } returns meldekort
8787
coEvery { sakRepo.hentForSakId(any()) } returns mockk(relaxed = true)
8888

8989
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()

domene/src/main/kotlin/no/nav/tiltakspenger/meldekort/domene/BrukersMeldekortRepo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface BrukersMeldekortRepo {
2626
sessionContext: SessionContext? = null,
2727
): BrukersMeldekort?
2828

29-
fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(
29+
fun hentMeldekortSomIkkeSkalGodkjennesAutomatisk(
3030
sessionContext: SessionContext? = null,
3131
): List<BrukersMeldekort>
3232
}

domene/src/main/kotlin/no/nav/tiltakspenger/meldekort/service/OppgaveMeldekortService.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,17 @@ class OppgaveMeldekortService(
1515

1616
// På sikt vil man bare opprette oppgave for meldekort som trenger en manuell gjennomgang, for meldekort skal generelt godkjennes maskinelt.
1717
suspend fun opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk() {
18-
brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk().forEach { meldekort ->
18+
log.info { "Henter meldekort som det skal opprettes oppgaver for" }
19+
val meldekortList = brukersMeldekortRepo.hentMeldekortSomIkkeSkalGodkjennesAutomatisk()
20+
21+
log.info { "Fant ${meldekortList.size} meldekort som det skal opprettes oppgaver for" }
22+
meldekortList.forEach { meldekort ->
1923
val journalpostId = meldekort.journalpostId
2024
?: log.warn { "Fant ikke journalpostId for meldekortId ${meldekort.id}" }.let { return@forEach }
2125
val sak = sakRepo.hentForSakId(meldekort.sakId)
2226
?: log.warn { "Fant ikke sak for sakId ${meldekort.sakId}" }.let { return@forEach }
27+
28+
log.info { "Oppretter oppgave for meldekortId ${meldekort.id}" }
2329
oppgaveGateway.opprettOppgave(sak.fnr, journalpostId, Oppgavebehov.NYTT_MELDEKORT)
2430
}
2531
}

test-common/src/main/kotlin/no/nav/tiltakspenger/fakes/repos/BrukersMeldekortFakeRepo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class BrukersMeldekortFakeRepo(val meldeperiodeFakeRepo: MeldeperiodeFakeRepo) :
4545
return data.get().values.find { it.meldeperiode.id == meldeperiodeId }
4646
}
4747

48-
override fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
48+
override fun hentMeldekortSomIkkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
4949
return data.get().values.filter { it.oppgaveId == null }
5050
}
5151
}

0 commit comments

Comments
 (0)