From e5881a837823359182baa8536a2af1d02c646ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristen=20H=C3=A6rum?= Date: Tue, 27 Aug 2024 14:37:24 +0200 Subject: [PATCH] Bugfix/levende arbeidsforhold (#3594) * **Refactor parameter handling and add logging** #deploy-dolly-frontend #deploy-levende-arbeidsforhold-scheduler #deploy-levende-arbeidsforhold-ansettelse Replaced JobbService with ParameterService for parameter management and added LoggService to handle logging operations in the application. This refactoring enhances the structure and maintainability of the services while improving traceability through logging. * **Improve error handling and add entity equality methods** #deploy-test-frontend #deploy-levende-arbeidsforhold-ansettelse #deploy-levenede-arbeidsforhold-scheduler Enhanced error handling in ParameterController by removing try-catch and ensuring HTTP OK status. Added equals and hashCode methods to AnsettelseLogg and JobbParameter for better entity management and comparison. * Remove AnsettelseLoggDTO and update Flyway config #deploy-levende-arbeidsforhold-ansettelse Deleted the unused AnsettelseLoggDTO class as part of code cleanup. Additionally, enabled the Flyway `baseline-on-migrate` option in application.yml to ensure proper database migration handling. * Refactor verdier type to List in JobbParameter #deploy-levende-arbeidsforhold-ansettelse Updated the 'verdier' field in JobbParameter from String to List to better align with data requirements. This change ensures that multiple values can be stored and managed effectively. * Change HTTP method from GET to POST in AnsettelsesCommand #deploy-levendearbeidsforhold-scheduler Updated the call method to use POST instead of GET for the "/api/v1/ansettelse" endpoint. This change is required to meet the API specifications and ensure proper data handling. * deploy #deploy-levende-arbeidsforhold-scheduler * Refactor schedulers and update controller mappings #deploy-levende-arbeidsforhold-scheduler #deploy-levende-arbeidsforhold-ansettelse Rearranged variable declarations in JobbScheduler.java for better readability. Changed REST endpoint mappings in JobbController.java from GET to PUT for starting and stopping the scheduler. Updated config files to include new applications and corrected existing rule entries. * Add version and logback config, update security URLs #deploy-levende-arbeidsforhold-scheduler Updated application version in application.yml to "1" and added logback-spring.xml for logging configuration. Also, modified SecurityConfig to refine request matchers and ensure proper authorization for "/api/**" endpoints. * Create RequestDTO and update controller logic #deploy-levende-arbeidsforhold-scheduler Introduced a new RequestDTO class to encapsulate request parameters for the scheduler. Refactored JobbController to accept this DTO and streamlined scheduler handling logic, replacing ResponseEntity with a simpler string return and incorporating exceptions for invalid input. Finally, adjusted client-side code to align with updated endpoint mappings. * Rename interval to intervall in RequestDTO #deploy-levende-arbeidsforhold-scheduler Updated the RequestDTO field from 'interval' to 'intervall' to ensure consistency with domain terminology. Removed unnecessary schema annotation from JobbController, adjusted method logic to reflect field renaming, and added logging for incoming requests. * Refactor reschedule method to use @RequestParam #deploy-levende-arbeidsforhold-scheduler Refactored the `reschedule` method in `JobbController` to use `@RequestParam` instead of `@RequestBody` for the `intervall` parameter. This change simplifies the HTTP request required to trigger scheduler activation. Removed the `RequestDTO` dependency and cleaned up the associated code. * Rename Appstyring to Levende arbeidsforhold #deploy-test-frontend Renamed folders and files under `Appstyring` to `Levendearbeidsforhold` to better reflect functionality changes. Adjusted import paths, updated the scheduler URL, and modified labels and navigation paths to ensure consistency with the new nomenclature. * Add log search by identity and organization #deploy-levende-arbeidsforhold-ansettelse Introduced methods in the LoggService and corresponding repository to fetch logs based on identity and organization number. Updated LoggController to provide endpoints for these searches, and adjusted timeout duration in AnsettelseService. * Rename navigation path #deploy-test-frontend Updated the admin navigation path from `/admin/appstyring` to `/admin/levendearbeidsforhold` for consistency. Adjusted the dropdown menu to reflect this change by modifying labels accordingly. * Add new applications to test config #deploy-test-frontend Included `testnav-levende-arbeidsforhold-ansettelse` and `testnav-levende-arbeidsforhold-scheduler` under the applications section. This ensures these new services are part of the test configuration setup. * **Change log levels and fix route path capitalization** Updated logger level from TRACE to INFO for consistent logging across multiple modules. Corrected the capitalization in the "/admin/levendearbeidsforhold" route path to ensure proper URL handling in the Dolly frontend. * **Remove AnsettelsesService and update JobbScheduler** #deploy-levende-arbeidsforhold-scheduler #deploy-levende_arbeidsforhold-ansettelse Removed AnsettelsesService and refactored JobbScheduler to use AnsettelseConsumer directly, simplifying the job scheduling process. This change includes enhancements for better async handling and transactional management in AnsettelseService. Additionally, security headers were updated, and new indexes were added for database optimization. * Deploy #deploy-levende-arbeidsforhold-scheduler * Update parameter value submission in EditParameter.tsx #deploy-test-frontend Previously, the parameter value was JSON stringified before being sent in the request body. This change removes the JSON.stringify, ensuring the value is sent as a plain string. * Delete unused PDL domain classes and GraphQL commands Removed multiple PDL domain classes and their related commands to clean up redundant code. This includes classes like `Bostedsadresse`, `Data`, `Feilmelding`, and several others that are no longer in use. Additionally, GraphQL commands and resources for fetching person data were also deleted. * Update tenorClient arguments to prevent default pagination #deploy-tenor-search-service Replaced fixed pagination values in tenorClient.getOrganisasjonTestdata with nulls to avoid unexpected default pagination behavior. This change ensures the full dataset is retrieved without arbitrary limitations. * Remove unused service classes and dependencies Deleted multiple service classes, utilities, and dependencies that were no longer needed in the codebase. This refactor simplifies the code and removes redundant components, enhancing maintainability. * Delete outdated domain classes Removed unused domain classes such as `Adresse`, `Organisasjon`, `Hendelse`, and related enums and interfaces. This clean-up helps streamline the codebase and eliminates obsolete code, improving maintainability. * Rettet feil etter merge * Improve logging in SannsynlighetVelger. Enhanced the log message to provide a more detailed breakdown of the stochastic distribution by age groups. Added a helper method to handle null values gracefully. --- .../Levendearbeidsforhold/EditParameter.tsx | 2 +- .../build.gradle | 14 +- .../settings.gradle | 1 + .../consumers/TagsConsumer.java | 40 -- .../consumers/TenorConsumer.java | 50 -- .../command/pdl/HentTagsCommand.java | 47 -- .../command/pdl/SokPersonPagesCommand.java | 69 --- .../consumers/command/pdl/TemaGrunnlag.java | 6 - .../HentOrganisasjonerOversiktCommand.java | 45 -- .../domain/DatoIntervall.java | 15 - .../domain/TagsDTO.java | 20 - .../domain/dto/OrganisasjonDTO.java | 37 -- .../domain/organisasjon/Adresse.java | 36 -- .../domain/organisasjon/Organisasjon.java | 58 --- .../domain/pdl/Bostedsadresse.java | 14 - .../domain/pdl/Data.java | 12 - .../domain/pdl/Feilmelding.java | 12 - .../domain/pdl/Foedsel.java | 17 - .../pdl/Folkeregisteridentifikator.java | 16 - .../domain/pdl/Folkeregisterpersonstatus.java | 16 - .../domain/pdl/HentPerson.java | 61 --- .../domain/pdl/Ident.java | 20 - .../domain/pdl/MetadataDTO.java | 21 - .../domain/pdl/Navn.java | 16 - .../domain/pdl/PdlAktoer.java | 57 --- .../domain/pdl/PdlHeaders.java | 11 - .../domain/pdl/PdlPerson.java | 20 - .../domain/pdl/SokPersonVariables.java | 60 --- .../domain/pdl/Vegadresse.java | 15 - .../domain/tenor/Hendelse.java | 50 -- .../domain/tenor/LabelEnum.java | 6 - .../domain/tenor/Spesifiseringstype.java | 35 -- .../domain/tenor/TekniskNavn.java | 430 ------------------ .../tenor/TenorOrganisasjonRequest.java | 134 ------ .../tenor/TenorOrganisasjonSelectOptions.java | 160 ------- .../domain/tenor/TenorRequest.java | 358 --------------- .../provider/PdlMiljoer.java | 5 - .../service/AnsettelseLoggService.java | 42 -- .../service/AnsettelseService.java | 221 --------- .../service/PdlService.java | 153 ------- .../service/TenorService.java | 121 ----- .../service/util/AlderspennList.java | 37 -- .../service/util/AliasMethod.java | 89 ---- ...deArbeidsforholdAnsettelseApplication.java | 2 +- .../config/ApplicationConfig.java | 4 +- .../config/Consumers.java | 2 +- .../config/DevConfig.java | 2 +- .../config/JsonMapperConfig.java | 110 +++++ .../config/OpenApiConfig.java | 2 +- .../config/SecurityConfig.java | 4 +- .../consumers/AaregConsumer.java | 31 +- .../JacksonExchangeStrategyUtil.java | 2 +- .../consumers/KodeverkServiceConsumer.java | 6 +- .../consumers/PdlConsumer.java | 47 +- .../consumers/TenorConsumer.java | 83 ++++ .../aareg/HentArbeidsforholdCommand.java | 2 +- .../aareg/OpprettArbeidsforholdCommand.java | 2 +- .../kodeverk/KodeverkServiceCommand.java | 2 +- .../consumers/command/pdl/GraphQLRequest.java | 2 +- .../command/pdl/SokPersonCommand.java | 26 +- .../consumers/command/pdl/TemaGrunnlag.java | 6 + .../tenor/HentOrganisasjonCommand.java | 14 +- .../controller/AnsettelseController.java | 4 +- .../controller/LoggController.java | 6 +- .../controller/ParameterController.java | 6 +- .../domain/DatoIntervall.java | 18 + .../domain/dto/AdresseDTO.java | 2 +- .../domain/dto/ArbeidsforholdDTO.java | 19 + .../domain/dto/DetaljerDTO.java | 2 +- .../domain/dto/KanAnsettesDTO.java | 19 + .../domain/dto/NavnDTO.java | 2 +- .../domain/dto/OrganisasjonDTO.java | 83 ++++ .../domain/dto/OrganisasjonDetaljerDTO.java | 2 +- .../domain/dto/OrganisasjonResponseDTO.java | 16 + .../domain/dto/PdlPersonDTO.java | 142 ++++++ .../domain/dto/PersonRequestDTO.java | 17 + .../kodeverk/KodeverkBetydningerResponse.java | 2 +- .../domain/kodeverk/KodeverkNavn.java | 2 +- .../domain/kodeverk/KodeverkResponse.java | 2 +- .../domain/pdl/CommonKeysAndUtils.java | 3 +- .../domain/pdl/GraphqlVariables.java | 20 +- .../domain/pdl/Request.java | 7 +- .../tenor/TenorOrganisasjonRequest.java | 24 + .../tenor/TenorOrganisasjonSelectOptions.java | 16 + .../TenorOversiktOrganisasjonResponse.java | 2 +- .../entity/AnsettelseLogg.java | 12 +- .../entity/JobbParameter.java | 2 +- .../entity/JobbParameterNavn.java | 2 +- .../provider/PdlMiljoer.java | 5 + .../repository/AnsettelseLoggRepository.java | 4 +- .../repository/LoggRepository.java | 4 +- .../repository/ParameterRepository.java | 4 +- .../service/AnsettelseLoggService.java | 43 ++ .../service/AnsettelseService.java | 181 ++++++++ .../service/ArbeidsforholdService.java | 57 ++- .../service/KodeverkService.java | 4 +- .../service/LoggService.java | 8 +- .../service/ParameterService.java | 6 +- .../service/PdlService.java | 106 +++++ .../utility/SannsynlighetVelger.java | 112 +++++ .../src/main/resources/application-dev.yml | 4 + .../src/main/resources/application.yml | 3 + .../db/migration/V1.1.0__AddIndexes.sql | 9 + .../db/migration/h2-default-config.sql | 8 + .../src/main/resources/pdl/sokPerson.graphql | 9 +- .../main/resources/pdl/sokPersonPages.graphql | 11 - ...eidsforholdAnsettelseApplicationTests.java | 2 +- ...ndeArbeidsforholdSchedulerApplication.java | 1 - .../consumer/AnsettelseConsumer.java | 8 +- .../scheduler/AnsettelsesService.java | 16 - .../scheduler/JobbScheduler.java | 75 +-- .../TenorOrganisasjonSearchService.java | 2 +- .../v1/Arbeidsforhold.java | 43 ++ 113 files changed, 1283 insertions(+), 2872 deletions(-) delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TagsConsumer.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/TenorConsumer.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/HentTagsCommand.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonPagesCommand.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonerOversiktCommand.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/DatoIntervall.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/TagsDTO.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Adresse.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/organisasjon/Organisasjon.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Bostedsadresse.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Data.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Feilmelding.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Foedsel.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisteridentifikator.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Folkeregisterpersonstatus.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/HentPerson.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Ident.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/MetadataDTO.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Navn.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlAktoer.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlHeaders.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/PdlPerson.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/SokPersonVariables.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/pdl/Vegadresse.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Hendelse.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/LabelEnum.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/Spesifiseringstype.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TekniskNavn.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/domain/tenor/TenorRequest.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/provider/PdlMiljoer.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/AnsettelseService.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/PdlService.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/TenorService.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AlderspennList.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/registre/testnorge/levendearbeidsforholdansettelse/service/util/AliasMethod.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplication.java (83%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/config/ApplicationConfig.java (76%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/config/Consumers.java (94%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/config/DevConfig.java (94%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/config/JsonMapperConfig.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/config/OpenApiConfig.java (96%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/config/SecurityConfig.java (87%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/AaregConsumer.java (55%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/JacksonExchangeStrategyUtil.java (93%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/KodeverkServiceConsumer.java (86%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/PdlConsumer.java (51%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/TenorConsumer.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/aareg/HentArbeidsforholdCommand.java (96%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/aareg/OpprettArbeidsforholdCommand.java (94%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/kodeverk/KodeverkServiceCommand.java (94%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/pdl/GraphQLRequest.java (60%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/pdl/SokPersonCommand.java (68%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/consumers/command/pdl/TemaGrunnlag.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/consumers/command/tenor/HentOrganisasjonCommand.java (66%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/controller/AnsettelseController.java (82%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/controller/LoggController.java (83%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/controller/ParameterController.java (88%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/DatoIntervall.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/dto/AdresseDTO.java (87%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/ArbeidsforholdDTO.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/dto/DetaljerDTO.java (84%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/KanAnsettesDTO.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/dto/NavnDTO.java (85%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDTO.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/dto/OrganisasjonDetaljerDTO.java (86%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/OrganisasjonResponseDTO.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PdlPersonDTO.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/dto/PersonRequestDTO.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkBetydningerResponse.java (93%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkNavn.java (87%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/kodeverk/KodeverkResponse.java (74%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/pdl/CommonKeysAndUtils.java (62%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/pdl/GraphqlVariables.java (75%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/pdl/Request.java (71%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonRequest.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/domain/tenor/TenorOrganisasjonSelectOptions.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/domain/tenor/TenorOversiktOrganisasjonResponse.java (93%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/entity/AnsettelseLogg.java (87%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/entity/JobbParameter.java (94%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/entity/JobbParameterNavn.java (81%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/provider/PdlMiljoer.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/repository/AnsettelseLoggRepository.java (65%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/repository/LoggRepository.java (50%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/repository/ParameterRepository.java (55%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseLoggService.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/AnsettelseService.java rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/service/ArbeidsforholdService.java (55%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/service/KodeverkService.java (78%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/service/LoggService.java (73%) rename apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/service/ParameterService.java (87%) create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/service/PdlService.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/java/no/nav/testnav/levendearbeidsforholdansettelse/utility/SannsynlighetVelger.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/V1.1.0__AddIndexes.sql create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/resources/db/migration/h2-default-config.sql delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/main/resources/pdl/sokPersonPages.graphql rename apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/{registre/testnorge => testnav}/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java (86%) delete mode 100644 apps/levende-arbeidsforhold-scheduler/src/main/java/no/nav/testnav/levendearbeidsforholdscheduler/scheduler/AnsettelsesService.java 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; + } }