Skip to content

Commit f67584e

Browse files
committed
oppdaterer ikke abakus hvis bruker er uenig
flytter historikkinnslag til parent da det er felles
1 parent 9a1cf20 commit f67584e

File tree

4 files changed

+111
-70
lines changed

4 files changed

+111
-70
lines changed

domenetjenester/mottak/src/main/java/no/nav/ung/sak/mottak/dokumentmottak/oppgavebekreftelse/DatoEndringBekreftelseHåndterer.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import no.nav.ung.kodeverk.ungdomsytelse.periodeendring.UngdomsprogramPeriodeEndringType;
1010
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsprogramBekreftetPeriodeEndring;
1111
import no.nav.ung.sak.behandlingslager.behandling.startdato.UngdomsytelseStartdatoRepository;
12-
import no.nav.ung.sak.mottak.dokumentmottak.HistorikkinnslagTjeneste;
1312

1413
@Dependent
1514
@OppgaveTypeRef(Bekreftelse.Type.UNG_ENDRET_FOM_DATO)
@@ -18,14 +17,11 @@ public class DatoEndringBekreftelseHåndterer implements BekreftelseHåndterer {
1817

1918

2019
private final UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository;
21-
private final HistorikkinnslagTjeneste historikkinnslagTjeneste;
2220

2321
@Inject
2422
public DatoEndringBekreftelseHåndterer(
25-
UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository,
26-
HistorikkinnslagTjeneste historikkinnslagTjeneste) {
23+
UngdomsytelseStartdatoRepository ungdomsytelseStartdatoRepository) {
2724
this.ungdomsytelseStartdatoRepository = ungdomsytelseStartdatoRepository;
28-
this.historikkinnslagTjeneste = historikkinnslagTjeneste;
2925
}
3026

3127
@Override
@@ -39,7 +35,6 @@ public class DatoEndringBekreftelseHåndterer implements BekreftelseHåndterer {
3935

4036
var behandling = oppgaveBekreftelse.behandling();
4137
ungdomsytelseStartdatoRepository.lagre(behandling.getId(), bekreftetPeriodeEndring);
42-
historikkinnslagTjeneste.opprettHistorikkinnslagForVedlegg(behandling.getFagsakId(), oppgaveBekreftelse.journalpostId());
4338
}
4439

4540
private static UngdomsprogramPeriodeEndringType finnBekreftetPeriodeEndring(DatoEndring bekreftelse) {

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

+7-15
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,15 @@
88
import jakarta.enterprise.context.ApplicationScoped;
99
import jakarta.enterprise.inject.Instance;
1010
import jakarta.inject.Inject;
11-
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.DatoEndring;
12-
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.EndretFomDatoBekreftelse;
13-
import no.nav.k9.oppgave.bekreftelse.ung.periodeendring.EndretTomDatoBekreftelse;
1411
import no.nav.ung.kodeverk.dokument.Brevkode;
1512
import no.nav.ung.kodeverk.dokument.DokumentStatus;
16-
import no.nav.ung.kodeverk.ungdomsytelse.periodeendring.UngdomsprogramPeriodeEndringType;
1713
import no.nav.ung.sak.behandlingskontroll.FagsakYtelseTypeRef;
1814
import no.nav.ung.sak.behandlingslager.behandling.Behandling;
1915
import no.nav.ung.sak.behandlingslager.behandling.motattdokument.MottattDokument;
2016
import no.nav.ung.sak.behandlingslager.behandling.motattdokument.MottatteDokumentRepository;
2117
import no.nav.ung.sak.mottak.dokumentmottak.DokumentGruppeRef;
2218
import no.nav.ung.sak.mottak.dokumentmottak.Dokumentmottaker;
19+
import no.nav.ung.sak.mottak.dokumentmottak.HistorikkinnslagTjeneste;
2320
import no.nav.ung.sak.mottak.dokumentmottak.Trigger;
2421

2522

@@ -31,18 +28,20 @@ public class DokumentMottakerOppgaveBekreftelseUng implements Dokumentmottaker {
3128
private OppgaveBekreftelseParser oppgaveBekreftelseParser;
3229
private MottatteDokumentRepository mottatteDokumentRepository;
3330
private Instance<BekreftelseHåndterer> bekreftelseMottakere;
31+
private HistorikkinnslagTjeneste historikkinnslagTjeneste;
3432

3533
public DokumentMottakerOppgaveBekreftelseUng() {
3634
}
3735

3836
@Inject
3937
public DokumentMottakerOppgaveBekreftelseUng(OppgaveBekreftelseParser oppgaveBekreftelseParser,
4038
MottatteDokumentRepository mottatteDokumentRepository,
41-
Instance<BekreftelseHåndterer> bekreftelseMottakere
42-
) {
39+
Instance<BekreftelseHåndterer> bekreftelseMottakere,
40+
HistorikkinnslagTjeneste historikkinnslagTjeneste) {
4341
this.oppgaveBekreftelseParser = oppgaveBekreftelseParser;
4442
this.mottatteDokumentRepository = mottatteDokumentRepository;
4543
this.bekreftelseMottakere = bekreftelseMottakere;
44+
this.historikkinnslagTjeneste = historikkinnslagTjeneste;
4645
}
4746

4847
@Override
@@ -63,17 +62,10 @@ public void lagreDokumentinnhold(Collection<MottattDokument> mottattDokument, Be
6362
bekreftelseHåndterer.håndter(new OppgaveBekreftelseInnhold(
6463
dokument.getJournalpostId(), behandling, oppgaveBekreftelse, dokument.getInnsendingstidspunkt(), dokument.getType()
6564
));
66-
}
67-
mottatteDokumentRepository.oppdaterStatus(mottattDokument.stream().toList(), DokumentStatus.GYLDIG);
68-
}
65+
historikkinnslagTjeneste.opprettHistorikkinnslagForVedlegg(behandling.getFagsakId(), dokument.getJournalpostId());
6966

70-
private static UngdomsprogramPeriodeEndringType finnBekreftetPeriodeEndring(DatoEndring bekreftelse) {
71-
if (bekreftelse instanceof EndretTomDatoBekreftelse) {
72-
return UngdomsprogramPeriodeEndringType.ENDRET_OPPHØRSDATO;
73-
} else if (bekreftelse instanceof EndretFomDatoBekreftelse) {
74-
return UngdomsprogramPeriodeEndringType.ENDRET_STARTDATO;
7567
}
76-
throw new IllegalArgumentException("Kunne ikke håndtere bekreftelse av brevkode " + bekreftelse.getType());
68+
mottatteDokumentRepository.oppdaterStatus(mottattDokument.stream().toList(), DokumentStatus.GYLDIG);
7769
}
7870

7971
@Override

domenetjenester/mottak/src/main/java/no/nav/ung/sak/mottak/dokumentmottak/oppgavebekreftelse/InntektBekreftelseHåndterer.java

+25-23
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.IOException;
44
import java.time.LocalDateTime;
5+
import java.util.Objects;
56
import java.util.UUID;
67

78
import jakarta.enterprise.context.Dependent;
@@ -46,40 +47,33 @@ public class InntektBekreftelseHåndterer implements BekreftelseHåndterer {
4647
public void håndter(OppgaveBekreftelseInnhold oppgaveBekreftelseInnhold) {
4748
InntektBekreftelse inntektBekreftelse = oppgaveBekreftelseInnhold.oppgaveBekreftelse().getBekreftelse();
4849

49-
// lagre grunnlag
50-
var abakusTask = lagOppdaterAbakusTask(oppgaveBekreftelseInnhold);
51-
52-
// ta behandling av vent (lukker autopunkt også)
53-
var fortsettTask = ProsessTaskData.forProsessTask(FortsettBehandlingTask.class);
54-
Behandling behandling = oppgaveBekreftelseInnhold.behandling();
55-
fortsettTask.setBehandling(behandling.getFagsakId(), behandling.getId());
56-
fortsettTask.setSaksnummer(behandling.getFagsak().getSaksnummer().getVerdi());
57-
fortsettTask.setProperty(FortsettBehandlingTask.GJENOPPTA_STEG, BehandlingStegType.KONTROLLER_REGISTER_INNTEKT.getKode());
50+
EtterlysningEntitet etterlysning = etterlysningRepository.hentEtterlysningForEksternReferanse(inntektBekreftelse.getOppgaveId());
5851

5952
ProsessTaskGruppe gruppe = new ProsessTaskGruppe();
60-
gruppe.addNesteSekvensiell(abakusTask);
61-
gruppe.addNesteSekvensiell(fortsettTask);
62-
prosessTaskTjeneste.lagre(gruppe);
63-
64-
// hent tilhørende etterlysning og marker den som løst
65-
UUID oppgaveId = inntektBekreftelse.getOppgaveId();
66-
EtterlysningEntitet etterlysning = etterlysningRepository.hentEtterlysningForEksternReferanse(oppgaveId);
6753

68-
if (inntektBekreftelse.getUttalelseFraBruker() != null) {
69-
etterlysning.mottattUttalelse(inntektBekreftelse.getUttalelseFraBruker(), oppgaveBekreftelseInnhold.journalpostId());
70-
} else {
54+
if (inntektBekreftelse.harBrukerGodtattEndringen()) {
55+
var abakusTask = lagOppdaterAbakusTask(oppgaveBekreftelseInnhold);
56+
gruppe.addNesteSekvensiell(abakusTask);
7157
etterlysning.mottattSvar(oppgaveBekreftelseInnhold.journalpostId());
58+
} else {
59+
Objects.requireNonNull(inntektBekreftelse.getUttalelseFraBruker(),
60+
"Uttalelse fra bruker må være satt når bruker ikke har godtatt endringen");
61+
etterlysning.mottattUttalelse(inntektBekreftelse.getUttalelseFraBruker(), oppgaveBekreftelseInnhold.journalpostId());
7262
}
73-
etterlysningRepository.lagre(etterlysning);
7463

64+
// ta behandling av vent (lukker autopunkt også)
65+
var fortsettTask = fortsettBehandlingTask(oppgaveBekreftelseInnhold.behandling());
66+
gruppe.addNesteSekvensiell(fortsettTask);
67+
68+
etterlysningRepository.lagre(etterlysning);
69+
prosessTaskTjeneste.lagre(gruppe);
7570
}
7671

7772
/**
78-
* Lagrer oppgitt opptjening til abakus fra mottatt dokument.
73+
* Lagrer oppgitt opptjening til abakus fra mottatt bekreftelse.
7974
*
80-
* @return
8175
*/
82-
private ProsessTaskData lagOppdaterAbakusTask(OppgaveBekreftelseInnhold bekreftelseInnhold) {
76+
private static ProsessTaskData lagOppdaterAbakusTask(OppgaveBekreftelseInnhold bekreftelseInnhold) {
8377
var request = mapOppgittOpptjeningRequest(bekreftelseInnhold);
8478

8579
try {
@@ -130,4 +124,12 @@ private static OppgittOpptjeningMottattRequest mapOppgittOpptjeningRequest(Oppga
130124
return new OppgittOpptjeningMottattRequest(saksnummer.getVerdi(), behandlingReferanse.getUuid(), aktør, ytelseType, oppgittOpptjening);
131125
}
132126

127+
private static ProsessTaskData fortsettBehandlingTask(Behandling behandling) {
128+
var fortsettTask = ProsessTaskData.forProsessTask(FortsettBehandlingTask.class);
129+
fortsettTask.setBehandling(behandling.getFagsakId(), behandling.getId());
130+
fortsettTask.setSaksnummer(behandling.getFagsak().getSaksnummer().getVerdi());
131+
fortsettTask.setProperty(FortsettBehandlingTask.GJENOPPTA_STEG, BehandlingStegType.KONTROLLER_REGISTER_INNTEKT.getKode());
132+
return fortsettTask;
133+
}
134+
133135
}

domenetjenester/mottak/src/test/java/no/nav/ung/sak/mottak/dokumentmottak/oppgavebekreftelse/InntektBekreftelseHåndtererTest.java

+78-26
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Set;
1111
import java.util.UUID;
1212

13+
import org.jetbrains.annotations.NotNull;
1314
import org.junit.jupiter.api.BeforeEach;
1415
import org.junit.jupiter.api.Test;
1516
import org.junit.jupiter.api.extension.ExtendWith;
@@ -68,10 +69,12 @@ void skalOppdatereEtterlysningOppdatereIayGrunnlagOgSetteBehandlingAvVent() {
6869
TestScenarioBuilder scenarioBuilder = TestScenarioBuilder.builderMedSøknad()
6970
.medBehandlingType(BehandlingType.REVURDERING);
7071
Behandling behandling = scenarioBuilder.lagre(em);
71-
7272
var periode = DatoIntervallEntitet.fra(LocalDate.now(), LocalDate.now());
73+
long journalpostId = 892L;
74+
int oppgittInntekt = 56321;
7375
var oppgaveId = UUID.randomUUID();
7476
var grunnlagsreferanse = UUID.randomUUID();
77+
7578
var etterlysning = etterlysningRepository.lagre(EtterlysningEntitet.forInntektKontrollUttalelse(
7679
behandling.getId(),
7780
grunnlagsreferanse,
@@ -82,29 +85,14 @@ void skalOppdatereEtterlysningOppdatereIayGrunnlagOgSetteBehandlingAvVent() {
8285
etterlysningRepository.lagre(etterlysning);
8386
em.flush();
8487

85-
86-
long journalpostId = 892L;
87-
int oppgittInntekt = 56321;
88-
var bekreftelse = new OppgaveBekreftelseInnhold(
89-
new JournalpostId(journalpostId),
90-
behandling,
91-
new OppgaveBekreftelse(
92-
new SøknadId("456"),
93-
Versjon.of("1"),
94-
ZonedDateTime.now(),
95-
new Søker(NorskIdentitetsnummer.of("12345678910")),
96-
new InntektBekreftelse(
97-
oppgaveId,
98-
Set.of(new OppgittInntektForPeriode(
99-
new Periode(periode.getFomDato(), periode.getTomDato()),
100-
BigDecimal.valueOf(oppgittInntekt),
101-
BigDecimal.ZERO)),
102-
true,
103-
"en uttalelse")
104-
),
105-
LocalDateTime.now(),
106-
Brevkode.UNGDOMSYTELSE_OPPGAVE_BEKREFTELSE
107-
);
88+
var bekreftelse = lagBekreftelse(journalpostId, behandling, new InntektBekreftelse(
89+
oppgaveId,
90+
Set.of(new OppgittInntektForPeriode(
91+
new Periode(periode.getFomDato(), periode.getTomDato()),
92+
BigDecimal.valueOf(oppgittInntekt),
93+
BigDecimal.ZERO)),
94+
true,
95+
null));
10896

10997
// Act
11098
var inntektBekreftelseHåndterer = new InntektBekreftelseHåndterer(etterlysningRepository, prosessTaskTjeneste);
@@ -128,13 +116,77 @@ void skalOppdatereEtterlysningOppdatereIayGrunnlagOgSetteBehandlingAvVent() {
128116
//etterlysning er oppdatert
129117
var oppdatertEtterlysning = etterlysningRepository.hentEtterlysning(etterlysning.getId());
130118
assertThat(oppdatertEtterlysning.getStatus()).isEqualTo(EtterlysningStatus.MOTTATT_SVAR);
131-
//TODO flytt denne til andre testen.
132119
assertThat(oppdatertEtterlysning.getSvarJournalpostId().getJournalpostId().getVerdi()).isEqualTo(String.valueOf(journalpostId));
133-
assertThat(oppdatertEtterlysning.getUttalelse().getUttalelseTekst()).isEqualTo("en uttalelse");
120+
assertThat(oppdatertEtterlysning.getUttalelse()).isNull();
134121
}
135122

136123
@Test
137124
void skalIkkeOppdatereGrunnlagVedUttalelse(){
125+
// Arrange
126+
TestScenarioBuilder scenarioBuilder = TestScenarioBuilder.builderMedSøknad()
127+
.medBehandlingType(BehandlingType.REVURDERING);
128+
Behandling behandling = scenarioBuilder.lagre(em);
129+
var periode = DatoIntervallEntitet.fra(LocalDate.now(), LocalDate.now());
130+
long journalpostId = 892L;
131+
int oppgittInntekt = 56321;
132+
var oppgaveId = UUID.randomUUID();
133+
var grunnlagsreferanse = UUID.randomUUID();
134+
135+
var etterlysning = etterlysningRepository.lagre(EtterlysningEntitet.forInntektKontrollUttalelse(
136+
behandling.getId(),
137+
grunnlagsreferanse,
138+
oppgaveId,
139+
periode));
140+
141+
etterlysning.vent(LocalDateTime.now().plusDays(1));
142+
etterlysningRepository.lagre(etterlysning);
143+
em.flush();
144+
145+
var bekreftelse = lagBekreftelse(journalpostId, behandling, new InntektBekreftelse(
146+
oppgaveId,
147+
Set.of(new OppgittInntektForPeriode(
148+
new Periode(periode.getFomDato(), periode.getTomDato()),
149+
BigDecimal.valueOf(oppgittInntekt),
150+
BigDecimal.ZERO)),
151+
false,
152+
"en uttalelse"));
153+
154+
// Act
155+
var inntektBekreftelseHåndterer = new InntektBekreftelseHåndterer(etterlysningRepository, prosessTaskTjeneste);
156+
inntektBekreftelseHåndterer.håndter(bekreftelse);
157+
em.flush();
158+
159+
// Assert
160+
//abakus skal ikke oppdateres
161+
List<ProsessTaskData> abakusTasker = prosessTaskTjeneste.finnAlle(AsyncAbakusLagreOpptjeningTask.TASKTYPE, ProsessTaskStatus.KLAR);
162+
assertThat(abakusTasker).hasSize(0);
163+
164+
//behandling taes av vent
165+
var fortsettSteg = prosessTaskTjeneste.finnAlle(FortsettBehandlingTask.TASKTYPE, ProsessTaskStatus.KLAR);
166+
assertThat(fortsettSteg).hasSize(1);
167+
assertThat(fortsettSteg.getFirst().getPropertyValue(FortsettBehandlingTask.GJENOPPTA_STEG)).isEqualTo(BehandlingStegType.KONTROLLER_REGISTER_INNTEKT.getKode());
138168

169+
//etterlysning er oppdatert
170+
var oppdatertEtterlysning = etterlysningRepository.hentEtterlysning(etterlysning.getId());
171+
assertThat(oppdatertEtterlysning.getStatus()).isEqualTo(EtterlysningStatus.MOTTATT_SVAR);
172+
assertThat(oppdatertEtterlysning.getSvarJournalpostId().getJournalpostId().getVerdi()).isEqualTo(String.valueOf(journalpostId));
173+
assertThat(oppdatertEtterlysning.getUttalelse().getUttalelseTekst()).isEqualTo("en uttalelse");
174+
}
175+
176+
@NotNull
177+
private static OppgaveBekreftelseInnhold lagBekreftelse(long journalpostId, Behandling behandling, InntektBekreftelse inntektBekreftelse) {
178+
return new OppgaveBekreftelseInnhold(
179+
new JournalpostId(journalpostId),
180+
behandling,
181+
new OppgaveBekreftelse(
182+
new SøknadId("456"),
183+
Versjon.of("1"),
184+
ZonedDateTime.now(),
185+
new Søker(NorskIdentitetsnummer.of("12345678910")),
186+
inntektBekreftelse
187+
),
188+
LocalDateTime.now(),
189+
Brevkode.UNGDOMSYTELSE_OPPGAVE_BEKREFTELSE
190+
);
139191
}
140192
}

0 commit comments

Comments
 (0)