diff --git a/apps/dolly-frontend/src/main/js/src/pages/adminPages/Levendearbeidsforhold/EditParameter.tsx b/apps/dolly-frontend/src/main/js/src/pages/adminPages/Levendearbeidsforhold/EditParameter.tsx index d2c99017309..5c98949a60e 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/adminPages/Levendearbeidsforhold/EditParameter.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/adminPages/Levendearbeidsforhold/EditParameter.tsx @@ -29,7 +29,7 @@ export const EditParameter = ({ name, label, initialValue, options, data, setDat async function oppdaterParameterverdi(value: string) { await fetch(`/testnav-levende-arbeidsforhold-ansettelse/api/v1/parameter/${name}`, { method: 'PUT', - body: JSON.stringify(value), + body: value, }).then((res) => (res.status === 200 ? onSubmit(value) : console.error('Feil feil feil'))) } diff --git a/apps/levende-arbeidsforhold-ansettelse/build.gradle b/apps/levende-arbeidsforhold-ansettelse/build.gradle index ee4f0c8aa6b..93d2ff723e0 100644 --- a/apps/levende-arbeidsforhold-ansettelse/build.gradle +++ b/apps/levende-arbeidsforhold-ansettelse/build.gradle @@ -28,6 +28,7 @@ dependencies { implementation 'no.nav.testnav.libs:servlet-core' implementation 'no.nav.testnav.libs:servlet-insecure-security' implementation 'no.nav.testnav.libs:data-transfer-objects' + implementation 'no.nav.testnav.libs:data-transfer-search-objects' implementation 'no.nav.testnav.libs:database' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' @@ -52,18 +53,5 @@ dependencies { implementation 'com.zaxxer:HikariCP' implementation 'com.h2database:h2' - - //Spesifiserer versjoner av dependencies' dependencies som er utdatert og har sikkerhets-risikoer, bruker derfor de nedenfor - implementation 'org.apache.commons:commons-compress:1.26.2' - implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.25' - implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:10.1.19' - implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.25' - implementation 'org.springframework.security:spring-security-core:6.2.3' - implementation 'org.springframework:spring-core:6.1.3' - implementation 'org.springframework:spring-web:6.1.6' - implementation 'com.nimbusds:nimbus-jose-jwt:9.37.2' - implementation 'io.netty:netty-codec-http:4.1.108.Final' - implementation 'com.h2database:h2:2.3.230' - implementation 'org.bouncycastle:bcprov-jdk18on:1.78' } diff --git a/apps/levende-arbeidsforhold-ansettelse/settings.gradle b/apps/levende-arbeidsforhold-ansettelse/settings.gradle index 711c4c9e8a8..dae427bd2bc 100644 --- a/apps/levende-arbeidsforhold-ansettelse/settings.gradle +++ b/apps/levende-arbeidsforhold-ansettelse/settings.gradle @@ -9,6 +9,7 @@ includeBuild '../../libs/servlet-core' includeBuild '../../libs/reactive-core' includeBuild '../../libs/servlet-insecure-security' includeBuild '../../libs/data-transfer-objects' +includeBuild '../../libs/data-transfer-search-objects' includeBuild '../../libs/database' includeBuild '../../.github/workflows' diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TagsConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TagsConsumer.java deleted file mode 100644 index 0f62ad2cc69..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TagsConsumer.java +++ /dev/null @@ -1,40 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; - -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.config.Consumers; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl.HentTagsCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.TagsDTO; -import no.nav.testnav.libs.securitycore.domain.ServerProperties; -import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; -import org.springframework.stereotype.Service; -import org.springframework.web.reactive.function.client.WebClient; - -import java.util.List; - -@Slf4j -@Service -public class TagsConsumer { - private final TokenExchange tokenService; - private final ServerProperties serverProperties; - private final WebClient webClient; - - public TagsConsumer( - TokenExchange tokenService, - Consumers consumers, - WebClient.Builder webClientBuilder) { - - serverProperties = consumers.getPdlProxy(); - - this.tokenService = tokenService; - webClient = webClientBuilder - .baseUrl(serverProperties.getUrl()) - .build(); - } - - public TagsDTO hentTags(List identer) { - - return tokenService.exchange(serverProperties) - .flatMap(token -> new HentTagsCommand(webClient, token.getTokenValue(), identer).call()) - .block(); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TenorConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TenorConsumer.java deleted file mode 100644 index b6c895f8f95..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TenorConsumer.java +++ /dev/null @@ -1,50 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; - -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.config.Consumers; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.tenor.HentOrganisasjonCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.tenor.HentOrganisasjonerOversiktCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOversiktOrganisasjonResponse; -import no.nav.testnav.libs.securitycore.domain.ServerProperties; -import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.client.WebClient; - -@Slf4j -@Component -public class TenorConsumer { - - private final WebClient webClient; - private final TokenExchange tokenExchange; - private final ServerProperties serverProperties; - - - public TenorConsumer( - TokenExchange tokenExchange, - Consumers consumers) { - - this.serverProperties = consumers.getTestnavTenorSearchService(); - this.tokenExchange = tokenExchange; - - this.webClient = WebClient - .builder() - .baseUrl(serverProperties.getUrl()) - .build(); - } - - public TenorOversiktOrganisasjonResponse hentOrganisasjonerOversikt(TenorOrganisasjonRequest tenorOrgRequest, String antallOrganisasjoner) { - - return tokenExchange.exchange(serverProperties) - .flatMap(token -> new HentOrganisasjonerOversiktCommand(webClient, token.getTokenValue(), - tenorOrgRequest, antallOrganisasjoner).call()) - .block(); - } - - public TenorOversiktOrganisasjonResponse hentOrganisasjon(TenorOrganisasjonRequest tenorOrgRequest) { - - return tokenExchange.exchange(serverProperties) - .flatMap(token -> new HentOrganisasjonCommand(webClient, token.getTokenValue(), tenorOrgRequest).call()) - .block(); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/HentTagsCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/HentTagsCommand.java deleted file mode 100644 index ac2796ddb9a..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/HentTagsCommand.java +++ /dev/null @@ -1,47 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.TagsDTO; -import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.web.reactive.function.client.WebClient; -import reactor.core.publisher.Mono; -import reactor.util.retry.Retry; - -import java.time.Duration; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; - -@Slf4j -@RequiredArgsConstructor -public class HentTagsCommand implements Callable> { - private static final String PDL_TAGS_URL = "/api/v1/bestilling/tags/bolk"; - private static final String PDL_TESTDATA = "/pdl-testdata"; - private static final String PERSONIDENTER = "Nav-Personidenter"; - - private final WebClient webClient; - private final String token; - private final List identer; - - @Override - public Mono call() { - - return webClient.get().uri(builder -> builder.path(PDL_TESTDATA) - .path(PDL_TAGS_URL) - .build()) - .header(HttpHeaders.AUTHORIZATION, "Bearer " + token) - .header(PERSONIDENTER, String.join(",", identer)) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - .retrieve() - .bodyToMono(Map.class) - .map(resultat -> TagsDTO.builder() - .personerTags(resultat) - .build()) - .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) - .filter(WebClientFilter::is5xxException)) - .doOnError(WebClientFilter::logErrorMessage); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonPagesCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonPagesCommand.java deleted file mode 100644 index 22a36f44822..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonPagesCommand.java +++ /dev/null @@ -1,69 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl; - -import com.fasterxml.jackson.databind.JsonNode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.provider.PdlMiljoer; -import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.reactive.function.client.WebClientResponseException; -import reactor.core.publisher.Mono; -import reactor.util.retry.Retry; - -import java.time.Duration; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.Callable; - -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl.TemaGrunnlag.GEN; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.DOLLY; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.HEADER_NAV_CONSUMER_ID; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.PdlHeaders.HEADER_NAV_CALL_ID; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.PdlConsumer.hentQueryResource; -import static org.springframework.http.HttpHeaders.AUTHORIZATION; - -@Slf4j -@RequiredArgsConstructor -public class SokPersonPagesCommand implements Callable> { - - private static final String TEMA = "Tema"; - private static final String GRAPHQL_URL = "/graphql"; - private static final String PDL_API_URL = "/pdl-api"; - private static final String SOK_PERSON_QUERY = "pdl/sokPersonPages.graphql"; - - private final WebClient webClient; - private final GraphqlVariables.Paging paging; - private final GraphqlVariables.Criteria criteria; - private final String token; - private final PdlMiljoer pdlMiljoe; - - @Override - public Mono call() { - - return webClient - .post() - .uri(uriBuilder -> uriBuilder - .path(PDL_API_URL) - .path(pdlMiljoe.equals(PdlMiljoer.Q2) ? "" : "-" + pdlMiljoe.name().toLowerCase()) - .path(GRAPHQL_URL) - .build()) - .header(AUTHORIZATION, "Bearer " + token) - .header(HEADER_NAV_CONSUMER_ID, DOLLY) - .header(HEADER_NAV_CALL_ID, "Dolly: " + UUID.randomUUID()) - .header(TEMA, GEN.name()) - .body(BodyInserters - .fromValue(new GraphQLRequest(hentQueryResource(SOK_PERSON_QUERY), - Map.of("paging", paging, "criteria", criteria)))) - .retrieve() - .bodyToMono(JsonNode.class) - .doOnError(WebClientFilter::logErrorMessage) - .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) - .filter(WebClientFilter::is5xxException)) - .onErrorResume(throwable -> throwable instanceof WebClientResponseException.NotFound, - throwable -> Mono.empty()); - } -} - diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java deleted file mode 100644 index 7b301af3976..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java +++ /dev/null @@ -1,6 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl; - -public enum TemaGrunnlag { - - GEN, PEN -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonerOversiktCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonerOversiktCommand.java deleted file mode 100644 index 0bad766e847..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonerOversiktCommand.java +++ /dev/null @@ -1,45 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.tenor; - -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOversiktOrganisasjonResponse; -import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.client.WebClient; -import reactor.core.publisher.Mono; -import reactor.util.retry.Retry; - -import java.time.Duration; -import java.util.concurrent.Callable; - -@Slf4j -@RequiredArgsConstructor -public class HentOrganisasjonerOversiktCommand implements Callable> { - private static final String PATH = "/api/v1/tenor/testdata/organisasjoner/oversikt"; - - private final WebClient webClient; - private final String token; - private final TenorOrganisasjonRequest tenorOrgRequest; - private final String antallOrganisasjoner; - - @SneakyThrows - @Override - public Mono call() { - - return webClient - .post() - .uri(builder -> builder - .path(PATH) - .queryParam("antall", antallOrganisasjoner) - .build() - ) - .header("Authorization", "Bearer " + token) - .body(BodyInserters.fromValue(tenorOrgRequest)) - .retrieve() - .bodyToMono(TenorOversiktOrganisasjonResponse.class) - .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) - .filter(WebClientFilter::is5xxException)); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/DatoIntervall.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/DatoIntervall.java deleted file mode 100644 index 88c919ad39f..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/DatoIntervall.java +++ /dev/null @@ -1,15 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain; - -import lombok.Builder; -import lombok.Getter; -import lombok.Setter; - -import java.time.LocalDate; - -@Builder -@Getter -@Setter -public class DatoIntervall { - private LocalDate tom; - private LocalDate from; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/TagsDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/TagsDTO.java deleted file mode 100644 index c330c5b4e7a..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/TagsDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; -import java.util.Map; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class TagsDTO { - - private Map> personerTags; - private String message; - private String details; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java deleted file mode 100644 index 0abaf24400b..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java +++ /dev/null @@ -1,37 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto; - -import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; -import lombok.extern.slf4j.Slf4j; - -import java.util.ArrayList; -import java.util.List; - -@Slf4j -@Value -@Builder -@NoArgsConstructor(force = true) -@AllArgsConstructor -@JsonIgnoreProperties(ignoreUnknown = true) -@ToString -public class OrganisasjonDTO { - @JsonProperty(required = true) - String organisasjonsnummer; - @JsonProperty(required = true) - @JsonAlias({"virksomhetDetaljer", "juridiskEnhetDetaljer", "organisasjonsleddDetaljer"}) - DetaljerDTO detaljer; - @JsonProperty(required = true) - NavnDTO navn; - @JsonProperty(required = true) - String type; - @JsonProperty - @JsonAlias({"inngaarIJuridiskEnheter"}) - List parents = new ArrayList<>(); - @JsonProperty - OrganisasjonDetaljerDTO organisasjonDetaljer; - @JsonProperty - @JsonAlias({"driverVirksomheter"}) - List children = new ArrayList<>(); -} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Adresse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Adresse.java deleted file mode 100644 index db34fe0201a..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Adresse.java +++ /dev/null @@ -1,36 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.organisasjon; - -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.AdresseDTO; - -public class Adresse { - private final String kommunenummer; - private final String adresselinje1; - private final String adresselinje2; - private final String adresselinje3; - private final String landkode; - private final String postnummer; - private final String poststed; - - public Adresse(AdresseDTO dto) { - this.kommunenummer = dto.getKommunenummer(); - this.adresselinje1 = dto.getAdresselinje1(); - this.adresselinje2 = dto.getAdresselinje2(); - this.adresselinje3 = dto.getAdresselinje3(); - this.landkode = dto.getLandkode(); - this.postnummer = dto.getPostnummer(); - this.poststed = dto.getPoststed(); - } - - public no.nav.testnav.libs.dto.organisasjon.v1.AdresseDTO toDTO() { - return no.nav.testnav.libs.dto.organisasjon.v1.AdresseDTO.builder() - .kommunenummer(kommunenummer) - .adresselinje1(adresselinje1) - .adresselinje2(adresselinje2) - .adresselinje3(adresselinje3) - .landkode(landkode) - .postnummer(postnummer) - .poststed(poststed) - .build(); - } - -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Organisasjon.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Organisasjon.java deleted file mode 100644 index ea7762f7658..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Organisasjon.java +++ /dev/null @@ -1,58 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.organisasjon; - -import lombok.Value; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; - - -import java.util.Collections; -import java.util.List; - - -@Slf4j -@Value -public class Organisasjon { - String orgnummer; - String enhetType; - String navn; - String juridiskEnhet; - Adresse postadresse; - Adresse forretningsadresser; - String redigertnavn; - List driverVirksomheter; - - public Organisasjon(OrganisasjonDTO dto) { - - navn = dto.getNavn().getNavnelinje1(); - orgnummer = dto.getOrganisasjonsnummer(); - juridiskEnhet = dto.getParents().isEmpty() ? null : dto.getParents().get(0).getOrganisasjonsnummer(); - redigertnavn = dto.getNavn().getRedigertnavn(); - enhetType = dto.getDetaljer().getEnhetstype(); - - driverVirksomheter = dto.getChildren() != null - ? dto.getChildren().stream().map(OrganisasjonDTO::getOrganisasjonsnummer).toList() - : Collections.emptyList(); - - if (dto.getOrganisasjonDetaljer() != null) { - var postadresser = dto.getOrganisasjonDetaljer().getPostadresser(); - if (postadresser != null && !postadresser.isEmpty()) { - this.postadresse = new Adresse(postadresser.get(0)); - } else { - this.postadresse = null; - } - var forretningsadresser = dto.getOrganisasjonDetaljer().getForretningsadresser(); - if (forretningsadresser != null && !forretningsadresser.isEmpty()) { - this.forretningsadresser = new Adresse(forretningsadresser.get(0)); - } else { - this.forretningsadresser = null; - } - } else { - this.postadresse = null; - this.forretningsadresser = null; - } - } - - public no.nav.testnav.libs.dto.organisasjon.v1.OrganisasjonDTO toDTO() { - return no.nav.testnav.libs.dto.organisasjon.v1.OrganisasjonDTO.builder().navn(navn).enhetType(enhetType).orgnummer(orgnummer).juridiskEnhet(juridiskEnhet).postadresse(postadresse != null ? postadresse.toDTO() : null).forretningsadresser(forretningsadresser != null ? forretningsadresser.toDTO() : null).redigertnavn(redigertnavn).driverVirksomheter(driverVirksomheter).build(); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Bostedsadresse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Bostedsadresse.java deleted file mode 100644 index 3a7b1ab189e..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Bostedsadresse.java +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.Value; - -@EqualsAndHashCode(callSuper = true) -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Bostedsadresse extends MetadataDTO { - Vegadresse vegadresse; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Data.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Data.java deleted file mode 100644 index 59f6a79493d..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Data.java +++ /dev/null @@ -1,12 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.Value; - -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Data { - HentPerson hentPerson; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Feilmelding.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Feilmelding.java deleted file mode 100644 index 1be51529389..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Feilmelding.java +++ /dev/null @@ -1,12 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.Value; - -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Feilmelding { - String message; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Foedsel.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Foedsel.java deleted file mode 100644 index 799046824c1..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Foedsel.java +++ /dev/null @@ -1,17 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.Value; - -import java.time.LocalDate; - -@EqualsAndHashCode(callSuper = true) -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Foedsel extends MetadataDTO { - - LocalDate foedselsdato; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisteridentifikator.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisteridentifikator.java deleted file mode 100644 index eaafd4da6d8..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisteridentifikator.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.Value; - -@EqualsAndHashCode(callSuper = true) -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Folkeregisteridentifikator extends MetadataDTO { - String identifikasjonsnummer; - String status; - String type; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisterpersonstatus.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisterpersonstatus.java deleted file mode 100644 index 2dd0c78bad0..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisterpersonstatus.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.Value; - -@EqualsAndHashCode(callSuper = true) -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Folkeregisterpersonstatus extends MetadataDTO { - String identifikasjonsnummer; - String status; - String type; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/HentPerson.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/HentPerson.java deleted file mode 100644 index 5d2f217fc57..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/HentPerson.java +++ /dev/null @@ -1,61 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.ArrayList; -import java.util.List; - -import static java.util.Objects.isNull; - -@Data -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class HentPerson { - List navn; - List foedsel; - List bostedsadresse; - List folkeregisteridentifikator; - List folkeregisterpersonstatus; - - public List getNavn() { - - if (isNull(navn)) { - navn = new ArrayList<>(); - } - return navn; - } - - public List getFoedsel() { - - if (isNull(foedsel)) { - foedsel = new ArrayList<>(); - } - return foedsel; - } - - public List getBostedsadresse() { - - if (isNull(bostedsadresse)) { - bostedsadresse = new ArrayList<>(); - } - return bostedsadresse; - } - - public List getFolkeregisteridentifikator() { - - if (isNull(folkeregisteridentifikator)) { - folkeregisteridentifikator = new ArrayList<>(); - } - return folkeregisteridentifikator; - } - - public List getFolkeregisterpersonstatus() { - - if (isNull(folkeregisterpersonstatus)) { - folkeregisterpersonstatus = new ArrayList<>(); - } - return folkeregisterpersonstatus; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Ident.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Ident.java deleted file mode 100644 index 6885ed773b9..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Ident.java +++ /dev/null @@ -1,20 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.*; - -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Getter -public class Ident { - private String ident; - private String gruppe; - - @Override - public String toString() { - return "Ident{" + - "ident='" + ident + '\'' + - ", gruppe='" + gruppe + '\'' + - '}'; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/MetadataDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/MetadataDTO.java deleted file mode 100644 index f824b01bcf3..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/MetadataDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class MetadataDTO { - - Metadata metadata; - - @Data - @AllArgsConstructor - @NoArgsConstructor(force = true) - public static class Metadata { - - String opplysningsId; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Navn.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Navn.java deleted file mode 100644 index 1b45bb68e75..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Navn.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.Value; - -@EqualsAndHashCode(callSuper = true) -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Navn extends MetadataDTO { - String fornavn; - String mellomnavn; - String etternavn; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlAktoer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlAktoer.java deleted file mode 100644 index c56cca23d2f..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlAktoer.java +++ /dev/null @@ -1,57 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.ToString; -import lombok.Value; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static java.util.Objects.isNull; - -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class PdlAktoer { - List errors; - Data data; - - @Value - @AllArgsConstructor - @NoArgsConstructor(force = true) - public static class Data { - HentIdenter hentIdenter; - HentPerson hentPerson; - } - - @lombok.Data - @AllArgsConstructor - @NoArgsConstructor(force = true) - public static class HentIdenter { - List identer; - - public List getIdenter() { - if (isNull(identer)) { - identer = new ArrayList<>(); - } - return identer; - } - } - - @Value - @ToString - @AllArgsConstructor - @NoArgsConstructor(force = true) - public static class AktoerIdent { - String ident; - Boolean historisk; - String gruppe; - } - - - public List getErrors() { - return errors == null ? Collections.emptyList() : errors; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlHeaders.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlHeaders.java deleted file mode 100644 index 8fec12459d0..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlHeaders.java +++ /dev/null @@ -1,11 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -public class PdlHeaders { - private PdlHeaders() { - } - public static final String NAV_PERSONIDENT = "Nav-Personident"; - public static final String HEADER_NAV_CALL_ID = "Nav-Call-Id"; - public static final String HEADER_NAV_CONSUMER_TOKEN = "Nav-Consumer-Token"; - public static final String TEMA = "Tema"; - public static final String KILDE = "kilde"; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlPerson.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlPerson.java deleted file mode 100644 index c932235a401..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlPerson.java +++ /dev/null @@ -1,20 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.Value; - -import java.util.Collections; -import java.util.List; - -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class PdlPerson { - List errors; - Data data; - - public List getErrors() { - return errors == null ? Collections.emptyList() : errors; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/SokPersonVariables.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/SokPersonVariables.java deleted file mode 100644 index a352795f266..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/SokPersonVariables.java +++ /dev/null @@ -1,60 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.*; - -import java.util.List; -import java.util.Map; - -@Builder -@Getter -@Setter -@NoArgsConstructor -@AllArgsConstructor -public class SokPersonVariables { - - private int pageNumber; - private int resultsPerPage; - private String from; - private String to; - private String postnr; - private final String identRegex = "\\w+[0-9]{2}[8-9]{1}[0-9]{5}\\w+"; - - public GraphqlVariables.Criteria lagSokPersonCriteria() { - - Map searchRuleFoedselsdato = new java.util.HashMap<>(); - searchRuleFoedselsdato.put("from", from); - searchRuleFoedselsdato.put("to", to ); - - GraphqlVariables.Filter filterBostedPostnr = GraphqlVariables.Filter.builder() - .fieldName("person.bostedsadresse.vegadresse.postnummer") - .searchRule(Map.of("wildcard", postnr)) - .build(); - - GraphqlVariables.Filter filterOppholdPostnr = GraphqlVariables.Filter.builder() - .fieldName("person.oppholdsadresse.vegadresse.postnummer") - .searchRule(Map.of("wildcard", postnr)) - .build(); - - GraphqlVariables.Filter filterFoedselsdato = GraphqlVariables.Filter.builder() - .fieldName("person.foedselsdato.foedselsdato") - .searchRule(searchRuleFoedselsdato) - .build(); - - GraphqlVariables.Filter filterIdent = GraphqlVariables.Filter.builder() - .fieldName("identer.ident") - .searchRule(Map.of("regex", identRegex)) - .build(); - - Map> or = Map.of("or", List.of(filterBostedPostnr, filterOppholdPostnr)); - List and = List.of(or, filterFoedselsdato, filterIdent); - - return GraphqlVariables.Criteria.builder().and(and).build(); - } - - public GraphqlVariables.Paging lagSokPersonPaging() { - return GraphqlVariables.Paging.builder() - .pageNumber(pageNumber) - .resultsPerPage(resultsPerPage) - .build(); - } -} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Vegadresse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Vegadresse.java deleted file mode 100644 index 95e6db6f65f..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Vegadresse.java +++ /dev/null @@ -1,15 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; - -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.Value; - -@Value -@AllArgsConstructor -@NoArgsConstructor(force = true) -public class Vegadresse { - String adressenavn; - String husnummer; - String postnummer; - String kommunenummer; -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Hendelse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Hendelse.java deleted file mode 100644 index 992739342fa..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Hendelse.java +++ /dev/null @@ -1,50 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -@SuppressWarnings("java:S115") -public enum Hendelse { - - EndringIAdressebeskyttelse, - EndringIBostedsadresse, - EndringIBostedsadresseUtenFlytting, - EndringIBrukAvSamiskSpraak, - EndringIDeltBosted, - EndringIDoedsfall, - EndringIFalskIdentitet, - EndringIFamilierelasjon, - EndringIFoedsel, - EndringIFoedselINorge, - EndringIForeldreansvar, - EndringIFratattRettsligHandleevne, - EndringIIdentifikasjonsnummer, - EndringIIdentitetsgrunnlag, - EndringIInnflytting, - EndringIKjoenn, - EndringIKontaktinformasjon, - EndringIKontaktopplysningerForDoedsbo, - EndringILegitimasjonsdokument, - EndringINavn, - EndringIOpphold, - EndringIOppholdPaaSvalbard, - EndringIOppholdsadresse, - EndringIPerson, - EndringIRettsligHandleevne, - EndringISametingetsValgmanntall, - EndringISivilstand, - EndringIStatsborgerskap, - EndringIStatus, - EndringIUtenlandskPersonidentifikasjon, - EndringIUtflytting, - EndringIUtlendingsmyndighetenesIdentifikasjonsnummer, - EndringIVergemaal, - PersonErBosatt, - PersonErDoed, - PersonErEndretVedSplitting, - PersonErGjenopprettetVedSplitting, - PersonErOppdatert, - PersonErOpphoert, - PersonErOpphoertSomDublett, - PersonErOpprettet, - PersonErReaktivert, - PersonErUtflyttet, - PersonErViderefoertSomGjeldendeVedSammenslaaing -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/LabelEnum.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/LabelEnum.java deleted file mode 100644 index 29d4cdf9d44..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/LabelEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -public interface LabelEnum { - String getName(); - String getLabel(); -} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Spesifiseringstype.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Spesifiseringstype.java deleted file mode 100644 index a7412575662..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Spesifiseringstype.java +++ /dev/null @@ -1,35 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -@SuppressWarnings("java:S115") -public enum Spesifiseringstype { - - AksjeIkkeIAksjonaerregisteret, - Aksjesparekonto, - AndreBeloepKnyttetTilBoligOgEiendeler, - AnnenKapitalkostnad, - AnnetFinansprodukt, - DeltakersAndelAvFormueOgInntekt, - Eiendom, - Fondskonto, - Fordring, - FritidsbaatMedSalgsverdiOverSalgsverdigrense, - Generisk, - GrunnlagKnyttetTilLottaker, - KapitalisertFesteavgift, - Kjoeretoey, - KollektivPensjonsordning, - Konto, - Livsforsikring, - LoennOgTilsvarendeYtelser, - Naeringsopplysninger, - ObligasjonOgSertifikat, - OekonomiskeForholdKnyttetTilBoligsameieEllerBoligselskap, - PrivatGjeldsforholdUtenforVirksomhet, - SamletGjeldOgFormuesobjekterINaering, - Skadeforsikring, - SkyldigRestskatt, - SykepengerOgAnnenInntektMvFraOppgavegiver, - Verdipapirfond, - VirtuellEiendel, - VirtuellValuta -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TekniskNavn.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TekniskNavn.java deleted file mode 100644 index 1453a4c5535..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TekniskNavn.java +++ /dev/null @@ -1,430 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -@SuppressWarnings("java:S115") -public enum TekniskNavn { - AaretsFremfoerbareNegativPersoninntekt, - AarsavgiftForKontoIVerdipapirregister, - AlderspensjonFraFolketrygden, - AlderspensjonFraIPAOgIPS, - AlminneligInntektFoerSaerfradrag, - AndelAvFellesgjeldISDF, - AndelAvUnderskuddFraTidligereAarVedDriftAvVaaningshusSomAnvendesIAaret, - AndelIFellesTapVedSalgAvAndelISDF, - AndelIFellesTilleggIAlminneligInntektFraSDF, - AndelIFellesTilleggIAlminneligInntektFraSDFInnenAnnenNaering, - AndelIFellesTilleggIAlminneligInntektFraSDFInnenBarnepassIBarnepasserensHjem, - AndreFradragsberettigedeKostnader, - AnnenArbeidsinntekt, - AnnenGjeld, - AnnenPensjonFoerAlderspensjon, - AnnenSkattepliktigKapitalinntektFraAnnetFinansprodukt, - AnnenSkattepliktigKapitalinntektFraVirtuellValuta, - AnnetInntektsfradrag, - Arbeidsavklaringspenger, - ArbeidsinntektFraKompensasjonsytelseUtbetaltAvNav, - AvkortetFordelVedElektroniskKommunikasjon, - BarnepensjonFraAndreEnnFolketrygden, - BarnepensjonFraFolketrygden, - BarnepensjonFraIPAOgIPS, - BetaltPremieTilSykeOgUlykkesforsikringForNaeringsdrivende, - BetaltUnderholdsbidrag, - BetalteForsinkelsesrenter, - Bruttoformue, - DagpengerForFisker, - DagpengerForNaeringsdrivende, - DagpengerForNaeringsdrivendeOgFisker, - DagpengerVedSykehusoppholdMvFraBarneforsikring, - EktefelletilleggTilPensjon, - EktefelletilleggTilUfoeretrygd, - EngangsutbetalingFraIPSIPA, - EtterlattepensjonFraFolketrygden, - Foederaad, - FormuesverdiAvPrivatUtestaaendeFordring, - FormuesverdiAvUtestaaendeFordring, - FormuesverdiForAndelIRentedelIVerdipapirfond, - FormuesverdiForAnnenFastEiendom, - FormuesverdiForAnnenFastEiendomInnenforInntektsgivendeAktivitet, - FormuesverdiForAnnenFastEiendomUtenforInntektsgivendeAktivitet, - FormuesverdiForAnnetFinansprodukt, - FormuesverdiForBorett, - FormuesverdiForBuskap, - FormuesverdiForEgenFritaksbehandletBolig, - FormuesverdiForFormuesobjekterINaeringIkkeOmfattetAvVerdsettingsrabatt, - FormuesverdiForFritidsbaatMedSalgsverdiOverSalgsverdigrense, - FormuesverdiForGaardsbruk, - FormuesverdiForInnboLoesoereOgFritidsbaatUnderSalgsverdigrense, - FormuesverdiForKjoeretoey, - FormuesverdiForKontanterIAksjesparekonto, - FormuesverdiForKontanterMvIFondskonto, - FormuesverdiForNaeringseiendom, - FormuesverdiForObligasjon, - FormuesverdiForObligasjonerOpsjonerMvIkkeRegistrertIVerdipapirsentralen, - FormuesverdiForObligasjonerOpsjonerMvRegistrertIVerdipapirsentralen, - FormuesverdiForPrimaerbolig, - FormuesverdiForRegnskapsbehandletBolig, - FormuesverdiForRegnskapsbehandletFritidseiendom, - FormuesverdiForSekundaerbolig, - FormuesverdiForSkogeiendom, - FormuesverdiForTomt, - FormuesverdiForUbetingetOpsjonIArbeidsforhold, - FormuesverdiForUtestaaendeFordringerINaering, - FormuesverdiForUtleidFlerboligbygning, - FormuesverdiForVarelager, - FormuesverdiForVirtuellValuta, - Fortsettelsesforsikring, - ForvaltningskostnadKnyttetTilAksjesparekonto, - ForvaltningskostnadKnyttetTilFondskonto, - ForvaltningskostnadKnyttetTilVerdipapirfond, - ForvaltningskostnaderFinans, - FradragForFagforeningskontingent, - FradragForGaverTilFrivilligeOrganisasjoner, - FradragForIndividuellSparingTilPensjon, - FradragForKostnaderKnyttetTilArbeid, - FradragForMerkostnadVedArbeidsoppholdUtenforHjemmet, - FradragForPengetilskudd, - FradragForVergegodtgjoerelse, - FradragsberettigedeFoederaadsytelserOgUnderholdsbidragTilAnnenPerson, - FradragsberettigetTapPaaKapitalforsikringsavtale, - FradragsberettigetTapVedRealisasjonAvFastEiendom, - FradragsberettigetTapVedRealisasjonAvFastEiendomIUtlandet, - FremfoerbartUnderskuddIEnkeltpersonforetak, - GevinstOgAnnenInntektFraVirtuellEiendel, - GevinstValutalaan, - GevinstVedRealisasjonAvAksje, - GevinstVedRealisasjonAvAksjeOgVerdipapirfondAksjedel, - GevinstVedRealisasjonAvAksjesparekonto, - GevinstVedRealisasjonAvAndelIAksjedelIVerdipapirfond, - GevinstVedRealisasjonAvAndelIRentedelIVerdipapirfond, - GevinstVedRealisasjonAvAnnetFinansprodukt, - GevinstVedRealisasjonAvFastEiendomMv, - GevinstVedRealisasjonAvFastEiendomMvIUtlandet, - GevinstVedRealisasjonAvObligasjonVerdipapirfondRentedelMv, - GevinstVedRealisasjonAvObligasjonerSertifikaterMv, - GevinstVedRealisasjonAvOgUttakFraAksjedelIFondskonto, - GevinstVedRealisasjonAvOgUttakFraRentedelIFondskonto, - GevinstVedRealisasjonAvVerdipapirfondsandelIKombifondKnyttetTilAksjedel, - GevinstVedRealisasjonAvVerdipapirfondsandelKnyttetTilAksjedel, - GevinstVedRealisasjonAvVirtuellValuta, - GevinstVedSalgAvAndelINOKUS, - GevinstVedSalgAvAndelISDF, - GjeldIInnenlandskeBanker, - GjeldINaering, - GjeldIUtlandet, - GjeldPaaAnnetFinansprodukt, - GjeldsfradragForKapitalisertFesteavgift, - GjeldsreduksjonForFastEiendomIUtlandetUnntattBeskatningINorgeEtterSkatteavtale, - GjeldsreduksjonForFastEiendomUtenforSvalbardUnntattBeskatningPaaSvalbard, - GjeldsrentereduksjonForFormueIUtlandetUnntattBeskatningINorgeEtterSkatteavtale, - GjeldsrentereduksjonForFormueUtenforSvalbardUnntattBeskatningPaaSvalbard, - GjenkjoepsverdiForLivsforsikring, - GrunnlagForKildeskattPaaPensjonOgUfoereytelser, - GrunnlagForSkattPaaAlminneligInntektSvalbard, - GrunnlagForSkattPaaNaeringsoverskuddSvalbard, - Innskudd, - InnskuddIUtlandet, - InntektFraGevinstOgTapskonto, - InntektFraLottEllerPartTilFiskerOgFangstmann, - InntektVedUtleieAvFritidseiendomSomSkattepliktigeHarBrukt, - InntektsfoeringAvNegativSaldo, - InntektsfradragAvRentefordelPaaLaanIArbeidsforhold, - InntektsfradragAvRentefordelPaaLaanIPensjonsforhold, - InntektsfradragFraGevinstOgTapskonto, - InntektsreduksjonVedAvkastningAvEngangserstatning, - Introduksjonsstoenad, - InvesteringIOppstartsselskap, - KaarytelseUtenforJordOgSkogbruksvirksomhet, - KapitalinntektFraSkogbruk, - KapitalkostnadFraSkogbruk, - KompensasjonsytelseUtbetaltAvNavInnenFiskeOgFangst, - Kontantbeloep, - Kvalifiseringsstoenad, - LatentEllerRealisertGevinstPaaAksjeAndelMvVedUtflytting, - LatentEllerRealisertGevinstPaaAnnetFinansproduktMvVedUtflytting, - LatentEllerRealisertTapPaaAksjeAndelMvVedUtflytting, - LatentEllerRealisertTapPaaAnnetFinansproduktMvVedUtflytting, - LivrenterIArbeidsforhold, - LivrenterUtenforArbeidsforhold, - LoennsinntektMedTrygdeavgiftspliktOmfattetAvLoennstrekkordningen, - LoennsinntektPaaSvalbardOver12G, - LoennsinntektTilBarn, - LoennsinntektUtenTrygdeavgiftspliktOgMedTrekkplikt, - LoennsinntektUtenTrygdeavgiftspliktOmfattetAvLoennstrekkordningen, - MinstefradragIBarnepensjon, - MinstefradragIBarnepensjonTilBarn, - MinstefradragIEktefelletillegg, - MinstefradragIInntekt, - MinstefradragIInntektTilBarn, - MottattFesteavgift, - NaeringsinntektFraKompensasjonsytelseUtbetaltAvNavInnenAnnenNaering, - NaeringsinntektFraKompensasjonsytelseUtbetaltAvNavInnenBarnepassIBarnepasserensHjem, - NaeringsinntektFraKompensasjonsytelseUtbetaltAvNavInnenFiskeOgFangst, - NegativAlminneligInntektOverfoertFraEktefelle, - NegativAlminneligInntektOverfoertTilEktefelle, - NegativFormueOverfoertFraEktefelle, - NettoLoennsinntektFraArbeidINorge, - Nettoformue, - NettoinntektVedUtleieAvFastEiendomMv, - OevrigInntekt, - OppjustertTilleggTilAndelIFellesTapVedSalgAvAndelISDF, - OppjustertTilleggTilAndelIFellesTilleggIAlminneligInntektFraSDF, - OppjustertTilleggTilAndelIFellesTilleggIAlminneligInntektFraSDFInnenAnnenNaering, - OppjustertTilleggTilAndelIFellesTilleggIAlminneligInntektFraSDFInnenBarnepassIBarnepasserensHjem, - OppjustertTilleggTilGevinstVedRealisasjonAvAksje, - OppjustertTilleggTilGevinstVedRealisasjonAvAksjeOgVerdipapirfondAksjedel, - OppjustertTilleggTilGevinstVedRealisasjonAvAksjesparekonto, - OppjustertTilleggTilGevinstVedRealisasjonAvAndelIAksjedelIVerdipapirfond, - OppjustertTilleggTilGevinstVedRealisasjonAvOgUttakFraAksjedelIFondskonto, - OppjustertTilleggTilGevinstVedRealisasjonAvVerdipapirfondsandelIKombifondKnyttetTilAksjedel, - OppjustertTilleggTilGevinstVedRealisasjonAvVerdipapirfondsandelKnyttetTilAksjedel, - OppjustertTilleggTilGevinstVedSalgAvAndelINOKUS, - OppjustertTilleggTilGevinstVedSalgAvAndelISDF, - OppjustertTilleggTilLatentEllerRealisertGevinstPaaAksjeAndelMvVedUtflytting, - OppjustertTilleggTilLatentEllerRealisertTapPaaAksjeAndelMvVedUtflytting, - OppjustertTilleggTilRenteinntektMedEkstrabeskatningForLaanTilSelskap, - OppjustertTilleggTilSkattepliktigAksjegevinst, - OppjustertTilleggTilSkattepliktigUtbytteFraAksjeINOKUSIkkeRegistrertIVerdipapirsentralen, - OppjustertTilleggTilSkattepliktigUtbytteFraAksjeIkkeRegistrertIVerdipapirsentralen, - OppjustertTilleggTilSkattepliktigUtbytteFraAksjeOgVerdipapirfondAksjedel, - OppjustertTilleggTilSkattepliktigUtbytteFraAksjerRegistrertIVerdipapirsentralen, - OppjustertTilleggTilSkattepliktigUtbytteFraVerdipapirfondsandel, - OppjustertTilleggTilSkattepliktigUtbytteFraVerdipapirfondsandelTilBarn, - OppjustertTilleggTilTapVedRealisajonAvOgUttakFraAksjedelIFondskonto, - OppjustertTilleggTilTapVedRealisasjonAvAksje, - OppjustertTilleggTilTapVedRealisasjonAvAksjeOgVerdipapirfondAksjedel, - OppjustertTilleggTilTapVedRealisasjonAvAksjesparekonto, - OppjustertTilleggTilTapVedRealisasjonAvAndelIAksjedelIVerdipapirfond, - OppjustertTilleggTilTapVedRealisasjonAvOgUttakFraAksjedelIFondskonto, - OppjustertTilleggTilTapVedRealisasjonAvVerdipapirfondsandelIKombifondKnyttetTilAksjedel, - OppjustertTilleggTilTapVedRealisasjonAvVerdipapirfondsandelKnyttetTilAksjedel, - OppjustertTilleggTilTapVedSalgAvAndelINOKUS, - OppjustertTilleggTilUtbytteFraAksje, - OppjustertTilleggTilUtbytteFraAksjesparekonto, - OppjustertTilleggTilUtbytteFraVerdipapirfond, - OpptjenteRenterFraPrivatUtestaaendeFordring, - OpptjenteRenterFraUtestaaendeFordring, - OvergangsstoenadTilEnsligForelder, - OverskuddAvEnkeltpersonforetakInnenAnnenNaeringUtenTrygdeavgiftsplikt, - OverskuddAvEnkeltpersonforetakInnenJordbrukGartneriPelsdyrMv, - OverskuddAvEnkeltpersonforetakInnenReindrift, - OverskuddAvEnkeltpersonforetakInnenSkiferproduksjon, - OverskuddAvEnkeltpersonforetakInnenSkogbruk, - OverskuddAvSDF, - OverskuddAvUtgiftsgodtgjoerelseVedSmusstillegg, - OverskuddFraNaeringsinntekt, - PaaloepteRenterFraAnnenGjeld, - PaaloepteRenterFraInkassoselskap, - PaaloepteRenterFraPrivatGjeld, - PensjonFraUtlandetSkattefriINorge, - PensjonFraUtlandetSkattepliktigINorge, - Pensjonsinnbetaling, - PensjonsinntektFritattForSkattEtterSkatteavtale, - PensjonsinntektIEOESTilsvarendeAlderspensjonEllerAFP, - PensjonsinntektOmfattetAvLoennstrekkordningen, - PersoninntektFraKompensasjonsytelseUtbetaltAvNavInnenAnnenNaering, - PersoninntektFraKompensasjonsytelseUtbetaltAvNavInnenBarnepassIBarnepasserensHjem, - PersoninntektFraKompensasjonsytelseUtbetaltAvNavInnenFiskeOgFangst, - PersoninntektFraSDFInnenAnnenNaering, - PersoninntektFraSDFInnenFiskeEllerBarnepassIBarnepasserensHjem, - PersoninntektFraSkattefriLottMedTrygdeavgiftspliktForUtenlandskFisker, - PositivPersoninntektFraEnkeltpersonforetakPaaSvalbard, - PremieTilEgenTilleggstrygdForNaeringsdrivende, - Premiefond, - PremiefondIndividuellPensjonsavtale, - PremiefondLivsforsikring, - PrivatGjeldsbeloep, - Reisefradrag, - RenteinntektAvAnnetFinansprodukt, - RenteinntektAvLivsforsikring, - RenteinntektAvObligasjon, - RenteinntektAvObligasjonVerdipapirfondRentedelMv, - RenteinntektAvObligasjonVerdipapirfondRentedelMvIUtlandet, - RenteinntektAvSkadeforsikring, - RenteinntektAvVerdipapirfondsandel, - RenteinntektMedEkstrabeskatningForLaanTilSelskap, - ReturAvPremieFraIndividuellPensjonssparing, - ReturprovisjonKnyttetTilAksjesparekonto, - ReturprovisjonKnyttetTilFondskonto, - ReturprovisjonKnyttetTilVerdipapirfond, - SaerfradragForEnsligForsoerger, - SaerfradragOverfoertFraBarn, - SaerfradragOverfoertFraEktefelle, - SaerfradragOverfoertTilEktefelle, - SaerfradragOverfoertTilForelder, - SaerskiltFradragForFiskereOgFangstfolk, - SaerskiltFradragForSjoefolk, - SaerskiltInntektsfradragIBarnsInntekt, - SamledeAndreOpptjenteRenter, - SamledeAndrePaaloepteRenter, - SamledeOpptjenteRenterIInnenlandskeBanker, - SamledeOpptjenteRenterIUtenlandskeBanker, - SamledeOpptjenteRenterIUtlandet, - SamledePaaloepteRenter, - SamledePaaloepteRenterPaaGjeldIInnenlandskeBanker, - SamledePaaloepteRenterPaaGjeldIUtlandet, - SamledeUfoererenterOgLivrenter, - SamledeUnderholdsbidrag, - SamletAndelAvFellesgjeldIBoligselskapEllerBoligsameie, - SamletAndelAvFradragsberettigetFelleskostnadForBoligselskapEllerBoligsameie, - SamletAndelAvInntektIBoligselskapEllerBoligsameie, - SamletAnnenGjeld, - SamletAnnenInntektForForskudd, - SamletAnnenPensjonMedTrekkpliktEksklusiveEktefelletillegg, - SamletAnnenPensjonUtenTrekkplikt, - SamletAnnenRenteinntekt, - SamletAvkastningAvKapitalforsikringsavtale, - SamletAvtalefestetPensjon, - SamletBarnepensjonOgLivrente, - SamletBarnepensjonOgLivrenteTilBarn, - SamletFormuesverdiAvPrivatUtestaaendeFordring, - SamletFormuesverdiAvUtestaaendeFordring, - SamletFormuesverdiForAndelAnnenFormueIBoligselskapEllerBoligsameie, - SamletFormuesverdiForAndelerIRentedelAvVerdipapirfond, - SamletFormuesverdiForAnnenFastEiendom, - SamletFormuesverdiForFastEiendomIUtlandet, - SamletFormuesverdiForOevrigFormue, - SamletFormuesverdiForOevrigFormueIUtlandet, - SamletFormuesverdiForSekundaerbolig, - SamletFormuesverdiForSelveidFritidseiendomEllerAndelIFritidsboligselskap, - SamletFradragsberettigetKostnadTilknyttetArbeidMv, - SamletFradragsberettigetUnderskuddVedUtleieAvFastEiendom, - SamletFremfoerbartUnderskuddFraTidligereAar, - SamletGevinstVedRealisasjonAvAndreFinansprodukter, - SamletGevinstVedRealisasjonAvVerdipapirfondsandelKnyttetTilRentedel, - SamletGjeld, - SamletGjenkjoepsverdiForLivsforsikring, - SamletGrunnlagForInntektsskattTilKommuneOgFylkeskommuneStatsskattOgFellesskatt, - SamletInnenlandskGjeld, - SamletInnskuddIInnenlandskeBanker, - SamletInntektSomGirRettTilSaerskiltFradragForSjoefolk, - SamletLoennsinntektMedTrygdeavgiftspliktOgMedTrekkplikt, - SamletLoennsinntektUtenTrygdeavgiftspliktOgMedTrekkplikt, - SamletLoennsinntektUtenTrygdeavgiftspliktOgUtenTrekkplikt, - SamletMerkostnadVedArbeidsoppholdUtenforHjem, - SamletOverskuddAvEnkeltpersonforetakInnenAnnenNaering, - SamletOverskuddAvEnkeltpersonforetakInnenFamiliebarnehageEllerDagmammaIEgetHjem, - SamletOverskuddAvEnkeltpersonforetakInnenFiskeOgFangst, - SamletOverskuddAvSDFInnenAnnenNaering, - SamletOverskuddAvSDFInnenFiskeEllerFamiliebarnehage, - SamletOverskuddPaaUtgiftsgodtgjoerelse, - SamletPensjonFraFolketrygden, - SamletPensjonsinnbetalingTilIndividuellPensjonsordning, - SamletPersoninntektFraEnkeltpersonforetakInnenFamiliebarnehageEllerDagmammaIEgetHjem, - SamletPersoninntektFraEnkeltpersonforetakInnenFiskeOgFangst, - SamletPersoninntektFraEnkeltpersonforetakInnenJordbrukReindriftSkiferproduksjonOgAnnenNaering, - SamletPremiefond, - SamletSaerfradrag, - SamletSaerfradragForStoreSykdomsutgifter, - SamletSaerfradragForUfoerhetIhtOvergangsregel, - SamletSaerskiltFradragForJordbrukReindriftOgSkiferproduksjon, - SamletSkattefriDelAvFormue, - SamletSkattepliktigGevinstVedRealisasjonAvObligasjonEllerVerdipapirfondsandel, - SamletSkattepliktigOverskuddFraUtleieAvFastEiendom, - SamletSkattepliktigOverskuddFraUtleieAvFastEiendomIUtlandet, - SamletTapVedRealisasjonAvVerdipapirfondsandelKnyttetTilRentedel, - SamletUfoeretrygdFraFolketrygdenEksklusiveEktefelletillegg, - SamletUfoereytelseFraAndreEnnFolketrygden, - SamletUnderskuddAvSDF, - SamletUnderskuddAvSDFPaaSvalbard, - SamletUnderskuddINaeringsvirksomhet, - SamletUnderskuddINaeringsvirksomhetPaaSvalbard, - SamletUtgiftsgodtgjoerelseMedTrekkplikt, - SkattefradragForFormuesskattBetaltIUtlandet, - SkattefriLoennsinntektMedTrygdeavgiftspliktOgMedTrekkplikt, - SkattepliktigAksjegevinst, - SkattepliktigAvkastningEllerKundeutbytte, - SkattepliktigEtterloennOgEtterpensjon, - SkattepliktigUtbytteFraAksjeINOKUSIkkeRegistrertIVerdipapirsentralen, - SkattepliktigUtbytteFraAksjeIkkeRegistrertIVerdipapirsentralen, - SkattepliktigUtbytteFraAksjeOgVerdipapirfondAksjedel, - SkattepliktigUtbytteFraAksjerRegistrertIVerdipapirsentralen, - SkattepliktigUtbytteFraVerdipapirfondsandel, - SkattepliktigUtbytteFraVerdipapirfondsandelTilBarn, - Skjermingsfradrag, - SkjermingstilleggTilAlderspensjon, - SkyldigRestskatt, - SkyldigUnderholdsbidrag, - Slitertillegg, - Standardfradrag, - StyrehonorarFraNorskSelskapTilSkattepliktigBosattIUtlandet, - SumFradragIAlminneligInntekt, - SumGjeldsreduksjon, - SumInntekterIAlminneligInntektFoerFordelingsfradrag, - SumMinstefradrag, - SumVerdsettingsrabatt, - SupplerendeStoenad, - SupplerendeStoenadTilUfoerFlyktning, - TapOgAnnenKostnadFraVirtuellEiendel, - TapValutalaan, - TapVedRealisajonAvOgUttakFraAksjedelIFondskonto, - TapVedRealisasjonAvAksje, - TapVedRealisasjonAvAksjeOgVerdipapirfondAksjedel, - TapVedRealisasjonAvAksjesparekonto, - TapVedRealisasjonAvAndelIAksjedelIVerdipapirfond, - TapVedRealisasjonAvAndelIRentedelIVerdipapirfond, - TapVedRealisasjonAvAnnetFinansprodukt, - TapVedRealisasjonAvObligasjonVerdipapirfondRentedelMv, - TapVedRealisasjonAvObligasjoner, - TapVedRealisasjonAvOgUttakFraAksjedelIFondskonto, - TapVedRealisasjonAvOgUttakFraRentedelIFondskonto, - TapVedRealisasjonAvVerdipapirfondsandelIKombifondKnyttetTilAksjedel, - TapVedRealisasjonAvVerdipapirfondsandelKnyttetTilAksjedel, - TapVedRealisasjonAvVirtuellValuta, - TapVedSalgAvAndelINOKUS, - UfoererenterOgLivrenterUtenforArbeidsforhold, - UfoeretrygdFoerAlderspensjon, - UfoeretrygdOmfattetAvLoennstrekkordningen, - UfoereytelseFraIPAOgIPS, - UfoereytelseFraUtlandet, - UnderholdsbidragFraTidligereEktefelle, - UnderholdsbidragTilGode, - UnderskuddAvEnkeltpersonforetakFordeltFraEktefelle, - UnderskuddAvEnkeltpersonforetakPaaSvalbard, - UnderskuddFraSDF, - UnderskuddOverfoertFraBarnOgFordelt, - UnderskuddOverfoertTilForeldre, - UnderskuddVedUtleieMvAvFastEiendomUtenforNaering, - UtbetalingFraAvtaleOmSkattefavorisertIndividuellSparingTilPensjonTegnetFomNov2017, - UtbetalingFraSkadeforsikring, - UtbytteFraAksje, - UtbytteFraAksjesparekonto, - UtbytteFraVerdipapirfond, - UtgiftVedRefinansieringAvLaan, - UtgifterTilPassOgStellAvHjemmevaerendeBarn, - VerdiFoerVerdsettingsrabattForAksje, - VerdiFoerVerdsettingsrabattForAksjeIUtlandet, - VerdiFoerVerdsettingsrabattForAksjeIVPS, - VerdiFoerVerdsettingsrabattForAksjeIkkeIVPS, - VerdiFoerVerdsettingsrabattForAksjeOgAksjefondIFondskonto, - VerdiFoerVerdsettingsrabattForAksjedelIAksjesparekonto, - VerdiFoerVerdsettingsrabattForAndelIAksjedelIVerdipapirfond, - VerdiFoerVerdsettingsrabattForAndelIFellesNettoformueISDF, - VerdiFoerVerdsettingsrabattForAndelINOKUS, - VerdiFoerVerdsettingsrabattForAnnenFormueFraDriftsmidlerAndelISDFMvGenerell, - VerdiFoerVerdsettingsrabattForAnnenFormueInnenforInntektsgivendeAktivitet, - VerdiFoerVerdsettingsrabattForBilerMaskinerOgInventar, - VerdiFoerVerdsettingsrabattForFormuesobjekterINaeringOmfattetAvVerdsettingsrabatt, - VerdiFoerVerdsettingsrabattForInventarLoesoereVedUtleie, - VerdiFoerVerdsettingsrabattForKapitalisertFesteavgift, - VerdiFoerVerdsettingsrabattForRettigheterKnyttetTilSkogUtmark, - VerdiFoerVerdsettingsrabattForSkipFiskeOgFangstfartoey, - VerdiFoerVerdsettingsrabattForVerdipapirfondsandel, - VerdiFoerVerdsettingsrabattForVerdipapirfondsandelTilBarn, - VerdsettingsrabattForAksje, - VerdsettingsrabattForAksjeIUtlandet, - VerdsettingsrabattForAksjeIVPS, - VerdsettingsrabattForAksjeIkkeIVPS, - VerdsettingsrabattForAksjeOgAksjefondIFondskonto, - VerdsettingsrabattForAksjedelIAksjesparekonto, - VerdsettingsrabattForAndelIAksjedelIVerdipapirfond, - VerdsettingsrabattForAndelIFellesNettoformueISDF, - VerdsettingsrabattForAndelINOKUS, - VerdsettingsrabattForAnnenFormueInnenforInntektsgivendeAktivitet, - VerdsettingsrabattForBilerMaskinerOgInventar, - VerdsettingsrabattForFormuesobjekterINaeringOmfattetAvVerdsettingsrabatt, - VerdsettingsrabattForInventarLoesoereVedUtleie, - VerdsettingsrabattForKapitalisertFesteavgift, - VerdsettingsrabattForRettigheterKnyttetTilSkogUtmark, - VerdsettingsrabattForSkipFiskeOgFangstfartoey, - VerdsettingsrabattForVerdipapirfondsandel, - VerdsettingsrabattForVerdipapirfondsandelTilBarn -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java deleted file mode 100644 index 3093174a0ad..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java +++ /dev/null @@ -1,134 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonSelectOptions.Grunnlagsdata; - -import java.math.BigInteger; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class TenorOrganisasjonRequest { - - private String organisasjonsnummer; - private Organisasjonsform organisasjonsform; - private Adresse forretningsadresse; - private Boolean harUtenlandskForretningsadresse; - private Boolean harUtenlandskPostadresse; - private String naeringBeskrivelse; - private String naeringKode; - private Boolean registrertIMvaregisteret; - private Boolean registrertIForetaksregisteret; - private Boolean registrertIFrivillighetsregisteret; - private EnhetStatus enhetStatuser; - private Boolean slettetIEnhetsregisteret; - private TenorRequest.Intervall antallAnsatte; - private Boolean revisorer; - private Boolean regnskapsfoerere; - private Boolean dagligLeder; - private Boolean styremedlemmer; - private Boolean forretningsfoerer; - private Boolean kontaktpersoner; - private Boolean norsk_representant; - private ErUnderenhet erUnderenhet; - private Boolean harUnderenheter; - private Integer antallUnderenheter; - private TenorRelasjoner tenorRelasjoner; - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class Organisasjonsform { - - private TenorOrganisasjonSelectOptions.OrganisasjonForm kode; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class Adresse { - private String kommunenummer; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class EnhetStatus { - - private TenorOrganisasjonSelectOptions.EnhetStatus kode; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class ErUnderenhet { - - private Boolean hovedenhet; - } - - @Data - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class TestinnsendingSkattEnhet { - private BigInteger inntektsaar; - private Boolean harSkattemeldingUtkast; - private Boolean harSkattemeldingFastsatt; - private Boolean harSelskapsmeldingUtkast; - private Boolean harSelskapsmeldingFastsatt; - private Grunnlagsdata manglendeGrunnlagsdata; - private Grunnlagsdata manntall; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class Arbeidsforhold { - private TenorRequest.DatoIntervall startDato; - private TenorRequest.DatoIntervall sluttDato; - private Boolean harPermisjoner; - private Boolean harPermitteringer; - private Boolean harTimerMedTimeloenn; - private Boolean harUtenlandsopphold; - private Boolean harHistorikk; - private TenorOrganisasjonSelectOptions.ArbeidsforholdType arbeidsforholdtype; - } - - @Data - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class SamletReskontroinnsyn { - private Boolean harKrav; - private Boolean harInnbetaling; - } - - @Data - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class TjenestepensjonsavtaleOpplysningspliktig { - private String tjenestepensjonsinnretningOrgnr; - private String periode; - } - - @Data - @Builder - @AllArgsConstructor - @NoArgsConstructor - public static class TenorRelasjoner { - private TestinnsendingSkattEnhet testinnsendingSkattEnhet; - private Arbeidsforhold arbeidsforhold; - private SamletReskontroinnsyn samletReskontroinnsyn; - private TjenestepensjonsavtaleOpplysningspliktig tjenestepensjonsavtaleOpplysningspliktig; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java deleted file mode 100644 index 5e4c6fbd549..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java +++ /dev/null @@ -1,160 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -public class TenorOrganisasjonSelectOptions { - - @Getter - @AllArgsConstructor - public enum OrganisasjonForm implements LabelEnum { - AAFY("Underenhet til ikke-næringsdrivende"), - ADOS("Administrativ enhet - offentlig sektor"), - ANNA("Annen juridisk person"), - ANS("Ansvarlig selskap med solidarisk ansvar"), - AS("Aksjeselskap"), - ASA("Allmennaksjeselskap"), - BA("Selskap med begrenset ansvar"), - BBL("Boligbyggelag"), - BEDR("Underenhet til næringsdrivende og offentlig forvaltning"), - BO("Andre bo"), - BRL("Borettslag"), - DA("Ansvarlig selskap med delt ansvar"), - ENK("Enkeltpersonforetak"), - EØFG("Europeisk økonomisk foretaksgruppe"), - ESEK("Eierseksjonssameie"), - FKF("Fylkeskommunalt foretak"), - FLI("Forening/lag/innretning"), - FYLK("Fylkeskommune"), - GFS("Gjensidig forsikringsselskap"), - IKJP("Andre ikke-juridiske personer"), - IKS("Interkommunalt selskap"), - KBO("Konkursbo"), - KF("Kommunalt foretak"), - KIRK("Den norske kirke"), - KOMM("Kommune"), - KS("Kommandittselskap"), - KTRF("Kontorfellesskap"), - NUF("Norskregistrert utenlandsk foretak"), - OPMV("Særskilt oppdelt enhet, jf. mval. § 2-2"), - ORGL("Organisasjonsledd"), - PERS("Andre enkeltpersoner som registreres i tilknyttet register"), - PK("Pensjonskasse"), - PRE("Partrederi"), - SA("Samvirkeforetak"), - SAM("Tingsrettslig sameie"), - SE("Europeisk selskap"), - SF("Statsforetak"), - SPA("Sparebank"), - STAT("Staten"), - STI("Stiftelse"), - SÆR("Annet foretak iflg. særskilt lov"), - TVAM("Tvangsregisrert for MVA"), - UTLA("Utenlandsk enhet"), - VPFO("Verdipapirfond"); - - private final String label; - - @Override - public String getName() { - return name(); - } - - @Override - public String getLabel() { - return label; - } - } - - @Getter - @AllArgsConstructor - public enum EnhetStatus implements LabelEnum { - OPPL("Oppløst"), - KONK("Åpnet konkurs"); - - private final String label; - - @Override - public String getName() { - return name(); - } - - @Override - public String getLabel() { - return label; - } - } - - @Getter - @AllArgsConstructor - public enum Grunnlagsdata implements LabelEnum { - AKSJESPAREKONTO("Aksjesparekonto"), - BARNEPASS("Betaling for pass og stell av barn"), - BETALINGER_NAERINGSDRIVENDE("Betalinger til selvstendig næringsdrivende"), - BOLIGSAMEIE("Boligsameie"), - BOLIGSELSKAP("Boligselskap"), - BSU("Boligsparing for ungdom "), - CRSFATCA("Internasjonal rapportering"), - DROSJESENTRALER("Drosjetjenester"), - EIENDOMSUTLEIE("Utleie av fast eiendom fra formidlingsselskap"), - ENOVA("Enova"), - FAGFORENINGSKONTINGENT("Fagforeningskontingent"), - FINANSPRODUKTER("Finansprodukter"), - FONDSKONTO("Fondskonto"), - GAVER_TIL_ORG("Gaver til organisasjoner"), - GODTGJOERELSE_OPPHAVSMANN("Godtgjøring til opphaver til åndsverk"), - INDIVIDUELLE_PENSJONSORDNINGER("Individuelle pensjonsordninger"), - KOP_EGG("Kjøp fra primærnæring - egg"), - KOP_FISK("Kjøp fra primærnæring - fisk"), - KOP_JORD_HAGEBRUK("Kjøp fra primærnæring - jord- og hagebruk"), - KOP_KORN("Kjøp fra primærnæring - korn"), - KOP_MELK("Kjøp fra primærnæring - melk"), - KOP_PELSDYRSKINN("Kjøp fra primærnæring - pelsdyr"), - KOP_SLAKT("Kjøp fra primærnæring - slakt"), - KOP_TILSKUDD("Tilskudd innen primærnæringene"), - KOP_TOEMMER("Kjøp fra primærnæring - tømmer"), - LIVSFORSIKRING("Livsforsikring"), - SALDO_RENTE("Innskudd, utlån og renter m.v."), - SKADEFORSIKRING("Skadeforsikring"), - SKATTEFRIE_UTBETALINGER("Skattefrie utbetalinger fra offentlig myndighet"), - SKATTEPLIKTIG_KUNDEUTBYTTE("Skattepliktig kundeutbytte"), - SKE_A_ORDNING_INNTEKTSMOTTAKER("a-melding"), - TILDELTE_OPSJONER("Opsjoner i oppstartsselskap"), - TILSKUDD_FORSK("Tilskudd til forskning eller yrkesopplæring"), - UNDERHOLDSBIDRAG("Underholdsbidrag"), - VERDIPAPIRFOND("Verdipapirfond"); - - private final String label; - - @Override - public String getName() { - return name(); - } - - @Override - public String getLabel() { - return label; - } - } - - @Getter - @AllArgsConstructor - public enum ArbeidsforholdType implements LabelEnum { - OrdinaertArbeidsforhold("Ordinært"), - MaritimtArbeidsforhold("Maritimt"), - FrilanserOppdragstakerHonorarPersonerMm("Frilanser med mer"); - - private final String label; - - @Override - public String getName() { - return name(); - } - - @Override - public String getLabel() { - return label; - } - } - -} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorRequest.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorRequest.java deleted file mode 100644 index 3c8a0fdc2a0..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorRequest.java +++ /dev/null @@ -1,358 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigInteger; -import java.time.LocalDate; -import java.time.YearMonth; -import java.util.ArrayList; -import java.util.List; - -import static java.util.Objects.isNull; - -@Data -@NoArgsConstructor -@SuppressWarnings("java:S115") -public class TenorRequest { - - public enum IdentifikatorType {Foedselsnummer, DNummer, DNummerOgFoedselsnr} - - public enum Kjoenn {Mann, Kvinne} - - public enum Rolle {DagligLeder} - - public enum Personstatus {Bosatt, Doed, Forsvunnet, Foedselsregistrert, IkkeBosatt, Inaktiv, Midlertidig, Opphoert, Utflyttet} - - public enum Sivilstand {EnkeEllerEnkemann, Gift, GjenlevendePartner, RegistrertPartner, Separert, SeparertPartner, Skilt, SkiltPartner, Ugift, Uoppgitt} - - public enum UtenlandskPersonIdentifikasjon {UtenlandskIdentifikasjonsnummer, TaxIdentificationNumber, SocialSecurityNumber, UtlendingsmyndighetenesIdentifikasjonsnummer} - - public enum IdentitetsgrunnlagStatus {IkkeKontrollert, IngenStatus, Kontrollert} - - public enum Adressebeskyttelse {Fortrolig, StrengtFortrolig} - - public enum AdresseGradering {Ugradert, Klientadresse, Fortrolig} - - public enum Relasjon {Barn, Far, Medmor, Mor, Partner} - - public enum Skattemeldingstype {KunUtkast, UtkastOgFastsatt} - - public enum Inntektstype {Loennsinntekt, Naeringsinntekt, PensjonEllerTrygd, YtelseFraOffentlige} - - public enum AOrdningBeskrivelse { - Alderspensjon, AlderspensjonSkjermingstillegg, AndreBeskrivelser, - Arbeidsavklaringspenger, AvtalefestetPensjon, Bil, Bonus, DagpengerVedArbeidsloeshet, Ektefelletillegg, - ElektroniskKommunikasjon, Fagforeningskontingent, FastBilgodtgjoerelse, Fastloenn, FastTillegg, Feriepenger, - Foreldrepenger, IpaEllerIpsPeriodiskeYtelser, Kvalifiseringsstoenad, NyAvtalefestetPensjonPrivatSektor, - PensjonOgLivrenterIArbeidsforhold, ReiseKostMedOvernattingPaaHybelMedKokEllerPrivat, - ReiseKostMedOvernattingPaaHybelUtenKokEllerPensjonatEllerBrakke, Sykepenger, Timeloenn, Ufoeretrygd - } - - public enum Forskuddstrekk { - OrdinaertForskuddstrekk, Barnepensjon, KildeskattPaaPensjon, Svalbard, - JanMayenOgBilandene, BetaltTrygdeavgiftTilJanMayen - } - - public enum Skattepliktstype {SkattepliktTilNorge, SkattepliktTilSvalbard} - - public enum SaerskiltSkatteplikt { - KildeskattepliktPaaLoenn, KildeskattepliktPaaPensjon, - SkattepliktAvNaeringsdriftEiendomMv, SkattepliktEtterPetroleumsskatteloven, - SkattepliktPaaLoennFraDenNorskeStatOpptjentIUtlandet, SkattepliktSomSjoemann, - SkattepliktSomUtenrikstjenestemann, SkattepliktVedUtenriksoppholdINorskStatstjenesteEllerNato - } - - public enum TilleggsskattType { - FradragForTvangsmulkt, SkjerpetTilleggsskattFraUriktigeOpplysninger, TilleggsskattFraUriktigeOpplysninger, - TilleggsskattFraManglendeInnlevering, SkjerpetTilleggsskattFraManglendeInnlevering - } - - public enum Arbeidsforholdstype { - OrdinaertArbeidsforhold, MaritimtArbeidsforhold, FrilanserOppdragstakerHonorarPersonerMm - } - - public enum Oppgjoerstype {Fastland, Svalbard, KildeskattPaaLoenn} - - public enum Stadietype {Utkast, Fastsatt, Oppgjoer} - - @Schema(description = "Personidentifikator, fødselsnummer eller d-nummer") - private String identifikator; - private IdentifikatorType identifikatorType; - private DatoIntervall foedselsdato; - private DatoIntervall doedsdato; - private Kjoenn kjoenn; - private Personstatus personstatus; - private Sivilstand sivilstand; - private List utenlandskPersonIdentifikasjon; - private IdentitetsgrunnlagStatus identitetsgrunnlagStatus; - private Adressebeskyttelse adressebeskyttelse; - private Boolean harLegitimasjonsdokument; - private Boolean harFalskIdentitet; - private Boolean harNorskStatsborgerskap; - private Boolean harFlereStatsborgerskap; - private Navn navn; - private Adresser adresser; - private Relasjoner relasjoner; - private Hendelser hendelser; - - private List roller; - private Tjenestepensjonsavtale tjenestepensjonsavtale; - private Skattemelding skattemelding; - private Inntekt inntekt; - private Skatteplikt skatteplikt; - private Tilleggsskatt tilleggsskatt; - private Arbeidsforhold arbeidsforhold; - private BeregnetSkatt beregnetSkatt; - private TestinnsendingSkattPerson testinnsendingSkattPerson; - private SamletReskontroInnsyn samletReskontroInnsyn; - private SummertSkattegrunnlag summertSkattegrunnlag; - private SpesisfisertSummertSkattegrunnlag spesifisertSummertSkattegrunnlag; - - public List getUtenlandskPersonIdentifikasjon() { - - if (isNull(utenlandskPersonIdentifikasjon)) { - utenlandskPersonIdentifikasjon = new ArrayList<>(); - } - return utenlandskPersonIdentifikasjon; - } - - public List getRoller() { - - if (isNull(roller)) { - roller = new ArrayList<>(); - } - return roller; - } - - @Data - @NoArgsConstructor - public static class DatoIntervall { - - @Schema(type = "string", format = "YYYY-MM-DD", example = "2018-07-01") - private LocalDate fraOgMed; - @Schema(type = "string", format = "YYYY-MM-DD", example = "2020-07-01") - private LocalDate tilOgMed; - } - - @Data - @NoArgsConstructor - public static class Intervall { - - private BigInteger fraOgMed; - private BigInteger tilOgMed; - } - - @Data - @NoArgsConstructor - public static class Navn { - - private Intervall navnLengde; - private Boolean harFlereFornavn; - private Boolean harMellomnavn; - private Boolean harNavnSpesialtegn; - } - - @Data - @NoArgsConstructor - public static class Adresser { - - @Schema(description = "Adressesøk, fritekst") - private AdresseGradering adresseGradering; - private BigInteger kommunenummer; - private Boolean harBostedsadresse; - private Boolean harOppholdAnnetSted; - private Boolean harPostadresseNorge; - private Boolean harPostadresseUtland; - private Boolean harKontaktadresseDoedsbo; - private Boolean harAdresseSpesialtegn; - } - - @Data - @NoArgsConstructor - public static class Relasjoner { - - private Relasjon relasjon; - private Intervall antallBarn; - private Boolean harForeldreAnsvar; - private Intervall relasjonMedFoedselsaar; - private Boolean harDeltBosted; - private Boolean harVergemaalEllerFremtidsfullmakt; - private Boolean borMedMor; - private Boolean borMedFar; - private Boolean borMedMedmor; - private Boolean foreldreHarSammeAdresse; - } - - @Data - @NoArgsConstructor - public static class Hendelser { - - private Hendelse hendelse; - private Hendelse sisteHendelse; - } - - @Data - @NoArgsConstructor - public static class Tjenestepensjonsavtale { - - @Schema(description = "Pensjonsinnretningen organisasjonsnummer, 9 siffre") - private String pensjonsinnretningOrgnr; - @Schema(type = "string", format = "YYYY-MM", example = "2020-07") - private YearMonth periode; - } - - @Data - @NoArgsConstructor - public static class Skattemelding { - - @Schema(description = "Inntektsår, 4 siffre, årene 2018, 2019, 2020, 2021, 2022 ... osv opptil i forfjor") - private BigInteger inntektsaar; - private Skattemeldingstype skattemeldingstype; - } - - @Data - @NoArgsConstructor - public static class Inntekt { - - private MonthInterval periode; - private BigInteger opplysningspliktig; - private List inntektstyper; - private AOrdningBeskrivelse beskrivelse; - private List forskuddstrekk; - private Boolean harHistorikk; - - public List getInntektstyper() { - - if (isNull(inntektstyper)) { - inntektstyper = new ArrayList<>(); - } - return inntektstyper; - } - - public List getForskuddstrekk() { - - if (isNull(forskuddstrekk)) { - forskuddstrekk = new ArrayList<>(); - } - return forskuddstrekk; - } - } - - @Data - @NoArgsConstructor - public static class MonthInterval { - - @Schema(type = "string", format = "YYYY-MM", example = "2020-07") - private YearMonth fraOgMed; - @Schema(type = "string", format = "YYYY-MM", example = "2020-07") - private YearMonth tilOgMed; - } - - @Data - @NoArgsConstructor - public static class Skatteplikt { - - @Schema(description = "Inntektsår, 4 siffre, årene 2019, 2019, 2020, 2021, 2022, 2023 ... osv opptil i fjor") - private BigInteger inntektsaar; - private List skattepliktstyper; - private SaerskiltSkatteplikt saerskiltSkatteplikt; - - public List getSkattepliktstyper() { - - if (isNull(skattepliktstyper)) { - skattepliktstyper = new ArrayList<>(); - } - return skattepliktstyper; - } - } - - @Data - @NoArgsConstructor - public static class Tilleggsskatt { - - private BigInteger inntektsaar; - private List tilleggsskattTyper; - - public List getTilleggsskattTyper() { - - if (isNull(tilleggsskattTyper)) { - tilleggsskattTyper = new ArrayList<>(); - } - return tilleggsskattTyper; - } - } - - @Data - @NoArgsConstructor - public static class Arbeidsforhold { - - private DatoIntervall startDatoPeriode; - private DatoIntervall sluttDatoPeriode; - private Boolean harPermisjoner; - private Boolean harPermitteringer; - private Boolean harArbeidsgiver; - private Boolean harTimerMedTimeloenn; - private Boolean harUtenlandsopphold; - private Boolean harHistorikk; - private Arbeidsforholdstype arbeidsforholdstype; - } - - @Data - @NoArgsConstructor - public static class BeregnetSkatt { - - @Schema(description = "Inntektsår, 4 siffre, årene 2018, 2019, 2020, 2021, 2022, 2023 ... osv opptil i fjor") - private BigInteger inntektsaar; - private Oppgjoerstype oppgjoerstype; - private Boolean pensjonsgivendeInntekt; - } - - @Data - @NoArgsConstructor - @Schema(description = "Opplysninger fra skatteetatens innsendingsmiljoe") - public static class TestinnsendingSkattPerson { - - @Schema(description = "Inntektsår, 4 siffre, årene 2020, 2021, 2022, 2023 ... osv opptil i fjor") - private BigInteger inntektsaar; - @Schema(description = "Skattemelding utkast, merk at false indikerer har ikke skatteMeldingUtkast") - private Boolean harSkattemeldingUtkast; - @Schema(description = "Skattemelding fastsatt, merk at false indikerer har ikke skatteMeldingFastsatt") - private Boolean harSkattemeldingFastsatt; - } - - @Data - @NoArgsConstructor - public static class SamletReskontroInnsyn { - - private Boolean harKrav; - private Boolean harInnbetaling; - } - - @Data - @NoArgsConstructor - public static class SummertSkattegrunnlag { - - @Schema(description = "Inntektsår, 4 siffre, årene 2019, 2020, 2021, 2022, 2023 ... osv opptil i fjor") - private BigInteger inntektsaar; - private Stadietype stadietype; - private Oppgjoerstype oppgjoerstype; - private TekniskNavn tekniskNavn; - private Intervall alminneligInntektFoerSaerfradragBeloep; - } - - @Data - @NoArgsConstructor - public static class SpesisfisertSummertSkattegrunnlag { - - @Schema(description = "Inntektsår, 4 siffre, årene 2019, 2020, 2021, 2022, 2023 ... osv opptil i fjor") - private BigInteger inntektsaar; - private Stadietype stadietype; - private Oppgjoerstype oppgjoerstype; - private TekniskNavn tekniskNavn; - private Spesifiseringstype spesifiseringstype; - private Intervall alminneligInntektFoerSaerfradragBeloep; - } -} - diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/provider/PdlMiljoer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/provider/PdlMiljoer.java deleted file mode 100644 index f135ef0e8c2..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/provider/PdlMiljoer.java +++ /dev/null @@ -1,5 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.provider; - -public enum PdlMiljoer { - Q1, Q2 - } \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java deleted file mode 100644 index 7573acfd9f5..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java +++ /dev/null @@ -1,42 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; - -import lombok.RequiredArgsConstructor; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.Ident; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.AnsettelseLogg; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository.AnsettelseLoggRepository; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.OffsetDateTime; - -/** - * Klasse for å lagre ansedttelsene som har blir gjort i ansettelse_ligg db. - */ -@Service -@RequiredArgsConstructor -public class AnsettelseLoggService { - - private final AnsettelseLoggRepository ansettelseLoggRepository; - - /** - * Funksjonen som lagrer ansettelsen i db - * @param person Ident objektet til personen som har blir ansatt. - * @param org OrgaisasjonDTO objektet til organisasjonen personen har - * blitt ansatt i. - * @param stillingsprosent Stillingsprosenten i arbeidsavtalen til personen. - * @param arbeidsforholdType Arbeidsforholdtypen i arbeidsatalen til personen. - */ - public void lagreAnsettelse(Ident person, OrganisasjonDTO org, Double stillingsprosent, String arbeidsforholdType){ - AnsettelseLogg ansettelseLogg = AnsettelseLogg.builder() - .folkeregisterident(person.getIdent()) - .organisasjonsnummer(org.getOrganisasjonsnummer()) - .timestamp(OffsetDateTime.now()) - .arbeidsforholdType(arbeidsforholdType) - .stillingsprosent(BigDecimal.valueOf(stillingsprosent)) - .ansattfra(LocalDate.now()) - .build(); - ansettelseLoggRepository.save(ansettelseLogg); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseService.java deleted file mode 100644 index f27e4e442cc..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseService.java +++ /dev/null @@ -1,221 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.DatoIntervall; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.kodeverk.KodeverkNavn; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.Ident; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameterNavn; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.util.AlderspennList; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.util.AliasMethod; -import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; -import org.springframework.http.HttpStatusCode; -import org.springframework.stereotype.Service; -import org.springframework.web.reactive.function.client.WebClientResponseException; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Random; - -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ANTALL_ORGANISASJONER; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ANTALL_PERSONER; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ARBEIDSFORHOLD_TYPE; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameterNavn.STILLINGSPROSENT; - -@Slf4j -@Service -@RequiredArgsConstructor -public class AnsettelseService { - - private final PdlService pdlService; - private final TenorService tenorService; - private final ArbeidsforholdService arbeidsforholdService; - private final ParameterService parameterService; - private final KodeverkService kodeverkService; - private final AnsettelseLoggService ansettelseLoggService; - - public void runAnsettelseService() { - - Thread thread = new Thread(this::ansettelseService); - thread.start(); - try { - thread.join(3_000_000); //Timeout etter 3000 sekunder - if (thread.isAlive()) { - thread.interrupt(); - log.info("Timeout occurred"); - } - } catch (InterruptedException e) { - log.info("Timet ut"); - } - } - - public void ansettelseService() { - //Henter yrkeskoder for å gi tilfeldige yrker - List yrkeskoder = kodeverkService.hentKodeverkValues(KodeverkNavn.YRKER.value); - if (yrkeskoder.isEmpty()) { - return; - } - - //Initialiserer liste over alderspenn og liste med tidligste og seneste gyldig dato for ansttelse - AlderspennList alderspennList = new AlderspennList(); - List datoIntervaller = alderspennList.getDatointervaller(); - - //Initialiserer aliasmetode for å benytte mer realistiske alderspenn i ansettelsene - List sannsynlighetFordeling = AlderspennList.sannsynlighetFordeling; - AliasMethod alias = new AliasMethod(sannsynlighetFordeling); - - //Henter parametere fra db - var parametere = parameterService.hentParametere(); - - //Henter organisasjoner fra Tenor - List organisasjoner = hentOrganisasjoner(Integer.parseInt(parametere.get(ANTALL_ORGANISASJONER.value))); - if (organisasjoner.isEmpty()) { - return; - } - - //Regner ut hvor mange som skal ansettes per org - int antallPersPerOrg; - try { - antallPersPerOrg = getAntallAnsettelserHverOrg(Integer.parseInt(parametere.get(ANTALL_PERSONER.value)), Integer.parseInt(parametere.get(ANTALL_ORGANISASJONER.value))); - } catch (NumberFormatException e) { - log.error("Feil format på verdiene fra db"); - return; - } - - int finalAntallPersPerOrg = antallPersPerOrg; - //Kjører ansettelse per org - organisasjoner.forEach( - organisasjon -> { - if (tenorService.hentOrgPostnummer(organisasjon.getOrganisasjonsnummer()) == null) { - organisasjon = hentOrganisasjoner(1).getFirst(); - } - String postnr = konverterPostnr(tenorService.hentOrgPostnummer(organisasjon.getOrganisasjonsnummer())); - - //Trekker alderspenn fra alias for hver pers som skal ansettes - List aldersspennIndekser = new ArrayList<>(); - for (int i = 0; i < finalAntallPersPerOrg; i++) { - aldersspennIndekser.add(alias.aliasDraw()); - } - - Iterator aldersspennIterator = aldersspennIndekser.iterator(); - int iteratorElement = aldersspennIterator.next(); - - //Henter mulige personer per alderspenn basert på postnummer fra org - Map> muligePersonerMap = new HashMap<>(); - aldersspennIndekser.forEach( - indeks -> { - if (!muligePersonerMap.containsKey(indeks)) { - muligePersonerMap.put(indeks, hentPersoner(datoIntervaller.get(indeks).getFrom().toString(), datoIntervaller.get(indeks).getTom().toString(), postnr)); - } - }); - - List ansattePersoner = new ArrayList<>(); - - //Ansetter personer - while (ansattePersoner.size() < finalAntallPersPerOrg) { - try { - List muligePersoner = muligePersonerMap.get(iteratorElement); - - var tilfeldigIndex = tilfeldigTall(muligePersoner.size()); - var tilfeldigPerson = muligePersoner.get(tilfeldigIndex); - - var stillingsprosent = Double.parseDouble(parametere.get(STILLINGSPROSENT.value)); - var arbeidsforholdList = arbeidsforholdService.hentArbeidsforhold(tilfeldigPerson.getIdent()); - - if (kanAnsettes(stillingsprosent, arbeidsforholdList)) { - var tilfeldigYrke = hentTilfeldigYrkeskode(yrkeskoder); - - //Try-catch fordi vi møtte på problemer der noen org ikke fikk suksessfulle ansettelser - try { - var ansettSporring = ansettPerson(tilfeldigPerson.getIdent(), - organisasjon.getOrganisasjonsnummer(), - tilfeldigYrke, - parametere.get(JobbParameterNavn.STILLINGSPROSENT.value)); - if (ansettSporring.isPresent() && ansettSporring.get().is2xxSuccessful()) { - ansattePersoner.add(tilfeldigPerson); - - if (aldersspennIterator.hasNext()) { - iteratorElement = aldersspennIterator.next(); - } - } - } catch (WebClientResponseException e) { - log.error(e.toString()); - //Løsningen var å hente en ny tilfeldig organisasjon, da ingen personer fikk - //vellykket ansettelse uansett hvor mange vi prøvde å hente - organisasjon = hentOrganisasjoner(1).getFirst(); - continue; - } - } - muligePersoner.remove(tilfeldigIndex); - - } catch (NullPointerException e) { - log.error(e.toString()); - //Henter ny liste med mulige personer dersom den forrige blir tom uten at man fikk ansatt nok - muligePersonerMap.replace(iteratorElement, hentPersoner(datoIntervaller.get(iteratorElement).getFrom().toString(), - datoIntervaller.get(iteratorElement).getTom().toString(), postnr)); - } catch (Exception e) { - log.error(e.toString()); - break; - } - } - //Logging til db - for (Ident person : ansattePersoner) { - ansettelseLoggService.lagreAnsettelse(person, organisasjon, Double.parseDouble(parametere.get(STILLINGSPROSENT.value)), parametere.get(ARBEIDSFORHOLD_TYPE.value)); - } - } - ); - } - - private List hentOrganisasjoner(int antall) { - return tenorService.hentOrganisasjoner(antall); - } - - private List hentPersoner(String tidligsteFoedselsdato, String senesteFoedselsdato, String postnr) { - pdlService.setFrom(tidligsteFoedselsdato); - pdlService.setTo(senesteFoedselsdato); - pdlService.setPostnr(postnr); - return pdlService.getPersoner(); - } - - private boolean kanAnsettes(Double stillingsprosent, List arbeidsforholdList) { - - if (!arbeidsforholdList.isEmpty()) { - for (var arbeidsforhold : arbeidsforholdList) { - for (var arbeidsavtale : arbeidsforhold.getArbeidsavtaler()) { - if (arbeidsavtale.getBruksperiode().getTom() == null) { - stillingsprosent += arbeidsavtale.getStillingsprosent(); - if (stillingsprosent > 100) return false; - } - } - } - } - return true; - } - - private Optional ansettPerson(String ident, String orgnummer, String yrke, String stillingsprosent) { - return arbeidsforholdService.opprettArbeidsforhold(ident, orgnummer, yrke, stillingsprosent); - } - - private int getAntallAnsettelserHverOrg(int antallPers, int antallOrg) { - //Kan implementere mer tilfeldig fordelig, foreløpig får alle organisasjonene like mange folk - return antallPers / antallOrg; - } - - private int tilfeldigTall(int max) { - Random random = new Random(); - return random.nextInt(max); - } - - private String hentTilfeldigYrkeskode(List yrkeskoder) { - return yrkeskoder.get(tilfeldigTall(yrkeskoder.size())); - } - - private String konverterPostnr(String postnr) { - return postnr.charAt(0) + "???"; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/PdlService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/PdlService.java deleted file mode 100644 index 063eccf13aa..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/PdlService.java +++ /dev/null @@ -1,153 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; - -import com.fasterxml.jackson.databind.JsonNode; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.PdlConsumer; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.TagsConsumer; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.TagsDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.Ident; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.SokPersonVariables; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.provider.PdlMiljoer; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -@Slf4j -@Service -@Getter -@Setter -@RequiredArgsConstructor -public class PdlService { - private final PdlConsumer pdlConsumer; - private int resultsPerPage = 100; - private String from; - private String to; - private String postnr; - private final TagsConsumer tagsConsumer; - - /** - * Lager SokPersonVariabler som matcher filterene man vil basere søket på, og henter personer fra PDL som - * oppfyller kravene. I tillegg filtreres vekk personer som er i bruk andre steder enn Testnorge - * - * @return En liste med identer for personene som matcher søk-variablene - */ - public List getPersoner() { - - var sokPersonVariables = lagSokPersonVariables( - tilfeldigPageNumber(getSokPersonPages()), - resultsPerPage, - from, - to, - postnr); - - var node = pdlConsumer.getSokPerson(sokPersonVariables.lagSokPersonPaging(), - sokPersonVariables.lagSokPersonCriteria(), - PdlMiljoer.Q2) - .block(); - - var identer = new ArrayList(); - - assert node != null; - node.get("data").get("sokPerson").findValues("identer").forEach( - hit -> hit.forEach( - ident -> { - if (ident.get("gruppe").asText().equals("FOLKEREGISTERIDENT")) { - identer.add(new Ident(ident.get("ident").asText(), ident.get("gruppe").asText())); - } - } - ) - ); - return harBareTestnorgeTags(identer); - } - - /** - * Sjekker om personene kun brukes i Testnorge - * - * @param personer Ident-liste med personer man vil sjekke - * @return En liste med Ident-objekter som oppfyller kravet - */ - private List harBareTestnorgeTags(List personer) { - - var identer = new ArrayList(); - personer.forEach(person -> identer.add(person.getIdent())); - var tagsDTO = hentTags(identer); - - for (var id : tagsDTO.getPersonerTags().entrySet()) { - List value = id.getValue(); - if (!(value.size() == 1 && value.getFirst().contains("TESTNORGE"))) { - String iden = id.getKey(); - personer.removeIf(ide -> ide.getIdent().equals(iden)); - } - } - return personer; - } - - /** - * Henter ut antall sider med ett treff per side fra PDL slik at man - * kan hente et tilfeldig sidetall å hente personer fra - * - * @return Antallet sider med kun ett treff per side fra PDL - */ - private int getSokPersonPages() { - - SokPersonVariables sokPersonVariablesEnPage = SokPersonVariables - .builder() - .pageNumber(1) - .resultsPerPage(1) - .from(from) - .to(to) - .postnr(postnr) - .build(); - JsonNode node = pdlConsumer.getSokPersonPages(sokPersonVariablesEnPage.lagSokPersonPaging(), - sokPersonVariablesEnPage.lagSokPersonCriteria(), - PdlMiljoer.Q2) - .block(); - - assert node != null; - int pages = node.get("data").get("sokPerson").findValues("totalPages").getFirst().asInt() / resultsPerPage; - return (pages == 0) ? 1 : pages; - } - - /** - * @param totalPages Maks-antall - * @return Et tilfeldig tall mellom 1 og opgitt maks-antall - */ - private int tilfeldigPageNumber(int totalPages) { - Random random = new Random(); - return random.nextInt(totalPages); - } - - /** - * Bygger et SokPersonVariables-objekt med de oppgitte parameterene som brukes til å filtrere spørringen mot PDl - * - * @param pageNumber Sidetallet resultatene skal hentes fra - * @param resultsPerPage Antall treff per side - * @param from Tidligste dato for alders-intervallet det skal søkes på - * @param to Seneste dato for alders-intervallet det skal søkes på - * @param postnr Postnummer det skal søkes på - * @return SokPersonVariables-objekt basert på parameterene - */ - private SokPersonVariables lagSokPersonVariables(int pageNumber, int resultsPerPage, String from, String to, String postnr) { - return SokPersonVariables - .builder() - .pageNumber(pageNumber) - .resultsPerPage(resultsPerPage) - .from(from) - .to(to) - .postnr(postnr) - .build(); - } - - /** - * @param identer Liste med identnummere - * @return TagsDTO for hver ident i identer-listen - */ - private TagsDTO hentTags(List identer) { - return tagsConsumer.hentTags(identer); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/TenorService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/TenorService.java deleted file mode 100644 index 782e4138423..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/TenorService.java +++ /dev/null @@ -1,121 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; - -import com.fasterxml.jackson.databind.JsonNode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.TenorConsumer; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.AdresseDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDetaljerDTO; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOversiktOrganisasjonResponse; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonSelectOptions.OrganisasjonForm.BEDR; - -@Slf4j -@Service -@RequiredArgsConstructor -public class TenorService { - private final TenorConsumer tenorConsumer; - - /** - * Henter organisasjon- og postnummere fra Tenor, og bygger et OrganisasjonDTO-objekt - * med orgnummer og postnummer per organisasjon som hentes - * - * @param antall Antall organisasjoner man vil hente - * @return Returnerer en liste med OrganisasjonDTO-objekter - */ - public List hentOrganisasjoner(int antall) { - List orgNummere = hentOrgNummere(antall); - List organisasjoner = new ArrayList<>(); - orgNummere.forEach( - orgNummer -> organisasjoner.add(OrganisasjonDTO.builder() - .organisasjonsnummer(orgNummer) - .organisasjonDetaljer(OrganisasjonDetaljerDTO.builder() - .forretningsadresser(List.of(AdresseDTO.builder() - .postnummer(hentOrgPostnummer(orgNummer)) - .build())) - .build()) - .build()) - ); - return organisasjoner; - } - - /** - * - * @return TenorOrganisasjonRequest-objekt med organisasjonsform-koden "BEDR" - * for å kun hente organisasjoner som kan ha ansettelser - */ - private TenorOrganisasjonRequest lagOrganisasjonOversiktRequest() { - return TenorOrganisasjonRequest.builder() - .organisasjonsform(TenorOrganisasjonRequest.Organisasjonsform.builder() - .kode(BEDR) - .build()) - .build(); - } - - /** - * Lager et TenorOrganisasjonRequest-objekt som skal sendes til Tenor for å hente brregKildedata - * - * @param organisasjonsnummer Organisasjonsnummeret til den organisasjonen det skal lages request for - * @return TenorOrganisasjonRequest-objekt med det innsendte organisasjonsnummeret - */ - private TenorOrganisasjonRequest lagOrganisasjonRequest(String organisasjonsnummer) { - return TenorOrganisasjonRequest.builder() - .organisasjonsnummer(organisasjonsnummer) - .build(); - } - - /** - * Henter tilfeldige organisasjoner fra Tenor - * - * @param antall Antall organisasjoner som skal hentes - * @return TenorOversiktOrganisasjonResponse-objekt med tilfeldige organisasjoner fra Tenor - */ - private TenorOversiktOrganisasjonResponse hentOrganisasjonerOversikt(int antall) { - return tenorConsumer.hentOrganisasjonerOversikt(lagOrganisasjonOversiktRequest(), String.valueOf(antall)); - } - - /** - * Omgjør listen med response-objekter fra Tenor til en liste med kun de tilsvarende organisasjonsnummerne - * - * @param antall Antall organisasjoner som skal hentes - * @return Liste med organisasjonsnummere for det gitte antallet organisasjoner - */ - private List hentOrgNummere(int antall) { - List organisasjoner = hentOrganisasjonerOversikt(antall).getData().getOrganisasjoner(); - List orgNummere = new ArrayList<>(); - organisasjoner.forEach( - org -> orgNummere.add(org.getOrganisasjonsnummer()) - ); - return orgNummere; - } - - /** - * Henter all organisasjonsdata for det oppgitte organisasjonsnummeret fra Tenor, - * slik at man får tak i postnummer fra brregKildedata - * - * @param organisasjonsnummer Organisasjonsnummeret til organisasjonen man vil hente data for - * @return TenorOversiktOrganisasjonResponse-objekt med all informasjon - */ - private TenorOversiktOrganisasjonResponse hentOrganisasjon(String organisasjonsnummer) { - return tenorConsumer.hentOrganisasjon(lagOrganisasjonRequest(organisasjonsnummer)); - } - - /** - * @param organisasjonsnummer Organisasjonsnummeret til organisasjonen man vil hente postnummer for - * @return Postnummeret til organisasjonen i String-format eller null dersom brregKildedata er null - */ - public String hentOrgPostnummer(String organisasjonsnummer) { - TenorOversiktOrganisasjonResponse orgResponse = hentOrganisasjon(organisasjonsnummer); - JsonNode brregKildedata = orgResponse.getData().getOrganisasjoner().getFirst().getBrregKildedata(); - if (!brregKildedata.isNull()) { - return brregKildedata.get("forretningsadresse").get("postnummer").toString().replace("\"", ""); - } - return null; - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AlderspennList.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AlderspennList.java deleted file mode 100644 index 35934735a0e..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AlderspennList.java +++ /dev/null @@ -1,37 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.util; - -import lombok.Getter; -import lombok.Setter; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.DatoIntervall; - -import java.time.LocalDate; -import java.util.List; - -/** - * Classe for å initialere alderspennlisten for sannsynlighetsfordelingen - */ -@Getter -@Setter -public class AlderspennList { - /* Tallene er funnet fra: https://www.ssb.no/arbeid-og-lonn/sysselsetting/statistikk/antall-arbeidsforhold-og-lonn - i tabell 1 */ - public static final List sannsynlighetFordeling = List.of(434106.0, 1022448.0, 976833.0, 563804.0, 72363.0); - - private static final List> alderListe = List.of( - List.of(18, 24), - List.of(25, 39), - List.of(40, 54), - List.of(55, 66), - List.of(67, 72) - ); - - public List getDatointervaller() { - - return alderListe.stream() - .map(aldersspenn -> DatoIntervall.builder() - .tom(LocalDate.now().minusYears(aldersspenn.getFirst())) - .from(LocalDate.now().minusYears(aldersspenn.getLast())) - .build()) - .toList(); - } -} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AliasMethod.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AliasMethod.java deleted file mode 100644 index 4755fc2af4a..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AliasMethod.java +++ /dev/null @@ -1,89 +0,0 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.util; - -import lombok.extern.slf4j.Slf4j; - -import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -/** - * Alias metode for å sette opp en alias tabell, for å gjøre utrekk fra en sannsynlighetsfordeling. - * les - */ -@Slf4j -public class AliasMethod { - - private static final Random RANDOM = new SecureRandom(); - private final List sannsynlighet; - private final List q; - private final List j; - /** - * Metoden for å sette opp alias tabellen. - * @param prob Er listen av tall som utgjør en sannsynlighetsfordeling. Denne behøver ikke å være normalisert - */ - public AliasMethod(List prob) { - - sannsynlighet = new ArrayList(); - q = new ArrayList(); - j = new ArrayList(); - - //Finne summen av sannsynlighetsfordeling for så normalisere sannsynligheten - var sum = prob.stream().mapToDouble(i -> i).sum(); - - for(Double i: prob) { - sannsynlighet.add(i / sum); - } - - int size = prob.size(); - - //initialisere q og j - // # TODO gjøre dette bedre - for(int i=0; i(); - var storre = new ArrayList(); - - //Legge til i mindre hvis q[i] er mindre enn 1 og i større hvis ikke - for (int i = 0; i < sannsynlighet.size(); i++) { - q.set(i, sannsynlighet.size() * sannsynlighet.get(i)); - if (q.get(i) < 1.0) - mindre.add(i); - else - storre.add(i); - } - while (!mindre.isEmpty() && !storre.isEmpty()) { - Integer liten = mindre.removeLast(); - Integer stor = storre.removeLast(); - - j.set(liten, stor); - q.set(stor, q.get(stor) - (1.0 - q.get(liten))); - - if (q.get(stor) < 1.0) - mindre.add(stor); - else - storre.add(stor); - - } - } - - /** - * Metode for å gjøre selve trekkingen fra alias tabellen. - * @return Returnerer indeksen fra sannsynlighetsfordelingen som har blitt trukket. - */ - public int aliasDraw() { - int k = j.size(); - int nextInt = RANDOM.nextInt(k); - - double sjekk = RANDOM.nextDouble(); - if (sjekk < q.get(nextInt)) - return nextInt; - else - return j.get(nextInt); - } -} - diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java similarity index 83% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java index c355ad3a629..af85ef82344 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse; +package no.nav.testnav.levendearbeidsforholdansettelse; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/ApplicationConfig.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/ApplicationConfig.java similarity index 76% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/ApplicationConfig.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/ApplicationConfig.java index 048db8ea6e8..cdfc25cd18a 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/ApplicationConfig.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/ApplicationConfig.java @@ -1,15 +1,17 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.config; +package no.nav.testnav.levendearbeidsforholdansettelse.config; import no.nav.testnav.libs.servletcore.config.ApplicationCoreConfig; import no.nav.testnav.libs.standalone.servletsecurity.config.InsecureJwtServerToServerConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import org.springframework.scheduling.annotation.EnableAsync; @Configuration @Import({ ApplicationCoreConfig.class, InsecureJwtServerToServerConfiguration.class }) +@EnableAsync public class ApplicationConfig { } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/Consumers.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/Consumers.java similarity index 94% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/Consumers.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/Consumers.java index 56485834e4d..3f65bb53e29 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/Consumers.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/Consumers.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.config; +package no.nav.testnav.levendearbeidsforholdansettelse.config; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/DevConfig.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/DevConfig.java similarity index 94% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/DevConfig.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/DevConfig.java index e3ef191048a..18bb9580a1e 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/DevConfig.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/DevConfig.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.config; +package no.nav.testnav.levendearbeidsforholdansettelse.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/JsonMapperConfig.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/JsonMapperConfig.java new file mode 100644 index 00000000000..629216eda4a --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/JsonMapperConfig.java @@ -0,0 +1,110 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.config; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.json.JsonMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.YearMonth; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; + +import static org.apache.commons.lang3.StringUtils.isBlank; + +@Configuration +public class JsonMapperConfig { + + private static final String YEAR_MONTH = "yyyy-MM"; + + @Bean + public ObjectMapper objectMapper() { + + var simpleModule = new SimpleModule() + .addDeserializer(LocalDateTime.class, new DollyLocalDateTimeDeserializer()) + .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ISO_DATE_TIME)) + .addDeserializer(LocalDate.class, new DollyLocalDateDeserializer()) + .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_DATE)) + .addDeserializer(YearMonth.class, new DollyYearMonthDeserializer()) + .addSerializer(YearMonth.class, new YearMonthSerializer(DateTimeFormatter.ofPattern(YEAR_MONTH))) + .addDeserializer(ZonedDateTime.class, new DollyZonedDateTimeDeserializer()) + .addSerializer(ZonedDateTime.class, new ZonedDateTimeSerializer(DateTimeFormatter.ISO_DATE_TIME)); + return JsonMapper + .builder() + .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true) + .configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) + .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS) + .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) + .build() + .registerModule(new JavaTimeModule()) + .registerModule(simpleModule); + + } + + private static class DollyYearMonthDeserializer extends JsonDeserializer { + + @Override + public YearMonth deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JsonNode node = jsonParser.getCodec().readTree(jsonParser); + if (isBlank(node.asText())) { + return null; + } + return YearMonth.parse(node.asText(), DateTimeFormatter.ofPattern(YEAR_MONTH)); + } + } + + private static class DollyZonedDateTimeDeserializer extends JsonDeserializer { + + @Override + public ZonedDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JsonNode node = jsonParser.getCodec().readTree(jsonParser); + if (isBlank(node.asText())) { + return null; + } + return ZonedDateTime.parse(node.asText(), DateTimeFormatter.ISO_DATE_TIME); + } + } + + private static class DollyLocalDateDeserializer extends JsonDeserializer { + + @Override + public LocalDate deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JsonNode node = jsonParser.getCodec().readTree(jsonParser); + if (isBlank(node.asText())) { + return null; + } + var dateTime = node.asText().length() > 10 ? node.asText().substring(0, 10) : node.asText(); + return LocalDate.parse(dateTime); + } + } + + private static class DollyLocalDateTimeDeserializer extends JsonDeserializer { + + @Override + public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JsonNode node = jsonParser.getCodec().readTree(jsonParser); + if (isBlank(node.asText())) { + return null; + } + var dateTime = node.asText().length() > 19 ? node.asText().substring(0, 19) : node.asText(); + return dateTime.length() > 10 ? LocalDateTime.parse(dateTime) : LocalDate.parse(dateTime).atStartOfDay(); + } + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/OpenApiConfig.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/OpenApiConfig.java similarity index 96% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/OpenApiConfig.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/OpenApiConfig.java index 8b71c18d28f..366834bcc32 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/OpenApiConfig.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/OpenApiConfig.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.config; +package no.nav.testnav.levendearbeidsforholdansettelse.config; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/SecurityConfig.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/SecurityConfig.java similarity index 87% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/SecurityConfig.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/SecurityConfig.java index debab3d43b6..0f287cc8b54 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/config/SecurityConfig.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/SecurityConfig.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.config; +package no.nav.testnav.levendearbeidsforholdansettelse.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -6,6 +6,7 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -33,6 +34,7 @@ public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Excepti .permitAll() .requestMatchers("/api/**") .fullyAuthenticated()) + .headers(headers -> headers.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable)) .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); return httpSecurity.build(); diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/AaregConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/AaregConsumer.java similarity index 55% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/AaregConsumer.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/AaregConsumer.java index 59e07a2e291..5531a2f78b6 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/AaregConsumer.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/AaregConsumer.java @@ -1,9 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.config.Consumers; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.aareg.HentArbeidsforholdCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.aareg.OpprettArbeidsforholdCommand; +import no.nav.testnav.levendearbeidsforholdansettelse.config.Consumers; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.aareg.HentArbeidsforholdCommand; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.aareg.OpprettArbeidsforholdCommand; import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; @@ -11,9 +11,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; - -import java.util.List; -import java.util.Optional; +import reactor.core.publisher.Flux; @Slf4j @Component @@ -36,21 +34,16 @@ public AaregConsumer( .build(); } - public List hentArbeidsforhold(String ident) { + public Flux hentArbeidsforhold(String ident) { - return tokenExchange.exchange(serverProperties) - .flatMapMany(token -> new HentArbeidsforholdCommand(webClient, token.getTokenValue(), ident).call()) - .collectList() - .block(); + return Flux.from(tokenExchange.exchange(serverProperties) + .flatMapMany(token -> new HentArbeidsforholdCommand(webClient, token.getTokenValue(), ident).call())); } - public Optional opprettArbeidsforhold(Arbeidsforhold requests) { + public Flux opprettArbeidsforhold(Arbeidsforhold requests) { - return tokenExchange.exchange(serverProperties) + return Flux.from(tokenExchange.exchange(serverProperties) .flatMap(token -> new OpprettArbeidsforholdCommand(webClient, requests, token.getTokenValue()).call()) - .map(resultat -> Optional.of(resultat) - .map(ResponseEntity::getStatusCode)) - .block(); + .map(ResponseEntity::getStatusCode)); } -} - +} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java similarity index 93% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java index a06b432461e..52599728527 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.experimental.UtilityClass; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java similarity index 86% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java index 7a01f63480f..58ab931b0bd 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java @@ -1,9 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.config.Consumers; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.kodeverk.KodeverkServiceCommand; +import no.nav.testnav.levendearbeidsforholdansettelse.config.Consumers; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.kodeverk.KodeverkServiceCommand; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; import org.springframework.stereotype.Component; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/PdlConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/PdlConsumer.java similarity index 51% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/PdlConsumer.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/PdlConsumer.java index 5044b26064a..78a55461bd8 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/PdlConsumer.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/PdlConsumer.java @@ -1,24 +1,29 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers; -import com.fasterxml.jackson.databind.JsonNode; +import io.netty.channel.ChannelOption; +import io.netty.channel.epoll.EpollChannelOption; import lombok.extern.slf4j.Slf4j; import lombok.val; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.config.Consumers; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl.SokPersonCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl.SokPersonPagesCommand; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.provider.PdlMiljoer; +import no.nav.testnav.levendearbeidsforholdansettelse.config.Consumers; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.pdl.SokPersonCommand; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.PdlPersonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; +import no.nav.testnav.levendearbeidsforholdansettelse.provider.PdlMiljoer; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; import org.springframework.core.io.ClassPathResource; +import org.springframework.http.client.reactive.ReactorClientHttpConnector; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; -import reactor.core.publisher.Mono; +import reactor.core.publisher.Flux; +import reactor.netty.http.client.HttpClient; +import reactor.netty.resources.ConnectionProvider; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.time.Duration; import java.util.stream.Collectors; import static java.nio.charset.StandardCharsets.UTF_8; @@ -39,26 +44,26 @@ public PdlConsumer( serverProperties = consumers.getPdlProxy(); this.tokenService = tokenService; webClient = webClientBuilder - .baseUrl(serverProperties.getUrl()) - .build(); + .baseUrl(serverProperties.getUrl()) + .clientConnector( + new ReactorClientHttpConnector( + HttpClient + .create(ConnectionProvider.builder("PDL connections") + .maxConnections(10) + .pendingAcquireMaxCount(10000) + .pendingAcquireTimeout(Duration.ofSeconds(30)) + .build()))) + .build(); } - public Mono getSokPerson( + public Flux getSokPerson( GraphqlVariables.Paging paging, GraphqlVariables.Criteria criteria, PdlMiljoer pdlMiljoe) { - return tokenService.exchange(serverProperties) - .flatMap((AccessToken token) -> new SokPersonCommand(webClient, paging, criteria, token.getTokenValue(), pdlMiljoe) - .call()); - } - public Mono getSokPersonPages( - GraphqlVariables.Paging paging, - GraphqlVariables.Criteria criteria, - PdlMiljoer pdlMiljoe) { return tokenService.exchange(serverProperties) - .flatMap((AccessToken token) -> new SokPersonPagesCommand(webClient, paging, criteria, token.getTokenValue(), pdlMiljoe) - .call()); + .flatMapMany((AccessToken token) -> new SokPersonCommand(webClient, paging, criteria, + token.getTokenValue(), pdlMiljoe).call()); } public static String hentQueryResource(String pathResource) { diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/TenorConsumer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/TenorConsumer.java new file mode 100644 index 00000000000..cd36369f24d --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/TenorConsumer.java @@ -0,0 +1,83 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.consumers; + +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdansettelse.config.Consumers; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.tenor.HentOrganisasjonCommand; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.OrganisasjonResponseDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; +import no.nav.testnav.libs.securitycore.domain.ServerProperties; +import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Flux; + +import java.util.Collection; + +import static java.util.Objects.nonNull; +import static no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonSelectOptions.OrganisasjonForm.BEDR; +import static org.apache.commons.lang3.StringUtils.isNotBlank; + +@Slf4j +@Component +public class TenorConsumer { + + private final WebClient webClient; + private final TokenExchange tokenExchange; + private final ServerProperties serverProperties; + + + public TenorConsumer( + TokenExchange tokenExchange, + Consumers consumers) { + + this.serverProperties = consumers.getTestnavTenorSearchService(); + this.tokenExchange = tokenExchange; + + this.webClient = WebClient + .builder() + .baseUrl(serverProperties.getUrl()) + .build(); + } + + public Flux hentOrganisasjon() { + + return tokenExchange.exchange(serverProperties) + .flatMapMany(token -> new HentOrganisasjonCommand(webClient, token.getTokenValue(), + TenorOrganisasjonRequest.builder() + .organisasjonsform(TenorOrganisasjonRequest.Organisasjonsform.builder() + .kode(BEDR) + .build()) + .build()) + .call()) + .doOnNext(resultat -> log.info("Hentet fra Tenorsøk: {} ", resultat)) + .map(resultat -> OrganisasjonResponseDTO.builder() + .orgnummer(resultat.getData().getOrganisasjoner().stream() + .map(OrganisasjonDTO.Organisasjon::getOrganisasjonsnummer) + .findFirst().orElse(null)) + .postnummer(resultat.getData().getOrganisasjoner().stream() + .map(OrganisasjonDTO.Organisasjon::getTenorRelasjoner) + .map(OrganisasjonDTO.TenorRelasjoner::getBrregErFr) + .flatMap(Collection::stream) + .map(TenorConsumer::getPostnummer) + .findFirst().orElse(null)) + .build()); + } + + private static String getPostnummer(OrganisasjonDTO.BrregTrivia brregTrivia) { + + String postnummer; + + if (nonNull(brregTrivia.getForretningsadresse())) { + postnummer = brregTrivia.getForretningsadresse().getPostnummer(); + + } else if (nonNull(brregTrivia.getPostadresse())) { + postnummer = brregTrivia.getPostadresse().getPostnummer(); + + } else { + postnummer = null; + } + + return isNotBlank(postnummer) ? postnummer : "0000"; + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java similarity index 96% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java index 922a4398f92..1d5fb53956a 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.aareg; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.aareg; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java similarity index 94% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java index d298c0068db..76edef8cfb4 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.aareg; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.aareg; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java similarity index 94% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java index 706c5406e3d..bc6475d720e 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.kodeverk; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.kodeverk; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java similarity index 60% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java index 444272140a6..86de6010e25 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.pdl; import lombok.Builder; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java similarity index 68% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java index f2a87b7a58f..c8e8aff85b2 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java @@ -1,15 +1,15 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.pdl; -import com.fasterxml.jackson.databind.JsonNode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; - -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.provider.PdlMiljoer; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.PdlPersonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; +import no.nav.testnav.levendearbeidsforholdansettelse.provider.PdlMiljoer; import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClientResponseException; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.util.retry.Retry; @@ -18,16 +18,16 @@ import java.util.UUID; import java.util.concurrent.Callable; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.pdl.TemaGrunnlag.GEN; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.DOLLY; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.HEADER_NAV_CONSUMER_ID; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl.PdlHeaders.HEADER_NAV_CALL_ID; -import static no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.PdlConsumer.hentQueryResource; +import static no.nav.testnav.levendearbeidsforholdansettelse.consumers.PdlConsumer.hentQueryResource; +import static no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.pdl.TemaGrunnlag.GEN; +import static no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.DOLLY; +import static no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.HEADER_NAV_CALL_ID; +import static no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.CommonKeysAndUtils.HEADER_NAV_CONSUMER_ID; import static org.springframework.http.HttpHeaders.AUTHORIZATION; @Slf4j @RequiredArgsConstructor -public class SokPersonCommand implements Callable> { +public class SokPersonCommand implements Callable> { private static final String TEMA = "Tema"; private static final String GRAPHQL_URL = "/graphql"; @@ -41,7 +41,7 @@ public class SokPersonCommand implements Callable> { private final PdlMiljoer pdlMiljoe; @Override - public Mono call() { + public Flux call() { return webClient .post() @@ -58,7 +58,7 @@ public Mono call() { .fromValue(new GraphQLRequest(hentQueryResource(SOK_PERSON_QUERY), Map.of("paging", paging, "criteria", criteria)))) .retrieve() - .bodyToMono(JsonNode.class) + .bodyToFlux(PdlPersonDTO.class) .doOnError(WebClientFilter::logErrorMessage) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)) diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java new file mode 100644 index 00000000000..c9add72ccdc --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java @@ -0,0 +1,6 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.pdl; + +public enum TemaGrunnlag { + + GEN, PEN +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java similarity index 66% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java index 9d404f56226..1df86b11ddf 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java @@ -1,14 +1,14 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.command.tenor; +package no.nav.testnav.levendearbeidsforholdansettelse.consumers.command.tenor; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor.TenorOversiktOrganisasjonResponse; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.OrganisasjonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor.TenorOrganisasjonRequest; import no.nav.testnav.libs.reactivecore.utils.WebClientFilter; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; -import reactor.core.publisher.Mono; +import reactor.core.publisher.Flux; import reactor.util.retry.Retry; import java.time.Duration; @@ -16,7 +16,7 @@ @Slf4j @RequiredArgsConstructor -public class HentOrganisasjonCommand implements Callable> { +public class HentOrganisasjonCommand implements Callable> { private static final String PATH = "/api/v1/tenor/testdata/organisasjoner"; private final WebClient webClient; @@ -25,7 +25,7 @@ public class HentOrganisasjonCommand implements Callable call() { + public Flux call() { return webClient .post() @@ -36,7 +36,7 @@ public Mono call() { .header("Authorization", "Bearer " + token) .body(BodyInserters.fromValue(tenorOrgRequest)) .retrieve() - .bodyToMono(TenorOversiktOrganisasjonResponse.class) + .bodyToFlux(OrganisasjonDTO.class) .retryWhen(Retry.backoff(3, Duration.ofSeconds(5)) .filter(WebClientFilter::is5xxException)); } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/AnsettelseController.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/AnsettelseController.java similarity index 82% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/AnsettelseController.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/AnsettelseController.java index c4f8a9d88d8..ef3abc46f3c 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/AnsettelseController.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/AnsettelseController.java @@ -1,8 +1,8 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.controller; +package no.nav.testnav.levendearbeidsforholdansettelse.controller; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.AnsettelseService; +import no.nav.testnav.levendearbeidsforholdansettelse.service.AnsettelseService; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/LoggController.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/LoggController.java similarity index 83% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/LoggController.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/LoggController.java index a7439989573..3e369388a0d 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/LoggController.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/LoggController.java @@ -1,9 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.controller; +package no.nav.testnav.levendearbeidsforholdansettelse.controller; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.AnsettelseLogg; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.LoggService; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.service.LoggService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/ParameterController.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/ParameterController.java similarity index 88% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/ParameterController.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/ParameterController.java index 131c6c4535e..36f8962dac3 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/controller/ParameterController.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/controller/ParameterController.java @@ -1,11 +1,11 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.controller; +package no.nav.testnav.levendearbeidsforholdansettelse.controller; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameter; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.service.ParameterService; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameter; +import no.nav.testnav.levendearbeidsforholdansettelse.service.ParameterService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/DatoIntervall.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/DatoIntervall.java new file mode 100644 index 00000000000..e72a24c941e --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/DatoIntervall.java @@ -0,0 +1,18 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DatoIntervall { + + private LocalDate tom; + private LocalDate fom; +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java similarity index 87% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java index d8c91273a52..cc57d9f8b3f 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/ArbeidsforholdDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/ArbeidsforholdDTO.java new file mode 100644 index 00000000000..d615aa9e8f6 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/ArbeidsforholdDTO.java @@ -0,0 +1,19 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ArbeidsforholdDTO { + + private String ident; + private List arbeidsforhold; +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java similarity index 84% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java index 9773e5f83f5..a8b36bb448b 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/KanAnsettesDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/KanAnsettesDTO.java new file mode 100644 index 00000000000..8cdd38b773f --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/KanAnsettesDTO.java @@ -0,0 +1,19 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KanAnsettesDTO { + + private String ident; + private String orgnummer; + private boolean kanAnsettes; + private Integer antallEksisterendeArbeidsforhold; +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java similarity index 85% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java index cedd9b678b3..afa13947b9c 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java new file mode 100644 index 00000000000..08240c9b8e9 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java @@ -0,0 +1,83 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +import static java.util.Objects.isNull; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrganisasjonDTO { + + private Data data; + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Data { + + private List organisasjoner; + + public List getOrganisasjoner() { + + if (isNull(organisasjoner)) { + organisasjoner = new ArrayList<>(); + } + return organisasjoner; + } + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Organisasjon { + + private String organisasjonsnummer; + private TenorRelasjoner tenorRelasjoner; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class TenorRelasjoner { + + private List brregErFr; + + public List getBrregErFr() { + + if (isNull(brregErFr)) { + brregErFr = new ArrayList<>(); + } + return brregErFr; + } + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class BrregTrivia { + + private Adresse forretningsadresse; + private Adresse postadresse; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Adresse { + + private String postnummer; + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java similarity index 86% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java index bd8a488572d..da4014cd8d5 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.dto; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonResponseDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonResponseDTO.java new file mode 100644 index 00000000000..a391dbffc3b --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonResponseDTO.java @@ -0,0 +1,16 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrganisasjonResponseDTO { + + private String orgnummer; + private String postnummer; +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PdlPersonDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PdlPersonDTO.java new file mode 100644 index 00000000000..f07c3fddfd5 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PdlPersonDTO.java @@ -0,0 +1,142 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import no.nav.testnav.libs.data.pdlforvalter.v1.BostedadresseDTO; +import no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO; +import no.nav.testnav.libs.data.pdlforvalter.v1.FoedselsdatoDTO; +import no.nav.testnav.libs.data.pdlforvalter.v1.OppholdsadresseDTO; + +import java.util.ArrayList; +import java.util.List; + +import static java.util.Objects.isNull; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PdlPersonDTO { + + private Data data; + + public enum Gruppe {AKTORID, FOLKEREGISTERIDENT, NPID} + + @lombok.Data + @NoArgsConstructor + @AllArgsConstructor + public static class Data { + + private SokPerson sokPerson; + } + + @lombok.Data + @NoArgsConstructor + @AllArgsConstructor + public static class SokPerson { + + private List hits; + + public List getHits() { + + if (isNull(hits)) { + hits = new ArrayList<>(); + } + return hits; + } + } + + @lombok.Data + @NoArgsConstructor + @AllArgsConstructor + public static class Hit { + + private List identer; + private Person person; + + public List getIdenter() { + + if (isNull(identer)) { + identer = new ArrayList<>(); + } + return identer; + } + } + + @lombok.Data + @NoArgsConstructor + @AllArgsConstructor + public static class Ident { + + private String ident; + private Gruppe gruppe; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Person { + + private List navn; + private List foedselsdato; + private List folkeregisteridentifikator; + private List bostedsadresse; + private List oppholdsadresse; + + public List getNavn() { + + if (isNull(navn)) { + navn = new ArrayList<>(); + } + return navn; + } + + public List getFoedselsdato() { + + if (isNull(foedselsdato)) { + foedselsdato = new ArrayList<>(); + } + return foedselsdato; + } + + public List getFolkeregisteridentifikator() { + + if (isNull(folkeregisteridentifikator)) { + folkeregisteridentifikator = new ArrayList<>(); + } + return folkeregisteridentifikator; + } + + public List getBostedsadresse() { + if (isNull(bostedsadresse)) { + bostedsadresse = new ArrayList<>(); + } + return bostedsadresse; + } + + public List getOppholdsadresse() { + if (isNull(oppholdsadresse)) { + oppholdsadresse = new ArrayList<>(); + } + return oppholdsadresse; + } + + @lombok.Data + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + public static class Folkeregisteridentifikator extends DbVersjonDTO { + + private String identifikasjonsnummer; + private String type; + private String status; + + public boolean isIBRUK() { + return "I_BRUK".equals(status); + } + } + } +} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PersonRequestDTO.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PersonRequestDTO.java new file mode 100644 index 00000000000..5adaf0f09a0 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PersonRequestDTO.java @@ -0,0 +1,17 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.DatoIntervall; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PersonRequestDTO { + + private DatoIntervall intervall; + private String postnr; +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java similarity index 93% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java index c629756f0b0..e6f7a06d40b 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.kodeverk; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.kodeverk; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java similarity index 87% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java index 59ab6367878..c96bc4c7a71 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.kodeverk; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.kodeverk; public enum KodeverkNavn { YRKER ("Yrker"), diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java similarity index 74% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java index 1a0bc967feb..76eb90c4696 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.kodeverk; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.kodeverk; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java similarity index 62% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java index 76d0307fc74..1bef891b489 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl; import lombok.experimental.UtilityClass; @@ -6,5 +6,6 @@ public final class CommonKeysAndUtils { public static final String HEADER_NAV_CONSUMER_ID = "Nav-Consumer-Id"; + public static final String HEADER_NAV_CALL_ID = "Nav-Call-Id"; public static final String DOLLY = "Dolly"; } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java similarity index 75% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java index 6cf84fdc4b8..af054bfa72b 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java @@ -1,30 +1,28 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl; import lombok.*; +import lombok.Data; import java.util.List; import java.util.Map; +@Data @Builder -@Getter -@Setter @NoArgsConstructor public class GraphqlVariables { + @Data @Builder - @Getter - @Setter @NoArgsConstructor @AllArgsConstructor public static class Filter { private String fieldName; - private Map searchRule; + private Map searchRule; } + @Data @Builder - @Getter - @Setter @NoArgsConstructor @AllArgsConstructor public static class Paging{ @@ -32,18 +30,16 @@ public static class Paging{ private int resultsPerPage; } + @Data @Builder - @Getter - @Setter @NoArgsConstructor @AllArgsConstructor public static class Criteria{ private List and; } + @Data @Builder - @Getter - @Setter @NoArgsConstructor @AllArgsConstructor public static class Root{ diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Request.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/Request.java similarity index 71% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Request.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/Request.java index a6e12c0ba99..ccc1b5be17b 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Request.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/pdl/Request.java @@ -1,17 +1,18 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.pdl; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl; import lombok.AllArgsConstructor; import lombok.Builder; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Value; import java.util.Map; -@Value +@Data @Builder @AllArgsConstructor @NoArgsConstructor(force = true) public class Request { + private String query; private Map variables; } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java new file mode 100644 index 00000000000..73009a41d2e --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java @@ -0,0 +1,24 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TenorOrganisasjonRequest { + + private Organisasjonsform organisasjonsform; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Organisasjonsform { + + private TenorOrganisasjonSelectOptions.OrganisasjonForm kode; + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java new file mode 100644 index 00000000000..6761fe3aafb --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java @@ -0,0 +1,16 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +public class TenorOrganisasjonSelectOptions { + + @Getter + @AllArgsConstructor + public enum OrganisasjonForm { + BEDR("Underenhet til næringsdrivende og offentlig forvaltning"); + + + private final String label; + } +} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java similarity index 93% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java index 28bc91e470f..f7c5ecd6cb6 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.domain.tenor; +package no.nav.testnav.levendearbeidsforholdansettelse.domain.tenor; import com.fasterxml.jackson.databind.JsonNode; import lombok.AllArgsConstructor; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java similarity index 87% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java index 8a14d2326e5..a7bb270114e 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java @@ -1,15 +1,17 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity; +package no.nav.testnav.levendearbeidsforholdansettelse.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Builder; +import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -20,8 +22,7 @@ import java.time.LocalDate; import java.time.OffsetDateTime; -@Getter -@Setter +@Data @Builder @NoArgsConstructor @AllArgsConstructor @@ -29,7 +30,8 @@ @Table(name = "ansettelse_logg") public class AnsettelseLogg { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq") + @SequenceGenerator(name = "seq", sequenceName = "ansettelse_logg_id_seq", allocationSize = 1) @Column(name = "id", nullable = false) private Integer id; @@ -56,7 +58,7 @@ public class AnsettelseLogg { private String arbeidsforholdType; @Column(name = "stillingsprosent") - private BigDecimal stillingsprosent; + private Integer stillingsprosent; @Override public boolean equals(Object o) { diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameter.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameter.java similarity index 94% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameter.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameter.java index 6dad33500ba..d0bd958c483 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameter.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameter.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity; +package no.nav.testnav.levendearbeidsforholdansettelse.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java similarity index 81% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java index 1305ab10950..428fc4894d1 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity; +package no.nav.testnav.levendearbeidsforholdansettelse.entity; public enum JobbParameterNavn { ANTALL_ORGANISASJONER ("antallOrganisasjoner"), diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/provider/PdlMiljoer.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/provider/PdlMiljoer.java new file mode 100644 index 00000000000..8aa339eafe4 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/provider/PdlMiljoer.java @@ -0,0 +1,5 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.provider; + +public enum PdlMiljoer { + Q1, Q2 + } \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java similarity index 65% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java index a60dd5feb75..b1407856edb 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java @@ -1,6 +1,6 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository; +package no.nav.testnav.levendearbeidsforholdansettelse.repository; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; import org.springframework.data.repository.CrudRepository; import java.util.List; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/LoggRepository.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/LoggRepository.java similarity index 50% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/LoggRepository.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/LoggRepository.java index 9ff58517749..0159dc3608b 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/LoggRepository.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/LoggRepository.java @@ -1,6 +1,6 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository; +package no.nav.testnav.levendearbeidsforholdansettelse.repository; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; import org.springframework.data.repository.PagingAndSortingRepository; public interface LoggRepository extends PagingAndSortingRepository { diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/ParameterRepository.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/ParameterRepository.java similarity index 55% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/ParameterRepository.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/ParameterRepository.java index c8b02e3aa20..a4e5d29920e 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/repository/ParameterRepository.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/repository/ParameterRepository.java @@ -1,6 +1,6 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository; +package no.nav.testnav.levendearbeidsforholdansettelse.repository; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameter; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameter; import org.springframework.data.repository.CrudRepository; import java.util.List; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java new file mode 100644 index 00000000000..f5c59ad428f --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java @@ -0,0 +1,43 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.KanAnsettesDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.repository.AnsettelseLoggRepository; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.util.Map; + +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ARBEIDSFORHOLD_TYPE; +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.STILLINGSPROSENT; + +/** + * Klasse for å lagre ansedttelsene som har blir gjort i ansettelse_ligg db. + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class AnsettelseLoggService { + + private final AnsettelseLoggRepository ansettelseLoggRepository; + + /** + * Funksjonen som lagrer ansettelsen i db + * @param kanAnsette inneholder ident og orgnummer + * @param parametere Stillingsprosent og arbeidsavtalarbeidsforholdType til personen. + */ + public AnsettelseLogg lagreAnsettelse(KanAnsettesDTO kanAnsette, Map parametere){ + + return ansettelseLoggRepository.save(AnsettelseLogg.builder() + .folkeregisterident(kanAnsette.getIdent()) + .organisasjonsnummer(kanAnsette.getOrgnummer()) + .timestamp(OffsetDateTime.now()) + .arbeidsforholdType(parametere.get(ARBEIDSFORHOLD_TYPE.value)) + .stillingsprosent(Integer.parseInt(parametere.get(STILLINGSPROSENT.value))) + .ansattfra(LocalDate.now()) + .build()); + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseService.java new file mode 100644 index 00000000000..d3102a88ce2 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseService.java @@ -0,0 +1,181 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.TenorConsumer; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.DatoIntervall; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.ArbeidsforholdDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.KanAnsettesDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.OrganisasjonResponseDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.PdlPersonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.kodeverk.KodeverkNavn; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn; +import no.nav.testnav.levendearbeidsforholdansettelse.utility.SannsynlighetVelger; +import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsavtale; +import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; +import org.springframework.http.HttpStatusCode; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import reactor.core.publisher.Flux; + +import java.util.List; +import java.util.Map; +import java.util.Random; + +import static java.util.Objects.isNull; +import static java.util.Objects.nonNull; +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ANTALL_ORGANISASJONER; +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ANTALL_PERSONER; +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.ARBEIDSFORHOLD_TYPE; +import static no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameterNavn.STILLINGSPROSENT; +import static org.apache.commons.lang3.StringUtils.isNumeric; + +@Slf4j +@Service +@RequiredArgsConstructor +public class AnsettelseService { + + private final PdlService pdlService; + private final TenorConsumer tenorConsumer; + private final ArbeidsforholdService arbeidsforholdService; + private final ParameterService parameterService; + private final KodeverkService kodeverkService; + private final AnsettelseLoggService ansettelseLoggService; + + @Async + public void runAnsettelseService() { + + Thread thread = new Thread(this::ansettelseService); + thread.start(); + try { + thread.join(3_500_000); //Timeout etter 3000 sekunder + if (thread.isAlive()) { + thread.interrupt(); + log.info("Timeout occurred"); + } + } catch (InterruptedException e) { + log.info("Timet ut"); + } + } + + @Transactional + public void ansettelseService() { + + var startTime = System.currentTimeMillis(); + + //Henter parametere fra db + var parametere = parameterService.hentParametere(); + log.info("Startet oppretting av {} personer i {} organisasjoner", parametere.get("antallPersoner"), + parametere.get("antallOrganisasjoner")); + + //Henter yrkeskoder for å gi tilfeldige yrker + var yrkeskoder = kodeverkService.hentKodeverkValues(KodeverkNavn.YRKER.value); + if (yrkeskoder.isEmpty()) { + return; + } + + //Initialiserer liste over alderspenn og liste med tidligste og seneste gyldig dato for ansttelse + var datoIntervaller = SannsynlighetVelger.getDatointervaller(); + + //Kjører ansettelse per org + Flux.range(0, (int) getParameterValue(parametere, ANTALL_ORGANISASJONER)) + .flatMap(count -> tenorConsumer.hentOrganisasjon()) + .flatMap(organisasjon -> sjekkOgSendinnArbeidsforhold(organisasjon, parametere, yrkeskoder, datoIntervaller)) + .collectList() + .subscribe(status -> log.info("Oppretting ferdig, antall ansettelser {}, medgått tid {} sekunder", status.size(), + (System.currentTimeMillis() - startTime) / 1000)); + } + + private Flux sjekkOgSendinnArbeidsforhold(OrganisasjonResponseDTO organisasjon, Map parametere, + List yrkeskoder, List datointervaller) { + + return Flux.fromIterable(getFordeling(parametere).entrySet()) + .flatMap(intervall -> Flux.range(0, intervall.getValue()) + .flatMap(index -> getPersonSomKanAnsettes((int) getParameterValue(parametere, STILLINGSPROSENT), + datointervaller.get(intervall.getKey()), organisasjon) + .flatMap(kanAnsettes -> ansettPerson(kanAnsettes, hentTilfeldigYrkeskode(yrkeskoder), parametere) + .doOnNext(status -> log.info("Opprettet arbeidsforhold orgnummer {}, ident {}, status {}", + kanAnsettes.getOrgnummer(), kanAnsettes.getIdent(), status)) + .map(status -> + ansettelseLoggService.lagreAnsettelse(kanAnsettes, parametere))))); + } + + private Flux getPersonSomKanAnsettes(Integer stillingsprosent, DatoIntervall intervall, + OrganisasjonResponseDTO organisasjon) { + + return getArbeidsforhold(intervall, organisasjon.getPostnummer()) + .map(arbeidsforhold1 -> Flux.fromIterable(arbeidsforhold1.getArbeidsforhold()) + .map(Arbeidsforhold::getArbeidsavtaler) + .flatMap(Flux::fromIterable) + .filter(arbeidsavtale -> nonNull(arbeidsavtale.getBruksperiode()) && + isNull(arbeidsavtale.getBruksperiode().getTom())) + .map(Arbeidsavtale::getStillingsprosent) + .reduce(0, (a, b) -> (int) (a + b)) + .map(sum -> sum + stillingsprosent <= 100) + .map(done -> { + if (done) { + return Flux.just(KanAnsettesDTO.builder() + .ident(arbeidsforhold1.getIdent()) + .orgnummer(organisasjon.getOrgnummer()) + .kanAnsettes(true) + .antallEksisterendeArbeidsforhold(arbeidsforhold1.getArbeidsforhold().size()) + .build()); + } else { + return getPersonSomKanAnsettes(stillingsprosent, intervall, organisasjon); + } + })) + .flatMap(Flux::from) + .flatMap(Flux::from); + } + + private Flux getArbeidsforhold(DatoIntervall datoIntervall, String postnummer) { + + return pdlService.getPerson(datoIntervall, postnummer) + .flatMap(person -> Flux.fromIterable(person.getFolkeregisteridentifikator()) + .filter(PdlPersonDTO.Person.Folkeregisteridentifikator::isIBRUK) + .map(PdlPersonDTO.Person.Folkeregisteridentifikator::getIdentifikasjonsnummer)) + .flatMap(ident -> arbeidsforholdService.getArbeidsforhold(ident) + .collectList() + .map(arbeidforhold -> ArbeidsforholdDTO.builder() + .ident(ident) + .arbeidsforhold(arbeidforhold) + .build())); + } + + private Flux ansettPerson(KanAnsettesDTO arbeidsforhold, String yrke, + Map parametere) { + + return arbeidsforholdService.opprettArbeidsforhold(arbeidsforhold, yrke, + (String) getParameterValue(parametere, ARBEIDSFORHOLD_TYPE), + (int) getParameterValue(parametere, STILLINGSPROSENT)); + } + + private static int getAntallAnsettelserIHverOrg(Map parametere) { + + //Kan implementere mer tilfeldig fordelig, foreløpig får alle organisasjonene like mange folk + return (int) getParameterValue(parametere, ANTALL_PERSONER) / + (int) getParameterValue(parametere, ANTALL_ORGANISASJONER); + } + + private int tilfeldigTall(int max) { + Random random = new Random(); + return random.nextInt(max); + } + + private String hentTilfeldigYrkeskode(List yrkeskoder) { + return yrkeskoder.get(tilfeldigTall(yrkeskoder.size())); + } + + private static Object getParameterValue(Map parametere, JobbParameterNavn parameterNavn) { + + var parameter = parametere.get(parameterNavn.value); + return isNumeric(parameter) ? Integer.parseInt(parameter) : parameter; + } + + private Map getFordeling(Map parametre) { + + return SannsynlighetVelger.getFordeling(getAntallAnsettelserIHverOrg(parametre)); + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java similarity index 55% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java index 278d39953aa..47046d00f12 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java @@ -1,8 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; +package no.nav.testnav.levendearbeidsforholdansettelse.service; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.AaregConsumer; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.AaregConsumer; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.KanAnsettesDTO; import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Ansettelsesperiode; import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Arbeidsforhold; import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.OrdinaerArbeidsavtale; @@ -11,13 +12,12 @@ import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.Person; import org.springframework.http.HttpStatusCode; import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.util.List; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicInteger; @Slf4j @Service @@ -26,7 +26,6 @@ public class ArbeidsforholdService { private static final String arbeidstakerType = "Person"; private static final String arbeidsgiverType = "Organisasjon"; - private static final String arbeidsforholdType = "ordinaertArbeidsforhold"; //#TODO KAN BLI HENTET FRA DB private static final String arbeidstidsordning = "ikkeSkift"; private static final String ansettelsesform = "fast"; private static final double TIMER_HUNDRE_PROSENT = 37.5; @@ -38,48 +37,46 @@ public class ArbeidsforholdService { * @param ident Identnummeret til personen det skal hentes arbeidsforhold for * @return Liste med arbeidsforhold */ - public List hentArbeidsforhold(String ident) { + public Flux getArbeidsforhold(String ident) { + return aaregConsumer.hentArbeidsforhold(ident); } /** * Oppretter arbeidsforhold via aaregConsumer * - * @param ident Identnummeret til personen det skal opprettes arbeidsforhold for - * @param orgnummer Organisasjonsnummeret til organisasjonen personen skal ansettes i - * @param yrke Yrkeskoden til yrket personen skal ansettes med + * @param kanAnsettes ident og orgnummer + * @param yrke Yrkeskoden til yrket personen skal ansettes med * @param stillingsprosent Stillinsprosenten arbeidsforholdet skal ha * @return HttpStatusCode basert på resultatet av spørringen */ - public Optional opprettArbeidsforhold(String ident, String orgnummer, String yrke, String stillingsprosent) { - return aaregConsumer.opprettArbeidsforhold(lagArbeidsforhold(ident, orgnummer, yrke, stillingsprosent)); - } + public Flux opprettArbeidsforhold(KanAnsettesDTO kanAnsettes, String yrke, + String arbeidsforholdstype, Integer stillingsprosent) { + return aaregConsumer.opprettArbeidsforhold(lagArbeidsforhold(kanAnsettes, yrke, arbeidsforholdstype, stillingsprosent)); + } /** * Bygger et rbeidsforhold-objekt basert på parameterene * - * @param ident Identnummeret til personen det skal opprettes arbeidsforhold for - * @param orgnummer Organisasjonsnummeret til organisasjonen personen skal ansettes i - * @param yrke Yrkeskoden til yrket personen skal ansettes med - * @param prosent Stillinsprosenten arbeidsforholdet skal ha + * @param kanAnsettes ident og orgnummer + * @param yrke Yrkeskoden til yrket personen skal ansettes med + * @param prosent Stillinsprosenten arbeidsforholdet skal ha * @return Et Arbeidsforhold-objekt basert på parameterene */ - private Arbeidsforhold lagArbeidsforhold(String ident, String orgnummer, String yrke, String prosent) { + private Arbeidsforhold lagArbeidsforhold(KanAnsettesDTO kanAnsettes, String yrke, String arbeidsforholdType, Integer prosent) { - var arbeidsforholdList = hentArbeidsforhold(ident); - var stillingsprosent = Double.parseDouble(prosent); - var antallTimerPrUke = BigDecimal.valueOf(TIMER_HUNDRE_PROSENT*stillingsprosent/HUNDRE_PROSENT).setScale(1, RoundingMode.HALF_UP).doubleValue(); - var arbeidsforholdId = new AtomicInteger(arbeidsforholdList.size()); + var stillingsprosent = (double) prosent; + var antallTimerPrUke = BigDecimal.valueOf(TIMER_HUNDRE_PROSENT * stillingsprosent / HUNDRE_PROSENT).setScale(1, RoundingMode.HALF_UP).doubleValue(); return Arbeidsforhold.builder() - .arbeidsforholdId(Integer.toString(arbeidsforholdId.incrementAndGet())) + .arbeidsforholdId(Integer.toString(kanAnsettes.getAntallEksisterendeArbeidsforhold() + 1)) .arbeidstaker(Person.builder() - .offentligIdent(ident) + .offentligIdent(kanAnsettes.getIdent()) .type(arbeidstakerType) .build()) .arbeidsgiver(Organisasjon.builder() - .organisasjonsnummer(orgnummer) + .organisasjonsnummer(kanAnsettes.getOrgnummer()) .type(arbeidsgiverType) .build()) .type(arbeidsforholdType) @@ -89,12 +86,12 @@ private Arbeidsforhold lagArbeidsforhold(String ident, String orgnummer, String .build()) .build()) .arbeidsavtaler(List.of(OrdinaerArbeidsavtale.builder() - .antallTimerPrUke(antallTimerPrUke) - .arbeidstidsordning(arbeidstidsordning) - .stillingsprosent(stillingsprosent) - .yrke(yrke) - .ansettelsesform(ansettelsesform) - .sistStillingsendring(LocalDate.now()) + .antallTimerPrUke(antallTimerPrUke) + .arbeidstidsordning(arbeidstidsordning) + .stillingsprosent(stillingsprosent) + .yrke(yrke) + .ansettelsesform(ansettelsesform) + .sistStillingsendring(LocalDate.now()) .build())) .build(); } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/KodeverkService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/KodeverkService.java similarity index 78% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/KodeverkService.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/KodeverkService.java index b63754dbab8..82344771753 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/KodeverkService.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/KodeverkService.java @@ -1,8 +1,8 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; +package no.nav.testnav.levendearbeidsforholdansettelse.service; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.consumers.KodeverkServiceConsumer; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.KodeverkServiceConsumer; import org.springframework.stereotype.Service; import java.util.List; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/LoggService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/LoggService.java similarity index 73% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/LoggService.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/LoggService.java index b15e231573c..1e6a225f1f4 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/LoggService.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/LoggService.java @@ -1,9 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; +package no.nav.testnav.levendearbeidsforholdansettelse.service; import lombok.RequiredArgsConstructor; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.AnsettelseLogg; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository.AnsettelseLoggRepository; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository.LoggRepository; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.AnsettelseLogg; +import no.nav.testnav.levendearbeidsforholdansettelse.repository.AnsettelseLoggRepository; +import no.nav.testnav.levendearbeidsforholdansettelse.repository.LoggRepository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ParameterService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ParameterService.java similarity index 87% rename from apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ParameterService.java rename to apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ParameterService.java index 81f945110ad..d5ffbeaf19a 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/ParameterService.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/ParameterService.java @@ -1,9 +1,9 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse.service; +package no.nav.testnav.levendearbeidsforholdansettelse.service; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.entity.JobbParameter; -import no.nav.registre.testnorge.levendearbeidsforholdansettelse.repository.ParameterRepository; +import no.nav.testnav.levendearbeidsforholdansettelse.entity.JobbParameter; +import no.nav.testnav.levendearbeidsforholdansettelse.repository.ParameterRepository; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/PdlService.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/PdlService.java new file mode 100644 index 00000000000..5c671b8c5b4 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/PdlService.java @@ -0,0 +1,106 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdansettelse.consumers.PdlConsumer; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.DatoIntervall; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.dto.PdlPersonDTO; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.pdl.GraphqlVariables; +import no.nav.testnav.levendearbeidsforholdansettelse.provider.PdlMiljoer; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; + +import java.security.SecureRandom; +import java.util.List; +import java.util.Map; +import java.util.Random; + +import static java.util.Objects.nonNull; + +@Slf4j +@Service +@RequiredArgsConstructor +public class PdlService { + + private static final Random RANDOM = new SecureRandom(); + + private final PdlConsumer pdlConsumer; + + /** + * Lager SokPersonVariabler som matcher filterene man vil basere søket på, og henter personer fra PDL som + * oppfyller kravene. I tillegg filtreres vekk personer som er i bruk andre steder enn Testnorge + * + * @return En liste med identer for personene som matcher søk-variablene + */ + + public Flux getPerson(DatoIntervall datoIntervall, String postnummer) { + + return pdlConsumer.getSokPerson(lagSokPersonPaging(1), + lagSokPersonCriteria(datoIntervall, postnummer), + PdlMiljoer.Q2) + .map(PdlPersonDTO::getData) + .filter(data -> nonNull(data.getSokPerson())) + .map(PdlPersonDTO.Data::getSokPerson) + .map(PdlPersonDTO.SokPerson::getHits) + .flatMap(Flux::fromIterable) + .map(PdlPersonDTO.Hit::getPerson); + } + + private GraphqlVariables.Criteria lagSokPersonCriteria(DatoIntervall intervall, String postnummer) { + + GraphqlVariables.Filter filterBostedPostnr = GraphqlVariables.Filter.builder() + .fieldName("person.bostedsadresse.vegadresse.postnummer") + .searchRule(Map.of("wildcard", wildcharPostnummer(postnummer))) + .build(); + + GraphqlVariables.Filter filterOppholdPostnr = GraphqlVariables.Filter.builder() + .fieldName("person.oppholdsadresse.vegadresse.postnummer") + .searchRule(Map.of("wildcard", wildcharPostnummer(postnummer))) + .build(); + + GraphqlVariables.Filter filterFoedselsdato = GraphqlVariables.Filter.builder() + .fieldName("person.foedselsdato.foedselsdato") + .searchRule(Map.of("from", intervall.getFom(), + "to", intervall.getTom())) + .build(); + + GraphqlVariables.Filter random = GraphqlVariables.Filter.builder() + .fieldName("random") + .searchRule(Map.of("random", RANDOM.nextFloat())) + .build(); + + GraphqlVariables.Filter testnorge = GraphqlVariables.Filter.builder() + .fieldName("tags") + .searchRule(Map.of("contains", "TESTNORGE")) + .build(); + + GraphqlVariables.Filter dolly = GraphqlVariables.Filter.builder() + .fieldName("tags") + .searchRule(Map.of("contains", "DOLLY")) + .build(); + + GraphqlVariables.Filter arenasynt = GraphqlVariables.Filter.builder() + .fieldName("tags") + .searchRule(Map.of("contains", "ARENASYNT")) + .build(); + + var or = Map.of("or", List.of(filterBostedPostnr, filterOppholdPostnr)); + var not = Map.of("not", List.of(dolly, arenasynt)); + var and = List.of(testnorge, not, or, filterFoedselsdato, random); + + return GraphqlVariables.Criteria.builder().and(and).build(); + } + + private GraphqlVariables.Paging lagSokPersonPaging(Integer antall) { + + return GraphqlVariables.Paging.builder() + .pageNumber(0) + .resultsPerPage(antall) + .build(); + } + + private static String wildcharPostnummer(String postnummer) { + + return postnummer.charAt(0) + "???"; + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/utility/SannsynlighetVelger.java b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/utility/SannsynlighetVelger.java new file mode 100644 index 00000000000..723692c929a --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/utility/SannsynlighetVelger.java @@ -0,0 +1,112 @@ +package no.nav.testnav.levendearbeidsforholdansettelse.utility; + +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdansettelse.domain.DatoIntervall; + +import java.security.SecureRandom; +import java.time.LocalDate; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; + +import static java.util.Objects.nonNull; + +/** + * Utility for å initialere alderspennlisten for sannsynlighetsfordelingen + */ +@Slf4j +@UtilityClass +public class SannsynlighetVelger { + + /* Tallene er funnet fra: https://www.ssb.no/arbeid-og-lonn/sysselsetting/statistikk/antall-arbeidsforhold-og-lonn + i tabell 1 */ + + private static final Integer antallAlder18to24 = 434106; + private static final Integer antallAlder25to39 = 1022448; + private static final Integer antallAlder40to54 = 976833; + private static final Integer antallAlder55to66 = 563804; + private static final Integer antallAlder67to72 = 72363; + + private static final List ALDERSDISTRIBUSJON = List.of(antallAlder18to24, antallAlder25to39, + antallAlder40to54, antallAlder55to66, antallAlder67to72); + private static final Integer SUMMERT = ALDERSDISTRIBUSJON.stream() + .mapToInt(Integer::intValue) + .sum(); + + private static final Random RANDOM = new SecureRandom(); + private static final Double propabilityAlder18to24 = (double) antallAlder18to24 / SUMMERT; + private static final Double propabilityAlder25to39 = (double) antallAlder25to39 / SUMMERT; + private static final Double propabilityAlder40to54 = (double) antallAlder40to54 / SUMMERT; + private static final Double propabilityAlder55to66 = (double) antallAlder55to66 / SUMMERT; + private static final Double propabilityAlder67to72 = (double) antallAlder67to72 / SUMMERT; + + private static final List> alderListe = List.of( + List.of(18, 24), + List.of(25, 39), + List.of(40, 54), + List.of(55, 66), + List.of(67, 72) + ); + + public static List getDatointervaller() { + + return alderListe.stream() + .map(aldersspenn -> DatoIntervall.builder() + .tom(LocalDate.now().minusYears(aldersspenn.getFirst())) + .fom(LocalDate.now().minusYears(aldersspenn.getLast())) + .build()) + .toList(); + } + + private static int getRandomIntervall() { + + var random = RANDOM.nextDouble(); + if (random < propabilityAlder18to24) { + return 0; + } else if (random < propabilityAlder18to24 + propabilityAlder25to39) { + return 1; + } else if (random < propabilityAlder18to24 + propabilityAlder25to39 + propabilityAlder40to54) { + return 2; + } else if (random < propabilityAlder18to24 + propabilityAlder25to39 + propabilityAlder40to54 + propabilityAlder55to66) { + return 3; + } else { + return 4; + } + } + + public static Map getFordeling(int antall) { + + var fordeling = new HashMap(); + + for (var i = 0; i < antall; i++) { + + var intervall = getRandomIntervall(); + if (fordeling.containsKey(intervall)) { + fordeling.put(intervall, fordeling.get(intervall) + 1); + } else { + fordeling.put(intervall, 1); + } + } + + log.info("Stokastisk fordeling {}", new StringBuilder() + .append("alder 18-24 antall: ") + .append(pretty(fordeling.get(0))) + .append(", alder 25-39 antall: ") + .append(pretty(fordeling.get(1))) + .append(", alder 40-54 antall: ") + .append(pretty(fordeling.get(2))) + .append(", alder 55-66 antall: ") + .append(pretty(fordeling.get(3))) + .append(", alder 67-72 antall: ") + .append(pretty(fordeling.get(4)))); + + return fordeling; + } + + private static Integer pretty(Integer value) { + + return nonNull(value) ? value : 0; + } +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application-dev.yml b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application-dev.yml index 5f4930e0c17..9d072801244 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application-dev.yml +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application-dev.yml @@ -9,6 +9,10 @@ spring: username: sa password: driverClassName: org.h2.Driver + sql: + init: + mode: always + data-locations: classpath:/db/migration/h2-default-config.sql consumers: testnav-kodeverk-service: diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml index bf6af3ed035..b1858ad73ad 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml @@ -41,6 +41,9 @@ management: metrics: export: enabled: true + health: + elasticsearch: + enabled: false server: servlet: encoding: diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/V1.1.0__AddIndexes.sql b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/V1.1.0__AddIndexes.sql new file mode 100644 index 00000000000..3ede534c6ae --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/V1.1.0__AddIndexes.sql @@ -0,0 +1,9 @@ +----------------------------------- +-- C R E A T E I N D E C I E S -- +----------------------------------- + +CREATE INDEX IF NOT EXISTS ansettelse_logg_ident + ON ansettelse_logg (folkeregisterident); + +CREATE INDEX IF NOT EXISTS ansettelse_logg_orgnummer + ON ansettelse_logg (organisasjonsnummer); diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/h2-default-config.sql b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/h2-default-config.sql new file mode 100644 index 00000000000..965a7f1d344 --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/h2-default-config.sql @@ -0,0 +1,8 @@ +-- Default verdier for kjøring med H2 + +insert into jobb_parameter values('stillingsprosent','Stillingsprosent','80','{20,30,40,50,60,70,80,90,100}'); +insert into jobb_parameter values('intervall','Intervall for neste kjøring (timer)','1','{1,5,12,24,168}'); +insert into jobb_parameter values('antallOrganisasjoner','Antall Organisasjoner','1','{1,5,10,15,20,25,30,35,40,45,50}'); +insert into jobb_parameter values('antallPersoner','Antall Personer','1','{1,10,15,20,25,30,35,40,45,50,1001}'); +insert into jobb_parameter values('arbeidsforholdType','Arbeidsforhold Type','ordinaertArbeidsforhold','{forenkletOppgjoersordning,frilanserOppdragstakerHonorarPersonerMm,maritimtArbeidsforhold,ordinaertArbeidsforhold}'); +commit; \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPerson.graphql b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPerson.graphql index 180aa5b1af7..9c468cddee6 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPerson.graphql +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPerson.graphql @@ -1,10 +1,6 @@ query($paging: Paging, $criteria: [Criterion]) { sokPerson(paging: $paging, criteria: $criteria) { hits { - identer { - ident - gruppe - } person { navn(historikk: false) { fornavn @@ -13,6 +9,7 @@ query($paging: Paging, $criteria: [Criterion]) { } foedselsdato { foedselsaar + foedselsdato } bostedsadresse { vegadresse{ @@ -32,6 +29,10 @@ query($paging: Paging, $criteria: [Criterion]) { postnummer } } + folkeregisteridentifikator{ + identifikasjonsnummer + status + } } } } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPersonPages.graphql b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPersonPages.graphql deleted file mode 100644 index f22e299e8ea..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPersonPages.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query($paging: Paging, $criteria: [Criterion]) { - sokPerson(paging: $paging, criteria: $criteria) { - totalPages - hits { - identer { - ident - gruppe - } - } - } -} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java b/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java similarity index 86% rename from apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java rename to apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java index e92f6371d26..569b084d2ac 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java +++ b/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java @@ -1,4 +1,4 @@ -package no.nav.registre.testnorge.levendearbeidsforholdansettelse; +package no.nav.testnav.levendearbeidsforholdansettelse; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplication.java b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplication.java index 667144588eb..a0399e40693 100644 --- a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplication.java +++ b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplication.java @@ -9,5 +9,4 @@ public class LevendeArbeidsforholdSchedulerApplication { public static void main(String[] args) { SpringApplication.run(LevendeArbeidsforholdSchedulerApplication.class, args); } - } \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/consumer/AnsettelseConsumer.java b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/consumer/AnsettelseConsumer.java index 045b50aecf2..374d3b6458d 100644 --- a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/consumer/AnsettelseConsumer.java +++ b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/consumer/AnsettelseConsumer.java @@ -6,6 +6,7 @@ import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; @Component public class AnsettelseConsumer { @@ -24,10 +25,9 @@ public AnsettelseConsumer(Consumers consumers, .build(); } - public void hentFraAnsettelse() { + public Mono opprettAnsettelser() { - tokenExchange.exchange(serverProperties) - .flatMap(token -> new AnsettelsesCommand(webClient, token.getTokenValue()).call()) - .block(); + return tokenExchange.exchange(serverProperties) + .flatMap(token -> new AnsettelsesCommand(webClient, token.getTokenValue()).call()); } } diff --git a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/AnsettelsesService.java b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/AnsettelsesService.java deleted file mode 100644 index fbd168de3d2..00000000000 --- a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/AnsettelsesService.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.testnav.levendearbeidsforholdscheduler.scheduler; - -import lombok.RequiredArgsConstructor; -import no.nav.testnav.levendearbeidsforholdscheduler.consumer.AnsettelseConsumer; -import org.springframework.stereotype.Service; - -@Service -@RequiredArgsConstructor -public class AnsettelsesService { - - private final AnsettelseConsumer ansettelseConsumer; - - public void hent(){ - ansettelseConsumer.hentFraAnsettelse(); - } -} diff --git a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/JobbScheduler.java b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/JobbScheduler.java index 56432d9e08d..9d9280ad9ef 100644 --- a/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/JobbScheduler.java +++ b/apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/JobbScheduler.java @@ -2,6 +2,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.levendearbeidsforholdscheduler.consumer.AnsettelseConsumer; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.stereotype.Component; @@ -13,6 +14,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; +import static java.util.Objects.nonNull; import static no.nav.testnav.levendearbeidsforholdscheduler.utils.Utils.beregnEkstraDelayNaa; import static no.nav.testnav.levendearbeidsforholdscheduler.utils.Utils.hentKalender; @@ -32,15 +34,17 @@ public class JobbScheduler { private static final int SLUTT_DAG = 6; private static final long INITIELL_FORSINKELSE = 0; - private final AnsettelsesService ansettelsesService; + private final AnsettelseConsumer ansettelseConsumer; private final ScheduledExecutorService taskScheduler; /** * Funksjon som brukes for å sjekke om scheduleren kjører for øyeblikket + * * @return true hvis scheduler kjører for øyeblikket */ - public boolean hentStatusKjorer(){ - if (scheduledFuture != null) { + public boolean hentStatusKjorer() { + + if (nonNull(scheduledFuture)) { return !(scheduledFuture.state() == Future.State.CANCELLED); } else { @@ -50,30 +54,33 @@ public boolean hentStatusKjorer(){ /** * Henter ut dato og tid for neste gang scheduleren skal kjøre en jobb + * * @return tidspunktet, då lenge det er en scheduler som er aktiv for øyeblikket */ - public Optional hentTidspunktNesteKjoring(){ + public Optional hentTidspunktNesteKjoring() { + + if (nonNull(scheduledFuture)) { - if (scheduledFuture != null) { - long delayIMillisekunder = scheduledFuture.getDelay(TimeUnit.MILLISECONDS); - long nesteKjoringMillisekunder = beregnNesteKjoring(delayIMillisekunder); + var delayIMillisekunder = scheduledFuture.getDelay(TimeUnit.MILLISECONDS); + var nesteKjoringMillisekunder = beregnNesteKjoring(delayIMillisekunder); - Date datoForNesteKjoring = new Date(nesteKjoringMillisekunder); + var datoForNesteKjoring = new Date(nesteKjoringMillisekunder); return Optional.of(datoForNesteKjoring.toString()); + } else { return Optional.empty(); } - } /** * Avslutter eventuelt nåværende schedule og starter en ny med det nye intervallet. + * * @param intervall Positivt heltall som representerer times-intervall for scheduler * @return true hvis aktivering av scheduler med ansettelse-jobb var vellykket */ - public boolean startScheduler(long intervall){ + public boolean startScheduler(long intervall) { - if (scheduledFuture != null) { + if (nonNull(scheduledFuture)) { scheduledFuture.cancel(true); } @@ -85,10 +92,12 @@ public boolean startScheduler(long intervall){ /** * Funksjon som stopper den nåværende/kjørende jobben + * * @return true hvis jobben ble stoppet vellykket */ - public boolean stoppScheduler(){ - if (scheduledFuture != null) { + public boolean stoppScheduler() { + + if (nonNull(scheduledFuture)) { scheduledFuture.cancel(true); return scheduledFuture.isCancelled(); @@ -99,15 +108,17 @@ public boolean stoppScheduler(){ /** * Funksjon som validerer om angitt tidspunkt er innenfor et gitt tidsrom for en vilkårlig uke. * Brukes i forbindelse med å ikke kjøre AnsettelseJobb-klassen på gitte-tidspunkter i helgen for eksempel. + * * @param startKlokka Tall som representerer timen i en 24-timers klokke for klokkeslett på start for gyldig tidsrom - * @param startDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom + * @param startDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom * @param sluttKlokka Tall som representerer timen i en 24-timers klokke for klokkeslett på start for gyldig tidsrom - * @param sluttDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom + * @param sluttDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom * @param klokkeslett Tall som representerer timen i en 24-timers klokke for nåværende tidspunkt - * @param idag Tall som representerer dagen i uken i en 24-timers klokke + * @param idag Tall som representerer dagen i uken i en 24-timers klokke * @return true hvis angitt dag og klokkeslett er innenfor det gitte tidsrommet i en vilkårlig uke */ - public static boolean sjekkGyldigTidsrom(int startKlokka, int startDag, int sluttKlokka, int sluttDag, int klokkeslett, int idag){ + public static boolean sjekkGyldigTidsrom(int startKlokka, int startDag, int sluttKlokka, int sluttDag, int klokkeslett, int idag) { + return (startDag > sluttDag && (idag > startDag || idag < sluttDag)) //Ved ukes-skifte || (idag > startDag && idag < sluttDag) //Innad i samme uke || ((idag == startDag && klokkeslett >= startKlokka) //Samme dag, startdag @@ -117,17 +128,18 @@ public static boolean sjekkGyldigTidsrom(int startKlokka, int startDag, int slut /** * Funksjon som sjekker om nåværende tidspunkt med klokke-time og dag er innenfor gyldig tidsrom + * * @param startKlokka Tall som representerer timen i en 24-timers klokke for klokkeslett på start for gyldig tidsrom - * @param startDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom + * @param startDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom * @param sluttKlokka Tall som representerer timen i en 24-timers klokke for klokkeslett på start for gyldig tidsrom - * @param sluttDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom + * @param sluttDag Tall som representerer dag i uken fra 1-7 (man-søn) for start på gyldig tidsrom * @return true hvis nåværende dag og klokkeslett er innenfor det gitte tidsrommet i en vilkårlig uke */ - public boolean sjekkOmGyldigTidsromNaa(int startKlokka, int startDag, int sluttKlokka, int sluttDag){ + public boolean sjekkOmGyldigTidsromNaa(int startKlokka, int startDag, int sluttKlokka, int sluttDag) { - Calendar kalender = hentKalender(); - int klokkeslett = kalender.get(Calendar.HOUR_OF_DAY); //06:00 = 6, 13:00 = 13, 23:00 = 23 - int dag = ((kalender.get(Calendar.DAY_OF_WEEK) + 6) % 7); //Mandag = 1, Tirsag = 2 ... Søndag = 7 + var kalender = hentKalender(); + var klokkeslett = kalender.get(Calendar.HOUR_OF_DAY); //06:00 = 6, 13:00 = 13, 23:00 = 23 + var dag = ((kalender.get(Calendar.DAY_OF_WEEK) + 6) % 7); //Mandag = 1, Tirsag = 2 ... Søndag = 7 return sjekkGyldigTidsrom(startKlokka, startDag, sluttKlokka, sluttDag, klokkeslett, dag); } @@ -135,13 +147,15 @@ public boolean sjekkOmGyldigTidsromNaa(int startKlokka, int startDag, int sluttK /** * Funksjon som beregner timestamp/tidspunkt (med millisekunder som tidsenhet) for neste kjøring av nåværende * jobb + * * @param schedulerDelay Delay/forsinkelse scheduler har for kjøring av jobb * @return positivt heltall som representerer tidspunktet for neste kjøring i millisekunder */ - public long beregnNesteKjoring(long schedulerDelay){ - long nesteKjoringMillisekunder = System.currentTimeMillis() + schedulerDelay; + public long beregnNesteKjoring(long schedulerDelay) { - if (!sjekkOmGyldigTidsromNaa(START_KLOKKESLETT, START_DAG, SLUTT_KLOKKESLETT, SLUTT_DAG)){ + var nesteKjoringMillisekunder = System.currentTimeMillis() + schedulerDelay; + + if (!sjekkOmGyldigTidsromNaa(START_KLOKKESLETT, START_DAG, SLUTT_KLOKKESLETT, SLUTT_DAG)) { nesteKjoringMillisekunder = System.currentTimeMillis() + beregnEkstraDelayNaa(START_DAG, START_KLOKKESLETT); } return nesteKjoringMillisekunder; @@ -158,11 +172,12 @@ private class AnsettelseJobb implements Runnable { */ @Override public void run() { - if(sjekkOmGyldigTidsromNaa(START_KLOKKESLETT, START_DAG, SLUTT_KLOKKESLETT, SLUTT_DAG)){ - ansettelsesService.hent(); - } + if (sjekkOmGyldigTidsromNaa(START_KLOKKESLETT, START_DAG, SLUTT_KLOKKESLETT, SLUTT_DAG)) { + + ansettelseConsumer.opprettAnsettelser() + .subscribe(resultat -> log.info("Startet oppretting av ansettelser, status: %s".formatted(resultat))); + } } } - } diff --git a/apps/tenor-search-service/src/main/java/no/nav/testnav/apps/tenorsearchservice/service/TenorOrganisasjonSearchService.java b/apps/tenor-search-service/src/main/java/no/nav/testnav/apps/tenorsearchservice/service/TenorOrganisasjonSearchService.java index b1305e92f79..69d7502dd27 100644 --- a/apps/tenor-search-service/src/main/java/no/nav/testnav/apps/tenorsearchservice/service/TenorOrganisasjonSearchService.java +++ b/apps/tenor-search-service/src/main/java/no/nav/testnav/apps/tenorsearchservice/service/TenorOrganisasjonSearchService.java @@ -36,7 +36,7 @@ public Mono getTestdataOrganisasjon(TenorOrga var query = getOrganisasjonQuery(searchData); - return tenorClient.getOrganisasjonTestdata(query, InfoType.AlleFelter, 1, 0, 0) + return tenorClient.getOrganisasjonTestdata(query, InfoType.AlleFelter, null, null, null) .flatMap(resultat -> Mono.just(tenorOrganisasjonResultMapperService.mapOrganisasjon(resultat, query))); } diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/levendearbeidsforhold/v1/Arbeidsforhold.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/levendearbeidsforhold/v1/Arbeidsforhold.java index 47c562156ee..fc7cdabb3f0 100644 --- a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/levendearbeidsforhold/v1/Arbeidsforhold.java +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/levendearbeidsforhold/v1/Arbeidsforhold.java @@ -14,8 +14,11 @@ import no.nav.testnav.libs.dto.levendearbeidsforhold.v1.util.TimeUtil; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; +import static java.util.Objects.isNull; + @Getter @Setter @NoArgsConstructor @@ -122,4 +125,44 @@ public void setSistBekreftetAsString(String sistBekreftet) { public String toString() { return ("Arbeidsforhold: [" + navArbeidsforholdId + ", " + arbeidsforholdId + ", " + ansettelsesperiode + ", " + arbeidsavtaler); } + + public List getArbeidsavtaler() { + + if (isNull(arbeidsavtaler)) { + arbeidsavtaler = new ArrayList<>(); + } + return arbeidsavtaler; + } + + public List getPermisjonPermitteringer() { + + if (isNull(permisjonPermitteringer)) { + permisjonPermitteringer = new ArrayList<>(); + } + return permisjonPermitteringer; + } + + public List getAntallTimerForTimeloennet() { + + if (isNull(antallTimerForTimeloennet)) { + antallTimerForTimeloennet = new ArrayList<>(); + } + return antallTimerForTimeloennet; + } + + public List getUtenlandsopphold() { + + if (isNull(utenlandsopphold)) { + utenlandsopphold = new ArrayList<>(); + } + return utenlandsopphold; + } + + public List getVarsler() { + + if (isNull(varsler)) { + varsler = new ArrayList<>(); + } + return varsler; + } }