Skip to content

Commit 6ab296f

Browse files
authored
Topic får pakkelokale enums, fikse felles/pdl (#1843)
1 parent b7d9262 commit 6ab296f

File tree

13 files changed

+270
-16
lines changed

13 files changed

+270
-16
lines changed

.github/workflows/dispatch.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- name: Slash command dispatch
11-
uses: peter-evans/slash-command-dispatch@v2.3.0
11+
uses: peter-evans/slash-command-dispatch@v3
1212
with:
1313
token: ${{ secrets.GH_ACCESS_TOKEN }} # Må ha PAT for å sjekke tilgang for denne actionen.. Bytte?
1414
commands: promote # matcher repository dispatch med navent 'promote-command'

.github/workflows/release-drafter.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ jobs:
1111
update_release_draft:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: release-drafter/release-drafter@v5.18.1
14+
- uses: release-drafter/release-drafter@v5.19.0
1515
env:
1616
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1.java

+53-6
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
package no.nav.foreldrepenger.abakus.vedtak.extract.v1;
22

3+
import java.util.Optional;
34
import java.util.UUID;
45

56
import javax.enterprise.context.ApplicationScoped;
67
import javax.inject.Inject;
78

89
import no.nav.abakus.iaygrunnlag.Aktør;
910
import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem;
11+
import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori;
1012
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus;
1113
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
14+
import no.nav.abakus.vedtak.ytelse.Kildesystem;
1215
import no.nav.abakus.vedtak.ytelse.Periode;
16+
import no.nav.abakus.vedtak.ytelse.Status;
17+
import no.nav.abakus.vedtak.ytelse.Ytelser;
1318
import no.nav.abakus.vedtak.ytelse.v1.YtelseV1;
1419
import no.nav.abakus.vedtak.ytelse.v1.anvisning.Anvisning;
1520
import no.nav.abakus.vedtak.ytelse.v1.anvisning.AnvistAndel;
21+
import no.nav.abakus.vedtak.ytelse.v1.anvisning.Inntektklasse;
1622
import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet;
1723
import no.nav.foreldrepenger.abakus.typer.AktørId;
1824
import no.nav.foreldrepenger.abakus.typer.Saksnummer;
@@ -38,8 +44,8 @@ public ExtractFromYtelseV1(VedtakYtelseRepository repository) {
3844

3945
@Override
4046
public VedtakYtelseBuilder extractFrom(YtelseV1 ytelse) {
41-
Fagsystem fagsystem = ytelse.getFagsystem();
42-
no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType = getYtelseType(ytelse.getType());
47+
Fagsystem fagsystem = Optional.ofNullable(ytelse.getKildesystem()).map(this::mapKildesystem).orElseGet(ytelse::getFagsystem);
48+
no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType = getYtelseType(ytelse.getType(), ytelse.getYtelse());
4349
Saksnummer saksnummer = new Saksnummer(ytelse.getSaksnummer());
4450
AktørId aktørId = new AktørId(ytelse.getAktør().getVerdi());
4551

@@ -51,7 +57,7 @@ public VedtakYtelseBuilder extractFrom(YtelseV1 ytelse) {
5157
.medKilde(fagsystem)
5258
.medYtelseType(ytelseType)
5359
.medPeriode(mapTilEntitet(ytelse.getPeriode()))
54-
.medStatus(YtelseStatus.fraKode(ytelse.getStatus().getKode()))
60+
.medStatus(mapStatus(ytelse.getStatus(), ytelse.getYtelseStatus()))
5561
.medTilleggsopplysninger(ytelse.getTilleggsopplysninger())
5662
.tilbakestillAnvisteYtelser();
5763

@@ -72,14 +78,33 @@ private void mapAnvisning(VedtakYtelseBuilder builder, Anvisning anv) {
7278

7379
private VedtakYtelseAndelBuilder mapFordeling(AnvistAndel andel) {
7480
return VedtakYtelseAndelBuilder.ny()
75-
.medInntektskategori(andel.getInntektskategori())
81+
.medInntektskategori(mapInntektsklasse(andel.getInntektskategori(), andel.getInntektklasse()))
7682
.medDagsats(andel.getDagsats().getVerdi())
7783
.medUtbetalingsgrad(andel.getUtbetalingsgrad().getVerdi())
7884
.medRefusjonsgrad(andel.getRefusjonsgrad().getVerdi())
7985
.medArbeidsgiver(mapArbeidsgiver(andel.getArbeidsgiver()))
8086
.medArbeidsforholdId(andel.getArbeidsforholdId());
8187
}
8288

89+
private Fagsystem mapKildesystem(Kildesystem kildesystem) {
90+
return switch (kildesystem) {
91+
case FPSAK -> Fagsystem.FPSAK;
92+
case K9SAK -> Fagsystem.K9SAK;
93+
};
94+
}
95+
96+
private YtelseStatus mapStatus(YtelseStatus ytelseStatus, Status status) {
97+
if (status == null) {
98+
return ytelseStatus != null ? ytelseStatus : YtelseStatus.UDEFINERT;
99+
}
100+
return switch (status) {
101+
case UNDER_BEHANDLING -> YtelseStatus.UNDER_BEHANDLING;
102+
case LØPENDE -> YtelseStatus.LØPENDE;
103+
case AVSLUTTET -> YtelseStatus.AVSLUTTET;
104+
default -> YtelseStatus.UDEFINERT;
105+
};
106+
}
107+
83108
private Arbeidsgiver mapArbeidsgiver(Aktør arbeidsgiver) {
84109
if (arbeidsgiver == null) {
85110
return null;
@@ -91,8 +116,30 @@ private IntervallEntitet mapTilEntitet(Periode periode) {
91116
return IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom());
92117
}
93118

94-
private no.nav.abakus.iaygrunnlag.kodeverk.YtelseType getYtelseType(YtelseType kodeverk) {
95-
return no.nav.abakus.iaygrunnlag.kodeverk.YtelseType.fraKode(kodeverk.getKode());
119+
private YtelseType getYtelseType(YtelseType kodeverk, Ytelser ytelse) {
120+
if (ytelse == null) {
121+
return kodeverk != null ? kodeverk : YtelseType.UDEFINERT;
122+
}
123+
return switch (ytelse) {
124+
case PLEIEPENGER_SYKT_BARN -> YtelseType.PLEIEPENGER_SYKT_BARN;
125+
case PLEIEPENGER_NÆRSTÅENDE -> YtelseType.PLEIEPENGER_NÆRSTÅENDE;
126+
case OMSORGSPENGER -> YtelseType.OMSORGSPENGER;
127+
case OPPLÆRINGSPENGER -> YtelseType.OPPLÆRINGSPENGER;
128+
129+
case ENGANGSTØNAD -> YtelseType.ENGANGSTØNAD;
130+
case FORELDREPENGER -> YtelseType.FORELDREPENGER;
131+
case SVANGERSKAPSPENGER -> YtelseType.SVANGERSKAPSPENGER;
132+
133+
case FRISINN -> YtelseType.FRISINN;
134+
};
135+
}
136+
137+
private Inntektskategori mapInntektsklasse(Inntektskategori inntektskategori, Inntektklasse inntektklasse) {
138+
if (inntektklasse == null) {
139+
return inntektskategori != null ? inntektskategori : Inntektskategori.UDEFINERT;
140+
}
141+
return AnvistAndel.fraInntektklasse(inntektklasse);
142+
96143
}
97144

98145
}

domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1Test.java

+46
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@
1616
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus;
1717
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
1818
import no.nav.abakus.vedtak.ytelse.Aktør;
19+
import no.nav.abakus.vedtak.ytelse.Kildesystem;
1920
import no.nav.abakus.vedtak.ytelse.Periode;
21+
import no.nav.abakus.vedtak.ytelse.Status;
22+
import no.nav.abakus.vedtak.ytelse.Ytelser;
2023
import no.nav.abakus.vedtak.ytelse.v1.YtelseV1;
2124
import no.nav.abakus.vedtak.ytelse.v1.anvisning.Anvisning;
2225
import no.nav.abakus.vedtak.ytelse.v1.anvisning.AnvistAndel;
26+
import no.nav.abakus.vedtak.ytelse.v1.anvisning.Inntektklasse;
2327
import no.nav.foreldrepenger.abakus.dbstoette.JpaExtension;
2428
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseBuilder;
2529
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
@@ -67,6 +71,48 @@ public void skal_lagre_informasjon() {
6771
assertThat(entitet.getAktør().getId()).isEqualTo(aktørId);
6872
assertThat(entitet.getYtelseAnvist()).hasSize(1);
6973
assertThat(entitet.getYtelseAnvist().iterator().next().getAndeler()).hasSize(1);
74+
}
75+
76+
@Test
77+
public void skal_lagre_informasjon_plain_enum() {
78+
VedtakYtelseRepository repository = new VedtakYtelseRepository(extension.getEntityManager());
79+
ExtractFromYtelseV1 extractor = new ExtractFromYtelseV1(repository);
80+
81+
YtelseV1 ytelseV1 = new YtelseV1();
82+
Aktør aktør = new Aktør();
83+
String aktørId = "1234123412312";
84+
aktør.setVerdi(aktørId);
85+
ytelseV1.setAktør(aktør);
86+
ytelseV1.setVedtakReferanse(UUID.randomUUID().toString());
87+
ytelseV1.setKildesystem(Kildesystem.FPSAK);
88+
ytelseV1.setYtelseStatus(Status.LØPENDE);
89+
ytelseV1.setYtelse(Ytelser.FORELDREPENGER);
90+
ytelseV1.setVedtattTidspunkt(LocalDateTime.now());
91+
Periode periode = new Periode();
92+
periode.setFom(LocalDate.now().minusDays(30));
93+
periode.setTom(LocalDate.now().plusDays(30));
94+
ytelseV1.setPeriode(periode);
95+
String saksnummer = "99999999999";
96+
ytelseV1.setSaksnummer(saksnummer);
7097

98+
Anvisning anvisning = new Anvisning();
99+
anvisning.setPeriode(periode);
100+
anvisning.setAndeler(List.of(new AnvistAndel(new Organisasjon("999999999"), 1236, 100, 100, Inntektklasse.ARBEIDSTAKER, "ehuif2897")));
101+
ytelseV1.setAnvist(List.of(anvisning));
102+
103+
VedtakYtelseBuilder builder = extractor.extractFrom(ytelseV1);
104+
repository.lagre(builder);
105+
var entitet = builder.build();
106+
107+
assertThat(entitet).isNotNull();
108+
assertThat(entitet.getSaksnummer()).isNotNull();
109+
assertThat(entitet.getSaksnummer().getVerdi()).isEqualTo(saksnummer);
110+
assertThat(entitet.getAktør()).isNotNull();
111+
assertThat(entitet.getAktør().getId()).isEqualTo(aktørId);
112+
assertThat(entitet.getYtelseAnvist()).hasSize(1);
113+
assertThat(entitet.getYtelseAnvist().iterator().next().getAndeler()).hasSize(1);
114+
assertThat(entitet.getKilde()).isEqualTo(Fagsystem.FPSAK);
115+
assertThat(entitet.getYtelseType()).isEqualTo(YtelseType.FORELDREPENGER);
116+
assertThat(entitet.getStatus()).isEqualTo(YtelseStatus.LØPENDE);
71117
}
72118
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package no.nav.abakus.vedtak.ytelse;
2+
3+
public enum Kildesystem {
4+
FPSAK,
5+
K9SAK
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package no.nav.abakus.vedtak.ytelse;
2+
3+
public enum Status {
4+
UNDER_BEHANDLING,
5+
LØPENDE,
6+
AVSLUTTET,
7+
UKJENT
8+
}

kontrakt/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelse.java

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public abstract class Ytelse {
1616

1717
public abstract YtelseType getType();
1818

19+
public abstract Ytelser getYtelse();
20+
1921
public abstract String getSaksnummer();
2022

2123
public abstract Aktør getAktør();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package no.nav.abakus.vedtak.ytelse;
2+
3+
public enum Ytelser {
4+
5+
/** Folketrygdloven K9 ytelser. */
6+
PLEIEPENGER_SYKT_BARN,
7+
PLEIEPENGER_NÆRSTÅENDE,
8+
OMSORGSPENGER,
9+
OPPLÆRINGSPENGER,
10+
11+
/** Folketrygdloven K14 ytelser. */
12+
ENGANGSTØNAD,
13+
FORELDREPENGER,
14+
SVANGERSKAPSPENGER,
15+
16+
/** Midlertidig ytelse for Selvstendig næringsdrivende og Frilansere (Anmodning 10). */
17+
FRISINN
18+
19+
}

kontrakt/src/main/java/no/nav/abakus/vedtak/ytelse/v1/YtelseV1.java

+46-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus;
1515
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
1616
import no.nav.abakus.vedtak.ytelse.Aktør;
17+
import no.nav.abakus.vedtak.ytelse.Kildesystem;
1718
import no.nav.abakus.vedtak.ytelse.Periode;
19+
import no.nav.abakus.vedtak.ytelse.Status;
1820
import no.nav.abakus.vedtak.ytelse.Ytelse;
21+
import no.nav.abakus.vedtak.ytelse.Ytelser;
1922
import no.nav.abakus.vedtak.ytelse.v1.anvisning.Anvisning;
2023

2124
public class YtelseV1 extends Ytelse {
@@ -30,10 +33,15 @@ public class YtelseV1 extends Ytelse {
3033
@JsonProperty("vedtattTidspunkt")
3134
private LocalDateTime vedtattTidspunkt;
3235

33-
@NotNull
36+
@Deprecated(forRemoval = true)
37+
@NotNull // fjernes i neste fase
3438
@JsonProperty("type")
3539
private YtelseType type;
3640

41+
//@NotNull - enable etter overgang
42+
@JsonProperty("ytelse")
43+
private Ytelser ytelse;
44+
3745
@Pattern(regexp = "^(-?[1-9]|[a-z0])[a-z0-9_:-]*$", flags = { Pattern.Flag.CASE_INSENSITIVE })
3846
@JsonProperty("saksnummer")
3947
private String saksnummer;
@@ -43,14 +51,24 @@ public class YtelseV1 extends Ytelse {
4351
@JsonProperty("vedtakReferanse")
4452
private String vedtakReferanse;
4553

46-
@NotNull
54+
@Deprecated(forRemoval = true)
55+
@NotNull // fjernes i neste fase
4756
@JsonProperty("status")
4857
private YtelseStatus status;
4958

59+
//@NotNull
60+
@JsonProperty("ytelseStatus")
61+
private Status ytelseStatus;
62+
63+
@Deprecated(forRemoval = true)
5064
@JsonProperty("fagsystem")
51-
@NotNull
65+
@NotNull // fjernes i neste fase
5266
private Fagsystem fagsystem;
5367

68+
@JsonProperty("kildesystem")
69+
//@NotNull - enable ette overgang
70+
private Kildesystem kildesystem;
71+
5472
@NotNull
5573
@Valid
5674
@JsonProperty("periode")
@@ -76,6 +94,15 @@ public void setType(YtelseType type) {
7694
this.type = type;
7795
}
7896

97+
@Override
98+
public Ytelser getYtelse() {
99+
return ytelse;
100+
}
101+
102+
public void setYtelse(Ytelser ytelse) {
103+
this.ytelse = ytelse;
104+
}
105+
79106
@Override
80107
public String getSaksnummer() {
81108
return saksnummer;
@@ -93,6 +120,14 @@ public void setStatus(YtelseStatus status) {
93120
this.status = status;
94121
}
95122

123+
public Status getYtelseStatus() {
124+
return ytelseStatus;
125+
}
126+
127+
public void setYtelseStatus(Status ytelseStatus) {
128+
this.ytelseStatus = ytelseStatus;
129+
}
130+
96131
public Fagsystem getFagsystem() {
97132
return fagsystem;
98133
}
@@ -101,6 +136,14 @@ public void setFagsystem(Fagsystem fagsystem) {
101136
this.fagsystem = fagsystem;
102137
}
103138

139+
public Kildesystem getKildesystem() {
140+
return kildesystem;
141+
}
142+
143+
public void setKildesystem(Kildesystem kildesystem) {
144+
this.kildesystem = kildesystem;
145+
}
146+
104147
public Periode getPeriode() {
105148
return periode;
106149
}

0 commit comments

Comments
 (0)