Skip to content

Commit 82c3f54

Browse files
committed
Felles håndtering av bekreftelser
1 parent c689fd8 commit 82c3f54

File tree

9 files changed

+180
-28
lines changed

9 files changed

+180
-28
lines changed

domenetjenester/mottak/src/main/java/no/nav/ung/sak/mottak/dokumentmottak/inntektrapportering/OppgittOpptjeningMapper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import no.nav.abakus.iaygrunnlag.AktørIdPersonident;
88
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
99
import no.nav.abakus.iaygrunnlag.request.OppgittOpptjeningMottattRequest;
10-
import no.nav.k9.søknad.ytelse.ung.v1.OppgittInntekt;
10+
import no.nav.k9.søknad.ytelse.ung.v1.inntekt.OppgittInntekt;
1111
import no.nav.ung.kodeverk.arbeidsforhold.ArbeidType;
1212
import no.nav.ung.sak.behandling.BehandlingReferanse;
1313
import no.nav.ung.sak.behandlingslager.behandling.motattdokument.MottattDokument;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
2+
3+
public interface BekreftelseHåndterer {
4+
5+
void håndter(OppgaveBekreftelseInnhold bekreftelse);
6+
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
2+
3+
import jakarta.enterprise.context.Dependent;
4+
import jakarta.inject.Inject;
5+
import no.nav.k9.oppgave.bekreftelse.Bekreftelse;
6+
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.DatoEndring;
7+
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.EndretFomDatoBekreftelse;
8+
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.EndretTomDatoBekreftelse;
9+
import no.nav.ung.kodeverk.ungdomsytelse.periodeendring.UngdomsprogramPeriodeEndringType;
10+
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsprogramBekreftetPeriodeEndring;
11+
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsytelseStartdatoRepository;
12+
import no.nav.ung.sak.mottak.dokumentmottak.HistorikkinnslagTjeneste;
13+
14+
@Dependent
15+
@OppgaveTypeRef(Bekreftelse.Type.UNG_ENDRET_FOM_DATO)
16+
@OppgaveTypeRef(Bekreftelse.Type.UNG_ENDRET_TOM_DATO)
17+
public class DatoEndringBekreftelseHåndterer implements BekreftelseHåndterer {
18+
19+
20+
private final UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository;
21+
private final HistorikkinnslagTjeneste historikkinnslagTjeneste;
22+
23+
@Inject
24+
public DatoEndringBekreftelseHåndterer(
25+
UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository,
26+
HistorikkinnslagTjeneste historikkinnslagTjeneste) {
27+
this.ungdomsytelseStartdatoRepository = ungdomsytelseStartdatoRepository;
28+
this.historikkinnslagTjeneste = historikkinnslagTjeneste;
29+
}
30+
31+
@Override
32+
public void håndter(OppgaveBekreftelseInnhold oppgaveBekreftelse) {
33+
DatoEndring bekreftelse = oppgaveBekreftelse.oppgaveBekreftelse().getBekreftelse();
34+
35+
//todo flytt dette til ny håndterer
36+
final var bekreftetPeriodeEndring = new UngdomsprogramBekreftetPeriodeEndring(
37+
bekreftelse.getNyDato(),
38+
oppgaveBekreftelse.journalpostId(),
39+
finnBekreftetPeriodeEndring(bekreftelse));
40+
41+
var behandling = oppgaveBekreftelse.behandling();
42+
ungdomsytelseStartdatoRepository.lagre(behandling.getId(), bekreftetPeriodeEndring);
43+
historikkinnslagTjeneste.opprettHistorikkinnslagForVedlegg(behandling.getFagsakId(), oppgaveBekreftelse.journalpostId());
44+
}
45+
46+
private static UngdomsprogramPeriodeEndringType finnBekreftetPeriodeEndring(DatoEndring bekreftelse) {
47+
if (bekreftelse instanceof EndretTomDatoBekreftelse) {
48+
return UngdomsprogramPeriodeEndringType.ENDRET_OPPHØRSDATO;
49+
} else if (bekreftelse instanceof EndretFomDatoBekreftelse) {
50+
return UngdomsprogramPeriodeEndringType.ENDRET_STARTDATO;
51+
}
52+
throw new IllegalArgumentException("Kunne ikke håndtere bekreftelse av type " + bekreftelse.getType());
53+
}
54+
55+
}

domenetjenester/mottak/src/main/java/no/nav/ung/sak/mottak/dokumentmottak/oppgavebekreftelse/DokumentMottakerOppgaveBekreftelseUng.java

+18-14
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
22

3+
import static no.nav.ung.kodeverk.behandling.FagsakYtelseType.UNGDOMSYTELSE;
4+
5+
import java.util.Collection;
6+
import java.util.List;
7+
38
import jakarta.enterprise.context.ApplicationScoped;
9+
import jakarta.enterprise.inject.Instance;
410
import jakarta.inject.Inject;
511
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.DatoEndring;
612
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.EndretFomDatoBekreftelse;
@@ -12,18 +18,12 @@
1218
import no.nav.ung.sak.behandlingslager.behandling.Behandling;
1319
import no.nav.ung.sak.behandlingslager.behandling.motattdokument.MottattDokument;
1420
import no.nav.ung.sak.behandlingslager.behandling.motattdokument.MottatteDokumentRepository;
15-
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsprogramBekreftetPeriodeEndring;
1621
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsytelseStartdatoRepository;
1722
import no.nav.ung.sak.mottak.dokumentmottak.DokumentGruppeRef;
1823
import no.nav.ung.sak.mottak.dokumentmottak.Dokumentmottaker;
1924
import no.nav.ung.sak.mottak.dokumentmottak.HistorikkinnslagTjeneste;
2025
import no.nav.ung.sak.mottak.dokumentmottak.Trigger;
2126

22-
import java.util.Collection;
23-
import java.util.List;
24-
25-
import static no.nav.ung.kodeverk.behandling.FagsakYtelseType.UNGDOMSYTELSE;
26-
2727

2828
@ApplicationScoped
2929
@FagsakYtelseTypeRef(UNGDOMSYTELSE)
@@ -34,6 +34,7 @@ public class DokumentMottakerOppgaveBekreftelseUng implements Dokumentmottaker {
3434
private MottatteDokumentRepository mottatteDokumentRepository;
3535
private UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository;
3636
private HistorikkinnslagTjeneste historikkinnslagTjeneste;
37+
private Instance<BekreftelseHåndterer> bekreftelseMottakere;
3738

3839
public DokumentMottakerOppgaveBekreftelseUng() {
3940
}
@@ -42,11 +43,14 @@ public DokumentMottakerOppgaveBekreftelseUng() {
4243
public DokumentMottakerOppgaveBekreftelseUng(OppgaveBekreftelseParser oppgaveBekreftelseParser,
4344
MottatteDokumentRepository mottatteDokumentRepository,
4445
UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository,
45-
HistorikkinnslagTjeneste historikkinnslagTjeneste) {
46+
HistorikkinnslagTjeneste historikkinnslagTjeneste,
47+
Instance<BekreftelseHåndterer> bekreftelseMottakere
48+
) {
4649
this.oppgaveBekreftelseParser = oppgaveBekreftelseParser;
4750
this.mottatteDokumentRepository = mottatteDokumentRepository;
4851
this.ungdomsytelseStartdatoRepository = ungdomsytelseStartdatoRepository;
4952
this.historikkinnslagTjeneste = historikkinnslagTjeneste;
53+
this.bekreftelseMottakere = bekreftelseMottakere;
5054
}
5155

5256
@Override
@@ -59,14 +63,14 @@ public void lagreDokumentinnhold(Collection<MottattDokument> mottattDokument, Be
5963
if (oppgaveBekreftelse.getKildesystem().isPresent()) {
6064
dokument.setKildesystem(oppgaveBekreftelse.getKildesystem().get().getKode());
6165
}
62-
DatoEndring bekreftelse = oppgaveBekreftelse.getBekreftelse();
63-
final var bekreftetPeriodeEndring = new UngdomsprogramBekreftetPeriodeEndring(
64-
bekreftelse.getNyDato(),
65-
dokument.getJournalpostId(),
66-
finnBekreftetPeriodeEndring(bekreftelse));
6766

68-
ungdomsytelseStartdatoRepository.lagre(behandlingId, bekreftetPeriodeEndring);
69-
historikkinnslagTjeneste.opprettHistorikkinnslagForVedlegg(behandling.getFagsakId(), dokument.getJournalpostId());
67+
BekreftelseHåndterer bekreftelseHåndterer = bekreftelseMottakere
68+
.select(new OppgaveTypeRef.OppgaveTypeRefLiteral(oppgaveBekreftelse.getBekreftelse().getType()))
69+
.get();
70+
71+
bekreftelseHåndterer.håndter(new OppgaveBekreftelseInnhold(
72+
dokument.getJournalpostId(), behandling, oppgaveBekreftelse
73+
));
7074
}
7175
mottatteDokumentRepository.oppdaterStatus(mottattDokument.stream().toList(), DokumentStatus.GYLDIG);
7276
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
2+
3+
import jakarta.enterprise.context.Dependent;
4+
import no.nav.k9.oppgave.bekreftelse.Bekreftelse;
5+
6+
@Dependent
7+
@OppgaveTypeRef(Bekreftelse.Type.UNG_AVVIK_REGISTERINNTEKT)
8+
public class InntektBekreftelseHåndterer implements BekreftelseHåndterer {
9+
10+
11+
@Override
12+
public void håndter(OppgaveBekreftelseInnhold bekreftelse) {
13+
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
2+
3+
import no.nav.k9.oppgave.OppgaveBekreftelse;
4+
import no.nav.ung.sak.behandlingslager.behandling.Behandling;
5+
import no.nav.ung.sak.typer.JournalpostId;
6+
7+
public record OppgaveBekreftelseInnhold(
8+
JournalpostId journalpostId, Behandling behandling, OppgaveBekreftelse oppgaveBekreftelse
9+
) {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package no.nav.ung.sak.mottak.dokumentmottak.oppgavebekreftelse;
2+
3+
import java.lang.annotation.Documented;
4+
import java.lang.annotation.ElementType;
5+
import java.lang.annotation.Inherited;
6+
import java.lang.annotation.Repeatable;
7+
import java.lang.annotation.Retention;
8+
import java.lang.annotation.RetentionPolicy;
9+
import java.lang.annotation.Target;
10+
import java.util.Objects;
11+
12+
import jakarta.enterprise.util.AnnotationLiteral;
13+
import jakarta.inject.Qualifier;
14+
import no.nav.k9.oppgave.bekreftelse.Bekreftelse.Type;
15+
16+
/**
17+
* Marker type som implementerer interface {@link OppgaveTypeRef}.
18+
*/
19+
@Repeatable(OppgaveTypeRef.ContainerOfOppgaveTypeRef.class)
20+
@Qualifier
21+
@Inherited
22+
@Retention(RetentionPolicy.RUNTIME)
23+
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
24+
@Documented
25+
public @interface OppgaveTypeRef {
26+
27+
/**
28+
* {@link Type}
29+
*/
30+
Type value();
31+
32+
33+
/**
34+
* container for repeatable annotations.
35+
*
36+
* @see https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html
37+
*/
38+
@Inherited
39+
@Retention(RetentionPolicy.RUNTIME)
40+
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
41+
@Documented
42+
public @interface ContainerOfOppgaveTypeRef {
43+
OppgaveTypeRef[] value();
44+
}
45+
46+
class OppgaveTypeRefLiteral extends AnnotationLiteral<OppgaveTypeRef> implements OppgaveTypeRef {
47+
48+
private final Type type;
49+
50+
OppgaveTypeRefLiteral(Type type) {
51+
this.type = Objects.requireNonNull(type, "Type");
52+
}
53+
54+
@Override
55+
public Type value() {
56+
return type;
57+
}
58+
}
59+
60+
}

domenetjenester/mottak/src/test/java/no/nav/ung/sak/mottak/dokumentmottak/inntektrapportering/OppgittOpptjeningMapperTest.java

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11
package no.nav.ung.sak.mottak.dokumentmottak.inntektrapportering;
22

3+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
4+
5+
import java.math.BigDecimal;
6+
import java.time.LocalDate;
7+
import java.time.LocalDateTime;
8+
import java.util.Optional;
9+
import java.util.Set;
10+
import java.util.UUID;
11+
12+
import org.junit.jupiter.api.Test;
13+
314
import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType;
415
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
516
import no.nav.k9.søknad.felles.type.Periode;
6-
import no.nav.k9.søknad.ytelse.ung.v1.OppgittInntekt;
7-
import no.nav.k9.søknad.ytelse.ung.v1.OppgittInntektForPeriode;
17+
import no.nav.k9.søknad.ytelse.ung.v1.inntekt.OppgittInntekt;
18+
import no.nav.k9.søknad.ytelse.ung.v1.inntekt.OppgittInntektForPeriode;
819
import no.nav.ung.kodeverk.behandling.BehandlingResultatType;
920
import no.nav.ung.kodeverk.behandling.BehandlingStatus;
1021
import no.nav.ung.kodeverk.behandling.BehandlingType;
@@ -16,16 +27,6 @@
1627
import no.nav.ung.sak.typer.AktørId;
1728
import no.nav.ung.sak.typer.JournalpostId;
1829
import no.nav.ung.sak.typer.Saksnummer;
19-
import org.junit.jupiter.api.Test;
20-
21-
import java.math.BigDecimal;
22-
import java.time.LocalDate;
23-
import java.time.LocalDateTime;
24-
import java.util.Optional;
25-
import java.util.Set;
26-
import java.util.UUID;
27-
28-
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2930

3031

3132
class OppgittOpptjeningMapperTest {

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<felles.version>4.4.16</felles.version>
3939
<swagger.version>2.2.29</swagger.version>
4040
<junit.version>5.12.0</junit.version>
41-
<k9format.version>11.4.2</k9format.version>
41+
<k9format.version>qadeer-ung-SNAPSHOT</k9format.version>
4242
<jackson.version>2.18.3</jackson.version>
4343
<asm.version>9.7.1</asm.version>
4444
<kotlin-stdlib.version>2.1.10</kotlin-stdlib.version>

0 commit comments

Comments
 (0)