1
+ package db.migration
2
+
3
+ import no.nav.klage.kodeverk.Fagsystem
4
+ import no.nav.klage.kodeverk.PartIdType
5
+ import no.nav.klage.kodeverk.Type
6
+ import no.nav.klage.kodeverk.ytelse.Ytelse
7
+ import no.nav.klage.oppgave.domain.kafka.BehandlingState
8
+ import no.nav.klage.oppgave.domain.kafka.EventType
9
+ import no.nav.klage.oppgave.domain.kafka.StatistikkTilDVH
10
+ import no.nav.klage.oppgave.domain.kafka.UtsendingStatus
11
+ import no.nav.klage.oppgave.service.getDVHPart
12
+ import no.nav.klage.oppgave.util.ourJacksonObjectMapper
13
+ import org.flywaydb.core.api.migration.BaseJavaMigration
14
+ import org.flywaydb.core.api.migration.Context
15
+ import java.sql.Timestamp
16
+ import java.time.LocalDateTime
17
+ import java.util.*
18
+
19
+ class V181__dvh_tr_migrations : BaseJavaMigration () {
20
+ override fun migrate (context : Context ) {
21
+ val preparedStatement = context.connection.prepareStatement(
22
+ """
23
+ insert into klage.kafka_event (id, behandling_id, kilde, kilde_referanse, status_id, json_payload, type, created, error_message)
24
+ values (?, ?, ?, ?, ?, ?, ?, ?, ?)
25
+ """ .trimIndent()
26
+ )
27
+
28
+ context.connection.createStatement().use { select ->
29
+ select.executeQuery(
30
+ """
31
+ select b.id,
32
+ b.dvh_referanse,
33
+ b.sendt_til_trygderetten,
34
+ b.saken_gjelder_value,
35
+ b.saken_gjelder_type,
36
+ b.klager_value,
37
+ b.klager_type,
38
+ b.dato_mottatt_klageinstans,
39
+ b.tildelt_saksbehandlerident,
40
+ b.tildelt_enhet,
41
+ b.ytelse_id,
42
+ b.sak_fagsak_id,
43
+ b.kilde_referanse
44
+ from klage.behandling b
45
+ where b.sak_fagsystem = '${Fagsystem .PP01 .id} '
46
+ and b.type_id = '${Type .ANKE_I_TRYGDERETTEN .id} '
47
+ and b.feilregistrering_registered is null
48
+ and b.previous_saksbehandlerident is null
49
+ """
50
+ )
51
+ .use { rows ->
52
+ val now = LocalDateTime .now()
53
+ while (rows.next()) {
54
+ val behandlingId = rows.getObject(1 , UUID ::class .java)
55
+ val dvhReferanse = rows.getString(2 )
56
+ val sendtTilTR: Timestamp = rows.getTimestamp(3 )
57
+ val sakenGjelder = rows.getString(4 )
58
+ val sakenGjelderType = rows.getString(5 )
59
+ val klager = rows.getString(6 )
60
+ val klagerType = rows.getString(7 )
61
+ val mottattKlageinstans = rows.getDate(8 )
62
+ val saksbehandler = rows.getString(9 )
63
+ val tildeltEnhet = rows.getString(10 )
64
+ val ytelseId = rows.getString(11 )
65
+ val fagsakId = rows.getString(12 )
66
+ val kildeReferanse = rows.getString(13 )
67
+
68
+ val eventId = UUID .randomUUID()
69
+
70
+ // Usually we have an Anke when creating this event, so fewer data is available now.
71
+
72
+ val statistikkTilDVH = StatistikkTilDVH (
73
+ eventId = eventId,
74
+ behandlingId = dvhReferanse,
75
+ behandlingIdKabal = behandlingId.toString(),
76
+ // Means enhetTildeltDato
77
+ behandlingStartetKA = null ,
78
+ ansvarligEnhetKode = " TR0000" ,
79
+ behandlingStatus = BehandlingState .SENDT_TIL_TR ,
80
+ behandlingType = Type .ANKE .name,
81
+ // Means medunderskriver
82
+ beslutter = null ,
83
+ endringstid = sendtTilTR.toLocalDateTime(),
84
+ hjemmel = emptyList(),
85
+ klager = getDVHPart(PartIdType .valueOf(klagerType), klager),
86
+ opprinneligFagsaksystem = Fagsystem .PP01 .navn,
87
+ overfoertKA = mottattKlageinstans.toLocalDate(),
88
+ resultat = null ,
89
+ sakenGjelder = getDVHPart(PartIdType .valueOf(sakenGjelderType), sakenGjelder),
90
+ saksbehandler = saksbehandler,
91
+ saksbehandlerEnhet = tildeltEnhet,
92
+ tekniskTid = now,
93
+ vedtaksdato = null ,
94
+ ytelseType = Ytelse .of(ytelseId).name,
95
+ opprinneligFagsakId = fagsakId,
96
+ )
97
+
98
+ preparedStatement.setObject(1 , eventId)
99
+ preparedStatement.setObject(2 , behandlingId)
100
+ preparedStatement.setString(3 , Fagsystem .PP01 .navn)
101
+ preparedStatement.setString(4 , kildeReferanse)
102
+ preparedStatement.setString(5 , UtsendingStatus .IKKE_SENDT .name)
103
+ preparedStatement.setString(6 , ourJacksonObjectMapper().writeValueAsString(statistikkTilDVH))
104
+ preparedStatement.setString(7 , EventType .STATS_DVH .name)
105
+ preparedStatement.setObject(8 , LocalDateTime .now())
106
+ preparedStatement.setObject(9 , null )
107
+
108
+ preparedStatement.executeUpdate()
109
+ }
110
+
111
+ }
112
+ }
113
+ }
114
+ }
0 commit comments