Skip to content

Commit 85d54c4

Browse files
fix: mapping av arbeidtype fra arbeidsforhold rest tjeneste. Fjernet de aller fleste kodeliste instansene (#466)
1 parent 3ba2552 commit 85d54c4

File tree

195 files changed

+4346
-5256
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+4346
-5256
lines changed

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtale.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class AktivitetsAvtale extends BaseEntitet implements IndexKey {
3838

3939
@ManyToOne(optional = false)
4040
@JoinColumn(name = "yrkesaktivitet_id", nullable = false, updatable = false, unique = true)
41-
private YrkesaktivitetEntitet yrkesaktivitet;
41+
private Yrkesaktivitet yrkesaktivitet;
4242

4343
/**
4444
* TODO (FC): Se om vi kan bli kvitt antallTimer. Brukes bare til å sjekke om det finnes verdi i {@link #erAnsettelsesPeriode()}.
@@ -221,7 +221,7 @@ void setBeskrivelse(String beskrivelse) {
221221
this.beskrivelse = beskrivelse;
222222
}
223223

224-
void setYrkesaktivitet(YrkesaktivitetEntitet yrkesaktivitet) {
224+
void setYrkesaktivitet(Yrkesaktivitet yrkesaktivitet) {
225225
this.yrkesaktivitet = yrkesaktivitet;
226226
}
227227

Original file line numberDiff line numberDiff line change
@@ -1,20 +1,184 @@
11
package no.nav.foreldrepenger.abakus.domene.iay;
22

33
import java.util.Collection;
4+
import java.util.LinkedHashSet;
5+
import java.util.Objects;
6+
import java.util.Optional;
7+
import java.util.Set;
8+
import java.util.stream.Collectors;
49

10+
import javax.persistence.AttributeOverride;
11+
import javax.persistence.AttributeOverrides;
12+
import javax.persistence.Column;
13+
import javax.persistence.Embedded;
14+
import javax.persistence.Entity;
15+
import javax.persistence.GeneratedValue;
16+
import javax.persistence.GenerationType;
17+
import javax.persistence.Id;
18+
import javax.persistence.JoinColumn;
19+
import javax.persistence.ManyToOne;
20+
import javax.persistence.OneToMany;
21+
import javax.persistence.Table;
22+
import javax.persistence.Version;
23+
24+
import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType;
25+
import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey;
26+
import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked;
27+
import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer;
28+
import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet;
529
import no.nav.foreldrepenger.abakus.typer.AktørId;
630

7-
public interface AktørArbeid {
31+
@Table(name = "IAY_AKTOER_ARBEID")
32+
@Entity(name = "AktørArbeid")
33+
public class AktørArbeid extends BaseEntitet implements IndexKey {
34+
35+
@Id
36+
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_AKTOER_ARBEID")
37+
private Long id;
38+
39+
@Embedded
40+
@AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "aktoer_id", nullable = false)))
41+
private AktørId aktørId;
42+
43+
@ManyToOne(optional = false)
44+
@JoinColumn(name = "inntekt_arbeid_ytelser_id", nullable = false, updatable = false)
45+
private InntektArbeidYtelseAggregat inntektArbeidYtelser;
46+
47+
@OneToMany(mappedBy = "aktørArbeid")
48+
@ChangeTracked
49+
private Set<Yrkesaktivitet> yrkesaktiviter = new LinkedHashSet<>();
50+
51+
@Version
52+
@Column(name = "versjon", nullable = false)
53+
private long versjon;
54+
55+
AktørArbeid() {
56+
// hibernate
57+
}
58+
59+
/**
60+
* Deep copy ctor
61+
*/
62+
AktørArbeid(AktørArbeid aktørArbeid) {
63+
final AktørArbeid aktørArbeid1 = aktørArbeid; // NOSONAR
64+
this.aktørId = aktørArbeid1.getAktørId();
65+
66+
this.yrkesaktiviter = aktørArbeid1.yrkesaktiviter.stream().map(yrkesaktivitet -> {
67+
yrkesaktivitet.setAktørArbeid(this);
68+
return yrkesaktivitet;
69+
}).collect(Collectors.toCollection(LinkedHashSet::new));
70+
}
71+
72+
@Override
73+
public String getIndexKey() {
74+
Object[] keyParts = { getAktørId() };
75+
return IndexKeyComposer.createKey(keyParts);
76+
}
877

978
/**
1079
* Aktøren som avtalene gjelder for
1180
*
1281
* @return aktørId
1382
*/
14-
AktørId getAktørId();
83+
public AktørId getAktørId() {
84+
return aktørId;
85+
}
86+
87+
void setAktørId(AktørId aktørId) {
88+
this.aktørId = aktørId;
89+
}
1590

1691
/**
1792
* Alle yrkesaktiviteter (ufiltret ifht skjæringstidspunkt vurdering. )
1893
*/
19-
Collection<Yrkesaktivitet> hentAlleYrkesaktiviteter();
94+
public Collection<Yrkesaktivitet> hentAlleYrkesaktiviteter() {
95+
return Set.copyOf(yrkesaktiviter);
96+
}
97+
98+
void setYrkesaktiviter() {
99+
this.yrkesaktiviter = new LinkedHashSet<>();
100+
}
101+
102+
void setInntektArbeidYtelser(InntektArbeidYtelseAggregat inntektArbeidYtelser) {
103+
this.inntektArbeidYtelser = inntektArbeidYtelser;
104+
}
105+
106+
boolean hasValues() {
107+
return aktørId != null || yrkesaktiviter != null;
108+
}
109+
110+
YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkel(Opptjeningsnøkkel identifikator, ArbeidType arbeidType) {
111+
Optional<Yrkesaktivitet> yrkesaktivitet = yrkesaktiviter.stream()
112+
.filter(ya -> ya.getArbeidType().equals(arbeidType) && new Opptjeningsnøkkel(ya).equals(identifikator))
113+
.findFirst();
114+
final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet);
115+
oppdatere.medArbeidType(arbeidType);
116+
return oppdatere;
117+
}
118+
119+
YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkel(Opptjeningsnøkkel identifikator, Set<ArbeidType> arbeidTyper) {
120+
Optional<Yrkesaktivitet> yrkesaktivitet = yrkesaktiviter.stream()
121+
.filter(ya -> arbeidTyper.contains(ya.getArbeidType()) && new Opptjeningsnøkkel(ya).equals(identifikator))
122+
.findFirst();
123+
final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet);
124+
if (!oppdatere.getErOppdatering()) {
125+
// Defaulter til ordinert arbeidsforhold hvis saksbehandler har lagt til fra GUI
126+
oppdatere.medArbeidType(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD);
127+
}
128+
return oppdatere;
129+
}
130+
131+
void fjernYrkesaktivitetForBuilder(YrkesaktivitetBuilder builder) {
132+
Yrkesaktivitet yrkesaktivitetKladd = builder.getKladd();
133+
ArbeidType arbeidType = yrkesaktivitetKladd.getArbeidType();
134+
if (arbeidType.erAnnenOpptjening() || ArbeidType.SELVSTENDIG_NÆRINGSDRIVENDE.equals(arbeidType)) {
135+
yrkesaktiviter.removeIf(ya -> ya.getArbeidType().equals(arbeidType));
136+
} else {
137+
Opptjeningsnøkkel nøkkel = new Opptjeningsnøkkel(yrkesaktivitetKladd);
138+
yrkesaktiviter.removeIf(ya -> ya.getArbeidType().equals(arbeidType)
139+
&& new Opptjeningsnøkkel(ya).matcher(nøkkel));
140+
}
141+
}
142+
143+
YrkesaktivitetBuilder getYrkesaktivitetBuilderForType(ArbeidType type) {
144+
Optional<Yrkesaktivitet> yrkesaktivitet = yrkesaktiviter.stream()
145+
.filter(ya -> ya.getArbeidType().equals(type))
146+
.findFirst();
147+
final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet);
148+
oppdatere.medArbeidType(type);
149+
return oppdatere;
150+
}
151+
152+
void leggTilYrkesaktivitet(Yrkesaktivitet yrkesaktivitet) {
153+
this.yrkesaktiviter.add(yrkesaktivitet);
154+
yrkesaktivitet.setAktørArbeid(this);
155+
}
156+
157+
@Override
158+
public boolean equals(Object obj) {
159+
if (obj == this) {
160+
return true;
161+
} else if (!(obj instanceof AktørArbeid)) {
162+
return false;
163+
}
164+
AktørArbeid other = (AktørArbeid) obj;
165+
return Objects.equals(this.getAktørId(), other.getAktørId());
166+
}
167+
168+
@Override
169+
public int hashCode() {
170+
return Objects.hash(aktørId);
171+
}
172+
173+
@Override
174+
public String toString() {
175+
return getClass().getSimpleName() + "<" +
176+
"aktørId=" + aktørId +
177+
", yrkesaktiviteter=" + yrkesaktiviter +
178+
'>';
179+
}
180+
181+
void tilbakestillYrkesaktiviteter() {
182+
this.yrkesaktiviter.clear();
183+
}
20184
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktørArbeidEntitet.java

-180
This file was deleted.

0 commit comments

Comments
 (0)