Skip to content

Commit

Permalink
EY-4597 GruppeID for å koble oppgaver sammen
Browse files Browse the repository at this point in the history
  • Loading branch information
Watercolours committed Dec 4, 2024
1 parent 7f12dcd commit 087c0f1
Show file tree
Hide file tree
Showing 19 changed files with 249 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ class BehandlingFactory(
Vedtaksloesning.GJENOPPRETTA -> "Manuell gjenopprettelse av opphørt sak i Pesys"
else -> opprettMerknad(request.sak, persongalleri)
},
gruppeId = persongalleri.avdoed.firstOrNull(),
)
return BehandlingOgOppgave(behandling, oppgave) {
behandlingHendelser.sendMeldingForHendelseStatisitkk(
Expand Down Expand Up @@ -325,6 +326,7 @@ class BehandlingFactory(
sakId = nyFoerstegangsbehandling.sak.id,
oppgaveKilde = OppgaveKilde.BEHANDLING,
merknad = "Omgjøring av førstegangsbehandling",
gruppeId = null,
)
oppgaveService.tildelSaksbehandler(oppgave.id, saksbehandler.ident)

Expand Down Expand Up @@ -363,7 +365,8 @@ class BehandlingFactory(
referanse: String,
sakId: SakId,
oppgaveKilde: OppgaveKilde = OppgaveKilde.BEHANDLING,
merknad: String? = null,
merknad: String?,
gruppeId: String?,
): OppgaveIntern {
oppgaveService.avbrytAapneOppgaverMedReferanse(referanse)

Expand All @@ -373,6 +376,7 @@ class BehandlingFactory(
kilde = oppgaveKilde,
type = OppgaveType.FOERSTEGANGSBEHANDLING,
merknad = merknad,
gruppeId = gruppeId,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ class RevurderingService(
type = OppgaveType.REVURDERING,
merknad = begrunnelse,
frist = frist,
gruppeId = persongalleri.avdoed.firstOrNull(),
)
if (saksbehandlerIdent != null &&
(prosessType == Prosesstype.MANUELL && saksbehandlerIdent != Fagsaksystem.EY.navn) ||
Expand Down
107 changes: 79 additions & 28 deletions apps/etterlatte-behandling/src/main/kotlin/oppgave/OppgaveDao.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import no.nav.etterlatte.libs.common.oppgave.OppgavebenkStats
import no.nav.etterlatte.libs.common.oppgave.Status
import no.nav.etterlatte.libs.common.oppgave.VentefristGaarUt
import no.nav.etterlatte.libs.common.person.AdressebeskyttelseGradering
import no.nav.etterlatte.libs.common.person.maskerFnr
import no.nav.etterlatte.libs.common.sak.SakId
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
import no.nav.etterlatte.libs.common.tidspunkt.getTidspunkt
Expand All @@ -38,6 +39,8 @@ interface OppgaveDao {

fun hentOppgaverForReferanse(referanse: String): List<OppgaveIntern>

fun hentOppgaverForGruppeId(gruppeId: String): List<OppgaveIntern>

fun oppgaveMedTypeFinnes(
sakId: SakId,
type: OppgaveType,
Expand Down Expand Up @@ -138,8 +141,8 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
INSERT INTO oppgave(id, status, enhet, sak_id, type, saksbehandler, referanse, merknad, opprettet, saktype, fnr, frist, kilde)
VALUES(?::UUID, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
INSERT INTO oppgave(id, status, enhet, sak_id, type, saksbehandler, referanse, gruppe_id, merknad, opprettet, saktype, fnr, frist, kilde)
VALUES(?::UUID, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""".trimIndent(),
)
statement.setObject(1, oppgaveIntern.id)
Expand All @@ -149,12 +152,13 @@ class OppgaveDaoImpl(
statement.setString(5, oppgaveIntern.type.name)
statement.setString(6, oppgaveIntern.saksbehandler?.ident)
statement.setString(7, oppgaveIntern.referanse)
statement.setString(8, oppgaveIntern.merknad)
statement.setTidspunkt(9, oppgaveIntern.opprettet)
statement.setString(10, oppgaveIntern.sakType.name)
statement.setString(11, oppgaveIntern.fnr)
statement.setTidspunkt(12, oppgaveIntern.frist)
statement.setString(13, oppgaveIntern.kilde?.name)
statement.setString(8, oppgaveIntern.gruppeId)
statement.setString(9, oppgaveIntern.merknad)
statement.setTidspunkt(10, oppgaveIntern.opprettet)
statement.setString(11, oppgaveIntern.sakType.name)
statement.setString(12, oppgaveIntern.fnr)
statement.setTidspunkt(13, oppgaveIntern.frist)
statement.setString(14, oppgaveIntern.kilde?.name)
statement.executeUpdate()
logger.info("lagret oppgave for ${oppgaveIntern.id} for sakid ${oppgaveIntern.sakId}")
}
Expand All @@ -167,7 +171,7 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
INSERT INTO oppgave(id, status, enhet, sak_id, type, saksbehandler, referanse, merknad, opprettet, saktype, fnr, frist, kilde)
INSERT INTO oppgave(id, status, enhet, sak_id, type, saksbehandler, referanse, gruppe_id, merknad, opprettet, saktype, fnr, frist, kilde)
VALUES(?::UUID, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""".trimIndent(),
)
Expand All @@ -180,12 +184,13 @@ class OppgaveDaoImpl(
statement.setString(5, oppgaveIntern.type.name)
statement.setString(6, oppgaveIntern.saksbehandler?.ident)
statement.setString(7, oppgaveIntern.referanse)
statement.setString(8, oppgaveIntern.merknad)
statement.setTidspunkt(9, oppgaveIntern.opprettet)
statement.setString(10, oppgaveIntern.sakType.name)
statement.setString(11, oppgaveIntern.fnr)
statement.setTidspunkt(12, oppgaveIntern.frist)
statement.setString(13, oppgaveIntern.kilde?.name)
statement.setString(8, oppgaveIntern.gruppeId)
statement.setString(9, oppgaveIntern.merknad)
statement.setTidspunkt(10, oppgaveIntern.opprettet)
statement.setString(11, oppgaveIntern.sakType.name)
statement.setString(12, oppgaveIntern.fnr)
statement.setTidspunkt(13, oppgaveIntern.frist)
statement.setString(14, oppgaveIntern.kilde?.name)

statement.addBatch()
}
Expand All @@ -201,8 +206,10 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE o.id = ?::UUID
""".trimIndent(),
)
Expand All @@ -219,8 +226,10 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE o.referanse = ?
""".trimIndent(),
)
Expand All @@ -235,6 +244,33 @@ class OppgaveDaoImpl(
}
}

override fun hentOppgaverForGruppeId(gruppeId: String): List<OppgaveIntern> =
connectionAutoclosing.hentConnection {
with(it) {
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE o.gruppe_id = ?
AND o.status = ANY(?)
""".trimIndent(),
)
statement.setString(1, gruppeId)
statement.setArray(2, createArrayOf("text", Status.entries.map(Status::name).toTypedArray()))
statement
.executeQuery()
.toList {
asOppgave()
}.also { oppgaver ->
// Bruker [String.maskerFnr] i tilfelle det grupperes på et fnr.
logger.info("Hentet ${oppgaver.size} oppgave(r) for gruppeId: ${gruppeId.maskerFnr()}")
}
}
}

override fun oppgaveMedTypeFinnes(
sakId: SakId,
type: OppgaveType,
Expand Down Expand Up @@ -270,8 +306,10 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE o.sak_id = ? and o.type = ANY(?)
""".trimIndent(),
)
Expand All @@ -297,8 +335,11 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o INNER JOIN sak s ON o.sak_id = s.id LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
INNER JOIN sak s ON o.sak_id = s.id
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE (? OR o.status = ANY(?))
AND o.enhet = ANY(?)
AND (
Expand Down Expand Up @@ -336,8 +377,11 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o INNER JOIN sak s ON o.sak_id = s.id LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
INNER JOIN sak s ON o.sak_id = s.id
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE (? OR o.status = ANY(?))
AND o.sak_id = ANY(?)
""".trimIndent(),
Expand Down Expand Up @@ -375,7 +419,10 @@ class OppgaveDaoImpl(
statement
.executeQuery()
.singleOrNull {
OppgavebenkStats(getLong("antallOppgavelistaOppgaver"), getLong("antallMinOppgavelisteOppgaver"))
OppgavebenkStats(
getLong("antallOppgavelistaOppgaver"),
getLong("antallMinOppgavelisteOppgaver"),
)
}!!
.also {
logger.info("Henter antall oppgaver")
Expand All @@ -389,8 +436,11 @@ class OppgaveDaoImpl(
val statement =
prepareStatement(
"""
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o INNER JOIN sak s ON o.sak_id = s.id LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
SELECT o.id, o.status, o.enhet, o.sak_id, o.type, o.saksbehandler, o.referanse, o.gruppe_id,
o.merknad, o.opprettet, o.saktype, o.fnr, o.frist, o.kilde, o.forrige_saksbehandler, si.navn
FROM oppgave o
INNER JOIN sak s ON o.sak_id = s.id
LEFT JOIN saksbehandler_info si ON o.saksbehandler = si.id
WHERE ((s.adressebeskyttelse = ?) OR (s.adressebeskyttelse = ?))
""".trimIndent(),
)
Expand Down Expand Up @@ -719,6 +769,7 @@ class OppgaveDaoImpl(
kilde = getString("kilde")?.let { OppgaveKilde.valueOf(it) },
type = OppgaveType.valueOf(getString("type")),
referanse = getString("referanse"),
gruppeId = getString("gruppe_id"),
merknad = getString("merknad"),
opprettet = getTidspunkt("opprettet"),
sakType = SakType.valueOf(getString("saktype")),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ class OppgaveDaoMedEndringssporingImpl(

override fun hentOppgaverForReferanse(referanse: String): List<OppgaveIntern> = oppgaveDao.hentOppgaverForReferanse(referanse)

override fun hentOppgaverForGruppeId(gruppeId: String): List<OppgaveIntern> = oppgaveDao.hentOppgaverForGruppeId(gruppeId)

override fun oppgaveMedTypeFinnes(
sakId: SakId,
type: OppgaveType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,7 @@ class OppgaveService(
merknad: String?,
frist: Tidspunkt? = null,
saksbehandler: String? = null,
gruppeId: String? = null,
): OppgaveIntern {
val sak = sakDao.hentSak(sakId)!!

Expand All @@ -608,6 +609,7 @@ class OppgaveService(
type = type,
merknad = merknad,
frist = frist,
gruppeId = gruppeId,
)
oppgaveDao.opprettOppgave(oppgave)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE oppgave ADD COLUMN gruppe_id TEXT;
Loading

0 comments on commit 087c0f1

Please sign in to comment.