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

Send missing anke i TR messages to DVH for cases migrated after V181 … #1341

Merged
merged 1 commit into from
Feb 13, 2025
Merged
Changes from all 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
115 changes: 115 additions & 0 deletions src/main/kotlin/db/migration/V188__dvh_tr_migrations.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
package db.migration

import no.nav.klage.kodeverk.Fagsystem
import no.nav.klage.kodeverk.PartIdType
import no.nav.klage.kodeverk.Type
import no.nav.klage.kodeverk.ytelse.Ytelse
import no.nav.klage.oppgave.domain.kafka.BehandlingState
import no.nav.klage.oppgave.domain.kafka.EventType
import no.nav.klage.oppgave.domain.kafka.StatistikkTilDVH
import no.nav.klage.oppgave.domain.kafka.UtsendingStatus
import no.nav.klage.oppgave.service.getDVHPart
import no.nav.klage.oppgave.util.ourJacksonObjectMapper
import org.flywaydb.core.api.migration.BaseJavaMigration
import org.flywaydb.core.api.migration.Context
import java.sql.Timestamp
import java.time.LocalDateTime
import java.util.*

class V188__dvh_tr_migrations : BaseJavaMigration() {
override fun migrate(context: Context) {
val preparedStatement = context.connection.prepareStatement(
"""
insert into klage.kafka_event (id, behandling_id, kilde, kilde_referanse, status_id, json_payload, type, created, error_message)
values (?, ?, ?, ?, ?, ?, ?, ?, ?)
""".trimIndent()
)

context.connection.createStatement().use { select ->
select.executeQuery(
"""
select b.id,
b.dvh_referanse,
b.sendt_til_trygderetten,
b.saken_gjelder_value,
b.saken_gjelder_type,
b.klager_value,
b.klager_type,
b.dato_mottatt_klageinstans,
b.tildelt_saksbehandlerident,
b.tildelt_enhet,
b.ytelse_id,
b.sak_fagsak_id,
b.kilde_referanse
from klage.behandling b
where b.sak_fagsystem = '${Fagsystem.PP01.id}'
and created > '2025-01-30 00:00:00.000000'
and b.type_id = '${Type.ANKE_I_TRYGDERETTEN.id}'
and b.feilregistrering_registered is null
and b.previous_saksbehandlerident is null
"""
)
.use { rows ->
val now = LocalDateTime.now()
while (rows.next()) {
val behandlingId = rows.getObject(1, UUID::class.java)
val dvhReferanse = rows.getString(2)
val sendtTilTR: Timestamp = rows.getTimestamp(3)
val sakenGjelder = rows.getString(4)
val sakenGjelderType = rows.getString(5)
val klager = rows.getString(6)
val klagerType = rows.getString(7)
val mottattKlageinstans = rows.getDate(8)
val saksbehandler = rows.getString(9)
val tildeltEnhet = rows.getString(10)
val ytelseId = rows.getString(11)
val fagsakId = rows.getString(12)
val kildeReferanse = rows.getString(13)

val eventId = UUID.randomUUID()

//Usually we have an Anke when creating this event, so fewer data is available now.

val statistikkTilDVH = StatistikkTilDVH(
eventId = eventId,
behandlingId = dvhReferanse,
behandlingIdKabal = behandlingId.toString(),
//Means enhetTildeltDato
behandlingStartetKA = null,
ansvarligEnhetKode = "TR0000",
behandlingStatus = BehandlingState.SENDT_TIL_TR,
behandlingType = Type.ANKE.name,
//Means medunderskriver
beslutter = null,
endringstid = sendtTilTR.toLocalDateTime(),
hjemmel = emptyList(),
klager = getDVHPart(PartIdType.valueOf(klagerType), klager),
opprinneligFagsaksystem = Fagsystem.PP01.navn,
overfoertKA = mottattKlageinstans.toLocalDate(),
resultat = null,
sakenGjelder = getDVHPart(PartIdType.valueOf(sakenGjelderType), sakenGjelder),
saksbehandler = saksbehandler,
saksbehandlerEnhet = tildeltEnhet,
tekniskTid = now,
vedtaksdato = null,
ytelseType = Ytelse.of(ytelseId).name,
opprinneligFagsakId = fagsakId,
)

preparedStatement.setObject(1, eventId)
preparedStatement.setObject(2, behandlingId)
preparedStatement.setString(3, Fagsystem.PP01.navn)
preparedStatement.setString(4, kildeReferanse)
preparedStatement.setString(5, UtsendingStatus.IKKE_SENDT.name)
preparedStatement.setString(6, ourJacksonObjectMapper().writeValueAsString(statistikkTilDVH))
preparedStatement.setString(7, EventType.STATS_DVH.name)
preparedStatement.setObject(8, now)
preparedStatement.setObject(9, null)

preparedStatement.executeUpdate()
}

}
}
}
}
Loading