Skip to content

Commit

Permalink
FAGSYSTEM-350135: Gir mulighet til å tilknytte andre journalposter en… (
Browse files Browse the repository at this point in the history
#2546)

FAGSYSTEM-350135: Gir mulighet til å tilknytte andre journalposter enn søknader og inntektsmeldinger.
  • Loading branch information
mrsladek authored Nov 15, 2024
1 parent 6428b27 commit a399d6b
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
package no.nav.foreldrepenger.journalføring;

import static java.util.Objects.requireNonNull;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.ES;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.FP;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.SVP;

import no.nav.foreldrepenger.fordel.kodeverdi.BehandlingTema;
import no.nav.foreldrepenger.fordel.kodeverdi.Journalstatus;

import no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType;

import no.nav.foreldrepenger.journalføring.utils.YtelseTypeUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -64,21 +74,23 @@ public void validerKonsistensMedSakJP(ArkivJournalpost arkivJournalpost, FagsakY

if (DokumentTypeId.erSøknadType(hovedDokumentType)) {
journalpostFagsakYtelseTypeDto = utledYtelseTypeFor(hovedDokumentType);
if (oppgittFagsakYtelseTypeDto.equals(journalpostFagsakYtelseTypeDto)) {
return;
}
} else if (DokumentTypeId.INNTEKTSMELDING.equals(hovedDokumentType)) {
var original = arkivJournalpost.getStrukturertPayload().toLowerCase();
if (original.contains("ytelse>foreldrepenger<")) {
journalpostFagsakYtelseTypeDto = FagsakYtelseTypeDto.FORELDREPENGER;
} else if (original.contains("ytelse>svangerskapspenger<")) {
journalpostFagsakYtelseTypeDto = FagsakYtelseTypeDto.SVANGERSKAPSPENGER;
}
} else if (Journalstatus.JOURNALFOERT.equals(arkivJournalpost.getTilstand())) { // her prøver man å flytte en journalpost som allerede er journalført ferdig til en annen sak
journalpostFagsakYtelseTypeDto = arkivJournalpost.getBehandlingstema().utledYtelseType();
LOG.info("Prøver å journalføre en allerede journalført post {} knyttet til ytelsetype {}", arkivJournalpost.getJournalpostId(), journalpostFagsakYtelseTypeDto);
}

LOG.info("FPSAK vurdering ytelsedok {} vs ytelseoppgitt {}", journalpostFagsakYtelseTypeDto, oppgittFagsakYtelseTypeDto);
if (!oppgittFagsakYtelseTypeDto.equals(journalpostFagsakYtelseTypeDto)) {
throw new FunksjonellException("FP-785359", "Dokument og valgt ytelsetype i uoverenstemmelse",
"Velg ytelsetype som samstemmer med dokument");
}
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package no.nav.foreldrepenger.journalføring.oppgave;

import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.ES;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.FP;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.SVP;
import static no.nav.foreldrepenger.mottak.behandlendeenhet.EnhetsTjeneste.NK_ENHET_ID;
import static no.nav.foreldrepenger.mottak.behandlendeenhet.EnhetsTjeneste.SKJERMINGENHETER;

Expand Down Expand Up @@ -32,6 +29,7 @@
import no.nav.foreldrepenger.journalføring.oppgave.lager.OppgaveRepository;
import no.nav.foreldrepenger.journalføring.oppgave.lager.Status;
import no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType;
import no.nav.foreldrepenger.journalføring.utils.YtelseTypeUtils;
import no.nav.foreldrepenger.mottak.behandlendeenhet.EnhetsTjeneste;
import no.nav.foreldrepenger.mottak.behandlendeenhet.LosEnheterCachedTjeneste;
import no.nav.foreldrepenger.mottak.klient.TilhørendeEnhetDto;
Expand Down Expand Up @@ -95,7 +93,7 @@ public OppgaverTjeneste(OppgaveRepository oppgaveRepository, Oppgaver oppgaveKli
.medBrukerId(nyOppgave.aktørId())
.medFrist(helgeJustertFrist(LocalDate.now().plusDays(FRIST_DAGER)))
.medBeskrivelse(nyOppgave.beskrivelse())
.medYtelseType(mapTilYtelseType(nyOppgave.behandlingTema()))
.medYtelseType(YtelseTypeUtils.mapTilYtelseType(nyOppgave.behandlingTema()))
.build();

var id = oppgaveRepository.lagre(oppgave);
Expand All @@ -109,7 +107,7 @@ public OppgaverTjeneste(OppgaveRepository oppgaveRepository, Oppgaver oppgaveKli
eksisterende.setBrukerId(nyOppgave.aktørId());
eksisterende.setFrist(helgeJustertFrist(LocalDate.now().plusDays(FRIST_DAGER)));
eksisterende.setBeskrivelse(nyOppgave.beskrivelse());
eksisterende.setYtelseType(mapTilYtelseType(nyOppgave.behandlingTema()));
eksisterende.setYtelseType(YtelseTypeUtils.mapTilYtelseType(nyOppgave.behandlingTema()));

var id = oppgaveRepository.lagre(eksisterende);
LOG.info("FPFORDEL oppdatert/reåpnet lokal oppgave med journalpostId:{}", id);
Expand Down Expand Up @@ -316,18 +314,7 @@ private static LocalDate helgeJustertFrist(LocalDate dato) {
static YtelseType mapTilYtelseType(String behandlingstema) {
var behandlingTemaMappet = BehandlingTema.fraOffisiellKode(behandlingstema);

return mapTilYtelseType(behandlingTemaMappet);
return YtelseTypeUtils.mapTilYtelseType(behandlingTemaMappet);
}

static YtelseType mapTilYtelseType(BehandlingTema behandlingstema) {
if (behandlingstema == null) {
return null;
}
return switch (behandlingstema) {
case FORELDREPENGER, FORELDREPENGER_ADOPSJON, FORELDREPENGER_FØDSEL -> FP;
case SVANGERSKAPSPENGER -> SVP;
case ENGANGSSTØNAD, ENGANGSSTØNAD_ADOPSJON, ENGANGSSTØNAD_FØDSEL -> ES;
default -> null;
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package no.nav.foreldrepenger.journalføring.utils;

import no.nav.foreldrepenger.fordel.kodeverdi.BehandlingTema;
import no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType;

import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.ES;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.FP;
import static no.nav.foreldrepenger.journalføring.oppgave.lager.YtelseType.SVP;

public class YtelseTypeUtils {
private YtelseTypeUtils() {
// static
}

public static YtelseType mapTilYtelseType(BehandlingTema behandlingstema) {
if (behandlingstema == null) {
return null;
}
return switch (behandlingstema) {
case FORELDREPENGER, FORELDREPENGER_ADOPSJON, FORELDREPENGER_FØDSEL -> FP;
case SVANGERSKAPSPENGER -> SVP;
case ENGANGSSTØNAD, ENGANGSSTØNAD_ADOPSJON, ENGANGSSTØNAD_FØDSEL -> ES;
default -> null;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public final class TestDatabaseInit {
private static final Environment ENV = Environment.current();
private static final String DB_SCRIPT_LOCATION = "/db/migration/defaultDS";

public static void settOppDatasourceOgMigrer(String jdbcUrl, String username, String password) {
public static void settOppDatasourceOgMigrer(String jdbcUrl, String username, String password) {
var ds = createDatasource(jdbcUrl, username, password);
settJdniOppslag(ds);
if (GUARD_UNIT_TEST_SKJEMAER.compareAndSet(false, true)) {
Expand Down

0 comments on commit a399d6b

Please sign in to comment.