From 806ee6a5b98ec39eb4afe3a3596f7c989e124517 Mon Sep 17 00:00:00 2001 From: Jens-Otto Larsen <46576810+jolarsen@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:59:42 +0100 Subject: [PATCH] =?UTF-8?q?TFP-5787=20slutt=20=C3=A5=20lagre=20vedtak=20ti?= =?UTF-8?q?l=20dvh=20(#6825)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domene/DatavarehusRepository.java | 35 -- .../domene/VedtakUtbetalingDvh.java | 204 ------- .../task/VedtakTilDatavarehusTask.java | 34 -- .../tjeneste/DatavarehusTjeneste.java | 2 - .../tjeneste/DatavarehusTjenesteImpl.java | 22 - .../tjeneste/VedtakUtbetalingDvhMapper.java | 29 - .../xml/DvhPersonopplysningXmlTjeneste.java | 38 -- .../datavarehus/xml/DvhVedtakXmlTjeneste.java | 90 --- .../datavarehus/xml/OppdragXmlTjeneste.java | 9 - .../xml/PersonopplysningXmlFelles.java | 15 - .../DvhPersonopplysningXmlTjenesteImpl.java | 263 --------- .../xml/es/OppdragXmlTjenesteImpl.java | 57 -- .../DvhPersonopplysningXmlTjenesteImpl.java | 457 --------------- .../xml/fp/OppdragXmlTjenesteImpl.java | 68 --- .../fp/PersonopplysningXmlTjenesteImpl.java | 21 +- .../DvhPersonopplysningXmlTjenesteImpl.java | 370 ------------ .../xml/svp/OppdragXmlTjenesteImpl.java | 68 --- .../META-INF/pu-default.datavarehus.orm.xml | 3 - .../domene/DatavarehusRepositoryTest.java | 43 -- .../domene/DatavarehusTestUtils.java | 14 - .../tjeneste/DatavarehusTjenesteImplTest.java | 21 +- .../VedtakUtbetalingDvhMapperTest.java | 56 -- ...kXmlTjenesteEngangsst\303\270nadTest.java" | 307 ---------- ...vhVedtakXmlTjenesteForeldrepengerTest.java | 530 ------------------ .../hendelser/DummyDatavarehustjeneste.java | 5 - .../vedtak/OpprettProsessTaskIverksett.java | 2 - .../es/OpprettProsessTaskIverksettTest.java | 5 +- .../fp/OpprettProsessTaskIverksettTest.java | 5 +- 28 files changed, 24 insertions(+), 2749 deletions(-) delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/VedtakUtbetalingDvh.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/task/VedtakTilDatavarehusTask.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/VedtakUtbetalingDvhMapper.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhPersonopplysningXmlTjeneste.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjeneste.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/OppdragXmlTjeneste.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/DvhPersonopplysningXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/OppdragXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/DvhPersonopplysningXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/OppdragXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/DvhPersonopplysningXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/OppdragXmlTjenesteImpl.java delete mode 100644 domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepositoryTest.java delete mode 100644 domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/tjeneste/VedtakUtbetalingDvhMapperTest.java delete mode 100644 "domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjenesteEngangsst\303\270nadTest.java" delete mode 100644 domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjenesteForeldrepengerTest.java diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepository.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepository.java index 5eeb1f259bf..5ca9394cab4 100644 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepository.java +++ b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepository.java @@ -1,8 +1,6 @@ package no.nav.foreldrepenger.datavarehus.domene; -import java.util.List; import java.util.Objects; -import java.util.Optional; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -23,44 +21,11 @@ public DatavarehusRepository( EntityManager entityManager) { this.entityManager = entityManager; } - private static Optional optionalFirst(List liste) { - return liste.isEmpty() ? Optional.empty() : Optional.of(liste.get(0)); - } - public long lagre(BehandlingDvh behandlingDvh) { entityManager.persist(behandlingDvh); return behandlingDvh.getId(); } - public long lagre(VedtakUtbetalingDvh vedtakUtbetalingDvh) { - entityManager.persist(vedtakUtbetalingDvh); - return vedtakUtbetalingDvh.getId(); - } - - public long oppdater(Long eksisterendeBehandlingId, Long eksisterendeVedtakId, String nyVedtakXml) { - var eksisterende = finn(eksisterendeBehandlingId, eksisterendeVedtakId); - if (eksisterende.isPresent()) { - return - oppdater(eksisterende.get(), nyVedtakXml); - } - throw new IllegalStateException(String.format("Finner ikke eksiterende dvh vedtak utbetaling for behandling %s og vedtak %s", eksisterendeBehandlingId, eksisterendeVedtakId)); - } - - public long oppdater(VedtakUtbetalingDvh vedtakUtbetalingDvh, String nyVedtakXml) { - vedtakUtbetalingDvh.setXmlClob(nyVedtakXml); - vedtakUtbetalingDvh.setTransTid(); - var merge = entityManager.merge(vedtakUtbetalingDvh); - return merge.getId(); - } - - public Optional finn(Long behandlingId, Long vedtakId) { - var query = entityManager.createQuery("from VedtakUtbetalingDvh where behandlingId = :behandlingId " + - "AND vedtakId = :vedtakId order by id", VedtakUtbetalingDvh.class); - query.setParameter("behandlingId", behandlingId); - query.setParameter("vedtakId", vedtakId); - return optionalFirst(query.getResultList()); - } - public long lagre(KlageFormkravDvh formkrav) { entityManager.persist(formkrav); return formkrav.getId(); diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/VedtakUtbetalingDvh.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/VedtakUtbetalingDvh.java deleted file mode 100644 index 9219e986339..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/domene/VedtakUtbetalingDvh.java +++ /dev/null @@ -1,204 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.domene; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.Objects; - -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Lob; -import jakarta.persistence.Table; - -@Entity(name = "VedtakUtbetalingDvh") -@Table(name = "VEDTAK_UTBETALING_DVH") -public class VedtakUtbetalingDvh extends DvhBaseEntitet { - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_VEDTAK_UTBETALING_DVH") - @Column(name = "TRANS_ID") - private Long id; - - @Column(name = "VEDTAK_DATO", nullable = false) - private LocalDate vedtakDato; - @Lob - @Column(name = "XML_CLOB", nullable = false) - private String xmlClob; - - @Column(name = "FAGSAK_ID", nullable = false) - private Long fagsakId; - - @Column(name = "VEDTAK_ID", nullable = false) - private Long vedtakId; - - @Column(name = "BEHANDLING_ID", nullable = false) - private Long behandlingId; - - @Column(name = "FAGSAK_TYPE", nullable = false) - private String fagsakType; - - @Column(name = "BEHANDLING_TYPE", nullable = false) - private String behandlingType; - - @Column(name = "SOEKNAD_TYPE", nullable = false) - private String søknadType; - - VedtakUtbetalingDvh() { - //Same procedure as last class miss Sophie? - } - - public static VedtakUtbetalingDvh.Builder builder() { - return new VedtakUtbetalingDvh.Builder(); - } - - public Long getId() { - return id; - } - - public LocalDate getVedtakDato() { - return vedtakDato; - } - - public String getXmlClob() { - return xmlClob; - } - - public VedtakUtbetalingDvh setXmlClob(String xmlClob) { - this.xmlClob = xmlClob; - return this; - } - - public void setTransTid(){ - setTransTid( LocalDateTime.now()); - } - public Long getFagsakId() { - return fagsakId; - } - - public Long getVedtakId() { - return vedtakId; - } - - public Long getBehandlingId() { - return behandlingId; - } - - public String getFagsakType() { - return fagsakType; - } - - public String getBehandlingType() { - return behandlingType; - } - - public String getSøknadType() { - return søknadType; - } - - @Override - public boolean equals(final Object other) { - if (this == other) { - return true; - } - if (!(other instanceof VedtakUtbetalingDvh castOther)) { - return false; - } - if (!super.equals(other)) { - return false; - } - return Objects.equals(vedtakDato, castOther.vedtakDato) - && Objects.equals(xmlClob, castOther.xmlClob) - && Objects.equals(fagsakId, castOther.fagsakId) - && Objects.equals(vedtakId, castOther.vedtakId) - && Objects.equals(behandlingId, castOther.behandlingId) - && Objects.equals(fagsakType, castOther.fagsakType) - && Objects.equals(behandlingType, castOther.behandlingType) - && Objects.equals(søknadType, castOther.søknadType); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), vedtakDato, xmlClob, fagsakId, vedtakId, behandlingId, fagsakType, - behandlingType, søknadType); - } - - public static class Builder { - private LocalDate vedtakDato; - private String xmlClob; - private Long fagsakId; - private Long vedtakId; - private Long behandlingId; - private String fagsakType; - private String behandlingType; - private String søknadType; - private LocalDateTime funksjonellTid; - private String endretAv; - - public Builder vedtakDato(LocalDate vedtakDato) { - this.vedtakDato = vedtakDato; - return this; - } - - public Builder xmlClob(String xmlClob) { - this.xmlClob = xmlClob; - return this; - } - - public Builder fagsakId(Long fagsakId) { - this.fagsakId = fagsakId; - return this; - } - - public Builder vedtakId(Long vedtakId) { - this.vedtakId = vedtakId; - return this; - } - - public Builder behandlingId(Long behandlingId) { - this.behandlingId = behandlingId; - return this; - } - - public Builder fagsakType(String fagsakType) { - this.fagsakType = fagsakType; - return this; - } - - public Builder behandlingType(String behandlingType) { - this.behandlingType = behandlingType; - return this; - } - - public Builder søknadType(String søknadType) { - this.søknadType = søknadType; - return this; - } - - public Builder funksjonellTid(LocalDateTime funksjonellTid) { - this.funksjonellTid = funksjonellTid; - return this; - } - - public Builder endretAv(String endretAv) { - this.endretAv = endretAv; - return this; - } - - public VedtakUtbetalingDvh build() { - var vedtakUtbetalingDvh = new VedtakUtbetalingDvh(); - vedtakUtbetalingDvh.vedtakDato = vedtakDato; - vedtakUtbetalingDvh.xmlClob = xmlClob; - vedtakUtbetalingDvh.fagsakId = fagsakId; - vedtakUtbetalingDvh.vedtakId = vedtakId; - vedtakUtbetalingDvh.behandlingId = behandlingId; - vedtakUtbetalingDvh.fagsakType = fagsakType; - vedtakUtbetalingDvh.behandlingType = behandlingType; - vedtakUtbetalingDvh.søknadType = søknadType; - vedtakUtbetalingDvh.setFunksjonellTid(funksjonellTid); - vedtakUtbetalingDvh.setEndretAv(endretAv); - - return vedtakUtbetalingDvh; - } - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/task/VedtakTilDatavarehusTask.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/task/VedtakTilDatavarehusTask.java deleted file mode 100644 index fcf121fde2d..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/task/VedtakTilDatavarehusTask.java +++ /dev/null @@ -1,34 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.task; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakProsesstaskRekkefølge; -import no.nav.foreldrepenger.behandlingslager.task.GenerellProsessTask; -import no.nav.foreldrepenger.datavarehus.tjeneste.DatavarehusTjeneste; -import no.nav.vedtak.felles.prosesstask.api.ProsessTask; -import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; - -@ApplicationScoped -@ProsessTask(value = "iverksetteVedtak.vedtakTilDatavarehus", prioritet = 2) -@FagsakProsesstaskRekkefølge(gruppeSekvens = false) -public class VedtakTilDatavarehusTask extends GenerellProsessTask { - - private DatavarehusTjeneste datavarehusTjeneste; - - VedtakTilDatavarehusTask() { - // for CDI proxy - } - - @Inject - public VedtakTilDatavarehusTask(DatavarehusTjeneste datavarehusTjeneste) { - super(); - this.datavarehusTjeneste = datavarehusTjeneste; - } - - @Override - public void prosesser(ProsessTaskData prosessTaskData, Long fagsakId, Long behandlingId) { - datavarehusTjeneste.opprettOgLagreVedtakXml(behandlingId); - } - -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjeneste.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjeneste.java index 67ccff01532..8be98b72cb8 100644 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjeneste.java +++ b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjeneste.java @@ -12,7 +12,5 @@ public interface DatavarehusTjeneste { void lagreNedBehandling(Behandling behandling, BehandlingVedtak vedtak); - void opprettOgLagreVedtakXml(Long behandlingId); - void oppdaterHvisKlageEllerAnke(Long behandlingId, Collection aksjonspunkter); } diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImpl.java index 52c75de5041..d8cdfab0867 100644 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImpl.java +++ b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImpl.java @@ -16,7 +16,6 @@ import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingStatus; import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingType; import no.nav.foreldrepenger.behandlingslager.behandling.Behandlingsresultat; import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingsresultatRepository; @@ -32,7 +31,6 @@ import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatEntitet; import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatPeriode; import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseEntitet; import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseGrunnlagEntitet; import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseRepository; import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseType; @@ -62,7 +60,6 @@ import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakEgenskapRepository; import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; import no.nav.foreldrepenger.datavarehus.domene.DatavarehusRepository; -import no.nav.foreldrepenger.datavarehus.xml.DvhVedtakXmlTjeneste; import no.nav.foreldrepenger.skjæringstidspunkt.SkjæringstidspunktTjeneste; @ApplicationScoped @@ -84,7 +81,6 @@ public class DatavarehusTjenesteImpl implements DatavarehusTjeneste { private KlageRepository klageRepository; private MottatteDokumentRepository mottatteDokumentRepository; private AnkeRepository ankeRepository; - private DvhVedtakXmlTjeneste dvhVedtakXmlTjeneste; private SkjæringstidspunktTjeneste skjæringstidspunktTjeneste; private BeregningsresultatRepository beregningsresultatRepository; private YtelsesFordelingRepository ytelsesFordelingRepository; @@ -98,7 +94,6 @@ public DatavarehusTjenesteImpl(BehandlingRepositoryProvider repositoryProvider, AnkeRepository ankeRepository, KlageRepository klageRepository, MottatteDokumentRepository mottatteDokumentRepository, - DvhVedtakXmlTjeneste dvhVedtakXmlTjeneste, SkjæringstidspunktTjeneste skjæringstidspunktTjeneste, SvangerskapspengerRepository svangerskapspengerRepository) { this.datavarehusRepository = datavarehusRepository; @@ -110,7 +105,6 @@ public DatavarehusTjenesteImpl(BehandlingRepositoryProvider repositoryProvider, this.klageRepository = klageRepository; this.mottatteDokumentRepository = mottatteDokumentRepository; this.ankeRepository = ankeRepository; - this.dvhVedtakXmlTjeneste = dvhVedtakXmlTjeneste; this.skjæringstidspunktTjeneste = skjæringstidspunktTjeneste; this.fagsakEgenskapRepository = fagsakEgenskapRepository; this.svangerskapspengerRepository = svangerskapspengerRepository; @@ -251,22 +245,6 @@ private LocalDate finnUtbetaltDato(Behandling behandling, BehandlingVedtak vedta } } - @Override - public void opprettOgLagreVedtakXml(Long behandlingId) { - var behandlingVedtakOpt = behandlingVedtakRepository.hentForBehandlingHvisEksisterer(behandlingId); - var behandling = behandlingRepository.hentBehandling(behandlingId); - if (behandlingVedtakOpt.isPresent()) { - var vedtakXml = dvhVedtakXmlTjeneste.opprettDvhVedtakXml(behandlingId); - var hendelseType = familieGrunnlagRepository.hentAggregatHvisEksisterer(behandling.getId()) - .map(FamilieHendelseGrunnlagEntitet::getGjeldendeVersjon) - .map(FamilieHendelseEntitet::getType) - .orElse(FamilieHendelseType.UDEFINERT); - var vedtakUtbetalingDvh = VedtakUtbetalingDvhMapper.map(vedtakXml, behandling, behandlingVedtakOpt.get(), hendelseType); - datavarehusRepository.lagre(vedtakUtbetalingDvh); - } - } - - private void lagreKlageFormkrav(KlageFormkravEntitet klageFormkrav) { var klageFormkravDvh = KlageFormkravDvhMapper.map(klageFormkrav); datavarehusRepository.lagre(klageFormkravDvh); diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/VedtakUtbetalingDvhMapper.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/VedtakUtbetalingDvhMapper.java deleted file mode 100644 index 64076419971..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/tjeneste/VedtakUtbetalingDvhMapper.java +++ /dev/null @@ -1,29 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.tjeneste; - -import java.time.LocalDateTime; - -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseType; -import no.nav.foreldrepenger.behandlingslager.behandling.vedtak.BehandlingVedtak; -import no.nav.foreldrepenger.datavarehus.domene.VedtakUtbetalingDvh; - -class VedtakUtbetalingDvhMapper { - - private VedtakUtbetalingDvhMapper() { - } - - static VedtakUtbetalingDvh map(String xmlClob, Behandling behandling, BehandlingVedtak behandlingVedtak, FamilieHendelseType hendelseType) { - return VedtakUtbetalingDvh.builder() - .xmlClob(xmlClob) - .fagsakId(behandling.getFagsakId()) - .behandlingId(behandling.getId()) - .vedtakId(behandlingVedtak.getId()) - .vedtakDato(behandlingVedtak.getVedtaksdato()) - .behandlingType(behandling.getType().getOffisiellKode()) - .fagsakType(behandling.getFagsakYtelseType().getKode()) - .søknadType(hendelseType.getKode()) - .funksjonellTid(LocalDateTime.now()) - .endretAv(CommonDvhMapper.finnEndretAvEllerOpprettetAv(behandlingVedtak)) - .build(); - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhPersonopplysningXmlTjeneste.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhPersonopplysningXmlTjeneste.java deleted file mode 100644 index b1a7e1dec3a..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhPersonopplysningXmlTjeneste.java +++ /dev/null @@ -1,38 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml; - -import no.nav.foreldrepenger.behandling.BehandlingReferanse; -import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningerAggregat; -import no.nav.foreldrepenger.domene.personopplysning.PersonopplysningTjeneste; -import no.nav.foreldrepenger.domene.typer.AktørId; -import no.nav.vedtak.felles.xml.vedtak.v2.Personopplysninger; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - -public abstract class DvhPersonopplysningXmlTjeneste { - - private PersonopplysningTjeneste personopplysningTjeneste; - - - public DvhPersonopplysningXmlTjeneste() { - // For CDI - } - - public DvhPersonopplysningXmlTjeneste(PersonopplysningTjeneste personopplysningTjeneste) { - this.personopplysningTjeneste = personopplysningTjeneste; - } - - public abstract Object lagPersonopplysning(PersonopplysningerAggregat personopplysningerAggregat, Long behandlingId, AktørId aktørId, Skjæringstidspunkt skjæringstidspunkter); - - public void setPersonopplysninger(Vedtak vedtak, BehandlingReferanse ref, Skjæringstidspunkt skjæringstidspunkt) { - Object personopplysninger = null; - var stp = skjæringstidspunkt.getSkjæringstidspunktHvisUtledet().orElse(null); - var personopplysningerAggregat = personopplysningTjeneste.hentPersonopplysningerHvisEksisterer(ref); - if (personopplysningerAggregat.isPresent()) { - personopplysninger = lagPersonopplysning(personopplysningerAggregat.get(), ref.behandlingId(), ref.aktørId(), skjæringstidspunkt);//Implementeres i hver subklasse - } - var personopplysninger1 = new Personopplysninger(); - personopplysninger1.getAny().add(personopplysninger); - vedtak.setPersonOpplysninger(personopplysninger1); - } - -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjeneste.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjeneste.java deleted file mode 100644 index 02db0d9d51a..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjeneste.java +++ /dev/null @@ -1,90 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.Any; -import jakarta.enterprise.inject.Instance; -import jakarta.inject.Inject; -import jakarta.xml.bind.JAXBException; - -import org.xml.sax.SAXException; - -import no.nav.foreldrepenger.behandling.BehandlingReferanse; -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.repository.BehandlingRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.repository.BehandlingRepositoryProvider; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakRepository; -import no.nav.foreldrepenger.datavarehus.v2.StønadsstatistikkTjeneste; -import no.nav.foreldrepenger.skjæringstidspunkt.SkjæringstidspunktTjeneste; -import no.nav.foreldrepenger.vedtak.v2.VedtakConstants; -import no.nav.foreldrepenger.xmlutils.JaxbHelper; -import no.nav.vedtak.felles.xml.vedtak.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - -@ApplicationScoped -public class DvhVedtakXmlTjeneste { - - private BehandlingRepository behandlingRepository; - private FagsakRepository fagsakRepository; - private ObjectFactory factory; - private VedtakXmlTjeneste vedtakXmlTjeneste; - private Instance oppdragXmlTjenester; - private Instance personopplysningXmlTjenester; - private BehandlingsresultatXmlTjeneste behandlingsresultatXmlTjenester; - private SkjæringstidspunktTjeneste skjæringstidspunktTjeneste; - - DvhVedtakXmlTjeneste() { - // for CDI proxy - } - - @Inject - public DvhVedtakXmlTjeneste(BehandlingRepositoryProvider repositoryProvider, - VedtakXmlTjeneste vedtakXmlTjeneste, - @Any Instance personopplysningXmlTjenester, - @Any Instance oppdragXmlTjenester, - BehandlingsresultatXmlTjeneste behandlingsresultatXmlTjenester, - SkjæringstidspunktTjeneste skjæringstidspunktTjeneste, - StønadsstatistikkTjeneste stønadsstatistikkTjeneste) { - this.vedtakXmlTjeneste = vedtakXmlTjeneste; - this.oppdragXmlTjenester = oppdragXmlTjenester; - this.personopplysningXmlTjenester = personopplysningXmlTjenester; - this.behandlingsresultatXmlTjenester = behandlingsresultatXmlTjenester; - this.skjæringstidspunktTjeneste = skjæringstidspunktTjeneste; - - this.behandlingRepository = repositoryProvider.getBehandlingRepository(); - this.fagsakRepository = repositoryProvider.getFagsakRepository(); - this.factory = new ObjectFactory(); - } - - public String opprettDvhVedtakXml(Long behandlingId) { - var behandling = behandlingRepository.hentBehandling(behandlingId); - var fagsak = fagsakRepository.finnEksaktFagsak(behandling.getFagsakId()); - var vedtak = factory.createVedtak(); - var skjæringstidspunkter = skjæringstidspunktTjeneste.getSkjæringstidspunkter(behandlingId); - var ref = BehandlingReferanse.fra(behandling); - vedtakXmlTjeneste.setVedtaksopplysninger(vedtak, fagsak, behandling); - var ytelseType = fagsak.getYtelseType(); - var ikkeFunnet = "Ingen implementasjoner funnet for ytelse: " + ytelseType.getKode(); - - FagsakYtelseTypeRef.Lookup.find(personopplysningXmlTjenester, ytelseType).orElseThrow(() -> new IllegalStateException(ikkeFunnet)) - .setPersonopplysninger(vedtak, ref, skjæringstidspunkter); - - behandlingsresultatXmlTjenester.setBehandlingresultat(vedtak, behandling); - - FagsakYtelseTypeRef.Lookup.find(oppdragXmlTjenester, ytelseType).orElseThrow(() -> new IllegalStateException(ikkeFunnet)) - .setOppdrag(vedtak, behandling); - - return genererXml(behandlingId, vedtak); - } - - private String genererXml(Long behandlingId, Vedtak vedtak) { - try { - return JaxbHelper.marshalAndValidateJaxb(VedtakConstants.JAXB_CLASS, - vedtak, - VedtakConstants.XSD_LOCATION, - VedtakConstants.ADDITIONAL_XSD_LOCATIONS, - VedtakConstants.ADDITIONAL_CLASSES); - } catch (JAXBException | SAXException e) { - throw VedtakXmlFeil.serialiseringsfeil(behandlingId, e); - } - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/OppdragXmlTjeneste.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/OppdragXmlTjeneste.java deleted file mode 100644 index 7f1901f2548..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/OppdragXmlTjeneste.java +++ /dev/null @@ -1,9 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml; - -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - - -public interface OppdragXmlTjeneste { - void setOppdrag(Vedtak vedtak, Behandling behandling) ; -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/PersonopplysningXmlFelles.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/PersonopplysningXmlFelles.java index ad51306e2fe..d644c663bf8 100644 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/PersonopplysningXmlFelles.java +++ b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/PersonopplysningXmlFelles.java @@ -78,21 +78,6 @@ public PersonIdentifiserbar lagBruker(Skjæringstidspunkt stp, Personopplysninge return person; } - public PersonUidentifiserbar lagUidentifiserbarBruker(Skjæringstidspunkt stp, PersonopplysningerAggregat aggregat, PersonopplysningEntitet personopplysning) { - var person = personopplysningObjectFactory.createPersonUidentifiserbar(); - - populerPerson(stp, aggregat, personopplysning, person); - - if (personopplysning.getAktørId() != null) { - person.setAktoerId(VedtakXmlUtil.lagStringOpplysning(personopplysning.getAktørId().getId())); - } - - var sivilstand = VedtakXmlUtil.lagKodeverksOpplysning(personopplysning.getSivilstand()); - person.setSivilstand(sivilstand); - - return person; - } - private void populerPerson(Skjæringstidspunkt stp, PersonopplysningerAggregat aggregat, PersonopplysningEntitet personopplysning, PersonUidentifiserbar person) { var dødsdato = VedtakXmlUtil.lagDateOpplysning(personopplysning.getDødsdato()); dødsdato.ifPresent(person::setDoedsdato); diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/DvhPersonopplysningXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/DvhPersonopplysningXmlTjenesteImpl.java deleted file mode 100644 index 5b908a90b91..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/DvhPersonopplysningXmlTjenesteImpl.java +++ /dev/null @@ -1,263 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.es; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseGrunnlagEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseType; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.UidentifisertBarn; -import no.nav.foreldrepenger.behandlingslager.behandling.medlemskap.MedlemskapRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonAdresseEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonRelasjonEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningerAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeRepository; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.datavarehus.xml.DvhPersonopplysningXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.PersonopplysningXmlFelles; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.domene.arbeidsforhold.InntektArbeidYtelseTjeneste; -import no.nav.foreldrepenger.domene.iay.modell.InntektFilter; -import no.nav.foreldrepenger.domene.iay.modell.YtelseFilter; -import no.nav.foreldrepenger.domene.iay.modell.kodeverk.InntektspostType; -import no.nav.foreldrepenger.domene.personopplysning.PersonopplysningTjeneste; -import no.nav.foreldrepenger.domene.tid.SimpleLocalDateInterval; -import no.nav.foreldrepenger.domene.typer.AktørId; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.Addresse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.Adopsjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.Familierelasjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.Inntekt; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.es.v2.PersonopplysningerDvhEngangsstoenad; - -@FagsakYtelseTypeRef(FagsakYtelseType.ENGANGSTØNAD) -@ApplicationScoped -public class DvhPersonopplysningXmlTjenesteImpl extends DvhPersonopplysningXmlTjeneste { - - private final no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory personopplysningBaseObjectFactory = new no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory(); - private final ObjectFactory personopplysningDvhObjectFactory = new ObjectFactory(); - private FamilieHendelseRepository familieHendelseRepository; - private VergeRepository vergeRepository; - private MedlemskapRepository medlemskapRepository; - private InntektArbeidYtelseTjeneste iayTjeneste; - private PersonopplysningXmlFelles personopplysningFellesTjeneste; - - public DvhPersonopplysningXmlTjenesteImpl() { - // CDI - } - - @Inject - public DvhPersonopplysningXmlTjenesteImpl(PersonopplysningXmlFelles fellesTjeneste, - FamilieHendelseRepository familieHendelseRepository, - VergeRepository vergeRepository, - MedlemskapRepository medlemskapRepository, - PersonopplysningTjeneste personopplysningTjeneste, - InntektArbeidYtelseTjeneste iayTjeneste) { - super(personopplysningTjeneste); - personopplysningFellesTjeneste = fellesTjeneste; - this.iayTjeneste = iayTjeneste; - this.familieHendelseRepository = familieHendelseRepository; - this.vergeRepository = vergeRepository; - this.medlemskapRepository = medlemskapRepository; - } - - @Override - public Object lagPersonopplysning(PersonopplysningerAggregat personopplysningerAggregat, Long behandlingId, AktørId aktørId, - Skjæringstidspunkt skjæringstidspunkter) { - var personopplysninger = personopplysningDvhObjectFactory.createPersonopplysningerDvhEngangsstoenad(); - var familieHendelseAggregatOptional = familieHendelseRepository.hentAggregatHvisEksisterer(behandlingId); - - familieHendelseAggregatOptional.ifPresent(familieHendelseGrunnlaghGr -> { - setAdopsjon(personopplysninger, familieHendelseGrunnlaghGr); - setFødsel(personopplysninger, familieHendelseGrunnlaghGr); - setVerge(behandlingId, personopplysninger); - setMedlemskapsperioder(behandlingId, personopplysninger); - setOmsorgovertakelse(personopplysninger, familieHendelseGrunnlaghGr); - setTerminbekreftelse(personopplysninger, familieHendelseGrunnlaghGr); - }); - - var skjæringstidspunkt = skjæringstidspunkter.getUtledetSkjæringstidspunkt(); - setAdresse(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setInntekter(behandlingId, personopplysninger, skjæringstidspunkt); - setBruker(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setFamilierelasjoner(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setRelaterteYtelser(behandlingId, aktørId, personopplysninger, skjæringstidspunkt); - - return personopplysningDvhObjectFactory.createPersonopplysningerDvhEngangsstoenad(personopplysninger); - } - - private void setRelaterteYtelser(Long behandlingId, AktørId aktørId, PersonopplysningerDvhEngangsstoenad personopplysninger, LocalDate skjæringstidspunkt) { - var ytelseFilter = iayTjeneste.finnGrunnlag(behandlingId) - .map(it -> new YtelseFilter(it.getAktørYtelseFraRegister(aktørId)).før(skjæringstidspunkt)).orElse(YtelseFilter.EMPTY); - var ytelser = ytelseFilter.getFiltrertYtelser(); - if (!ytelser.isEmpty()) { - var relaterteYtelse = personopplysningDvhObjectFactory - .createPersonopplysningerDvhEngangsstoenadRelaterteYtelser(); - personopplysninger.setRelaterteYtelser(relaterteYtelse); - } - } - - private void setFamilierelasjoner(Skjæringstidspunkt stp, PersonopplysningerDvhEngangsstoenad personopplysninger, PersonopplysningerAggregat aggregat) { - var aktørPersonopplysningMap = aggregat.getAktørPersonopplysningMap(); - var tilPersoner = aggregat.getSøkersRelasjoner().stream().filter(r -> aktørPersonopplysningMap.get(r.getTilAktørId()) != null).toList(); - if (!tilPersoner.isEmpty()) { - var familierelasjoner = personopplysningDvhObjectFactory.createPersonopplysningerDvhEngangsstoenadFamilierelasjoner(); - personopplysninger.setFamilierelasjoner(familierelasjoner); - tilPersoner.forEach(relasjon -> personopplysninger.getFamilierelasjoner() - .getFamilierelasjon() - .add(lagRelasjon(stp, relasjon, aktørPersonopplysningMap.get(relasjon.getTilAktørId()), aggregat))); - } - } - - private Familierelasjon lagRelasjon(Skjæringstidspunkt stp, PersonRelasjonEntitet relasjon, PersonopplysningEntitet tilPerson, PersonopplysningerAggregat aggregat) { - var familierelasjon = personopplysningDvhObjectFactory.createFamilierelasjon(); - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, aggregat, tilPerson); - familierelasjon.setTilPerson(person); - familierelasjon.setRelasjon(VedtakXmlUtil.lagKodeverksOpplysning(relasjon.getRelasjonsrolle())); - return familierelasjon; - } - - private void setBruker(Skjæringstidspunkt stp, PersonopplysningerDvhEngangsstoenad personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, personopplysningerAggregat, personopplysningerAggregat.getSøker()); - personopplysninger.setBruker(person); - } - - private void setInntekter(Long behandlingId, PersonopplysningerDvhEngangsstoenad personopplysninger, LocalDate skjæringstidspunkt) { - iayTjeneste.finnGrunnlag(behandlingId).ifPresent(grunnlag -> { - var aktørInntekt = grunnlag.getAlleAktørInntektFraRegister(); - if (aktørInntekt != null) { - var inntekterPersonopplysning = personopplysningDvhObjectFactory - .createPersonopplysningerDvhEngangsstoenadInntekter(); - aktørInntekt.forEach(inntekt -> { - var filter = new InntektFilter(inntekt).før(skjæringstidspunkt).filterPensjonsgivende(); - inntekterPersonopplysning.getInntekt().addAll(lagInntekt(inntekt.getAktørId(), filter)); - }); - personopplysninger.setInntekter(inntekterPersonopplysning); - } - }); - } - - private List lagInntekt(AktørId aktørId, InntektFilter filter) { - List inntektList = new ArrayList<>(); - filter.forFilter((inntekt, inntektsposter) -> inntektsposter.forEach(inntektspost -> { - var inntektXml = personopplysningDvhObjectFactory.createInntekt(); - if (inntekt.getArbeidsgiver() != null) { - inntektXml.setArbeidsgiver(VedtakXmlUtil.lagStringOpplysning(inntekt.getArbeidsgiver().getIdentifikator())); - } - inntektXml.setBeloep(VedtakXmlUtil.lagDoubleOpplysning(inntektspost.getBeløp().getVerdi().doubleValue())); - inntektXml.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(inntektspost.getPeriode().getFomDato(), inntektspost.getPeriode().getTomDato())); - inntektXml.setMottakerAktoerId(VedtakXmlUtil.lagStringOpplysning(aktørId.getId())); - inntektXml.setYtelse(VedtakXmlUtil.lagBooleanOpplysning(inntektspost.getInntektspostType().equals(InntektspostType.YTELSE))); - inntektList.add(inntektXml); - })); - return inntektList; - } - - private void setTerminbekreftelse(PersonopplysningerDvhEngangsstoenad personopplysninger, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - if (familieHendelseGrunnlag.getGjeldendeVersjon().getType().equals(FamilieHendelseType.TERMIN)) { - var terminbekreftelseOptional = familieHendelseGrunnlag - .getGjeldendeTerminbekreftelse(); - terminbekreftelseOptional.ifPresent(terminbekreftelseFraBehandling -> { - var terminbekreftelse = personopplysningDvhObjectFactory.createTerminbekreftelse(); - terminbekreftelse.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(familieHendelseGrunnlag.getGjeldendeAntallBarn())); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getUtstedtdato()) - .ifPresent(terminbekreftelse::setUtstedtDato); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getTermindato()).ifPresent(terminbekreftelse::setTermindato); - - personopplysninger.setTerminbekreftelse(terminbekreftelse); - }); - } - } - - private void setOmsorgovertakelse(PersonopplysningerDvhEngangsstoenad personopplysninger, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - if (familieHendelseGrunnlag.getGjeldendeVersjon().getType().equals(FamilieHendelseType.OMSORG)) { - familieHendelseGrunnlag.getGjeldendeAdopsjon().ifPresent(adopsjonFraBehandling -> { - var omsorgsovertakelse = personopplysningDvhObjectFactory.createOmsorgsovertakelse(); - - VedtakXmlUtil.lagDateOpplysning(adopsjonFraBehandling.getOmsorgsovertakelseDato()) - .ifPresent(omsorgsovertakelse::setOmsorgsovertakelsesdato); - - personopplysninger.setOmsorgsovertakelse(omsorgsovertakelse); - }); - } - } - - private void setMedlemskapsperioder(Long behandlingId, PersonopplysningerDvhEngangsstoenad personopplysninger) { - medlemskapRepository.hentMedlemskap(behandlingId).ifPresent(medlemskapperioderFraBehandling -> { - var medlemskapsperioder = personopplysningDvhObjectFactory - .createPersonopplysningerDvhEngangsstoenadMedlemskapsperioder(); - personopplysninger.setMedlemskapsperioder(medlemskapsperioder); - medlemskapperioderFraBehandling.getRegistrertMedlemskapPerioder() - .forEach(medlemskapsperiode -> personopplysninger.getMedlemskapsperioder().getMedlemskapsperiode() - .add(personopplysningFellesTjeneste.lagMedlemskapPeriode(medlemskapsperiode))); - }); - } - - private void setVerge(Long behandlingId, PersonopplysningerDvhEngangsstoenad personopplysninger) { - vergeRepository.hentAggregat(behandlingId).flatMap(VergeAggregat::getVerge).ifPresent(vergeFraBehandling -> { - var verge = personopplysningDvhObjectFactory.createVerge(); - verge.setVergetype(VedtakXmlUtil.lagKodeverksOpplysning(vergeFraBehandling.getVergeType())); - verge.setGyldighetsperiode(VedtakXmlUtil.lagPeriodeOpplysning(vergeFraBehandling.getGyldigFom(), vergeFraBehandling.getGyldigTom())); - - // TODO(PJV): DVH må utvides med de nye feltene for organisasjon (og evt. adresse) - - personopplysninger.setVerge(verge); - }); - } - - private void setFødsel(PersonopplysningerDvhEngangsstoenad personopplysninger, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - var gjeldendeFamilieHendelse = familieHendelseGrunnlag.getGjeldendeVersjon(); - if (Arrays.asList(FamilieHendelseType.FØDSEL, FamilieHendelseType.TERMIN).contains(gjeldendeFamilieHendelse.getType())) { - var fødsel = personopplysningBaseObjectFactory.createFoedsel(); - fødsel.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(gjeldendeFamilieHendelse.getAntallBarn())); - gjeldendeFamilieHendelse.getFødselsdato().flatMap(VedtakXmlUtil::lagDateOpplysning).ifPresent(fødsel::setFoedselsdato); - personopplysninger.setFoedsel(fødsel); - } - } - - private void setAdopsjon(PersonopplysningerDvhEngangsstoenad personopplysninger, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - familieHendelseGrunnlag.getGjeldendeAdopsjon().ifPresent(adopsjonHendelse -> { - var adopsjon = personopplysningDvhObjectFactory.createAdopsjon(); - if (adopsjonHendelse.getErEktefellesBarn() != null) { - var erEktefellesBarn = VedtakXmlUtil.lagBooleanOpplysning(adopsjonHendelse.getErEktefellesBarn()); - adopsjon.setErEktefellesBarn(erEktefellesBarn); - } - - familieHendelseGrunnlag.getGjeldendeBarna().forEach(aBarn -> adopsjon.getAdopsjonsbarn().add(leggTilAdopsjonsbarn(aBarn))); - personopplysninger.setAdopsjon(adopsjon); - }); - } - - private Adopsjon.Adopsjonsbarn leggTilAdopsjonsbarn(UidentifisertBarn aBarn) { - var adopsjonsbarn = personopplysningDvhObjectFactory.createAdopsjonAdopsjonsbarn(); - VedtakXmlUtil.lagDateOpplysning(aBarn.getFødselsdato()).ifPresent(adopsjonsbarn::setFoedselsdato); - return adopsjonsbarn; - } - - private void setAdresse(Skjæringstidspunkt stp, PersonopplysningerDvhEngangsstoenad personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var personopplysning = personopplysningerAggregat.getSøker(); - var opplysningAdresser = personopplysningerAggregat.getAdresserFor(personopplysning.getAktørId(), SimpleLocalDateInterval.enDag(stp.getUtledetSkjæringstidspunkt())); - if (opplysningAdresser != null) { - opplysningAdresser.forEach(adresse -> personopplysninger.getAdresse().add(lagAdresse(adresse))); - } - } - - private Addresse lagAdresse(PersonAdresseEntitet adresseFraBehandling) { - var adresse = personopplysningDvhObjectFactory.createAddresse(); - adresse.setAddresseType(VedtakXmlUtil.lagKodeverksOpplysning(adresseFraBehandling.getAdresseType())); - adresse.setLand(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getLand().getNavn())); - adresse.setPostnummer(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getPostnummer())); - return adresse; - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/OppdragXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/OppdragXmlTjenesteImpl.java deleted file mode 100644 index 65d8ab16a3d..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/es/OppdragXmlTjenesteImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.es; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.datavarehus.xml.OppdragXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.økonomistøtte.HentOppdragMedPositivKvittering; -import no.nav.vedtak.felles.xml.vedtak.oppdrag.dvh.es.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - -@FagsakYtelseTypeRef(FagsakYtelseType.ENGANGSTØNAD) -@ApplicationScoped -public class OppdragXmlTjenesteImpl implements OppdragXmlTjeneste { - private ObjectFactory oppdragObjectFactory; - private HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering; - - public OppdragXmlTjenesteImpl() { - //CDI - } - - @Inject - public OppdragXmlTjenesteImpl(HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering) { - this.hentOppdragMedPositivKvittering = hentOppdragMedPositivKvittering; - oppdragObjectFactory = new ObjectFactory(); - } - - @Override - public void setOppdrag(Vedtak vedtak, Behandling behandling) { - var oppdrag110PositivKvittering = hentOppdragMedPositivKvittering.hentOppdragMedPositivKvitteringFeilHvisVenter(behandling); - if (!oppdrag110PositivKvittering.isEmpty()) { - var oppdragXml = oppdragObjectFactory.createOppdrag(); - - var oppdrag110 = oppdrag110PositivKvittering.get(0); - oppdragXml.setOppdragId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getId())); - oppdragXml.setFagsystemId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getFagsystemId())); - var oppdragslinje150 = oppdrag110.getOppdragslinje150Liste().get(0); - - oppdragXml.setLinjeId(VedtakXmlUtil.lagLongOpplysning(oppdragslinje150.getId())); - - if(oppdragslinje150.getDelytelseId() != null) - oppdragXml.setDelytelseId(VedtakXmlUtil.lagLongOpplysning(oppdragslinje150.getDelytelseId())); - - if(oppdragslinje150.getRefDelytelseId() != null) - oppdragXml.setRefDelytelseId(VedtakXmlUtil.lagLongOpplysning(oppdragslinje150.getRefDelytelseId())); - - oppdragXml.setUtbetalesTilId(VedtakXmlUtil.lagStringOpplysning(oppdragslinje150.getUtbetalesTilId())); - oppdragXml.setRefunderesId(VedtakXmlUtil.lagStringOpplysning(oppdragslinje150.getRefusjonsinfo156() == null ? null : oppdragslinje150.getRefusjonsinfo156().getRefunderesId())); - - vedtak.getOppdrag().add(oppdragXml); - } - } -} - diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/DvhPersonopplysningXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/DvhPersonopplysningXmlTjenesteImpl.java deleted file mode 100644 index 9bc6998bc45..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/DvhPersonopplysningXmlTjenesteImpl.java +++ /dev/null @@ -1,457 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.fp; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseGrunnlagEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseType; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.UidentifisertBarn; -import no.nav.foreldrepenger.behandlingslager.behandling.medlemskap.MedlemskapRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.OppgittAnnenPartEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonAdresseEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonRelasjonEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningerAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.YtelseFordelingAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.periode.DokumentasjonVurdering; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.datavarehus.xml.DvhPersonopplysningXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.PersonopplysningXmlFelles; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.domene.arbeidsforhold.InntektArbeidYtelseTjeneste; -import no.nav.foreldrepenger.domene.arbeidsgiver.VirksomhetTjeneste; -import no.nav.foreldrepenger.domene.iay.modell.InntektFilter; -import no.nav.foreldrepenger.domene.iay.modell.Ytelse; -import no.nav.foreldrepenger.domene.iay.modell.YtelseAnvist; -import no.nav.foreldrepenger.domene.iay.modell.YtelseFilter; -import no.nav.foreldrepenger.domene.iay.modell.YtelseGrunnlag; -import no.nav.foreldrepenger.domene.iay.modell.YtelseStørrelse; -import no.nav.foreldrepenger.domene.personopplysning.PersonopplysningTjeneste; -import no.nav.foreldrepenger.domene.tid.SimpleLocalDateInterval; -import no.nav.foreldrepenger.domene.typer.AktørId; -import no.nav.foreldrepenger.domene.typer.Stillingsprosent; -import no.nav.foreldrepenger.domene.uttak.ForeldrepengerUttakTjeneste; -import no.nav.foreldrepenger.domene.ytelsefordeling.YtelseFordelingTjeneste; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Addresse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Adopsjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.DokumentasjonPeriode; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.FamilieHendelse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Familierelasjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Inntekt; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.PersonopplysningerDvhForeldrepenger; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.RelatertYtelse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Virksomhet; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseStorrelse; - -@FagsakYtelseTypeRef(FagsakYtelseType.FORELDREPENGER) -@ApplicationScoped -public class DvhPersonopplysningXmlTjenesteImpl extends DvhPersonopplysningXmlTjeneste { - - private final no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory personopplysningBaseObjectFactory = new no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory(); - private final ObjectFactory personopplysningDvhObjectFactory = new ObjectFactory(); - private FamilieHendelseRepository familieHendelseRepository; - private VergeRepository vergeRepository; - private MedlemskapRepository medlemskapRepository; - private YtelseFordelingTjeneste ytelseFordelingTjeneste; - private InntektArbeidYtelseTjeneste iayTjeneste; - private VirksomhetTjeneste virksomhetTjeneste; - private PersonopplysningXmlFelles personopplysningFellesTjeneste; - private ForeldrepengerUttakTjeneste foreldrepengerUttakTjeneste; - - public DvhPersonopplysningXmlTjenesteImpl() { - // CDI - } - - @Inject - public DvhPersonopplysningXmlTjenesteImpl(PersonopplysningXmlFelles fellesTjeneste, - FamilieHendelseRepository familieHendelseRepository, - VergeRepository vergeRepository, - MedlemskapRepository medlemskapRepository, - VirksomhetTjeneste virksomhetTjeneste, - PersonopplysningTjeneste personopplysningTjeneste, - InntektArbeidYtelseTjeneste iayTjeneste, - YtelseFordelingTjeneste ytelseFordelingTjeneste, - ForeldrepengerUttakTjeneste foreldrepengerUttakTjeneste) { - super(personopplysningTjeneste); - this.personopplysningFellesTjeneste = fellesTjeneste; - this.iayTjeneste = iayTjeneste; - this.familieHendelseRepository = familieHendelseRepository; - this.vergeRepository = vergeRepository; - this.medlemskapRepository = medlemskapRepository; - this.ytelseFordelingTjeneste = ytelseFordelingTjeneste; - this.virksomhetTjeneste = virksomhetTjeneste; - this.foreldrepengerUttakTjeneste = foreldrepengerUttakTjeneste; - } - - @Override - public Object lagPersonopplysning(PersonopplysningerAggregat personopplysningerAggregat, Long behandlingId, AktørId aktørId, - Skjæringstidspunkt skjæringstidspunkter) { - var personopplysninger = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepenger(); - var familieHendelse = personopplysningDvhObjectFactory.createFamilieHendelse(); - personopplysninger.setFamiliehendelse(familieHendelse); - - familieHendelseRepository.hentAggregatHvisEksisterer(behandlingId).ifPresent(familieHendelseGrunnlag -> { - setAdopsjon(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - setFødsel(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - setVerge(behandlingId, personopplysninger); - setMedlemskapsperioder(behandlingId, personopplysninger); - setTerminbekreftelse(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - }); - var skjæringstidspunkt = skjæringstidspunkter.getUtledetSkjæringstidspunkt(); - setAdresse(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setInntekter(behandlingId, personopplysninger, skjæringstidspunkt); - setDokumentasjonsperioder(behandlingId, personopplysninger, skjæringstidspunkt); - setBruker(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setFamilierelasjoner(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setAnnenForelder(personopplysninger, personopplysningerAggregat); - setRelaterteYtelser(behandlingId, aktørId, personopplysninger, skjæringstidspunkt); - - return personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepenger(personopplysninger); - } - - private void setRelaterteYtelser(Long behandlingId, AktørId aktørId, PersonopplysningerDvhForeldrepenger personopplysninger, LocalDate skjæringstidspunkt) { - var ytelseFilter = iayTjeneste.finnGrunnlag(behandlingId) - .map(it -> new YtelseFilter(it.getAktørYtelseFraRegister(aktørId)).før(skjæringstidspunkt)).orElse(YtelseFilter.EMPTY); - var ytelser = ytelseFilter.getFiltrertYtelser(); - if (!ytelser.isEmpty()) { - var relaterteYtelser = personopplysningDvhObjectFactory - .createPersonopplysningerDvhForeldrepengerRelaterteYtelser(); - ytelser.forEach(ytelse -> relaterteYtelser.getRelatertYtelse().add(konverterFraDomene(ytelse))); - personopplysninger.setRelaterteYtelser(relaterteYtelser); - } - } - - private RelatertYtelse konverterFraDomene(Ytelse ytelse) { - var relatertYtelse = personopplysningDvhObjectFactory.createRelatertYtelse(); - relatertYtelse.setKilde(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getKilde())); - Optional.ofNullable(ytelse.getPeriode()) - .ifPresent(periode -> relatertYtelse.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(periode.getFomDato(), periode.getTomDato()))); - Optional.ofNullable(ytelse.getSaksnummer()) - .ifPresent(saksnummer -> relatertYtelse.setSaksnummer(VedtakXmlUtil.lagStringOpplysning(saksnummer.getVerdi()))); - relatertYtelse.setStatus(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getStatus())); - relatertYtelse.setType(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getRelatertYtelseType())); - - setYtelseAnvist(relatertYtelse, ytelse.getYtelseAnvist()); - setYtelsesgrunnlag(relatertYtelse, ytelse.getYtelseGrunnlag()); - setYtelsesStørrelse(relatertYtelse, ytelse.getYtelseGrunnlag()); - return relatertYtelse; - } - - private void setYtelsesStørrelse(RelatertYtelse relatertYtelseKontrakt, Optional ytelseGrunnlagDomene) { - if (ytelseGrunnlagDomene.isPresent()) { - var ytelseGrunnlag = ytelseGrunnlagDomene.get(); - var ytelseStorrelser = ytelseGrunnlag.getYtelseStørrelse().stream().map(this::konverterFraDomene) - .toList(); - relatertYtelseKontrakt.getYtelsesstorrelse().addAll(ytelseStorrelser); - } - } - - private YtelseStorrelse konverterFraDomene(YtelseStørrelse domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseStorrelse(); - domene.getOrgnr().flatMap(virksomhetTjeneste::finnOrganisasjon) - .ifPresent(virksomhet -> kontrakt.setVirksomhet(tilVirksomhet(virksomhet))); - kontrakt.setBeloep(VedtakXmlUtil.lagDecimalOpplysning(domene.getBeløp().getVerdi())); - kontrakt.setHyppighet(VedtakXmlUtil.lagKodeverksOpplysning(domene.getHyppighet())); - return kontrakt; - } - - private Virksomhet tilVirksomhet(no.nav.foreldrepenger.behandlingslager.virksomhet.Virksomhet domene) { - var kontrakt = personopplysningDvhObjectFactory.createVirksomhet(); - kontrakt.setNavn(VedtakXmlUtil.lagStringOpplysning(domene.getNavn())); - kontrakt.setOrgnr(VedtakXmlUtil.lagStringOpplysning(domene.getOrgnr())); - return kontrakt; - } - - private void setYtelsesgrunnlag(RelatertYtelse relatertYtelseKontrakt, Optional ytelseGrunnlagDomene) { - var ytelseGrunnlagOptional = ytelseGrunnlagDomene - .map(this::konverterFraDomene); - ytelseGrunnlagOptional.ifPresent(relatertYtelseKontrakt::setYtelsesgrunnlag); - } - - private no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseGrunnlag konverterFraDomene(YtelseGrunnlag domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseGrunnlag(); - domene.getArbeidskategori() - .ifPresent(arbeidskategori -> kontrakt.setArbeidtype(VedtakXmlUtil.lagKodeverksOpplysning(arbeidskategori))); - domene.getDekningsgradProsent().ifPresent(dp -> kontrakt.setDekningsgradprosent(VedtakXmlUtil.lagDecimalOpplysning(dp.getVerdi()))); - - domene.getGraderingProsent() - .ifPresent(graderingsProsent -> kontrakt.setGraderingprosent(VedtakXmlUtil.lagDecimalOpplysning(graderingsProsent.getVerdi()))); - domene.getInntektsgrunnlagProsent().map(Stillingsprosent::getVerdi) - .ifPresent(inntektsGrunnlagProsent -> kontrakt.setInntektsgrunnlagprosent(VedtakXmlUtil.lagDecimalOpplysning(inntektsGrunnlagProsent))); - - return kontrakt; - } - - private void setYtelseAnvist(RelatertYtelse relatertYtelseKontrakt, Collection ytelseAnvistDomene) { - var alleYtelserAnvist = ytelseAnvistDomene.stream() - .map(this::konverterFraDomene).toList(); - relatertYtelseKontrakt.getYtelseanvist().addAll(alleYtelserAnvist); - } - - private no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseAnvist konverterFraDomene(YtelseAnvist domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseAnvist(); - domene.getBeløp().ifPresent(beløp -> kontrakt.setBeloep(VedtakXmlUtil.lagDecimalOpplysning(beløp.getVerdi()))); - domene.getDagsats().ifPresent(dagsats -> kontrakt.setDagsats(VedtakXmlUtil.lagDecimalOpplysning(dagsats.getVerdi()))); - kontrakt.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(domene.getAnvistFOM(), domene.getAnvistTOM())); - domene.getUtbetalingsgradProsent().ifPresent(prosent -> kontrakt.setUtbetalingsgradprosent(VedtakXmlUtil.lagDecimalOpplysning(prosent.getVerdi()))); - - return kontrakt; - } - - private void setFamilierelasjoner(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat aggregat) { - var aktørPersonopplysningMap = aggregat.getAktørPersonopplysningMap(); - var tilPersoner = aggregat.getSøkersRelasjoner().stream().filter(r -> aktørPersonopplysningMap.get(r.getTilAktørId()) != null).toList(); - if (!tilPersoner.isEmpty()) { - var familierelasjoner = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepengerFamilierelasjoner(); - personopplysninger.setFamilierelasjoner(familierelasjoner); - tilPersoner.forEach(relasjon -> personopplysninger.getFamilierelasjoner() - .getFamilierelasjon() - .add(lagRelasjon(stp, relasjon, aktørPersonopplysningMap.get(relasjon.getTilAktørId()), aggregat))); - } - } - - private void setAnnenForelder(PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat aggregat) { - var annenForelder = personopplysningDvhObjectFactory.createAnnenForelder(); - var oppgittAnnenPart = aggregat.getOppgittAnnenPart(); - if (oppgittAnnenPart.isPresent()) { - oppgittAnnenPart.map(OppgittAnnenPartEntitet::getAktørId).ifPresent(a -> annenForelder.setAktoerId(VedtakXmlUtil.lagStringOpplysning(a.getId()))); - - annenForelder.setNavn(VedtakXmlUtil.lagStringOpplysning(oppgittAnnenPart.get().getNavn())); - if (oppgittAnnenPart.get().getUtenlandskPersonident() != null && !oppgittAnnenPart.get().getUtenlandskPersonident().isEmpty()) { - annenForelder.setUtenlandskPersonidentifikator(VedtakXmlUtil.lagStringOpplysning(oppgittAnnenPart.get().getUtenlandskPersonident())); - } - var landkoder = oppgittAnnenPart.get().getUtenlandskFnrLand(); - if (landkoder != null) { - annenForelder.setLand(VedtakXmlUtil.lagStringOpplysning(landkoder.getKode())); - } - var kodeliste = oppgittAnnenPart.get().getType(); - if (kodeliste != null) { - annenForelder.setAnnenForelderType(VedtakXmlUtil.lagKodeverksOpplysning(kodeliste)); - } - personopplysninger.setAnnenForelder(annenForelder); - } - } - - private Familierelasjon lagRelasjon(Skjæringstidspunkt stp, PersonRelasjonEntitet relasjon, PersonopplysningEntitet tilPerson, PersonopplysningerAggregat aggregat) { - var familierelasjon = personopplysningDvhObjectFactory.createFamilierelasjon(); - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, aggregat, tilPerson); - familierelasjon.setTilPerson(person); - familierelasjon.setRelasjon(VedtakXmlUtil.lagKodeverksOpplysning(relasjon.getRelasjonsrolle())); - return familierelasjon; - } - - private void setBruker(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, personopplysningerAggregat, personopplysningerAggregat.getSøker()); - personopplysninger.setBruker(person); - } - - private void setDokumentasjonsperioder(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger, LocalDate skjæringstidspunkt) { - var dokumentasjonsperioder = personopplysningDvhObjectFactory - .createPersonopplysningerDvhForeldrepengerDokumentasjonsperioder(); - - foreldrepengerUttakTjeneste.hentUttakHvisEksisterer(behandlingId).ifPresent(uttak -> { - var perioder = uttak.getGjeldendePerioder() - .stream() - .filter(p -> p.getDokumentasjonVurdering().isPresent()) - .collect(Collectors.toSet()); - for (var periode : perioder) { - var uttakDokumentasjonType = mapTilDokType(periode.getDokumentasjonVurdering().orElseThrow()); - //Bryr seg bare om perioder der dok er godkjent - if (uttakDokumentasjonType != null) { - var dokPeriode = personopplysningDvhObjectFactory.createDokumentasjonPeriode(); - dokPeriode.setDokumentasjontype(uttakDokumentasjonType.tilKodeverksOpplysning()); - dokPeriode.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(periode.getFom(), periode.getTom())); - dokumentasjonsperioder.getDokumentasjonperiode().add(dokPeriode); - } - } - }); - - ytelseFordelingTjeneste.hentAggregatHvisEksisterer(behandlingId).ifPresent(aggregat -> { - leggTilPerioderMedAleneomsorg(aggregat, dokumentasjonsperioder); - if (!aggregat.harOmsorg()) { - var dokumentasjonPeriode = personopplysningDvhObjectFactory.createDokumentasjonPeriode(); - dokumentasjonPeriode.setDokumentasjontype(UttakDokumentasjonType.UTEN_OMSORG.tilKodeverksOpplysning()); - dokumentasjonPeriode.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(skjæringstidspunkt, skjæringstidspunkt.plusYears(3))); - dokumentasjonsperioder.getDokumentasjonperiode().add(dokumentasjonPeriode); - } - if (Boolean.TRUE.equals(aggregat.getAnnenForelderRettAvklaring())) { - dokumentasjonsperioder.getDokumentasjonperiode() - .addAll(lagEnkelDokumentasjonPeriode(UttakDokumentasjonType.ANNEN_FORELDER_HAR_RETT)); - } - if (Boolean.TRUE.equals(aggregat.getAnnenForelderRettEØSAvklaring())) { - dokumentasjonsperioder.getDokumentasjonperiode() - .addAll(lagEnkelDokumentasjonPeriode(UttakDokumentasjonType.ANNEN_FORELDER_RETT_EOS)); - } - personopplysninger.setDokumentasjonsperioder(dokumentasjonsperioder); - }); - } - - static UttakDokumentasjonType mapTilDokType(DokumentasjonVurdering dokumentasjonVurdering) { - return switch (dokumentasjonVurdering.type()) { - case SYKDOM_SØKER_GODKJENT -> UttakDokumentasjonType.SYK_SØKER; - case INNLEGGELSE_SØKER_GODKJENT -> UttakDokumentasjonType.INNLAGT_SØKER; - case INNLEGGELSE_BARN_GODKJENT -> UttakDokumentasjonType.INNLAGT_BARN; - case HV_OVELSE_GODKJENT -> UttakDokumentasjonType.HV_OVELSE; - case NAV_TILTAK_GODKJENT -> UttakDokumentasjonType.NAV_TILTAK; - case INNLEGGELSE_ANNEN_FORELDER_GODKJENT -> UttakDokumentasjonType.INSTITUSJONSOPPHOLD_ANNEN_FORELDRE; - case SYKDOM_ANNEN_FORELDER_GODKJENT -> UttakDokumentasjonType.SYKDOM_ANNEN_FORELDER; - case ALENEOMSORG_GODKJENT -> UttakDokumentasjonType.ALENEOMSORG_OVERFØRING; - case BARE_SØKER_RETT_GODKJENT -> UttakDokumentasjonType.IKKE_RETT_ANNEN_FORELDER; - case SYKDOM_SØKER_IKKE_GODKJENT, INNLEGGELSE_SØKER_IKKE_GODKJENT, BARE_SØKER_RETT_IKKE_GODKJENT, ALENEOMSORG_IKKE_GODKJENT, - SYKDOM_ANNEN_FORELDER_IKKE_GODKJENT, INNLEGGELSE_ANNEN_FORELDER_IKKE_GODKJENT, TIDLIG_OPPSTART_FEDREKVOTE_IKKE_GODKJENT, - TIDLIG_OPPSTART_FEDREKVOTE_GODKJENT, MORS_AKTIVITET_IKKE_DOKUMENTERT, MORS_AKTIVITET_IKKE_GODKJENT, MORS_AKTIVITET_GODKJENT, - NAV_TILTAK_IKKE_GODKJENT, HV_OVELSE_IKKE_GODKJENT, INNLEGGELSE_BARN_IKKE_GODKJENT -> null; - }; - } - - private void leggTilPerioderMedAleneomsorg(YtelseFordelingAggregat aggregat, - PersonopplysningerDvhForeldrepenger.Dokumentasjonsperioder dokumentasjonsperioder) { - if (aggregat.harAleneomsorg()) { - dokumentasjonsperioder.getDokumentasjonperiode() - .addAll(lagEnkelDokumentasjonPeriode(UttakDokumentasjonType.ALENEOMSORG)); - } - } - - private List lagEnkelDokumentasjonPeriode(UttakDokumentasjonType dokumentasjonType) { - var dokumentasjonPeriode = personopplysningDvhObjectFactory.createDokumentasjonPeriode(); - dokumentasjonPeriode.setDokumentasjontype(dokumentasjonType.tilKodeverksOpplysning()); - dokumentasjonPeriode.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(LocalDate.now(), LocalDate.now())); - return List.of(dokumentasjonPeriode); - } - - private void setInntekter(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger, LocalDate skjæringstidspunkt) { - iayTjeneste.finnGrunnlag(behandlingId).ifPresent(grunnlag -> { - var aktørInntekt = grunnlag.getAlleAktørInntektFraRegister(); - if (aktørInntekt != null) { - var inntekterPersonopplysning = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepengerInntekter(); - aktørInntekt.forEach(inntekt -> { - var filter = new InntektFilter(inntekt).før(skjæringstidspunkt).filterPensjonsgivende(); - inntekterPersonopplysning.getInntekt().addAll(lagInntekt(inntekt.getAktørId(), filter)); - personopplysninger.setInntekter(inntekterPersonopplysning); - }); - } - }); - - } - - private List lagInntekt(AktørId aktørId, InntektFilter filter) { - List inntektList = new ArrayList<>(); - - var inntektXml = personopplysningDvhObjectFactory.createInntekt(); - filter.forFilter((inntekt, inntektsposter) -> { - var inntektspostXml = personopplysningDvhObjectFactory.createInntektspost(); - if (inntekt.getArbeidsgiver() != null) { - inntektXml.setArbeidsgiver(VedtakXmlUtil.lagStringOpplysning(inntekt.getArbeidsgiver().getIdentifikator())); - } - inntektsposter.forEach(inntektspost -> { - inntektspostXml.setBeloep(VedtakXmlUtil.lagDoubleOpplysning(inntektspost.getBeløp().getVerdi().doubleValue())); - inntektspostXml.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(inntektspost.getPeriode().getFomDato(), inntektspost.getPeriode().getTomDato())); - inntektspostXml.setYtelsetype(VedtakXmlUtil.lagStringOpplysning(inntektspost.getInntektspostType().getKode())); - }); - inntektXml.getInntektsposter().add(inntektspostXml); - inntektXml.setMottaker(VedtakXmlUtil.lagStringOpplysning(aktørId.getId())); - }); - inntektList.add(inntektXml); - return inntektList; - - } - - private void setTerminbekreftelse(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - if (familieHendelseGrunnlag.getGjeldendeVersjon().getType().equals(FamilieHendelseType.TERMIN)) { - var terminbekreftelseOptional = familieHendelseGrunnlag.getGjeldendeTerminbekreftelse(); - terminbekreftelseOptional.ifPresent(terminbekreftelseFraBehandling -> { - var terminbekreftelse = personopplysningDvhObjectFactory - .createTerminbekreftelse(); - terminbekreftelse.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(familieHendelseGrunnlag.getGjeldendeAntallBarn())); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getUtstedtdato()) - .ifPresent(terminbekreftelse::setUtstedtDato); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getTermindato()).ifPresent(terminbekreftelse::setTermindato); - - familieHendelse.setTerminbekreftelse(terminbekreftelse); - }); - } - } - - private void setMedlemskapsperioder(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger) { - medlemskapRepository.hentMedlemskap(behandlingId).ifPresent(medlemskapperioderFraBehandling -> { - var medlemskap = personopplysningDvhObjectFactory.createMedlemskap(); - personopplysninger.setMedlemskap(medlemskap); - - medlemskapperioderFraBehandling.getRegistrertMedlemskapPerioder() - .forEach(medlemskapPeriode -> personopplysninger.getMedlemskap().getMedlemskapsperiode() - .add(personopplysningFellesTjeneste.lagMedlemskapPeriode(medlemskapPeriode))); - }); - } - - private void setVerge(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger) { - vergeRepository.hentAggregat(behandlingId).flatMap(VergeAggregat::getVerge).ifPresent(vergeFraBehandling -> { - var verge = personopplysningDvhObjectFactory.createVerge(); - verge.setVergetype(VedtakXmlUtil.lagKodeverksOpplysning(vergeFraBehandling.getVergeType())); - verge.setGyldighetsperiode(VedtakXmlUtil.lagPeriodeOpplysning(vergeFraBehandling.getGyldigFom(), vergeFraBehandling.getGyldigTom())); - - // TODO(PJV): DVH må utvides med de nye feltene for organisasjon (og evt. adresse) - - personopplysninger.setVerge(verge); - }); - } - - private void setFødsel(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - var gjeldendeFamilieHendelse = familieHendelseGrunnlag - .getGjeldendeVersjon(); - if (Arrays.asList(FamilieHendelseType.FØDSEL, FamilieHendelseType.TERMIN).contains(gjeldendeFamilieHendelse.getType())) { - var fødsel = personopplysningBaseObjectFactory.createFoedsel(); - fødsel.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(gjeldendeFamilieHendelse.getAntallBarn())); - gjeldendeFamilieHendelse.getFødselsdato().flatMap(VedtakXmlUtil::lagDateOpplysning).ifPresent(fødsel::setFoedselsdato); - familieHendelse.setFoedsel(fødsel); - } - } - - private void setAdopsjon(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - familieHendelseGrunnlag.getGjeldendeAdopsjon().ifPresent(adopsjonHendelse -> { - var adopsjon = personopplysningDvhObjectFactory.createAdopsjon(); - if (adopsjonHendelse.getErEktefellesBarn() != null) { - var erEktefellesBarn = VedtakXmlUtil.lagBooleanOpplysning(adopsjonHendelse.getErEktefellesBarn()); - adopsjon.setErEktefellesBarn(erEktefellesBarn); - } - - familieHendelseGrunnlag.getGjeldendeBarna().forEach(aBarn -> adopsjon.getAdopsjonsbarn().add(leggTilAdopsjonsbarn(aBarn))); - familieHendelse.setAdopsjon(adopsjon); - }); - } - - private Adopsjon.Adopsjonsbarn leggTilAdopsjonsbarn(UidentifisertBarn aBarn) { - var adopsjonsbarn = personopplysningDvhObjectFactory.createAdopsjonAdopsjonsbarn(); - VedtakXmlUtil.lagDateOpplysning(aBarn.getFødselsdato()).ifPresent(adopsjonsbarn::setFoedselsdato); - return adopsjonsbarn; - } - - private void setAdresse(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var personopplysning = personopplysningerAggregat.getSøker(); - personopplysningerAggregat.getAdresserFor(personopplysning.getAktørId(), SimpleLocalDateInterval.enDag(stp.getUtledetSkjæringstidspunkt())) - .forEach(adresse -> personopplysninger.getAdresse().add(lagAdresse(adresse))); - } - - private Addresse lagAdresse(PersonAdresseEntitet adresseFraBehandling) { - var adresse = personopplysningDvhObjectFactory.createAddresse(); - adresse.setAdressetype(VedtakXmlUtil.lagKodeverksOpplysning(adresseFraBehandling.getAdresseType())); - adresse.setLand(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getLand().getNavn())); - adresse.setPostnummer(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getPostnummer())); - return adresse; - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/OppdragXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/OppdragXmlTjenesteImpl.java deleted file mode 100644 index 6c4a57d3904..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/OppdragXmlTjenesteImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.fp; - -import java.util.Objects; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdragslinje150; -import no.nav.foreldrepenger.datavarehus.xml.OppdragXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.økonomistøtte.HentOppdragMedPositivKvittering; -import no.nav.vedtak.felles.xml.vedtak.oppdrag.dvh.fp.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.oppdrag.dvh.fp.v2.Oppdragslinje; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - -@FagsakYtelseTypeRef(FagsakYtelseType.FORELDREPENGER) -@ApplicationScoped -public class OppdragXmlTjenesteImpl implements OppdragXmlTjeneste { - private ObjectFactory oppdragObjectFactory; - private HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering; - - public OppdragXmlTjenesteImpl() { - //CDI - } - - @Inject - public OppdragXmlTjenesteImpl(HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering) { - this.hentOppdragMedPositivKvittering = hentOppdragMedPositivKvittering; - oppdragObjectFactory = new ObjectFactory(); - } - - @Override - public void setOppdrag(Vedtak vedtak, Behandling behandling) { - var oppdrag110PositivKvittering = hentOppdragMedPositivKvittering.hentOppdragMedPositivKvitteringFeilHvisVenter(behandling); - if (!oppdrag110PositivKvittering.isEmpty()) { - var oppdragXml = oppdragObjectFactory.createOppdrag(); - for (var oppdrag110 : oppdrag110PositivKvittering) { - oppdragXml.setOppdragId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getId())); - oppdragXml.setFagsystemId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getFagsystemId())); - var oppdragslinje150Liste = oppdrag110.getOppdragslinje150Liste(); - oppdragslinje150Liste.forEach(oppdragslinje150 -> oppdragXml.getOppdragslinje().add(konverterOppdragslinje(oppdragslinje150))); - } - vedtak.getOppdrag().add(oppdragXml); - } - } - - private Oppdragslinje konverterOppdragslinje(Oppdragslinje150 oppdragsLinje150) { - var oppdragslinje = new Oppdragslinje(); - oppdragslinje.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(oppdragsLinje150.getDatoVedtakFom(),oppdragsLinje150.getDatoVedtakTom())); - oppdragslinje.setLinjeId(VedtakXmlUtil.lagLongOpplysning(oppdragsLinje150.getId())); - oppdragslinje.setDelytelseId(VedtakXmlUtil.lagLongOpplysning(oppdragsLinje150.getDelytelseId())); - var refDelytelseId = oppdragsLinje150.getRefDelytelseId(); - VedtakXmlUtil.lagDateOpplysning(oppdragsLinje150.getDatoStatusFom()).ifPresent(oppdragslinje::setStatusFom); - if (!Objects.isNull(oppdragsLinje150.getKodeStatusLinje())) { - oppdragslinje.setKodeStatusLinje(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getKodeStatusLinje().name())); - } - if(refDelytelseId !=null) { - oppdragslinje.setRefDelytelseId(VedtakXmlUtil.lagLongOpplysning(refDelytelseId)); - } - oppdragslinje.setUtbetalesTilId(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getUtbetalesTilId())); - oppdragslinje.setRefunderesId(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getRefusjonsinfo156() == null ? null : oppdragsLinje150.getRefusjonsinfo156().getRefunderesId())); - return oppdragslinje; - } -} - diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/PersonopplysningXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/PersonopplysningXmlTjenesteImpl.java index 6b97bbcbbe3..ed6763573d3 100644 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/PersonopplysningXmlTjenesteImpl.java +++ b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/fp/PersonopplysningXmlTjenesteImpl.java @@ -1,7 +1,5 @@ package no.nav.foreldrepenger.datavarehus.xml.fp; -import static no.nav.foreldrepenger.datavarehus.xml.fp.DvhPersonopplysningXmlTjenesteImpl.mapTilDokType; - import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; @@ -27,6 +25,7 @@ import no.nav.foreldrepenger.behandlingslager.behandling.repository.BehandlingRepositoryProvider; import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeRepository; import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.YtelseFordelingAggregat; +import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.periode.DokumentasjonVurdering; import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; import no.nav.foreldrepenger.datavarehus.xml.PersonopplysningXmlFelles; import no.nav.foreldrepenger.datavarehus.xml.PersonopplysningXmlTjeneste; @@ -273,6 +272,24 @@ private void setDokumentasjonsperioder(Long behandlingId, PersonopplysningerFore }); } + private static UttakDokumentasjonType mapTilDokType(DokumentasjonVurdering dokumentasjonVurdering) { + return switch (dokumentasjonVurdering.type()) { + case SYKDOM_SØKER_GODKJENT -> UttakDokumentasjonType.SYK_SØKER; + case INNLEGGELSE_SØKER_GODKJENT -> UttakDokumentasjonType.INNLAGT_SØKER; + case INNLEGGELSE_BARN_GODKJENT -> UttakDokumentasjonType.INNLAGT_BARN; + case HV_OVELSE_GODKJENT -> UttakDokumentasjonType.HV_OVELSE; + case NAV_TILTAK_GODKJENT -> UttakDokumentasjonType.NAV_TILTAK; + case INNLEGGELSE_ANNEN_FORELDER_GODKJENT -> UttakDokumentasjonType.INSTITUSJONSOPPHOLD_ANNEN_FORELDRE; + case SYKDOM_ANNEN_FORELDER_GODKJENT -> UttakDokumentasjonType.SYKDOM_ANNEN_FORELDER; + case ALENEOMSORG_GODKJENT -> UttakDokumentasjonType.ALENEOMSORG_OVERFØRING; + case BARE_SØKER_RETT_GODKJENT -> UttakDokumentasjonType.IKKE_RETT_ANNEN_FORELDER; + case SYKDOM_SØKER_IKKE_GODKJENT, INNLEGGELSE_SØKER_IKKE_GODKJENT, BARE_SØKER_RETT_IKKE_GODKJENT, ALENEOMSORG_IKKE_GODKJENT, + SYKDOM_ANNEN_FORELDER_IKKE_GODKJENT, INNLEGGELSE_ANNEN_FORELDER_IKKE_GODKJENT, TIDLIG_OPPSTART_FEDREKVOTE_IKKE_GODKJENT, + TIDLIG_OPPSTART_FEDREKVOTE_GODKJENT, MORS_AKTIVITET_IKKE_DOKUMENTERT, MORS_AKTIVITET_IKKE_GODKJENT, MORS_AKTIVITET_GODKJENT, + NAV_TILTAK_IKKE_GODKJENT, HV_OVELSE_IKKE_GODKJENT, INNLEGGELSE_BARN_IKKE_GODKJENT -> null; + }; + } + private void leggTilPerioderMedAleneomsorg(YtelseFordelingAggregat aggregat, PersonopplysningerForeldrepenger.Dokumentasjonsperioder dokumentasjonsperioder) { if (aggregat.harAleneomsorg()) { diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/DvhPersonopplysningXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/DvhPersonopplysningXmlTjenesteImpl.java deleted file mode 100644 index c124ae3b5fb..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/DvhPersonopplysningXmlTjenesteImpl.java +++ /dev/null @@ -1,370 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.svp; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseGrunnlagEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseType; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.UidentifisertBarn; -import no.nav.foreldrepenger.behandlingslager.behandling.medlemskap.MedlemskapRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.OppgittAnnenPartEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonAdresseEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonRelasjonEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.personopplysning.PersonopplysningerAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeAggregat; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeRepository; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.datavarehus.xml.DvhPersonopplysningXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.PersonopplysningXmlFelles; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.domene.arbeidsforhold.InntektArbeidYtelseTjeneste; -import no.nav.foreldrepenger.domene.arbeidsgiver.VirksomhetTjeneste; -import no.nav.foreldrepenger.domene.iay.modell.InntektFilter; -import no.nav.foreldrepenger.domene.iay.modell.Ytelse; -import no.nav.foreldrepenger.domene.iay.modell.YtelseAnvist; -import no.nav.foreldrepenger.domene.iay.modell.YtelseFilter; -import no.nav.foreldrepenger.domene.iay.modell.YtelseGrunnlag; -import no.nav.foreldrepenger.domene.iay.modell.YtelseStørrelse; -import no.nav.foreldrepenger.domene.personopplysning.PersonopplysningTjeneste; -import no.nav.foreldrepenger.domene.tid.SimpleLocalDateInterval; -import no.nav.foreldrepenger.domene.typer.AktørId; -import no.nav.foreldrepenger.domene.typer.Stillingsprosent; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Addresse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Adopsjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.FamilieHendelse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Familierelasjon; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Inntekt; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.PersonopplysningerDvhForeldrepenger; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.RelatertYtelse; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.Virksomhet; -import no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseStorrelse; - -@FagsakYtelseTypeRef(FagsakYtelseType.SVANGERSKAPSPENGER) -@ApplicationScoped -public class DvhPersonopplysningXmlTjenesteImpl extends DvhPersonopplysningXmlTjeneste { - - private final no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory personopplysningBaseObjectFactory = new no.nav.vedtak.felles.xml.vedtak.personopplysninger.v2.ObjectFactory(); - private final ObjectFactory personopplysningDvhObjectFactory = new ObjectFactory(); - private FamilieHendelseRepository familieHendelseRepository; - private VergeRepository vergeRepository; - private MedlemskapRepository medlemskapRepository; - private InntektArbeidYtelseTjeneste iayTjeneste; - private VirksomhetTjeneste virksomhetTjeneste; - private PersonopplysningXmlFelles personopplysningFellesTjeneste; - - - public DvhPersonopplysningXmlTjenesteImpl() { - // CDI - } - - @Inject - public DvhPersonopplysningXmlTjenesteImpl(PersonopplysningXmlFelles fellesTjeneste, - FamilieHendelseRepository familieHendelseRepository, - VergeRepository vergeRepository, - MedlemskapRepository medlemskapRepository, - VirksomhetTjeneste virksomhetTjeneste, - PersonopplysningTjeneste personopplysningTjeneste, - InntektArbeidYtelseTjeneste iayTjeneste) { - super(personopplysningTjeneste); - this.personopplysningFellesTjeneste = fellesTjeneste; - this.iayTjeneste = iayTjeneste; - this.familieHendelseRepository = familieHendelseRepository; - this.vergeRepository = vergeRepository; - this.medlemskapRepository = medlemskapRepository; - this.virksomhetTjeneste = virksomhetTjeneste; - } - - @Override - public Object lagPersonopplysning(PersonopplysningerAggregat personopplysningerAggregat, Long behandlingId, AktørId aktørId, - Skjæringstidspunkt skjæringstidspunkter) { - var personopplysninger = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepenger(); - var familieHendelse = personopplysningDvhObjectFactory.createFamilieHendelse(); - personopplysninger.setFamiliehendelse(familieHendelse); - - familieHendelseRepository.hentAggregatHvisEksisterer(behandlingId).ifPresent(familieHendelseGrunnlag -> { - setAdopsjon(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - setFødsel(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - setVerge(behandlingId, personopplysninger); - setMedlemskapsperioder(behandlingId, personopplysninger); - setTerminbekreftelse(personopplysninger.getFamiliehendelse(), familieHendelseGrunnlag); - }); - var skjæringstidspunkt = skjæringstidspunkter.getUtledetSkjæringstidspunkt(); - setAdresse(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setInntekter(behandlingId, personopplysninger, skjæringstidspunkt); - setBruker(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setFamilierelasjoner(skjæringstidspunkter, personopplysninger, personopplysningerAggregat); - setAnnenForelder(personopplysninger, personopplysningerAggregat); - setRelaterteYtelser(behandlingId, aktørId, personopplysninger, skjæringstidspunkt); - - return personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepenger(personopplysninger); - } - - private void setRelaterteYtelser(Long behandlingId, AktørId aktørId, PersonopplysningerDvhForeldrepenger personopplysninger, LocalDate skjæringstidspunkt) { - var ytelseFilter = iayTjeneste.finnGrunnlag(behandlingId) - .map(it -> new YtelseFilter(it.getAktørYtelseFraRegister(aktørId)).før(skjæringstidspunkt)).orElse(YtelseFilter.EMPTY); - var ytelser = ytelseFilter.getFiltrertYtelser(); - if (!ytelser.isEmpty()) { - var relaterteYtelser = personopplysningDvhObjectFactory - .createPersonopplysningerDvhForeldrepengerRelaterteYtelser(); - ytelser.forEach(ytelse -> relaterteYtelser.getRelatertYtelse().add(konverterFraDomene(ytelse))); - personopplysninger.setRelaterteYtelser(relaterteYtelser); - } - } - - private RelatertYtelse konverterFraDomene(Ytelse ytelse) { - var relatertYtelse = personopplysningDvhObjectFactory.createRelatertYtelse(); - relatertYtelse.setKilde(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getKilde())); - Optional.ofNullable(ytelse.getPeriode()) - .ifPresent(periode -> relatertYtelse.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(periode.getFomDato(), periode.getTomDato()))); - Optional.ofNullable(ytelse.getSaksnummer()) - .ifPresent(saksnummer -> relatertYtelse.setSaksnummer(VedtakXmlUtil.lagStringOpplysning(saksnummer.getVerdi()))); - relatertYtelse.setStatus(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getStatus())); - relatertYtelse.setType(VedtakXmlUtil.lagKodeverksOpplysning(ytelse.getRelatertYtelseType())); - - setYtelseAnvist(relatertYtelse, ytelse.getYtelseAnvist()); - setYtelsesgrunnlag(relatertYtelse, ytelse.getYtelseGrunnlag()); - setYtelsesStørrelse(relatertYtelse, ytelse.getYtelseGrunnlag()); - return relatertYtelse; - } - - private void setYtelsesStørrelse(RelatertYtelse relatertYtelseKontrakt, Optional ytelseGrunnlagDomene) { - if (ytelseGrunnlagDomene.isPresent()) { - var ytelseGrunnlag = ytelseGrunnlagDomene.get(); - var ytelseStorrelser = ytelseGrunnlag.getYtelseStørrelse().stream().map(this::konverterFraDomene) - .toList(); - relatertYtelseKontrakt.getYtelsesstorrelse().addAll(ytelseStorrelser); - } - } - - private YtelseStorrelse konverterFraDomene(YtelseStørrelse domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseStorrelse(); - domene.getOrgnr().flatMap(virksomhetTjeneste::finnOrganisasjon) - .ifPresent(virksomhet -> kontrakt.setVirksomhet(tilVirksomhet(virksomhet))); - kontrakt.setBeloep(VedtakXmlUtil.lagDecimalOpplysning(domene.getBeløp().getVerdi())); - kontrakt.setHyppighet(VedtakXmlUtil.lagKodeverksOpplysning(domene.getHyppighet())); - return kontrakt; - } - - private Virksomhet tilVirksomhet(no.nav.foreldrepenger.behandlingslager.virksomhet.Virksomhet domene) { - var kontrakt = personopplysningDvhObjectFactory.createVirksomhet(); - kontrakt.setNavn(VedtakXmlUtil.lagStringOpplysning(domene.getNavn())); - kontrakt.setOrgnr(VedtakXmlUtil.lagStringOpplysning(domene.getOrgnr())); - return kontrakt; - } - - private void setYtelsesgrunnlag(RelatertYtelse relatertYtelseKontrakt, Optional ytelseGrunnlagDomene) { - var ytelseGrunnlagOptional = ytelseGrunnlagDomene - .map(this::konverterFraDomene); - ytelseGrunnlagOptional.ifPresent(relatertYtelseKontrakt::setYtelsesgrunnlag); - } - - private no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseGrunnlag konverterFraDomene(YtelseGrunnlag domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseGrunnlag(); - domene.getArbeidskategori() - .ifPresent(arbeidskategori -> kontrakt.setArbeidtype(VedtakXmlUtil.lagKodeverksOpplysning(arbeidskategori))); - domene.getDekningsgradProsent().ifPresent(dp -> kontrakt.setDekningsgradprosent(VedtakXmlUtil.lagDecimalOpplysning(dp.getVerdi()))); - - domene.getGraderingProsent() - .ifPresent(graderingsProsent -> kontrakt.setGraderingprosent(VedtakXmlUtil.lagDecimalOpplysning(graderingsProsent.getVerdi()))); - domene.getInntektsgrunnlagProsent().map(Stillingsprosent::getVerdi) - .ifPresent(inntektsGrunnlagProsent -> kontrakt.setInntektsgrunnlagprosent(VedtakXmlUtil.lagDecimalOpplysning(inntektsGrunnlagProsent))); - - return kontrakt; - } - - private void setYtelseAnvist(RelatertYtelse relatertYtelseKontrakt, Collection ytelseAnvistDomene) { - var alleYtelserAnvist = ytelseAnvistDomene.stream() - .map(this::konverterFraDomene).toList(); - relatertYtelseKontrakt.getYtelseanvist().addAll(alleYtelserAnvist); - } - - private no.nav.vedtak.felles.xml.vedtak.personopplysninger.dvh.fp.v2.YtelseAnvist konverterFraDomene(YtelseAnvist domene) { - var kontrakt = personopplysningDvhObjectFactory.createYtelseAnvist(); - domene.getBeløp().ifPresent(beløp -> kontrakt.setBeloep(VedtakXmlUtil.lagDecimalOpplysning(beløp.getVerdi()))); - domene.getDagsats().ifPresent(dagsats -> kontrakt.setDagsats(VedtakXmlUtil.lagDecimalOpplysning(dagsats.getVerdi()))); - kontrakt.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(domene.getAnvistFOM(), domene.getAnvistTOM())); - domene.getUtbetalingsgradProsent().ifPresent(prosent -> kontrakt.setUtbetalingsgradprosent(VedtakXmlUtil.lagDecimalOpplysning(prosent.getVerdi()))); - - return kontrakt; - } - - private void setFamilierelasjoner(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat aggregat) { - var aktørPersonopplysningMap = aggregat.getAktørPersonopplysningMap(); - var tilPersoner = aggregat.getSøkersRelasjoner().stream().filter(r -> aktørPersonopplysningMap.get(r.getTilAktørId()) != null).toList(); - if (!tilPersoner.isEmpty()) { - var familierelasjoner = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepengerFamilierelasjoner(); - personopplysninger.setFamilierelasjoner(familierelasjoner); - tilPersoner.forEach(relasjon -> personopplysninger.getFamilierelasjoner() - .getFamilierelasjon() - .add(lagRelasjon(stp, relasjon, aktørPersonopplysningMap.get(relasjon.getTilAktørId()), aggregat))); - } - } - - private void setAnnenForelder(PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat aggregat) { - var annenForelder = personopplysningDvhObjectFactory.createAnnenForelder(); - var oppgittAnnenPart = aggregat.getOppgittAnnenPart(); - if (oppgittAnnenPart.isPresent()) { - oppgittAnnenPart.map(OppgittAnnenPartEntitet::getAktørId) - .ifPresent(a -> annenForelder.setAktoerId(VedtakXmlUtil.lagStringOpplysning(a.getId()))); - - annenForelder.setNavn(VedtakXmlUtil.lagStringOpplysning(oppgittAnnenPart.get().getNavn())); - if (oppgittAnnenPart.get().getUtenlandskPersonident() != null && !oppgittAnnenPart.get().getUtenlandskPersonident().isEmpty()) { - annenForelder.setUtenlandskPersonidentifikator(VedtakXmlUtil.lagStringOpplysning(oppgittAnnenPart.get().getUtenlandskPersonident())); - } - var landkoder = oppgittAnnenPart.get().getUtenlandskFnrLand(); - if (landkoder != null) { - annenForelder.setLand(VedtakXmlUtil.lagStringOpplysning(landkoder.getKode())); - } - var kodeliste = oppgittAnnenPart.get().getType(); - if (kodeliste != null) { - annenForelder.setAnnenForelderType(VedtakXmlUtil.lagKodeverksOpplysning(kodeliste)); - } - personopplysninger.setAnnenForelder(annenForelder); - } - } - - private Familierelasjon lagRelasjon(Skjæringstidspunkt stp, PersonRelasjonEntitet relasjon, PersonopplysningEntitet tilPerson, PersonopplysningerAggregat aggregat) { - var familierelasjon = personopplysningDvhObjectFactory.createFamilierelasjon(); - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, aggregat, tilPerson); - familierelasjon.setTilPerson(person); - familierelasjon.setRelasjon(VedtakXmlUtil.lagKodeverksOpplysning(relasjon.getRelasjonsrolle())); - return familierelasjon; - } - - private void setBruker(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var person = personopplysningFellesTjeneste.lagUidentifiserbarBruker(stp, personopplysningerAggregat, personopplysningerAggregat.getSøker()); - personopplysninger.setBruker(person); - } - - private void setInntekter(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger, LocalDate skjæringstidspunkt) { - iayTjeneste.finnGrunnlag(behandlingId).ifPresent(grunnlag -> { - var aktørInntekt = grunnlag.getAlleAktørInntektFraRegister(); - if (aktørInntekt != null) { - var inntekterPersonopplysning = personopplysningDvhObjectFactory.createPersonopplysningerDvhForeldrepengerInntekter(); - aktørInntekt.forEach(inntekt -> { - var filter = new InntektFilter(inntekt).før(skjæringstidspunkt).filterPensjonsgivende(); - inntekterPersonopplysning.getInntekt().addAll(lagInntekt(inntekt.getAktørId(), filter)); - personopplysninger.setInntekter(inntekterPersonopplysning); - }); - } - }); - - } - - private List lagInntekt(AktørId aktørId, InntektFilter filter) { - List inntektList = new ArrayList<>(); - - var inntektXml = personopplysningDvhObjectFactory.createInntekt(); - filter.forFilter((inntekt, inntektsposter) -> { - var inntektspostXml = personopplysningDvhObjectFactory.createInntektspost(); - if (inntekt.getArbeidsgiver() != null) { - inntektXml.setArbeidsgiver(VedtakXmlUtil.lagStringOpplysning(inntekt.getArbeidsgiver().getIdentifikator())); - } - inntektsposter.forEach(inntektspost -> { - inntektspostXml.setBeloep(VedtakXmlUtil.lagDoubleOpplysning(inntektspost.getBeløp().getVerdi().doubleValue())); - inntektspostXml.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(inntektspost.getPeriode().getFomDato(), inntektspost.getPeriode().getTomDato())); - inntektspostXml.setYtelsetype(VedtakXmlUtil.lagStringOpplysning(inntektspost.getInntektspostType().getKode())); - }); - inntektXml.getInntektsposter().add(inntektspostXml); - inntektXml.setMottaker(VedtakXmlUtil.lagStringOpplysning(aktørId.getId())); - }); - inntektList.add(inntektXml); - return inntektList; - - } - - private void setTerminbekreftelse(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - var terminbekreftelseOptional = familieHendelseGrunnlag.getGjeldendeTerminbekreftelse(); - terminbekreftelseOptional.ifPresent(terminbekreftelseFraBehandling -> { - var terminbekreftelse = personopplysningDvhObjectFactory - .createTerminbekreftelse(); - terminbekreftelse.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(familieHendelseGrunnlag.getGjeldendeAntallBarn())); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getUtstedtdato()) - .ifPresent(terminbekreftelse::setUtstedtDato); - - VedtakXmlUtil.lagDateOpplysning(terminbekreftelseFraBehandling.getTermindato()).ifPresent(terminbekreftelse::setTermindato); - - familieHendelse.setTerminbekreftelse(terminbekreftelse); - }); - } - - private void setMedlemskapsperioder(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger) { - medlemskapRepository.hentMedlemskap(behandlingId).ifPresent(medlemskapperioderFraBehandling -> { - var medlemskap = personopplysningDvhObjectFactory.createMedlemskap(); - personopplysninger.setMedlemskap(medlemskap); - - medlemskapperioderFraBehandling.getRegistrertMedlemskapPerioder() - .forEach(medlemskapPeriode -> personopplysninger.getMedlemskap().getMedlemskapsperiode() - .add(personopplysningFellesTjeneste.lagMedlemskapPeriode(medlemskapPeriode))); - }); - } - - private void setVerge(Long behandlingId, PersonopplysningerDvhForeldrepenger personopplysninger) { - vergeRepository.hentAggregat(behandlingId).flatMap(VergeAggregat::getVerge).ifPresent(vergeFraBehandling -> { - var verge = personopplysningDvhObjectFactory.createVerge(); - verge.setVergetype(VedtakXmlUtil.lagKodeverksOpplysning(vergeFraBehandling.getVergeType())); - verge.setGyldighetsperiode(VedtakXmlUtil.lagPeriodeOpplysning(vergeFraBehandling.getGyldigFom(), vergeFraBehandling.getGyldigTom())); - - // TODO(PJV): DVH må utvides med de nye feltene for organisasjon (og evt. adresse) - - personopplysninger.setVerge(verge); - }); - } - - private void setFødsel(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - var gjeldendeFamilieHendelse = familieHendelseGrunnlag - .getGjeldendeVersjon(); - if (Arrays.asList(FamilieHendelseType.FØDSEL, FamilieHendelseType.TERMIN).contains(gjeldendeFamilieHendelse.getType())) { - var fødsel = personopplysningBaseObjectFactory.createFoedsel(); - fødsel.setAntallBarn(VedtakXmlUtil.lagIntOpplysning(gjeldendeFamilieHendelse.getAntallBarn())); - gjeldendeFamilieHendelse.getFødselsdato().flatMap(VedtakXmlUtil::lagDateOpplysning).ifPresent(fødsel::setFoedselsdato); - familieHendelse.setFoedsel(fødsel); - } - } - - private void setAdopsjon(FamilieHendelse familieHendelse, FamilieHendelseGrunnlagEntitet familieHendelseGrunnlag) { - familieHendelseGrunnlag.getGjeldendeAdopsjon().ifPresent(adopsjonHendelse -> { - var adopsjon = personopplysningDvhObjectFactory.createAdopsjon(); - if (adopsjonHendelse.getErEktefellesBarn() != null) { - var erEktefellesBarn = VedtakXmlUtil.lagBooleanOpplysning(adopsjonHendelse.getErEktefellesBarn()); - adopsjon.setErEktefellesBarn(erEktefellesBarn); - } - - familieHendelseGrunnlag.getGjeldendeBarna().forEach(aBarn -> adopsjon.getAdopsjonsbarn().add(leggTilAdopsjonsbarn(aBarn))); - familieHendelse.setAdopsjon(adopsjon); - }); - } - - private Adopsjon.Adopsjonsbarn leggTilAdopsjonsbarn(UidentifisertBarn aBarn) { - var adopsjonsbarn = personopplysningDvhObjectFactory.createAdopsjonAdopsjonsbarn(); - VedtakXmlUtil.lagDateOpplysning(aBarn.getFødselsdato()).ifPresent(adopsjonsbarn::setFoedselsdato); - return adopsjonsbarn; - } - - private void setAdresse(Skjæringstidspunkt stp, PersonopplysningerDvhForeldrepenger personopplysninger, PersonopplysningerAggregat personopplysningerAggregat) { - var personopplysning = personopplysningerAggregat.getSøker(); - personopplysningerAggregat.getAdresserFor(personopplysning.getAktørId(), SimpleLocalDateInterval.enDag(stp.getUtledetSkjæringstidspunkt())) - .forEach(adresse -> personopplysninger.getAdresse().add(lagAdresse(adresse))); - } - - private Addresse lagAdresse(PersonAdresseEntitet adresseFraBehandling) { - var adresse = personopplysningDvhObjectFactory.createAddresse(); - adresse.setAdressetype(VedtakXmlUtil.lagKodeverksOpplysning(adresseFraBehandling.getAdresseType())); - adresse.setLand(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getLand().getNavn())); - adresse.setPostnummer(VedtakXmlUtil.lagStringOpplysning(adresseFraBehandling.getPostnummer())); - return adresse; - } -} diff --git a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/OppdragXmlTjenesteImpl.java b/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/OppdragXmlTjenesteImpl.java deleted file mode 100644 index 5495b931c02..00000000000 --- a/domenetjenester/datavarehus/src/main/java/no/nav/foreldrepenger/datavarehus/xml/svp/OppdragXmlTjenesteImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml.svp; - -import java.util.Objects; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef; -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdragslinje150; -import no.nav.foreldrepenger.datavarehus.xml.OppdragXmlTjeneste; -import no.nav.foreldrepenger.datavarehus.xml.VedtakXmlUtil; -import no.nav.foreldrepenger.økonomistøtte.HentOppdragMedPositivKvittering; -import no.nav.vedtak.felles.xml.vedtak.oppdrag.dvh.fp.v2.ObjectFactory; -import no.nav.vedtak.felles.xml.vedtak.oppdrag.dvh.fp.v2.Oppdragslinje; -import no.nav.vedtak.felles.xml.vedtak.v2.Vedtak; - -@FagsakYtelseTypeRef(FagsakYtelseType.SVANGERSKAPSPENGER) -@ApplicationScoped -public class OppdragXmlTjenesteImpl implements OppdragXmlTjeneste { - private ObjectFactory oppdragObjectFactory; - private HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering; - - public OppdragXmlTjenesteImpl() { - //CDI - } - - @Inject - public OppdragXmlTjenesteImpl(HentOppdragMedPositivKvittering hentOppdragMedPositivKvittering) { - this.hentOppdragMedPositivKvittering = hentOppdragMedPositivKvittering; - oppdragObjectFactory = new ObjectFactory(); - } - - @Override - public void setOppdrag(Vedtak vedtak, Behandling behandling) { - var oppdrag110PositivKvittering = hentOppdragMedPositivKvittering.hentOppdragMedPositivKvitteringFeilHvisVenter(behandling); - if (!oppdrag110PositivKvittering.isEmpty()) { - var oppdragXml = oppdragObjectFactory.createOppdrag(); - for (var oppdrag110 : oppdrag110PositivKvittering) { - oppdragXml.setOppdragId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getId())); - oppdragXml.setFagsystemId(VedtakXmlUtil.lagLongOpplysning(oppdrag110.getFagsystemId())); - var oppdragslinje150Liste = oppdrag110.getOppdragslinje150Liste(); - oppdragslinje150Liste.forEach(oppdragslinje150 -> oppdragXml.getOppdragslinje().add(konverterOppdragslinje(oppdragslinje150))); - } - vedtak.getOppdrag().add(oppdragXml); - } - } - - private Oppdragslinje konverterOppdragslinje(Oppdragslinje150 oppdragsLinje150) { - var oppdragslinje = new Oppdragslinje(); - oppdragslinje.setPeriode(VedtakXmlUtil.lagPeriodeOpplysning(oppdragsLinje150.getDatoVedtakFom(),oppdragsLinje150.getDatoVedtakTom())); - oppdragslinje.setLinjeId(VedtakXmlUtil.lagLongOpplysning(oppdragsLinje150.getId())); - oppdragslinje.setDelytelseId(VedtakXmlUtil.lagLongOpplysning(oppdragsLinje150.getDelytelseId())); - var refDelytelseId = oppdragsLinje150.getRefDelytelseId(); - VedtakXmlUtil.lagDateOpplysning(oppdragsLinje150.getDatoStatusFom()).ifPresent(oppdragslinje::setStatusFom); - if (!Objects.isNull(oppdragsLinje150.getKodeStatusLinje())) { - oppdragslinje.setKodeStatusLinje(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getKodeStatusLinje().name())); - } - if(refDelytelseId !=null) { - oppdragslinje.setRefDelytelseId(VedtakXmlUtil.lagLongOpplysning(refDelytelseId)); - } - oppdragslinje.setUtbetalesTilId(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getUtbetalesTilId())); - oppdragslinje.setRefunderesId(VedtakXmlUtil.lagStringOpplysning(oppdragsLinje150.getRefusjonsinfo156() == null ? null : oppdragsLinje150.getRefusjonsinfo156().getRefunderesId())); - return oppdragslinje; - } -} - diff --git a/domenetjenester/datavarehus/src/main/resources/META-INF/pu-default.datavarehus.orm.xml b/domenetjenester/datavarehus/src/main/resources/META-INF/pu-default.datavarehus.orm.xml index 4d43000f81f..cb7569521a8 100644 --- a/domenetjenester/datavarehus/src/main/resources/META-INF/pu-default.datavarehus.orm.xml +++ b/domenetjenester/datavarehus/src/main/resources/META-INF/pu-default.datavarehus.orm.xml @@ -10,15 +10,12 @@ FPSAK_HIST - - - diff --git a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepositoryTest.java b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepositoryTest.java deleted file mode 100644 index 069e7c5d70c..00000000000 --- a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusRepositoryTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.domene; - -import static org.assertj.core.api.Assertions.assertThat; - -import jakarta.persistence.EntityManager; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import no.nav.foreldrepenger.dbstoette.JpaExtension; - -@ExtendWith(JpaExtension.class) -class DatavarehusRepositoryTest { - - - private DatavarehusRepository datavarehusRepository; - - @BeforeEach - public void setUp(EntityManager entityManager) { - datavarehusRepository = new DatavarehusRepository(entityManager); - } - - @Test - void skal_lagre_behandling_dvh() { - var behandlingDvh = DatavarehusTestUtils.byggBehandlingDvh(); - - var id = datavarehusRepository.lagre(behandlingDvh); - - assertThat(id).isGreaterThanOrEqualTo(1); - } - - @Test - void skal_lagre_vedtak_utbetaling_dvh(EntityManager entityManager) { - var vedtakUtbetalingDvh = DatavarehusTestUtils.byggVedtakUtbetalingDvh(); - var id = datavarehusRepository.lagre(vedtakUtbetalingDvh); - entityManager.flush(); - var oppdatertXml = vedtakUtbetalingDvh.getXmlClob() + vedtakUtbetalingDvh.getXmlClob(); - var idOppdatert = datavarehusRepository.oppdater(vedtakUtbetalingDvh.getBehandlingId(), vedtakUtbetalingDvh.getVedtakId(), oppdatertXml); - assertThat(id).isEqualTo(idOppdatert); - } - -} diff --git a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusTestUtils.java b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusTestUtils.java index 686d4069cc3..7d66c834e65 100644 --- a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusTestUtils.java +++ b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/domene/DatavarehusTestUtils.java @@ -70,18 +70,4 @@ public static BehandlingDvh byggBehandlingDvh() { .build(); } - public static VedtakUtbetalingDvh byggVedtakUtbetalingDvh() { - return VedtakUtbetalingDvh.builder() - .behandlingId(BEHANDLING_ID) - .behandlingType(BEHANDLING_TYPE) - .endretAv(ENDRET_AV) - .fagsakId(FAGSAK_ID) - .fagsakType(FAGSAK_TYPE) - .søknadType(SOEKNAD_TYPE) - .vedtakDato(VEDTAK_DATO) - .vedtakId(VEDTAK_ID) - .xmlClob(VEDTAK_XML) - .build(); - } - } diff --git a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImplTest.java b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImplTest.java index 27e979cf4fc..2f8418203a6 100644 --- a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImplTest.java +++ b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/tjeneste/DatavarehusTjenesteImplTest.java @@ -64,8 +64,6 @@ import no.nav.foreldrepenger.datavarehus.domene.DatavarehusRepository; import no.nav.foreldrepenger.datavarehus.domene.KlageFormkravDvh; import no.nav.foreldrepenger.datavarehus.domene.KlageVurderingResultatDvh; -import no.nav.foreldrepenger.datavarehus.domene.VedtakUtbetalingDvh; -import no.nav.foreldrepenger.datavarehus.xml.DvhVedtakXmlTjeneste; import no.nav.foreldrepenger.dbstoette.JpaExtension; import no.nav.foreldrepenger.domene.typer.JournalpostId; import no.nav.foreldrepenger.skjæringstidspunkt.SkjæringstidspunktTjeneste; @@ -78,8 +76,6 @@ class DatavarehusTjenesteImplTest { @Mock private DatavarehusRepository datavarehusRepository; @Mock - private DvhVedtakXmlTjeneste dvhVedtakTjenesteEngangsstønad; - @Mock private AnkeRepository ankeRepository; @Mock private KlageRepository klageRepository; @@ -102,7 +98,7 @@ public void setUp(EntityManager entityManager) { private DatavarehusTjenesteImpl nyDatavarehusTjeneste(BehandlingRepositoryProvider repositoryProvider) { return new DatavarehusTjenesteImpl(repositoryProvider, datavarehusRepository, repositoryProvider.getBehandlingsresultatRepository(), mock(FagsakEgenskapRepository.class), ankeRepository, klageRepository, mottatteDokumentRepository, - dvhVedtakTjenesteEngangsstønad, skjæringstidspunktTjeneste, mock(SvangerskapspengerRepository.class)); + skjæringstidspunktTjeneste, mock(SvangerskapspengerRepository.class)); } @Test @@ -177,21 +173,6 @@ void lagreNedBehandlingMedId() { assertThat(captor.getValue().getBehandlingId()).isEqualTo(behandling.getId()); } - @Test - void skal_lagre_Ned_Vedtak_Xml() { - var vedtak = byggBehandlingVedtak(); - var behandlingId = vedtak.getBehandlingsresultat().getBehandlingId(); - var captor = ArgumentCaptor.forClass(VedtakUtbetalingDvh.class); - var xml = "bob(personopplysningXmlTjenesteEngangsstønad), - new UnitTestLookupInstanceImpl<>(oppdragXmlTjenesteImpl), behandlingsresultatXmlTjeneste, skjæringstidspunktTjeneste, null); - } - - @Test - void skal_opprette_vedtaks_xml_med_oppdrag(EntityManager em) { - var behandling = byggFødselBehandlingMedVedtak(em, true); - Long delytelseId = 65L; - var delytelseXmlElement = String.format("delytelseId>%s%s"; - - // Act - var xml = dvhVedtakXmlTjenesteES.opprettDvhVedtakXml(behandling.getId()); - - // Assert - assertThat(xml).isNotNull(); - assertThat(xml).doesNotContain(delytelseXmlElement); - assertPersonopplysningDvh(BRUKER_AKTØR_ID, xml); - } - - @Test - void skal_opprette_vedtaks_xml_avslag_uten_oppdrag(EntityManager em) { - var behandling = byggFødselBehandlingMedVedtak(em, false); - var delytelseXmlElement = "delytelseId>"; - - // Act - var xml = dvhVedtakXmlTjenesteES.opprettDvhVedtakXml(behandling.getId()); - - // Assert - assertThat(xml).isNotNull(); - assertThat(xml).doesNotContain(delytelseXmlElement); - assertPersonopplysningDvh(BRUKER_AKTØR_ID, xml); - } - - @Test - void skal_opprette_vedtaks_xml_adopsjon(EntityManager em) { - var behandling = byggAdopsjonMedVedtak(em, true); - var adopsjonXmlElement = "adopsjon>"; - - // Act - var xml = dvhVedtakXmlTjenesteES.opprettDvhVedtakXml(behandling.getId()); - - // Assert - assertThat(xml).isNotNull(); - assertThat(xml).contains(adopsjonXmlElement); - assertPersonopplysningDvh(BRUKER_AKTØR_ID, xml); - } - - /** - * Personopplyusning for vedtaks xml til datavarehus skal ikke inneholde - * fødselsnummer. Men istedenfor aktørId. - */ - private void assertPersonopplysningDvh(AktørId aktørId, String vedtaksXml) { - var aktørIdXmlElement = String.format("aktoerId>%s"; - assertThat(vedtaksXml).contains(aktørIdXmlElement); - assertThat(vedtaksXml).doesNotContain(fødselsnummerXmlElement); - } - - private Behandling byggAdopsjonMedVedtak(EntityManager em, boolean innvilget) { - var scenario = ScenarioMorSøkerEngangsstønad.forFødsel() - .medBruker(BRUKER_AKTØR_ID, NavBrukerKjønn.KVINNE) - .medSaksnummer(SAKSNUMMER); - scenario.medSøknadAnnenPart().medAktørId(ANNEN_PART_AKTØR_ID); - - scenario.medSøknadHendelse().medAdopsjon(scenario.medSøknadHendelse().getAdopsjonBuilder() - .medOmsorgsovertakelseDato(LocalDate.now().plusDays(50))) - .leggTilBarn(FØDSELSDATO_BARN) - .medAntallBarn(1); - - return lagreBehandlingOgVedtak(em, innvilget, scenario); - - } - - private Behandling byggFødselBehandlingMedVedtak(EntityManager em, boolean innvilget) { - var scenario = ScenarioMorSøkerEngangsstønad.forFødsel() - .medBruker(BRUKER_AKTØR_ID, NavBrukerKjønn.KVINNE) - .medSaksnummer(SAKSNUMMER); - scenario.medSøknadAnnenPart().medAktørId(ANNEN_PART_AKTØR_ID); - scenario.medSøknadHendelse() - .medFødselsDato(FØDSELSDATO_BARN); - - return lagreBehandlingOgVedtak(em, innvilget, scenario); - } - - private Behandling lagreBehandlingOgVedtak(EntityManager em, boolean innvilget, ScenarioMorSøkerEngangsstønad scenario) { - var behandling = scenario.lagre(repositoryProvider); - - var behandlingVedtakRepository = repositoryProvider.getBehandlingVedtakRepository(); - var vedtak = BehandlingVedtak.builder() - .medAnsvarligSaksbehandler(ANSVARLIG_SAKSBEHANDLER) - .medIverksettingStatus(IVERKSETTING_STATUS) - .medVedtakstidspunkt(VEDTAK_DATO) - .medVedtakResultatType(innvilget ? VedtakResultatType.INNVILGET : VedtakResultatType.AVSLAG) - .medBehandlingsresultat(behandling.getBehandlingsresultat()) - .build(); - behandlingVedtakRepository.lagre(vedtak, behandlingRepository.taSkriveLås(behandling)); - - oppdaterMedBehandlingsresultat(em, behandling, innvilget); - - return behandling; - } - - private void oppdaterMedBehandlingsresultat(EntityManager em, Behandling behandling, boolean innvilget) { - if (innvilget) { - var vilkårResultat = VilkårResultat.builder() - .leggTilVilkårOppfylt(VilkårType.FØDSELSVILKÅRET_MOR) - .buildFor(behandling); - em.persist(vilkårResultat); - var bres = behandlingsresultatRepository.hentHvisEksisterer(behandling.getId()).orElse(null); - var beregningResultat = LegacyESBeregningsresultat.builder() - .medBeregning(new LegacyESBeregning(48500L, 1L, 48500L, LocalDateTime.now())) - .buildFor(behandling, bres); - em.persist(beregningResultat); - } else { - var vilkårResultat = VilkårResultat.builder() - .leggTilVilkårAvslått(VilkårType.FØDSELSVILKÅRET_MOR, VilkårUtfallMerknad.VM_1026) - .buildFor(behandling); - em.persist(vilkårResultat); - - } - } - - private void buildOppdragskontroll(Long behandlingId, Long delytelseId) { - var oppdrag = Oppdragskontroll.builder() - .medBehandlingId(behandlingId) - .medSaksnummer(SAKSNUMMER) - .medVenterKvittering(false) - .medProsessTaskId(56L) - .build(); - - var oppdrag110 = buildOppdrag110(oppdrag); - buildOppdragslinje150(oppdrag110, delytelseId); - buildOppdragKvittering(oppdrag110); - - økonomioppdragRepository.lagre(oppdrag); - } - - private Oppdragslinje150 buildOppdragslinje150(Oppdrag110 oppdrag110, Long delytelseId) { - - return Oppdragslinje150.builder() - .medKodeEndringLinje(KodeEndringLinje.ENDR) - .medKodeStatusLinje(KodeStatusLinje.OPPH) - .medDatoStatusFom(LocalDate.now()) - .medVedtakId("345") - .medDelytelseId(delytelseId) - .medKodeKlassifik(KodeKlassifik.FPA_SELVSTENDIG) - .medVedtakFomOgTom(LocalDate.now(), LocalDate.now()) - .medSats(Sats.på(61122L)) - .medTypeSats(TypeSats.DAG) - .medUtbetalesTilId("123456789") - .medOppdrag110(oppdrag110) - .medRefDelytelseId(1L) - .build(); - } - - private OppdragKvittering buildOppdragKvittering(Oppdrag110 oppdrag110) { - return OppdragKvittering.builder().medOppdrag110(oppdrag110) - .medAlvorlighetsgrad(Alvorlighetsgrad.OK) - .build(); - } - - private Oppdrag110 buildOppdrag110(Oppdragskontroll oppdragskontroll) { - return Oppdrag110.builder() - .medKodeEndring(KodeEndring.NY) - .medKodeFagomrade(KodeFagområde.REFUTG) - .medFagSystemId(OPPDRAG_FAGSYSTEM_ID) - .medOppdragGjelderId("12345678901") - .medSaksbehId("J5624215") - .medAvstemming(Avstemming.ny()) - .medOppdragskontroll(oppdragskontroll) - .build(); - } -} diff --git a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjenesteForeldrepengerTest.java b/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjenesteForeldrepengerTest.java deleted file mode 100644 index 9bece9a7155..00000000000 --- a/domenetjenester/datavarehus/src/test/java/no/nav/foreldrepenger/datavarehus/xml/DvhVedtakXmlTjenesteForeldrepengerTest.java +++ /dev/null @@ -1,530 +0,0 @@ -package no.nav.foreldrepenger.datavarehus.xml; - -import static java.util.Collections.singletonList; -import static no.nav.foreldrepenger.behandlingslager.virksomhet.OrgNummer.KUNSTIG_ORG; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.Month; -import java.util.Optional; - -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mock; -import org.mockito.Mockito; - -import no.nav.foreldrepenger.behandling.BehandlingReferanse; -import no.nav.foreldrepenger.behandling.FagsakRelasjonTjeneste; -import no.nav.foreldrepenger.behandling.Skjæringstidspunkt; -import no.nav.foreldrepenger.behandlingslager.aktør.NavBrukerKjønn; -import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingResultatType; -import no.nav.foreldrepenger.behandlingslager.behandling.Behandlingsresultat; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.AktivitetStatus; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatAndel; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatPeriode; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.BeregningsresultatRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.beregning.Inntektskategori; -import no.nav.foreldrepenger.behandlingslager.behandling.familiehendelse.FamilieHendelseRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.medlemskap.MedlemskapRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.repository.BehandlingRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.repository.BehandlingRepositoryProvider; -import no.nav.foreldrepenger.behandlingslager.behandling.søknad.SøknadAnnenPartType; -import no.nav.foreldrepenger.behandlingslager.behandling.vedtak.BehandlingVedtak; -import no.nav.foreldrepenger.behandlingslager.behandling.vedtak.IverksettingStatus; -import no.nav.foreldrepenger.behandlingslager.behandling.vedtak.VedtakResultatType; -import no.nav.foreldrepenger.behandlingslager.behandling.verge.VergeRepository; -import no.nav.foreldrepenger.behandlingslager.behandling.vilkår.VilkårResultat; -import no.nav.foreldrepenger.behandlingslager.behandling.vilkår.VilkårType; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.OppgittRettighetEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.periode.OppgittFordelingEntitet; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.periode.OppgittPeriodeBuilder; -import no.nav.foreldrepenger.behandlingslager.behandling.ytelsefordeling.periode.UttakPeriodeType; -import no.nav.foreldrepenger.behandlingslager.kodeverk.Fagsystem; -import no.nav.foreldrepenger.behandlingslager.testutilities.behandling.AbstractTestScenario; -import no.nav.foreldrepenger.behandlingslager.testutilities.behandling.ScenarioMorSøkerForeldrepenger; -import no.nav.foreldrepenger.behandlingslager.uttak.PeriodeResultatType; -import no.nav.foreldrepenger.behandlingslager.uttak.Utbetalingsgrad; -import no.nav.foreldrepenger.behandlingslager.uttak.UttakArbeidType; -import no.nav.foreldrepenger.behandlingslager.uttak.Uttaksperiodegrense; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.PeriodeResultatÅrsak; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.Stønadskonto; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.StønadskontoType; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.Stønadskontoberegning; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.Trekkdager; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakAktivitetEntitet; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakResultatEntitet; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakResultatPeriodeAktivitetEntitet; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakResultatPeriodeEntitet; -import no.nav.foreldrepenger.behandlingslager.uttak.fp.UttakResultatPerioderEntitet; -import no.nav.foreldrepenger.behandlingslager.virksomhet.Arbeidsgiver; -import no.nav.foreldrepenger.behandlingslager.ytelse.RelatertYtelseType; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Avstemming; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdrag110; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.OppdragKvittering; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdragskontroll; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdragslinje150; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Refusjonsinfo156; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Sats; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.Alvorlighetsgrad; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.KodeEndring; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.KodeEndringLinje; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.KodeFagområde; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.KodeKlassifik; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.KodeStatusLinje; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.koder.TypeSats; -import no.nav.foreldrepenger.behandlingslager.økonomioppdrag.ØkonomioppdragRepository; -import no.nav.foreldrepenger.datavarehus.xml.fp.DvhPersonopplysningXmlTjenesteImpl; -import no.nav.foreldrepenger.datavarehus.xml.fp.OppdragXmlTjenesteImpl; -import no.nav.foreldrepenger.dbstoette.CdiDbAwareTest; -import no.nav.foreldrepenger.domene.arbeidsforhold.InntektArbeidYtelseTjeneste; -import no.nav.foreldrepenger.domene.arbeidsgiver.VirksomhetTjeneste; -import no.nav.foreldrepenger.domene.iay.modell.InntektArbeidYtelseAggregatBuilder; -import no.nav.foreldrepenger.domene.iay.modell.VersjonType; -import no.nav.foreldrepenger.domene.iay.modell.YtelseStørrelseBuilder; -import no.nav.foreldrepenger.domene.iay.modell.kodeverk.Arbeidskategori; -import no.nav.foreldrepenger.domene.iay.modell.kodeverk.InntektPeriodeType; -import no.nav.foreldrepenger.domene.iay.modell.kodeverk.RelatertYtelseTilstand; -import no.nav.foreldrepenger.domene.modell.Beregningsgrunnlag; -import no.nav.foreldrepenger.domene.modell.BeregningsgrunnlagGrunnlagBuilder; -import no.nav.foreldrepenger.domene.modell.BeregningsgrunnlagPeriode; -import no.nav.foreldrepenger.domene.modell.BeregningsgrunnlagPrStatusOgAndel; -import no.nav.foreldrepenger.domene.modell.kodeverk.BeregningsgrunnlagTilstand; -import no.nav.foreldrepenger.domene.person.PersoninfoAdapter; -import no.nav.foreldrepenger.domene.personopplysning.PersonopplysningTjeneste; -import no.nav.foreldrepenger.domene.prosess.BeregningTjenesteInMemory; -import no.nav.foreldrepenger.domene.tid.DatoIntervallEntitet; -import no.nav.foreldrepenger.domene.typer.AktørId; -import no.nav.foreldrepenger.domene.typer.InternArbeidsforholdRef; -import no.nav.foreldrepenger.domene.typer.Saksnummer; -import no.nav.foreldrepenger.domene.uttak.ForeldrepengerUttakTjeneste; -import no.nav.foreldrepenger.domene.ytelsefordeling.YtelseFordelingTjeneste; -import no.nav.foreldrepenger.skjæringstidspunkt.SkjæringstidspunktTjeneste; -import no.nav.foreldrepenger.økonomistøtte.HentOppdragMedPositivKvittering; -import no.nav.vedtak.felles.testutilities.cdi.UnitTestLookupInstanceImpl; - -@CdiDbAwareTest -class DvhVedtakXmlTjenesteForeldrepengerTest { - - private static final AktørId BRUKER_AKTØR_ID = AktørId.dummy(); - private static final Saksnummer SAKSNUMMER = new Saksnummer("12345"); - private static final AktørId ANNEN_PART_AKTØR_ID = AktørId.dummy(); - private static final IverksettingStatus IVERKSETTING_STATUS = IverksettingStatus.IKKE_IVERKSATT; - private static final String ANSVARLIG_SAKSBEHANDLER = "fornavn etternavn"; - private static final String ORGNR = KUNSTIG_ORG; - private static final LocalDate FØDSELSDATO_BARN = LocalDate.of(2017, Month.JANUARY, 1); - private static final LocalDate FØRSTE_UTTAKSDATO_OPPGITT = LocalDate.now().minusDays(20); - private static final Long OPPDRAG_FAGSYSTEM_ID = 44L; - private static final LocalDate SKJÆRINGSTIDSPUNKT = LocalDate.now(); - private static final BigDecimal MÅNEDSBELØP_TILSTØTENDE_YTELSE = BigDecimal.valueOf(10000L); - private static LocalDateTime VEDTAK_DATO = LocalDateTime.parse("2017-10-11T08:00"); - @Inject - private BeregningsresultatRepository beregningsresultatRepository; - @Inject - private BehandlingRepositoryProvider repositoryProvider; - @Inject - private BehandlingRepository behandlingRepository; - @Inject - private BeregningTjenesteInMemory beregningTjenesteInMemory; - - private EntityManager entityManager; - - @Mock - private PersoninfoAdapter personinfoAdapter; - - @Inject - private YtelseFordelingTjeneste ytelseFordelingTjeneste; - - @Inject - private InntektArbeidYtelseTjeneste iayTjeneste; - - @Inject - private BehandlingsresultatXmlTjeneste behandlingsresultatXmlTjeneste; - - private DvhVedtakXmlTjeneste dvhVedtakXmlTjenesteFP; - - @Inject - private PersonopplysningTjeneste personopplysningTjeneste; - - @Inject - private ØkonomioppdragRepository økonomioppdragRepository; - - @Inject - private FamilieHendelseRepository familieHendelseRepository; - - @Inject - private VergeRepository vergeRepository; - - @Inject - private MedlemskapRepository medlemskapRepository; - - @Inject - private ForeldrepengerUttakTjeneste foreldrepengerUttakTjeneste; - @Inject - private FagsakRelasjonTjeneste fagsakRelasjonTjeneste; - - @BeforeEach - public void oppsett(EntityManager em) { - entityManager = em; - var hentOppdragMedPositivKvittering = new HentOppdragMedPositivKvittering(økonomioppdragRepository); - - var skjæringstidspunktTjeneste = mock(SkjæringstidspunktTjeneste.class); - var skjæringstidspunkt = Skjæringstidspunkt.builder().medUtledetSkjæringstidspunkt(SKJÆRINGSTIDSPUNKT).build(); - when(skjæringstidspunktTjeneste.getSkjæringstidspunkter(Mockito.any())).thenReturn(skjæringstidspunkt); - var virksomhetTjeneste = mock(VirksomhetTjeneste.class); - var poXmlFelles = new PersonopplysningXmlFelles(personinfoAdapter); - - var dvhPersonopplysningXmlTjenesteImpl = new DvhPersonopplysningXmlTjenesteImpl(poXmlFelles, familieHendelseRepository, vergeRepository, - medlemskapRepository, virksomhetTjeneste, personopplysningTjeneste, iayTjeneste, ytelseFordelingTjeneste, foreldrepengerUttakTjeneste); - - var vedtakXmlTjeneste = new VedtakXmlTjeneste(repositoryProvider, fagsakRelasjonTjeneste); - var oppdragXmlTjenesteImpl = new OppdragXmlTjenesteImpl(hentOppdragMedPositivKvittering); - - dvhVedtakXmlTjenesteFP = new DvhVedtakXmlTjeneste(repositoryProvider, - vedtakXmlTjeneste, - new UnitTestLookupInstanceImpl<>(dvhPersonopplysningXmlTjenesteImpl), - new UnitTestLookupInstanceImpl<>(oppdragXmlTjenesteImpl), - behandlingsresultatXmlTjeneste, - skjæringstidspunktTjeneste, null); - - } - - private Behandling lagre(AbstractTestScenario scenario) { - return scenario.lagre(repositoryProvider); - } - - @Test - void skal_opprette_vedtaks_xml_med_oppdrag() { - var behandling = byggBehandlingMedVedtak(); - - Long delytelseId = 65L; - var delytelseXmlElement = String.format("delytelseId>%s%s%s", ANNEN_PART_AKTØR_ID.getId()); - buildOppdragskontroll(behandling.getId(), delytelseId); - - var avkortetXmlElement = "avkortet>"; - - // Act - var xml = dvhVedtakXmlTjenesteFP.opprettDvhVedtakXml(behandling.getId()); - - // Assert - assertThat(xml).isNotNull(); - assertThat(xml).contains(avkortetXmlElement); - assertThat(xml).contains(aktørIdElement); - assertThat(xml).contains(fagsystemIdXmlElement); - assertThat(xml).contains(delytelseXmlElement); - } - - private Behandling byggBehandlingMedVedtak() { - - var ytelseHjelper = new YtelseHjelperTester(); - ytelseHjelper.medArbeidsForhold("55L") - .medUttakFom(LocalDate.now().minusDays(6).minusYears(2)).medUttakTom(LocalDate.now().plusDays(1).minusMonths(10)); - - var scenario = ScenarioMorSøkerForeldrepenger.forFødsel() - .medBruker(BRUKER_AKTØR_ID, NavBrukerKjønn.KVINNE) - .medSaksnummer(SAKSNUMMER); - scenario.medDefaultOppgittDekningsgrad(); - - scenario.medSøknadAnnenPart().medAktørId(ANNEN_PART_AKTØR_ID).medNavn("Anne N. Forelder").medType(SøknadAnnenPartType.FAR); - scenario.medSøknadHendelse() - .medFødselsDato(FØDSELSDATO_BARN); - - scenario.medFordeling(opprettOppgittFordeling()); - opprettPeriodeAleneomsorg(scenario); - - var behandling = lagre(scenario); - var behandlingsresultat = opprettBehandlingsresultatMedVilkårResultatForBehandling(behandling); - - byggYtelse(behandling, RelatertYtelseType.SYKEPENGER, new BigDecimal(90), Arbeidskategori.ARBEIDSTAKER, KUNSTIG_ORG); - - var uttaksperiodegrense = new Uttaksperiodegrense(LocalDate.now()); - repositoryProvider.getUttaksperiodegrenseRepository().lagre(behandling.getId(), uttaksperiodegrense); - - var periode = new UttakResultatPeriodeEntitet.Builder(LocalDate.now(), LocalDate.now().plusDays(11)) - .medResultatType(PeriodeResultatType.INNVILGET, PeriodeResultatÅrsak.UKJENT) - .build(); - var uttakResultatPerioder1 = new UttakResultatPerioderEntitet(); - uttakResultatPerioder1.leggTilPeriode(periode); - - repositoryProvider.getFpUttakRepository().lagreOpprinneligUttakResultatPerioder(behandling.getId(), uttakResultatPerioder1); - - opprettStønadskontoer(behandling); - lagBeregningsgrunnlag(behandling); - - var beregningsresultat = lagBeregningsresultatFP(); - beregningsresultatRepository.lagre(behandling, beregningsresultat); - - var arbeidsgiverVirksomhet = opprettOgLagreVirksomhet(ytelseHjelper); - var uttakResultatEntitet = opprettUttak(true, behandling, ytelseHjelper.uttakFom, ytelseHjelper.uttakTom, - arbeidsgiverVirksomhet); - repositoryProvider.getFpUttakRepository().lagreOpprinneligUttakResultatPerioder(behandling.getId(), - uttakResultatEntitet.getGjeldendePerioder()); - - var behandlingVedtakRepository = repositoryProvider.getBehandlingVedtakRepository(); - var vedtak = BehandlingVedtak.builder() - .medAnsvarligSaksbehandler(ANSVARLIG_SAKSBEHANDLER) - .medIverksettingStatus(IVERKSETTING_STATUS) - .medVedtakstidspunkt(VEDTAK_DATO) - .medVedtakResultatType(VedtakResultatType.INNVILGET) - .medBehandlingsresultat(behandlingsresultat) - .build(); - behandlingVedtakRepository.lagre(vedtak, behandlingRepository.taSkriveLås(behandling)); - return behandling; - } - - private Arbeidsgiver opprettOgLagreVirksomhet(YtelseHjelperTester ytelseHjelper) { - return Arbeidsgiver.virksomhet(ytelseHjelper.arbeidsForholdId); - } - - private UttakResultatEntitet opprettUttak(boolean innvilget, Behandling behandling, LocalDate fom, LocalDate tom, Arbeidsgiver arbeidsgiver) { - var uttakResultatPlanBuilder = new UttakResultatEntitet.Builder(behandling.getBehandlingsresultat()); - - var uttakResultatPeriode = new UttakResultatPeriodeEntitet.Builder(fom, tom) - .medResultatType(innvilget ? PeriodeResultatType.INNVILGET : PeriodeResultatType.AVSLÅTT, PeriodeResultatÅrsak.UKJENT) - .build(); - var uttakAktivitet = new UttakAktivitetEntitet.Builder() - .medArbeidsforhold(arbeidsgiver, InternArbeidsforholdRef.nyRef()) - .medUttakArbeidType(UttakArbeidType.ORDINÆRT_ARBEID) - .build(); - - var periodeAktivitet = UttakResultatPeriodeAktivitetEntitet.builder(uttakResultatPeriode, - uttakAktivitet) - .medTrekkonto(UttakPeriodeType.FORELDREPENGER) - .medTrekkdager(new Trekkdager(10)) - .medArbeidsprosent(new BigDecimal(100)) - .medUtbetalingsgrad(new Utbetalingsgrad(100)) - .medErSøktGradering(true) - .build(); - - uttakResultatPeriode.leggTilAktivitet(periodeAktivitet); - - var uttakResultatPerioder = new UttakResultatPerioderEntitet(); - uttakResultatPerioder.leggTilPeriode(uttakResultatPeriode); - - return uttakResultatPlanBuilder.medOpprinneligPerioder(uttakResultatPerioder) - .build(); - } - - private void opprettPeriodeAleneomsorg(ScenarioMorSøkerForeldrepenger scenario) { - scenario.medOppgittRettighet(OppgittRettighetEntitet.beggeRett()); - scenario.medOverstyrtRettighet(OppgittRettighetEntitet.beggeRett()); - } - - private BeregningsresultatEntitet lagBeregningsresultatFP() { - var beregningsresultat = BeregningsresultatEntitet.builder().medRegelInput("input").medRegelSporing("sporing").build(); - var beregningsresultatPeriode = BeregningsresultatPeriode.builder() - .medBeregningsresultatPeriodeFomOgTom(FØRSTE_UTTAKSDATO_OPPGITT, FØRSTE_UTTAKSDATO_OPPGITT.plusWeeks(2)) - .build(beregningsresultat); - BeregningsresultatAndel.builder() - .medInntektskategori(Inntektskategori.ARBEIDSTAKER) - .medAktivitetStatus(AktivitetStatus.ARBEIDSTAKER) - .medDagsats(123) - .medDagsatsFraBg(123) - .medBrukerErMottaker(true) - .medUtbetalingsgrad(BigDecimal.valueOf(100)) - .medStillingsprosent(BigDecimal.valueOf(100)) - .build(beregningsresultatPeriode); - return beregningsresultat; - } - - private Behandlingsresultat opprettBehandlingsresultatMedVilkårResultatForBehandling(Behandling behandling) { - - var behandlingsresultat = Behandlingsresultat.builderEndreEksisterende(behandling.getBehandlingsresultat()) - .medBehandlingResultatType(BehandlingResultatType.INNVILGET) - .buildFor(behandling); - var vilkårResultat = VilkårResultat.builder() - .leggTilVilkårOppfylt(VilkårType.FØDSELSVILKÅRET_MOR) - .buildFor(behandlingsresultat); - entityManager.persist(vilkårResultat); - behandlingsresultat.medOppdatertVilkårResultat(vilkårResultat); - behandling.setBehandlingresultat(behandlingsresultat); - - return behandlingsresultat; - } - - private void opprettStønadskontoer(Behandling behandling) { - var foreldrepengerFørFødsel = Stønadskonto.builder() - .medStønadskontoType(StønadskontoType.FORELDREPENGER_FØR_FØDSEL) - .medMaxDager(15) - .build(); - var mødrekvote = Stønadskonto.builder() - .medStønadskontoType(StønadskontoType.MØDREKVOTE) - .medMaxDager(50) - .build(); - var fellesperiode = Stønadskonto.builder() - .medStønadskontoType(StønadskontoType.FELLESPERIODE) - .medMaxDager(50) - .build(); - var stønadskontoberegning = Stønadskontoberegning.builder() - .medRegelEvaluering("evaluering") - .medRegelInput("grunnlag") - .medStønadskonto(mødrekvote).medStønadskonto(fellesperiode).medStønadskonto(foreldrepengerFørFødsel).build(); - - repositoryProvider.getFagsakRelasjonRepository().lagre(behandling.getFagsak(), stønadskontoberegning); - } - - private OppgittFordelingEntitet opprettOppgittFordeling() { - var periode = OppgittPeriodeBuilder.ny() - .medPeriodeType(UttakPeriodeType.FORELDREPENGER_FØR_FØDSEL) - .medPeriode(FØRSTE_UTTAKSDATO_OPPGITT, FØRSTE_UTTAKSDATO_OPPGITT.plusWeeks(2)) - .medArbeidsgiver(opprettOgLagreArbeidsgiver()); - - return new OppgittFordelingEntitet(singletonList(periode.build()), true); - } - - private Arbeidsgiver opprettOgLagreArbeidsgiver() { - return Arbeidsgiver.virksomhet(ORGNR); - } - - private void buildOppdragskontroll(Long behandlingId, Long delytelseId) { - var oppdrag = Oppdragskontroll.builder() - .medBehandlingId(behandlingId) - .medSaksnummer(SAKSNUMMER) - .medVenterKvittering(false) - .medProsessTaskId(56L) - .build(); - - var oppdrag110 = buildOppdrag110(oppdrag); - buildOppdragslinje150(oppdrag110, delytelseId); - buildOppdragKvittering(oppdrag110); - - økonomioppdragRepository.lagre(oppdrag); - } - - private Oppdragslinje150 buildOppdragslinje150(Oppdrag110 oppdrag110, Long delytelseId) { - - var oppdragslinje150 = Oppdragslinje150.builder() - .medKodeEndringLinje(KodeEndringLinje.ENDR) - .medKodeStatusLinje(KodeStatusLinje.OPPH) - .medDatoStatusFom(LocalDate.now()) - .medVedtakId("345") - .medDelytelseId(delytelseId) - .medKodeKlassifik(KodeKlassifik.ES_FØDSEL) - .medVedtakFomOgTom(LocalDate.now(), LocalDate.now()) - .medSats(Sats.på(61122L)) - .medTypeSats(TypeSats.DAG) - .medUtbetalesTilId("123456789") - .medOppdrag110(oppdrag110) - .medRefDelytelseId(1L) - .build(); - - Refusjonsinfo156.builder().medOppdragslinje150(oppdragslinje150).medRefunderesId("123").medMaksDato(LocalDate.now()) - .medDatoFom(LocalDate.now()) - .build(); - - return oppdragslinje150; - } - - private OppdragKvittering buildOppdragKvittering(Oppdrag110 oppdrag110) { - return OppdragKvittering.builder() - .medOppdrag110(oppdrag110) - .medAlvorlighetsgrad(Alvorlighetsgrad.OK) - .build(); - } - - private Oppdrag110 buildOppdrag110(Oppdragskontroll oppdragskontroll) { - return Oppdrag110.builder() - .medKodeEndring(KodeEndring.NY) - .medKodeFagomrade(KodeFagområde.REFUTG) - .medFagSystemId(OPPDRAG_FAGSYSTEM_ID) - .medOppdragGjelderId("12345678901") - .medSaksbehId("J5624215") - .medAvstemming(Avstemming.ny()) - .medOppdragskontroll(oppdragskontroll) - .build(); - } - - private void byggYtelse(Behandling behandling, RelatertYtelseType relatertYtelseType, BigDecimal prosent, Arbeidskategori arbeidskategori, - String virksomhetOrgnr) { - var inntektArbeidYtelseAggregatBuilder = InntektArbeidYtelseAggregatBuilder.oppdatere(Optional.empty(), - VersjonType.REGISTER); - var ytelserBuilder = inntektArbeidYtelseAggregatBuilder - .getAktørYtelseBuilder(BRUKER_AKTØR_ID); - - var ytelseBuilder = ytelserBuilder.getYtelselseBuilderForType(Fagsystem.FPSAK, relatertYtelseType, SAKSNUMMER) - .medStatus(RelatertYtelseTilstand.AVSLUTTET) - .medPeriode(DatoIntervallEntitet.fraOgMedTilOgMed(SKJÆRINGSTIDSPUNKT.minusDays(6), SKJÆRINGSTIDSPUNKT.plusDays(8))) - .medKilde(Fagsystem.INFOTRYGD); - - var ytelseStørrelse = YtelseStørrelseBuilder.ny() - .medBeløp(MÅNEDSBELØP_TILSTØTENDE_YTELSE) - .medHyppighet(InntektPeriodeType.MÅNEDLIG) - .medVirksomhet(virksomhetOrgnr) - .build(); - var ytelseGrunnlagBuilder = ytelseBuilder.getGrunnlagBuilder() - .medArbeidskategori(arbeidskategori) - .medYtelseStørrelse(ytelseStørrelse); - - if (RelatertYtelseType.FORELDREPENGER.equals(relatertYtelseType)) { - ytelseGrunnlagBuilder.medDekningsgradProsent(prosent); - } - if (RelatertYtelseType.SYKEPENGER.equals(relatertYtelseType)) { - ytelseGrunnlagBuilder.medInntektsgrunnlagProsent(prosent); - } - var ytelseGrunnlag = ytelseGrunnlagBuilder - .build(); - ytelseBuilder.medYtelseGrunnlag(ytelseGrunnlag); - - ytelserBuilder.leggTilYtelse(ytelseBuilder); - inntektArbeidYtelseAggregatBuilder.leggTilAktørYtelse(ytelserBuilder); - iayTjeneste.lagreIayAggregat(behandling.getId(), inntektArbeidYtelseAggregatBuilder); - - } - - class YtelseHjelperTester { - private LocalDate uttakFom; - private LocalDate uttakTom; - private String arbeidsForholdId; - - YtelseHjelperTester medUttakFom(LocalDate fom) { - this.uttakFom = fom; - return this; - } - - YtelseHjelperTester medUttakTom(LocalDate tom) { - this.uttakTom = tom; - return this; - } - - YtelseHjelperTester medArbeidsForhold(String arbeidsForholdId) { - this.arbeidsForholdId = arbeidsForholdId; - return this; - } - - } - - private void lagBeregningsgrunnlag(Behandling behandling) { - var andel = BeregningsgrunnlagPrStatusOgAndel.builder() - .medAktivitetStatus(no.nav.foreldrepenger.domene.modell.kodeverk.AktivitetStatus.FRILANSER) - .medAvkortetPrÅr(BigDecimal.TEN) - .medAvkortetBrukersAndelPrÅr(BigDecimal.TEN) - .medAvkortetRefusjonPrÅr(BigDecimal.ZERO) - .medRedusertPrÅr(BigDecimal.TEN) - .medRedusertBrukersAndelPrÅr(BigDecimal.TEN) - .medDagsatsBruker(1L) - .medDagsatsArbeidsgiver(1L) - .medRedusertRefusjonPrÅr(BigDecimal.ZERO) - .build(); - var bgPeriode = BeregningsgrunnlagPeriode.builder() - .medBeregningsgrunnlagPeriode(SKJÆRINGSTIDSPUNKT, null) - .leggTilBeregningsgrunnlagPrStatusOgAndel(andel) - .build(); - var bg = Beregningsgrunnlag.builder() - .medSkjæringstidspunkt(SKJÆRINGSTIDSPUNKT) - .leggTilBeregningsgrunnlagPeriode(bgPeriode) - .build(); - - var gr = BeregningsgrunnlagGrunnlagBuilder.nytt().medBeregningsgrunnlag(bg).build(BeregningsgrunnlagTilstand.FASTSATT); - beregningTjenesteInMemory.lagre(gr, BehandlingReferanse.fra(behandling)); - } -} diff --git a/domenetjenester/mottak/src/test/java/no/nav/foreldrepenger/mottak/hendelser/DummyDatavarehustjeneste.java b/domenetjenester/mottak/src/test/java/no/nav/foreldrepenger/mottak/hendelser/DummyDatavarehustjeneste.java index 06f3ae21b6c..7dab200b35d 100644 --- a/domenetjenester/mottak/src/test/java/no/nav/foreldrepenger/mottak/hendelser/DummyDatavarehustjeneste.java +++ b/domenetjenester/mottak/src/test/java/no/nav/foreldrepenger/mottak/hendelser/DummyDatavarehustjeneste.java @@ -29,11 +29,6 @@ public void lagreNedBehandling(Behandling behandling, BehandlingVedtak vedtak) { } - @Override - public void opprettOgLagreVedtakXml(Long behandlingId) { - - } - @Override public void oppdaterHvisKlageEllerAnke(Long behandlingId, Collection aksjonspunkter) { diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/domene/vedtak/OpprettProsessTaskIverksett.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/domene/vedtak/OpprettProsessTaskIverksett.java index 195caa998ea..8ee65cd7454 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/domene/vedtak/OpprettProsessTaskIverksett.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/domene/vedtak/OpprettProsessTaskIverksett.java @@ -8,7 +8,6 @@ import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.datavarehus.task.VedtakTilDatavarehusTask; import no.nav.foreldrepenger.datavarehus.v2.SendStønadsstatistikkForVedtakTask; import no.nav.foreldrepenger.domene.vedtak.ekstern.SettUtbetalingPåVentPrivatArbeidsgiverTask; import no.nav.foreldrepenger.domene.vedtak.ekstern.VurderOppgaveArenaTask; @@ -67,7 +66,6 @@ private void leggTilTasksYtelsesBehandling(Behandling behandling, ProsessTaskGru taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(SettUtbetalingPåVentPrivatArbeidsgiverTask.class)); taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(SettFagsakRelasjonAvslutningsdatoTask.class)); } - taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(VedtakTilDatavarehusTask.class)); taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(SendStønadsstatistikkForVedtakTask.class)); } diff --git a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/es/OpprettProsessTaskIverksettTest.java b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/es/OpprettProsessTaskIverksettTest.java index deb8381777b..c150998309f 100644 --- a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/es/OpprettProsessTaskIverksettTest.java +++ b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/es/OpprettProsessTaskIverksettTest.java @@ -12,7 +12,6 @@ import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; import no.nav.foreldrepenger.behandlingslager.testutilities.behandling.ScenarioMorSøkerEngangsstønad; -import no.nav.foreldrepenger.datavarehus.task.VedtakTilDatavarehusTask; import no.nav.foreldrepenger.domene.vedtak.OpprettProsessTaskIverksett; import no.nav.foreldrepenger.domene.vedtak.intern.AvsluttBehandlingTask; import no.nav.foreldrepenger.domene.vedtak.intern.SendVedtaksbrevTask; @@ -48,7 +47,7 @@ void skalIkkeAvslutteOppgave() { var prosessTaskDataList = captor.getValue().getTasks().stream().map(ProsessTaskGruppe.Entry::task).toList(); var tasktyper = prosessTaskDataList.stream().map(ProsessTaskData::taskType).toList(); assertThat(tasktyper).contains(TaskType.forProsessTask(AvsluttBehandlingTask.class), TaskType.forProsessTask(SendVedtaksbrevTask.class), - TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class), TaskType.forProsessTask(VedtakTilDatavarehusTask.class)); + TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class)); } @Test @@ -65,7 +64,7 @@ void testOpprettIverksettingstasker() { var prosessTaskDataList = captor.getValue().getTasks().stream().map(ProsessTaskGruppe.Entry::task).toList(); var tasktyper = prosessTaskDataList.stream().map(ProsessTaskData::taskType).toList(); assertThat(tasktyper).contains(TaskType.forProsessTask(AvsluttBehandlingTask.class), TaskType.forProsessTask(SendVedtaksbrevTask.class), - TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class), TaskType.forProsessTask(VedtakTilDatavarehusTask.class)); + TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class)); } private Behandling opprettBehandling() { diff --git a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/fp/OpprettProsessTaskIverksettTest.java b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/fp/OpprettProsessTaskIverksettTest.java index 3e163f1f7b0..76006232c7e 100644 --- a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/fp/OpprettProsessTaskIverksettTest.java +++ b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/domene/vedtak/fp/OpprettProsessTaskIverksettTest.java @@ -12,7 +12,6 @@ import no.nav.foreldrepenger.behandlingslager.behandling.Behandling; import no.nav.foreldrepenger.behandlingslager.testutilities.behandling.ScenarioMorSøkerForeldrepenger; -import no.nav.foreldrepenger.datavarehus.task.VedtakTilDatavarehusTask; import no.nav.foreldrepenger.domene.vedtak.OpprettProsessTaskIverksett; import no.nav.foreldrepenger.domene.vedtak.ekstern.SettUtbetalingPåVentPrivatArbeidsgiverTask; import no.nav.foreldrepenger.domene.vedtak.ekstern.VurderOppgaveArenaTask; @@ -55,7 +54,7 @@ void skalIkkeAvslutteOppgave() { var tasktyper = prosessTaskDataList.stream().map(ProsessTaskData::taskType).toList(); assertThat(tasktyper).contains(TaskType.forProsessTask(AvsluttBehandlingTask.class), TaskType.forProsessTask(SendVedtaksbrevTask.class), TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class), TaskType.forProsessTask(SettUtbetalingPåVentPrivatArbeidsgiverTask.class), - TaskType.forProsessTask(VurderOppgaveArenaTask.class), TaskType.forProsessTask(VedtakTilDatavarehusTask.class), TaskType.forProsessTask(SettFagsakRelasjonAvslutningsdatoTask.class)); + TaskType.forProsessTask(VurderOppgaveArenaTask.class), TaskType.forProsessTask(SettFagsakRelasjonAvslutningsdatoTask.class)); } @Test @@ -72,7 +71,7 @@ void testOpprettIverksettingstasker() { var tasktyper = prosessTaskDataList.stream().map(ProsessTaskData::taskType).toList(); assertThat(tasktyper).contains(TaskType.forProsessTask(AvsluttBehandlingTask.class), TaskType.forProsessTask(SendVedtaksbrevTask.class), TaskType.forProsessTask(VurderOgSendØkonomiOppdragTask.class), TaskType.forProsessTask(SettUtbetalingPåVentPrivatArbeidsgiverTask.class), - TaskType.forProsessTask(VurderOppgaveArenaTask.class), TaskType.forProsessTask(VedtakTilDatavarehusTask.class), TaskType.forProsessTask(SettFagsakRelasjonAvslutningsdatoTask.class)); + TaskType.forProsessTask(VurderOppgaveArenaTask.class), TaskType.forProsessTask(SettFagsakRelasjonAvslutningsdatoTask.class)); } }