From b39f83713d415227621cde936c3804c2704853d7 Mon Sep 17 00:00:00 2001 From: Siri Mykland Date: Fri, 24 Jan 2025 10:54:26 +0100 Subject: [PATCH 1/3] legg til sppotless i root pom.xml --- pom.xml | 71 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index eac6c5446..6563077ad 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,8 @@ 9.2.2 2.7.1 + 2.43.0 + true @@ -224,19 +226,60 @@ https://maven.pkg.github.com/navikt/fp-abakus/ + + + + com.diffplug.spotless + spotless-maven-plugin + ${spotless.version} + + + + + 2.39.0 + + true + + + + + + + false + 4 + + + + + src/**/*.json + + + + - - scm:git:https://github.com/navikt/fp-abakus.git - scm:git:https://github.com/navikt/fp-abakus.git - https://github.com/navikt/fp-abakus - HEAD - - - - - github - Github navikt Maven Packages - https://maven.pkg.github.com/navikt/fp-abakus - - + + + **/*.md + + + + + + src/**/*.yaml + src/**/*.yml + + + + + + + + + check + + + + + + From 6d2f20bbcfd2db256d1bf8a732f29373c9036d89 Mon Sep 17 00:00:00 2001 From: Siri Mykland Date: Fri, 24 Jan 2025 10:57:31 +0100 Subject: [PATCH 2/3] slett .editorconfig --- .editorconfig | 279 -------------------------------------------------- 1 file changed, 279 deletions(-) delete mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 975dbaebd..000000000 --- a/.editorconfig +++ /dev/null @@ -1,279 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = space -insert_final_newline = true -max_line_length = 150 -tab_width = 4 -trim_trailing_whitespace = true -ij_continuation_indent_size = 4 -ij_formatter_off_tag = @formatter:off -ij_formatter_on_tag = @formatter:on -ij_formatter_tags_enabled = false -ij_smart_tabs = false -ij_wrap_on_typing = false - -[*.json] -indent_size = 2 - -[*.md] -trim_trailing_whitespace = false - -[*.{yml,yaml}] -indent_size = 2 - -[*.java] -ij_java_align_consecutive_assignments = false -ij_java_align_consecutive_variable_declarations = false -ij_java_align_group_field_declarations = false -ij_java_align_multiline_annotation_parameters = false -ij_java_align_multiline_array_initializer_expression = false -ij_java_align_multiline_assignment = false -ij_java_align_multiline_binary_operation = false -ij_java_align_multiline_chained_methods = false -ij_java_align_multiline_extends_list = true -ij_java_align_multiline_for = true -ij_java_align_multiline_method_parentheses = false -ij_java_align_multiline_parameters = true -ij_java_align_multiline_parameters_in_calls = false -ij_java_align_multiline_parenthesized_expression = false -ij_java_align_multiline_records = true -ij_java_align_multiline_resources = true -ij_java_align_multiline_ternary_operation = false -ij_java_align_multiline_text_blocks = false -ij_java_align_multiline_throws_list = false -ij_java_align_subsequent_simple_methods = false -ij_java_align_throws_keyword = false -ij_java_annotation_parameter_wrap = off -ij_java_array_initializer_new_line_after_left_brace = false -ij_java_array_initializer_right_brace_on_new_line = false -ij_java_array_initializer_wrap = off -ij_java_assert_statement_colon_on_next_line = false -ij_java_assert_statement_wrap = off -ij_java_assignment_wrap = off -ij_java_binary_operation_sign_on_next_line = true -ij_java_binary_operation_wrap = normal -ij_java_blank_lines_after_anonymous_class_header = 0 -ij_java_blank_lines_after_class_header = 0 -ij_java_blank_lines_after_imports = 1 -ij_java_blank_lines_after_package = 1 -ij_java_blank_lines_around_class = 1 -ij_java_blank_lines_around_field = 0 -ij_java_blank_lines_around_field_in_interface = 0 -ij_java_blank_lines_around_initializer = 1 -ij_java_blank_lines_around_method = 1 -ij_java_blank_lines_around_method_in_interface = 1 -ij_java_blank_lines_before_class_end = 0 -ij_java_blank_lines_before_imports = 1 -ij_java_blank_lines_before_method_body = 0 -ij_java_blank_lines_before_package = 0 -ij_java_block_brace_style = end_of_line -ij_java_block_comment_at_first_column = true -ij_java_call_parameters_new_line_after_left_paren = false -ij_java_call_parameters_right_paren_on_new_line = false -ij_java_call_parameters_wrap = normal -ij_java_case_statement_on_separate_line = true -ij_java_catch_on_new_line = false -ij_java_class_annotation_wrap = split_into_lines -ij_java_class_brace_style = end_of_line -ij_java_class_count_to_use_import_on_demand = 999999 -ij_java_class_names_in_javadoc = 1 -ij_java_do_not_indent_top_level_class_members = false -ij_java_do_not_wrap_after_single_annotation = false -ij_java_do_while_brace_force = always -ij_java_doc_add_blank_line_after_description = true -ij_java_doc_add_blank_line_after_param_comments = false -ij_java_doc_add_blank_line_after_return = false -ij_java_doc_add_p_tag_on_empty_lines = true -ij_java_doc_align_exception_comments = true -ij_java_doc_align_param_comments = true -ij_java_doc_do_not_wrap_if_one_line = false -ij_java_doc_enable_formatting = true -ij_java_doc_enable_leading_asterisks = true -ij_java_doc_indent_on_continuation = false -ij_java_doc_keep_empty_lines = true -ij_java_doc_keep_empty_parameter_tag = true -ij_java_doc_keep_empty_return_tag = true -ij_java_doc_keep_empty_throws_tag = true -ij_java_doc_keep_invalid_tags = true -ij_java_doc_param_description_on_new_line = false -ij_java_doc_preserve_line_breaks = false -ij_java_doc_use_throws_not_exception_tag = true -ij_java_else_on_new_line = false -ij_java_entity_dd_suffix = EJB -ij_java_entity_eb_suffix = Bean -ij_java_entity_hi_suffix = Home -ij_java_entity_lhi_prefix = Local -ij_java_entity_lhi_suffix = Home -ij_java_entity_li_prefix = Local -ij_java_entity_pk_class = java.lang.String -ij_java_entity_vo_suffix = VO -ij_java_enum_constants_wrap = split_into_lines -ij_java_extends_keyword_wrap = off -ij_java_extends_list_wrap = off -ij_java_field_annotation_wrap = split_into_lines -ij_java_finally_on_new_line = false -ij_java_for_brace_force = always -ij_java_for_statement_new_line_after_left_paren = false -ij_java_for_statement_right_paren_on_new_line = false -ij_java_for_statement_wrap = off -ij_java_generate_final_locals = false -ij_java_generate_final_parameters = false -ij_java_if_brace_force = always -ij_java_imports_layout = $*, |, java.**, |, javax.**, |, org.**, |, com.**, |, *, | -ij_java_indent_case_from_switch = true -ij_java_insert_inner_class_imports = false -ij_java_insert_override_annotation = true -ij_java_keep_blank_lines_before_right_brace = 2 -ij_java_keep_blank_lines_between_package_declaration_and_header = 2 -ij_java_keep_blank_lines_in_code = 2 -ij_java_keep_blank_lines_in_declarations = 2 -ij_java_keep_control_statement_in_one_line = false -ij_java_keep_first_column_comment = false -ij_java_keep_indents_on_empty_lines = false -ij_java_keep_line_breaks = false -ij_java_keep_multiple_expressions_in_one_line = false -ij_java_keep_simple_blocks_in_one_line = false -ij_java_keep_simple_classes_in_one_line = false -ij_java_keep_simple_lambdas_in_one_line = false -ij_java_keep_simple_methods_in_one_line = false -ij_java_label_indent_absolute = false -ij_java_label_indent_size = 0 -ij_java_lambda_brace_style = end_of_line -ij_java_layout_static_imports_separately = true -ij_java_line_comment_add_space = false -ij_java_line_comment_at_first_column = true -ij_java_message_dd_suffix = EJB -ij_java_message_eb_suffix = Bean -ij_java_method_annotation_wrap = split_into_lines -ij_java_method_brace_style = end_of_line -ij_java_method_call_chain_wrap = on_every_item -ij_java_method_parameters_new_line_after_left_paren = false -ij_java_method_parameters_right_paren_on_new_line = false -ij_java_method_parameters_wrap = on_every_item -ij_java_modifier_list_wrap = false -ij_java_names_count_to_use_import_on_demand = 9999999 -ij_java_new_line_after_lparen_in_record_header = false -ij_java_packages_to_use_import_on_demand = java.awt.*, javax.swing.* -ij_java_parameter_annotation_wrap = off -ij_java_parentheses_expression_new_line_after_left_paren = false -ij_java_parentheses_expression_right_paren_on_new_line = false -ij_java_place_assignment_sign_on_next_line = false -ij_java_prefer_longer_names = true -ij_java_prefer_parameters_wrap = false -ij_java_record_components_wrap = normal -ij_java_repeat_synchronized = true -ij_java_replace_instanceof_and_cast = false -ij_java_replace_null_check = true -ij_java_replace_sum_lambda_with_method_ref = true -ij_java_resource_list_new_line_after_left_paren = false -ij_java_resource_list_right_paren_on_new_line = false -ij_java_resource_list_wrap = off -ij_java_rparen_on_new_line_in_record_header = false -ij_java_session_dd_suffix = EJB -ij_java_session_eb_suffix = Bean -ij_java_session_hi_suffix = Home -ij_java_session_lhi_prefix = Local -ij_java_session_lhi_suffix = Home -ij_java_session_li_prefix = Local -ij_java_session_si_suffix = Service -ij_java_space_after_closing_angle_bracket_in_type_argument = false -ij_java_space_after_colon = true -ij_java_space_after_comma = true -ij_java_space_after_comma_in_type_arguments = true -ij_java_space_after_for_semicolon = true -ij_java_space_after_quest = true -ij_java_space_after_type_cast = true -ij_java_space_before_annotation_array_initializer_left_brace = false -ij_java_space_before_annotation_parameter_list = false -ij_java_space_before_array_initializer_left_brace = false -ij_java_space_before_catch_keyword = true -ij_java_space_before_catch_left_brace = true -ij_java_space_before_catch_parentheses = true -ij_java_space_before_class_left_brace = true -ij_java_space_before_colon = true -ij_java_space_before_colon_in_foreach = true -ij_java_space_before_comma = false -ij_java_space_before_do_left_brace = true -ij_java_space_before_else_keyword = true -ij_java_space_before_else_left_brace = true -ij_java_space_before_finally_keyword = true -ij_java_space_before_finally_left_brace = true -ij_java_space_before_for_left_brace = true -ij_java_space_before_for_parentheses = true -ij_java_space_before_for_semicolon = false -ij_java_space_before_if_left_brace = true -ij_java_space_before_if_parentheses = true -ij_java_space_before_method_call_parentheses = false -ij_java_space_before_method_left_brace = true -ij_java_space_before_method_parentheses = false -ij_java_space_before_opening_angle_bracket_in_type_parameter = false -ij_java_space_before_quest = true -ij_java_space_before_switch_left_brace = true -ij_java_space_before_switch_parentheses = true -ij_java_space_before_synchronized_left_brace = true -ij_java_space_before_synchronized_parentheses = true -ij_java_space_before_try_left_brace = true -ij_java_space_before_try_parentheses = true -ij_java_space_before_type_parameter_list = false -ij_java_space_before_while_keyword = true -ij_java_space_before_while_left_brace = true -ij_java_space_before_while_parentheses = true -ij_java_space_inside_one_line_enum_braces = false -ij_java_space_within_empty_array_initializer_braces = false -ij_java_space_within_empty_method_call_parentheses = false -ij_java_space_within_empty_method_parentheses = false -ij_java_spaces_around_additive_operators = true -ij_java_spaces_around_assignment_operators = true -ij_java_spaces_around_bitwise_operators = true -ij_java_spaces_around_equality_operators = true -ij_java_spaces_around_lambda_arrow = true -ij_java_spaces_around_logical_operators = true -ij_java_spaces_around_method_ref_dbl_colon = false -ij_java_spaces_around_multiplicative_operators = true -ij_java_spaces_around_relational_operators = true -ij_java_spaces_around_shift_operators = true -ij_java_spaces_around_type_bounds_in_type_parameters = true -ij_java_spaces_around_unary_operator = false -ij_java_spaces_within_angle_brackets = false -ij_java_spaces_within_annotation_parentheses = false -ij_java_spaces_within_array_initializer_braces = false -ij_java_spaces_within_braces = false -ij_java_spaces_within_brackets = false -ij_java_spaces_within_cast_parentheses = false -ij_java_spaces_within_catch_parentheses = false -ij_java_spaces_within_for_parentheses = false -ij_java_spaces_within_if_parentheses = false -ij_java_spaces_within_method_call_parentheses = false -ij_java_spaces_within_method_parentheses = false -ij_java_spaces_within_parentheses = false -ij_java_spaces_within_switch_parentheses = false -ij_java_spaces_within_synchronized_parentheses = false -ij_java_spaces_within_try_parentheses = false -ij_java_spaces_within_while_parentheses = false -ij_java_special_else_if_treatment = true -ij_java_subclass_name_suffix = Impl -ij_java_ternary_operation_signs_on_next_line = false -ij_java_ternary_operation_wrap = off -ij_java_test_name_suffix = Test -ij_java_throws_keyword_wrap = off -ij_java_throws_list_wrap = off -ij_java_use_external_annotations = false -ij_java_use_fq_class_names = false -ij_java_use_relative_indents = false -ij_java_use_single_class_imports = true -ij_java_variable_annotation_wrap = off -ij_java_visibility = public -ij_java_while_brace_force = always -ij_java_while_on_new_line = false -ij_java_wrap_comments = false -ij_java_wrap_first_method_in_call_chain = false -ij_java_wrap_long_lines = false - -[pom.xml] -charset = utf-8 -indent_style = space -indent_size = 4 From 4312b44506ba461aba40262a9c29be4fcd5b4f51 Mon Sep 17 00:00:00 2001 From: Siri Mykland Date: Fri, 24 Jan 2025 10:58:14 +0100 Subject: [PATCH 3/3] formater alle filer med spotless --- README.md | 11 +- domenetjenester/iay/pom.xml | 118 +- .../abakus/domene/iay/AktivitetsAvtale.java | 55 +- .../domene/iay/AktivitetsAvtaleBuilder.java | 7 +- .../domene/iay/Akt\303\270rArbeid.java" | 57 +- .../domene/iay/Akt\303\270rInntekt.java" | 56 +- .../domene/iay/Akt\303\270rYtelse.java" | 149 +- .../abakus/domene/iay/Arbeidsgiver.java | 34 +- .../abakus/domene/iay/BekreftetPermisjon.java | 12 +- .../abakus/domene/iay/GrunnlagReferanse.java | 9 +- .../abakus/domene/iay/Inntekt.java | 45 +- .../iay/InntektArbeidYtelseAggregat.java | 81 +- .../InntektArbeidYtelseAggregatBuilder.java | 106 +- .../iay/InntektArbeidYtelseGrunnlag.java | 62 +- .../InntektArbeidYtelseGrunnlagBuilder.java | 43 +- .../iay/InntektArbeidYtelseRepository.java | 351 +- .../abakus/domene/iay/InntektBuilder.java | 1 - .../abakus/domene/iay/InntektFilter.java | 106 +- .../domene/iay/InntektsmeldingAggregat.java | 71 +- .../abakus/domene/iay/Inntektspost.java | 46 +- .../domene/iay/InntektspostBuilder.java | 2 - .../domene/iay/OpptjeningInntektPeriode.java | 1 - .../domene/iay/Opptjeningsn\303\270kkel.java" | 31 +- .../abakus/domene/iay/Permisjon.java | 19 +- .../abakus/domene/iay/PermisjonBuilder.java | 2 - .../abakus/domene/iay/Yrkesaktivitet.java | 123 +- .../domene/iay/YrkesaktivitetBuilder.java | 15 +- .../abakus/domene/iay/Ytelse.java | 50 +- .../abakus/domene/iay/YtelseAnvist.java | 26 +- .../abakus/domene/iay/YtelseAnvistAndel.java | 46 +- .../domene/iay/YtelseAnvistAndelBuilder.java | 3 - .../domene/iay/YtelseAnvistBuilder.java | 3 - .../abakus/domene/iay/YtelseBuilder.java | 2 - .../abakus/domene/iay/YtelseFilter.java | 47 +- .../abakus/domene/iay/YtelseGrunnlag.java | 55 +- .../domene/iay/YtelseGrunnlagBuilder.java | 1 - .../domene/iay/YtelseSt\303\270rrelse.java" | 13 +- .../iay/YtelseSt\303\270rrelseBuilder.java" | 2 - .../ArbeidsforholdInformasjon.java | 195 +- .../ArbeidsforholdInformasjonBuilder.java | 56 +- .../ArbeidsforholdOverstyring.java | 71 +- .../ArbeidsforholdOverstyringBuilder.java | 9 +- .../ArbeidsforholdOverstyrtePerioder.java | 19 +- .../ArbeidsforholdReferanse.java | 34 +- .../ForvaltningReferanseTjeneste.java | 4 +- .../iay/diff/TraverseEntityGraphFactory.java | 4 +- .../ForvaltningEndreInternReferanse.java | 1 - ...ForvaltningOppdaterKanalReferanseTask.java | 23 +- .../iay/inntektsmelding/Frav\303\246r.java" | 15 +- .../domene/iay/inntektsmelding/Gradering.java | 41 +- .../iay/inntektsmelding/Inntektsmelding.java | 153 +- .../InntektsmeldingBuilder.java | 41 +- .../iay/inntektsmelding/NaturalYtelse.java | 16 +- .../domene/iay/inntektsmelding/Refusjon.java | 14 +- .../inntektsmelding/UtsettelsePeriode.java | 9 +- .../s\303\270knad/OppgittAnnenAktivitet.java" | 5 +- .../s\303\270knad/OppgittArbeidsforhold.java" | 30 +- .../OppgittEgenN\303\246ring.java" | 50 +- .../iay/s\303\270knad/OppgittFrilans.java" | 43 +- .../s\303\270knad/OppgittFrilansoppdrag.java" | 17 +- .../iay/s\303\270knad/OppgittOpptjening.java" | 94 +- .../OppgittOpptjeningBuilder.java" | 12 +- .../abakus/domene/virksomhet/Virksomhet.java | 11 +- .../iay/InntektArbeidYtelseTjeneste.java | 205 +- .../abakus/iay/InntektsmeldingerTjeneste.java | 20 +- .../abakus/iay/OppgittOpptjeningTjeneste.java | 6 +- .../iay/jpa/ArbeidTypeKodeverdiConverter.java | 1 - ...forholdHandlingTypeKodeverdiConverter.java | 4 +- .../ArbeidskategoriKodeverdiConverter.java | 3 +- ...ftetPermisjonStatusKodeverdiConverter.java | 5 +- .../InntektPeriodeTypeKodeverdiConverter.java | 3 +- .../InntektYtelseTypeKodeverdiConverter.java | 1 - .../jpa/InntektsKildeKodeverdiConverter.java | 1 - ...ndings\303\245rsakKodeverdiConverter.java" | 4 +- .../InntektspostTypeKodeverdiConverter.java | 1 - .../iay/jpa/LandKodeKodeverdiConverter.java | 1 - ...\270nnsbeskrivelseKodeverdiConverter.java" | 2 - .../NaturalytelseTypeKodeverdiConverter.java | 1 - .../OrganisasjonstypeKodeverdiConverter.java | 3 +- ...jonsbeskrivelseTypeKodeverdiConverter.java | 4 +- ...eOgAvgiftsregelTypeKodeverdiConverter.java | 5 +- ...se\303\205rsakTypeKodeverdiConverter.java" | 4 +- .../jpa/VirksomhetTypeKodeverdiConverter.java | 2 - .../jpa/YtelseStatusKodeverdiConverter.java | 3 +- .../iay/jpa/YtelseTypeKodeverdiConverter.java | 3 +- .../tjeneste/ArbeidsforholdRestTjeneste.java | 90 +- .../iay/tjeneste/GrunnlagRestTjeneste.java | 372 +- .../InntektsmeldingerRestTjeneste.java | 112 +- .../OppgittOpptjeningRestTjeneste.java | 111 +- .../ArbeidsforholdDtoTjeneste.java | 105 +- .../iay/tjeneste/dto/iay/IAYFraDtoMapper.java | 38 +- .../iay/tjeneste/dto/iay/IAYTilDtoMapper.java | 57 +- .../dto/iay/MapAkt\303\270rArbeid.java" | 142 +- .../dto/iay/MapAkt\303\270rInntekt.java" | 85 +- .../dto/iay/MapAkt\303\270rYtelse.java" | 81 +- .../dto/iay/MapArbeidsforholdInformasjon.java | 160 +- .../dto/iay/MapInntektsmeldinger.java | 382 +- .../dto/iay/MapOppgittOpptjening.java | 204 +- ...ggL\303\270nnsinntektInntektTjeneste.java" | 124 +- .../ByggYrkesaktiviteterTjeneste.java | 119 +- ...erstyringerForBortfalteArbeidsforhold.java | 45 +- .../IAYRegisterInnhentingTjeneste.java | 296 +- .../InnhentingSamletTjeneste.java | 89 +- .../RegisterdataInnhentingTask.java | 37 +- .../VedtattYtelseInnhentingTjeneste.java | 101 +- .../YtelseRegisterInnhenting.java | 111 +- .../arbeidsforhold/Arbeidsavtale.java | 33 +- .../arbeidsforhold/Arbeidsforhold.java | 38 +- .../ArbeidsforholdIdentifikator.java | 13 +- .../ArbeidsforholdTjeneste.java | 119 +- .../arbeidsforhold/Organisasjon.java | 1 - .../arbeidsforhold/Permisjon.java | 13 +- .../registerdata/arbeidsforhold/Person.java | 1 - .../arbeidsforhold/rest/AaregRestKlient.java | 47 +- .../rest/AnsettelsesperiodeRS.java | 4 +- .../arbeidsforhold/rest/ArbeidsavtaleRS.java | 3 +- .../arbeidsforhold/rest/ArbeidsforholdRS.java | 23 +- .../OpplysningspliktigArbeidsgiverRS.java | 12 +- .../arbeidsforhold/rest/PeriodeRS.java | 11 +- .../rest/PermisjonPermitteringRS.java | 6 +- .../virksomhet/VirksomhetTjeneste.java | 73 +- .../rest/OrganisasjonRestKlient.java | 7 +- .../registerdata/callback/CallbackTask.java | 12 +- .../registerdata/callback/FpsakKlient.java | 15 +- .../InfotrygdgrunnlagAnvistAndelMapper.java | 290 +- .../InfotrygdgrunnlagYtelseMapper.java | 126 +- .../infotrygd/N\303\270dnummer.java" | 5 +- .../komponenten/FinnInntektRequest.java | 9 +- .../inntekt/komponenten/InntektTjeneste.java | 89 +- .../inntekt/komponenten/InntektsFilter.java | 1 - .../komponenten/InntektsForm\303\245l.java" | 1 - .../komponenten/InntektsInformasjon.java | 9 +- .../komponenten/M\303\245nedsinntekt.java" | 17 +- .../inntekt/sigrun/SigrunTjeneste.java | 33 +- .../klient/PgiFolketrygdenResponse.java | 20 +- .../klient/SigrunPgiFolketrygdenMapper.java | 37 +- .../sigrun/klient/SigrunRestClient.java | 31 +- .../tjeneste/InnhentRegisterdataTjeneste.java | 46 +- .../tjeneste/RegisterdataRestTjeneste.java | 74 +- .../tjeneste/dto/TaskResponsDto.java | 12 +- .../ytelse/arena/FpwsproxyKlient.java | 21 +- ...dlemskortUtbetalingsgrunnlagSakMapper.java | 62 +- ...MeldekortUtbetalingsgrunnlagMeldekort.java | 16 +- .../MeldekortUtbetalingsgrunnlagSak.java | 56 +- .../InnhentingInfotrygdTjeneste.java | 275 +- .../infotrygd/dto/InfotrygdYtelseAnvist.java | 31 +- .../infotrygd/dto/InfotrygdYtelseArbeid.java | 23 +- .../dto/InfotrygdYtelseGrunnlag.java | 51 +- .../kodemaps/ArbeidskategoriReverse.java | 50 +- .../kodemaps/InntektPeriodeReverse.java | 23 +- .../kodemaps/RelatertYtelseStatus.java | 1 - .../kodemaps/RelatertYtelseStatusReverse.java | 30 +- .../infotrygd/kodemaps/TemaReverse.java | 11 +- .../rest/Sp\303\270kelseKlient.java" | 8 +- .../felles/InfotrygdGrunnlagAggregator.java | 19 +- .../rest/ps/InfotrygdPSGrunnlag.java | 10 +- .../ytelse/infotrygd/rest/ps/PS.java | 7 +- .../rest/sp/InfotrygdSPGrunnlag.java | 9 +- .../ytelse/infotrygd/rest/sp/SP.java | 7 +- .../abakus/domene/iay/DiffSjekkTest.java | 5 +- ...nntektArbeidYtelseGrunnlagBuilderTest.java | 31 +- .../InntektArbeidYtelseRepositoryTest.java | 677 ++-- .../InntektArbeidYtelseTjenesteTest.java | 155 +- .../InntektsmeldingerRestTjenesteTest.java | 59 +- .../ArbeidsforholdDtoTjenesteTest.java | 167 +- .../dto/iay/MapInntektsmeldingerTest.java | 377 +- .../migrering/DatoTidkonverteringTest.java | 5 - ...303\270nnsinntektInntektTjenesteTest.java" | 280 +- ...yringerForBortfalteArbeidsforholdTest.java | 53 +- .../InnhentingSamletTjenesteTest.java | 35 +- .../registerdata/RegisterdataTaskTest.java | 17 +- .../VedtattYtelseInnhentingTjenesteTest.java | 72 +- .../ArbeidsforholdTjenesteMedRestTest.java | 27 +- .../virksomhet/rest/EregRestTest.java | 13 +- ...nfotrygdgrunnlagAnvistAndelMapperTest.java | 145 +- .../InfotrygdgrunnlagYtelseMapperTest.java | 82 +- .../impl/InntektTjenesteImplTest.java | 75 +- .../sigrun/PgiFolketrygdenResponseTest.java | 34 +- .../inntekt/sigrun/SigrunTjenesteTest.java | 165 +- .../ytelse/InfotrygdTjenesteImplTest.java | 10 +- ...skortUtbetalingsgrunnlagSakMapperTest.java | 31 +- ...akDtoSeraliseringOgDeseraliseringTest.java | 51 +- .../test/resources/migrering-grunnlag-1.json | 493 ++- .../test/resources/migrering-grunnlag-2.json | 345 +- .../test/resources/migrering-grunnlag-3.json | 1564 ++++---- .../test/resources/migrering-grunnlag-4.json | 1369 +++---- .../test/resources/migrering-grunnlag-5.json | 120 +- .../test/resources/migrering-grunnlag-6.json | 62 +- .../test/resources/migrering-grunnlag-7.json | 1256 +++--- .../test/resources/migrering-grunnlag-8.json | 130 +- .../test/resources/migrering-grunnlag-9.json | 3536 ++++++++-------- domenetjenester/kobling/pom.xml | 58 +- .../abakus/aktor/Akt\303\270rTjeneste.java" | 32 +- .../abakus/aktor/PdlKlient.java | 11 +- .../abakus/kobling/Kobling.java | 37 +- .../abakus/kobling/KoblingReferanse.java | 8 +- .../abakus/kobling/KoblingTjeneste.java | 18 +- .../abakus/kobling/TaskConstants.java | 4 +- .../kobling/YtelseTypeKodeverdiConverter.java | 1 - .../kobling/kontroll/YtelseTypeRef.java | 42 +- .../kobling/repository/KoblingRepository.java | 34 +- .../repository/L\303\245sRepository.java" | 28 +- .../abakus/typer/Akt\303\270rId.java" | 29 +- .../abakus/typer/Bel\303\270p.java" | 10 +- .../typer/EksternArbeidsforholdRef.java | 21 +- .../abakus/typer/InternArbeidsforholdRef.java | 22 +- .../abakus/typer/JournalpostId.java | 25 +- .../abakus/typer/OrgNummer.java | 27 +- .../typer/OrganisasjonsNummerValidator.java | 3 +- .../abakus/typer/PersonIdent.java | 35 +- .../foreldrepenger/abakus/typer/SakId.java | 8 +- .../abakus/typer/Saksnummer.java | 22 +- .../abakus/typer/Stillingsprosent.java | 18 +- .../abakus/typer/package-info.java | 4 +- .../typer/InternArbeidsforholdRefTest.java | 1 - .../abakus/typer/StillingsprosentTest.java | 2 - domenetjenester/lonnskomp/README.md | 2 +- domenetjenester/lonnskomp/pom.xml | 40 +- .../L\303\270nnskompensasjonAnvist.java" | 14 +- .../L\303\270nnskompensasjonRepository.java" | 27 +- .../L\303\270nnskompensasjonVedtak.java" | 37 +- ...303\270nnskompensasjonRepositoryTest.java" | 55 +- domenetjenester/pom.xml | 6 +- domenetjenester/vedtak/pom.xml | 58 +- .../abakus/vedtak/LagreVedtakTask.java | 20 +- .../abakus/vedtak/domene/Arbeidsgiver.java | 29 +- .../domene/FagsystemKodeverdiConverter.java | 1 - .../InntektskategoriKodeverdiConverter.java | 1 - .../abakus/vedtak/domene/VedtakYtelse.java | 57 +- .../vedtak/domene/VedtakYtelseAndel.java | 18 +- .../domene/VedtakYtelseAndelBuilder.java | 3 - .../vedtak/domene/VedtakYtelseBuilder.java | 9 +- .../vedtak/domene/VedtakYtelseRepository.java | 58 +- .../abakus/vedtak/domene/YtelseAnvist.java | 33 +- .../vedtak/domene/YtelseAnvistBuilder.java | 2 - .../YtelseStatusKodeverdiConverter.java | 3 +- .../domene/YtelseTypeKodeverdiConverter.java | 1 - .../vedtak/extract/v1/ConvertToYtelseV1.java | 38 +- .../extract/v1/ExtractFromYtelseV1.java | 55 +- .../abakus/vedtak/kafka/VedtakConsumer.java | 6 +- .../VedtaksHendelseH\303\245ndterer.java" | 22 +- .../vedtak/tjeneste/YtelseRestTjeneste.java | 42 +- .../abakus/vedtak/LagreVedtakTaskTest.java | 38 +- .../domene/VedtakYtelseRepositoryTest.java | 62 +- .../extract/v1/ExtractFromYtelseV1Test.java | 12 +- felles/pom.xml | 8 +- .../abakus/felles/LoggUtil.java | 1 - .../abakus/felles/diff/ChangeTracked.java | 9 +- .../abakus/felles/diff/DiffEntity.java | 3 - .../abakus/felles/diff/DiffIgnore.java | 8 +- .../abakus/felles/diff/DiffResult.java | 15 +- .../abakus/felles/diff/IndexKeyComposer.java | 17 +- .../felles/diff/ListPositionEquality.java | 4 +- .../abakus/felles/diff/Node.java | 4 +- .../abakus/felles/diff/Pair.java | 3 +- .../abakus/felles/diff/TraverseGraph.java | 20 +- .../felles/diff/TraverseGraphConfig.java | 67 +- .../diff/TraverseJpaEntityGraphConfig.java | 34 +- .../abakus/felles/diff/TraverseValue.java | 8 +- .../abakus/felles/jpa/AbstractIntervall.java | 8 +- .../abakus/felles/jpa/BaseEntitet.java | 17 +- .../abakus/felles/jpa/IntervallEntitet.java | 8 +- .../sikkerhet/PdpRequestBuilderImpl.java | 22 +- kodeverk/pom.xml | 4 +- .../iaygrunnlag/kodeverk/ArbeidType.java | 60 +- .../kodeverk/ArbeidsforholdHandlingType.java | 33 +- .../iaygrunnlag/kodeverk/Arbeidskategori.java | 37 +- .../kodeverk/BekreftetPermisjonStatus.java | 24 +- .../iaygrunnlag/kodeverk/Fagsystem.java | 21 +- .../abakus/iaygrunnlag/kodeverk/IndexKey.java | 15 +- .../kodeverk/InntektPeriodeType.java | 17 +- .../kodeverk/InntektYtelseType.java | 155 +- .../kodeverk/Inntektskategori.java | 17 +- .../kodeverk/InntektskildeType.java | 17 +- ...tsmeldingInnsendings\303\245rsakType.java" | 16 +- .../kodeverk/InntektspostType.java | 23 +- .../iaygrunnlag/kodeverk/Kodeverdi.java | 5 +- .../abakus/iaygrunnlag/kodeverk/Landkode.java | 27 +- .../L\303\270nnsinntektBeskrivelse.java" | 19 +- .../kodeverk/NaturalytelseType.java | 38 +- .../kodeverk/OrganisasjonType.java | 17 +- .../kodeverk/PermisjonsbeskrivelseType.java | 45 +- .../kodeverk/SkatteOgAvgiftsregelType.java | 28 +- .../kodeverk/Utsettelse\303\205rsakType.java" | 18 +- .../iaygrunnlag/kodeverk/VirksomhetType.java | 17 +- .../iaygrunnlag/kodeverk/YtelseStatus.java | 18 +- .../iaygrunnlag/kodeverk/YtelseType.java | 54 +- kontrakt-vedtak/pom.xml | 10 +- .../abakus/vedtak/ytelse/Akt\303\270r.java" | 6 +- .../nav/abakus/vedtak/ytelse/Desimaltall.java | 6 +- .../no/nav/abakus/vedtak/ytelse/Periode.java | 10 +- .../no/nav/abakus/vedtak/ytelse/Ytelse.java | 5 +- .../no/nav/abakus/vedtak/ytelse/Ytelser.java | 13 +- .../request/VedtakForPeriodeRequest.java | 34 +- .../nav/abakus/vedtak/ytelse/v1/YtelseV1.java | 26 +- .../vedtak/ytelse/v1/anvisning/Anvisning.java | 16 +- .../ytelse/v1/anvisning/AnvistAndel.java | 58 +- .../v1/anvisning/ArbeidsgiverIdent.java | 3 +- .../ytelse/v1/anvisning/Inntektklasse.java | 2 - kontrakt/pom.xml | 70 +- .../callback/registerdata/CallbackDto.java | 13 +- .../callback/registerdata/ReferanseDto.java | 7 +- .../nav/abakus/iaygrunnlag/Akt\303\270r.java" | 41 +- .../Akt\303\270rIdPersonident.java" | 12 +- .../iaygrunnlag/ArbeidsforholdRefDto.java | 51 +- .../iaygrunnlag/ArbeidsforholdReferanse.java | 20 +- .../abakus/iaygrunnlag/FnrPersonident.java | 12 +- .../nav/abakus/iaygrunnlag/JournalpostId.java | 20 +- .../abakus/iaygrunnlag/JsonObjectMapper.java | 21 +- .../nav/abakus/iaygrunnlag/Organisasjon.java | 12 +- .../no/nav/abakus/iaygrunnlag/Periode.java | 19 +- .../nav/abakus/iaygrunnlag/PersonIdent.java | 18 +- .../no/nav/abakus/iaygrunnlag/UuidDto.java | 22 +- .../arbeid/v1/AktivitetsAvtaleDto.java | 24 +- .../iaygrunnlag/arbeid/v1/ArbeidDto.java | 21 +- .../iaygrunnlag/arbeid/v1/PermisjonDto.java | 41 +- .../arbeid/v1/YrkesaktivitetDto.java | 32 +- .../arbeidsforhold/v1/ArbeidsavtaleDto.java | 18 +- .../arbeidsforhold/v1/ArbeidsforholdDto.java | 26 +- .../v1/ArbeidsforholdInformasjon.java | 24 +- .../v1/ArbeidsforholdOverstyringDto.java | 66 +- .../v1/ArbeidsforholdReferanseDto.java | 33 +- .../arbeidsforhold/v1/BekreftetPermisjon.java | 24 +- .../iaygrunnlag/inntekt/v1/InntekterDto.java | 22 +- .../iaygrunnlag/inntekt/v1/UtbetalingDto.java | 22 +- .../inntekt/v1/UtbetalingsPostDto.java | 36 +- .../inntektsmelding/v1/Frav\303\246rDto.java" | 30 +- .../inntektsmelding/v1/GraderingDto.java | 24 +- .../v1/InntektsmeldingDto.java | 51 +- .../v1/InntektsmeldingerDto.java | 9 +- .../inntektsmelding/v1/NaturalytelseDto.java | 18 +- .../inntektsmelding/v1/RefusjonDto.java | 33 +- .../v1/RefusjonskravDatoDto.java | 27 +- .../v1/RefusjonskravDatoerDto.java | 15 +- .../v1/UtsettelsePeriodeDto.java | 19 +- .../v1/OppgittAnnenAktivitetDto.java | 21 +- .../v1/OppgittArbeidsforholdDto.java | 40 +- .../v1/OppgittEgenN\303\246ringDto.java" | 56 +- .../v1/OppgittFrilansDto.java | 24 +- .../v1/OppgittFrilansoppdragDto.java | 23 +- .../v1/OppgittOpptjeningDto.java | 50 +- .../request/Akt\303\270rDatoRequest.java" | 33 +- .../request/InnhentRegisterdataRequest.java | 47 +- .../InntektArbeidYtelseGrunnlagRequest.java | 80 +- .../InntektsmeldingerMottattRequest.java | 34 +- .../request/InntektsmeldingerRequest.java | 30 +- .../request/KopierGrunnlagRequest.java | 50 +- .../OppgittOpptjeningMottattRequest.java | 46 +- .../iaygrunnlag/request/RegisterdataType.java | 8 +- .../request/SjekkStatusRequest.java | 22 +- .../v1/InntektArbeidYtelseAggregatDto.java | 31 +- ...ntektArbeidYtelseAggregatOverstyrtDto.java | 12 +- ...nntektArbeidYtelseAggregatRegisterDto.java | 12 +- .../v1/InntektArbeidYtelseGrunnlagDto.java | 77 +- ...ektArbeidYtelseGrunnlagSakSnapshotDto.java | 72 +- .../v1/OverstyrtInntektArbeidYtelseDto.java | 64 +- .../iaygrunnlag/ytelse/v1/AnvisningDto.java | 33 +- .../iaygrunnlag/ytelse/v1/AnvistAndelDto.java | 36 +- .../iaygrunnlag/ytelse/v1/FordelingDto.java | 41 +- .../iaygrunnlag/ytelse/v1/YtelseDto.java | 22 +- .../ytelse/v1/YtelseGrunnlagDto.java | 30 +- .../iaygrunnlag/ytelse/v1/YtelserDto.java | 17 +- .../registerdata/ReferanseDtoTest.java | 7 +- .../v1/iay/IAYMigreringNPETest.java | 23 +- .../iaygrunnlag/v1/iay/IAYValideringTest.java | 8 +- .../iaygrunnlag/v1/iay/IayGrunnlagTest.java | 205 +- kontrakt/src/test/resources/iay_case_001.json | 3540 ++++++++--------- kontrakt/src/test/resources/iay_case_002.json | 912 ++--- kontrakt/src/test/resources/iay_case_003.json | 1262 +++--- kontrakt/src/test/resources/iay_case_004.json | 1940 ++++----- kontrakt/src/test/resources/iay_case_005.json | 106 +- migreringer/pom.xml | 16 +- .../abakus/dbstoette/JpaExtension.java | 9 +- .../abakus/dbstoette/TestDatabaseInit.java | 27 +- pom.xml | 223 +- prosesstask/pom.xml | 68 +- .../batch/CleanNextBucketBatchTask.java | 6 +- .../Rekj\303\270rFeiledeTasksBatchTask.java" | 6 +- troubleshooting/taskmanager-polling.md | 3 +- web/pom.xml | 9 +- .../abakus/app/IndexClasses.java | 43 +- .../exceptions/ConstraintViolationMapper.java | 15 +- .../abakus/app/exceptions/FeilDto.java | 1 - .../abakus/app/exceptions/FeltFeilDto.java | 4 +- .../app/exceptions/FeltValideringFeil.java | 20 +- .../GeneralRestExceptionMapper.java | 32 +- .../JsonMappingExceptionMapper.java | 13 +- .../exceptions/JsonParseExceptionMapper.java | 12 +- .../app/healthcheck/DatabaseHealthCheck.java | 7 +- .../healthcheck/HealthCheckRestService.java | 21 +- .../abakus/app/jackson/JacksonJsonConfig.java | 37 +- .../abakus/app/konfig/ApiConfig.java | 26 +- .../app/konfig/AuthenticationFilter.java | 1 - .../abakus/app/konfig/EksternApiConfig.java | 13 +- .../app/konfig/ForvaltningApiConfig.java | 42 +- .../abakus/app/konfig/InternalApiConfig.java | 7 +- .../app/metrics/PrometheusRestService.java | 1 - .../EksternDelingAvYtelserRestTjeneste.java | 164 +- .../tjenester/ApplicationServiceStarter.java | 37 +- .../app/tjenester/ServiceStarterListener.java | 4 +- .../app/vedlikehold/BegrunnelseVasker.java | 3 +- .../vedlikehold/ByttAkt\303\270rRequest.java" | 16 +- .../EliminerInntektsmeldingRequest.java | 18 +- .../vedlikehold/ForvaltningRestTjeneste.java | 167 +- .../app/vedlikehold/VarigEndringRequest.java | 17 +- .../abakus/jetty/DatasourceUtil.java | 15 +- .../abakus/jetty/JettyServer.java | 33 +- .../abakus/app/SjekkDtoStrukturTest.java | 73 +- .../app/database/SjekkDbStrukturTest.java | 92 +- .../GeneralRestExceptionMapperTest.java | 16 +- .../JsonMappingExceptionMapperTest.java | 3 +- .../HealthCheckRestServiceTest.java | 8 +- .../abakus/app/konfig/RestApiAbacTest.java | 54 +- .../RestApiInputValideringAnnoteringTest.java | 38 +- .../abakus/app/konfig/RestApiTester.java | 17 +- .../ApplicationServiceStarterTest.java | 2 - .../vedlikehold/BegrunnelseVaskerTest.java | 11 +- .../abakus/jetty/JettyDevServer.java | 16 +- 418 files changed, 17292 insertions(+), 15913 deletions(-) diff --git a/README.md b/README.md index 44b9b7f93..a6fe8b7eb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ FP-ABAKUS -================ +========= + [![Bygg og deploy](https://github.com/navikt/fp-abakus/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/navikt/fp-abakus/actions/workflows/build.yml) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=navikt_fp-abakus&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=navikt_fp-abakus) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=navikt_fp-abakus&metric=coverage)](https://sonarcloud.io/summary/new_code?id=navikt_fp-abakus) @@ -12,6 +13,7 @@ FP-ABAKUS [![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=navikt_fp-abakus&metric=sqale_index)](https://sonarcloud.io/dashboard?id=navikt_fp-abakus) ### Abakus kontrakt + [![GitHub release (latest by date)](https://img.shields.io/github/v/release/navikt/fp-abakus)](https://github.com/navikt/fp-abakus/releases) ![GitHub](https://img.shields.io/github/license/navikt/fp-abakus) @@ -48,7 +50,8 @@ Det er mulig å kalle tjenesten med bruk av følgende tokens - Azure CC - Azure OBO med følgende rettigheter: - - fpsak-saksbehandler - - fpsak-veileder - - abakus-drift + - fpsak-saksbehandler + - fpsak-veileder + - abakus-drift - STS (fases ut) + diff --git a/domenetjenester/iay/pom.xml b/domenetjenester/iay/pom.xml index 20de33d94..17e4b1cb4 100644 --- a/domenetjenester/iay/pom.xml +++ b/domenetjenester/iay/pom.xml @@ -1,41 +1,39 @@ - - 4.0.0 + + 4.0.0 - - no.nav.foreldrepenger.abakus - domenetjenester - 1.0-SNAPSHOT - + + no.nav.foreldrepenger.abakus + domenetjenester + 1.0-SNAPSHOT + - iay - jar - Abakus :: Domenetjeneste :: IAY + iay + jar + Abakus :: Domenetjeneste :: IAY - - + + no.nav.fpsak.tidsserie fpsak-tidsserie - no.nav.vedtak.prosesstask - prosesstask-kontekst - - - no.nav.foreldrepenger.abakus - prosesstask - - - no.nav.foreldrepenger.abakus - kobling - - - no.nav.foreldrepenger.felles - felles-db - + no.nav.vedtak.prosesstask + prosesstask-kontekst + + + no.nav.foreldrepenger.abakus + prosesstask + + + no.nav.foreldrepenger.abakus + kobling + + + no.nav.foreldrepenger.felles + felles-db + no.nav.foreldrepenger.felles felles-abac-kontekst @@ -45,51 +43,51 @@ fp-ws-proxy-v1 - - - no.nav.foreldrepenger.abakus - vedtak - + + + no.nav.foreldrepenger.abakus + vedtak + no.nav.foreldrepenger.abakus lonnskomp - - no.nav.foreldrepenger.felles.integrasjon - infotrygd-grunnlag-klient - + + no.nav.foreldrepenger.felles.integrasjon + infotrygd-grunnlag-klient + no.nav.foreldrepenger.felles.integrasjon spokelse-klient - - no.nav.foreldrepenger.kontrakter - fp-feed-vedtak-tjenestespesifikasjon - - - no.nav.foreldrepenger.abakus - abakus-kontrakt - + + no.nav.foreldrepenger.kontrakter + fp-feed-vedtak-tjenestespesifikasjon + + + no.nav.foreldrepenger.abakus + abakus-kontrakt + - - - no.nav.tjenester - aordningen-inntektsinformasjon-v1 - + + + no.nav.tjenester + aordningen-inntektsinformasjon-v1 + - - no.nav.foreldrepenger.felles.integrasjon - felles-integrasjon-rest-klient - + + no.nav.foreldrepenger.felles.integrasjon + felles-integrasjon-rest-klient + no.nav.foreldrepenger.felles.integrasjon ereg-klient - - io.swagger.core.v3 - swagger-annotations-jakarta - + + io.swagger.core.v3 + swagger-annotations-jakarta + - + diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtale.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtale.java index 57c4d1ef7..86426bd95 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtale.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtale.java @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -17,6 +13,9 @@ import jakarta.persistence.Table; import jakarta.persistence.Transient; import jakarta.persistence.Version; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -58,8 +57,8 @@ public class AktivitetsAvtale extends BaseEntitet implements IndexKey { private long versjon; /** - * Setter en periode brukt til overstyring av angitt periode (avledet fra saksbehandlers vurderinger). Benyttes kun transient (ved - * filtrering av modellen) + * Setter en periode brukt til overstyring av angitt periode (avledet fra saksbehandlers vurderinger). Benyttes kun + * transient (ved filtrering av modellen) */ @Transient private IntervallEntitet overstyrtPeriode; @@ -68,9 +67,7 @@ public class AktivitetsAvtale extends BaseEntitet implements IndexKey { // hibernate } - /** - * Deep copy ctor - */ + /** Deep copy ctor */ AktivitetsAvtale(AktivitetsAvtale aktivitetsAvtale) { this.prosentsats = aktivitetsAvtale.getProsentsats(); this.beskrivelse = aktivitetsAvtale.getBeskrivelse(); @@ -102,9 +99,7 @@ void setProsentsats(Stillingsprosent prosentsats) { this.prosentsats = prosentsats; } - /** - * Returner {@link #getProsentsats()} (skalert) eller null. - */ + /** Returner {@link #getProsentsats()} (skalert) eller null. */ public BigDecimal getProsentsatsVerdi() { return prosentsats == null ? null : prosentsats.getVerdi(); } @@ -123,11 +118,10 @@ void setPeriode(IntervallEntitet periode) { } /** - * Perioden til aktivitetsavtalen. - * Tar Ikke hensyn til overstyring gjort i 5080. - *

- * Henter kun den originale perioden, ikke den overstyrte perioden. - * Bruk heller {@link #getPeriode} i de fleste tilfeller + * Perioden til aktivitetsavtalen. Tar Ikke hensyn til overstyring gjort i 5080. + * + *

Henter kun den originale perioden, ikke den overstyrte perioden. Bruk heller {@link #getPeriode} i de fleste + * tilfeller * * @return Hele den originale perioden, uten overstyringer. */ @@ -139,8 +133,8 @@ public IntervallEntitet getPeriodeUtenOverstyring() { * Hvorvidt aktivitetsavtalen har en overstyrt periode eller ikke. * * @return boolean, true hvis overstyrt, false hvis ikke. - * @deprecated FIXME - bør fjerne intern filtrering basert på initialisert transient overstyrt periode. Legg heller til egen Decorator - * klasse som filtrerer output fra entitet + * @deprecated FIXME - bør fjerne intern filtrering basert på initialisert transient overstyrt periode. Legg heller + * til egen Decorator klasse som filtrerer output fra entitet */ @Deprecated public boolean erOverstyrtPeriode() { @@ -194,8 +188,11 @@ public boolean equals(Object o) { return false; } AktivitetsAvtale that = (AktivitetsAvtale) o; - return Objects.equals(beskrivelse, that.beskrivelse) && Objects.equals(prosentsats, that.prosentsats) && Objects.equals(periode, that.periode) - && Objects.equals(overstyrtPeriode, that.overstyrtPeriode) && Objects.equals(sisteLønnsendringsdato, that.sisteLønnsendringsdato); + return Objects.equals(beskrivelse, that.beskrivelse) + && Objects.equals(prosentsats, that.prosentsats) + && Objects.equals(periode, that.periode) + && Objects.equals(overstyrtPeriode, that.overstyrtPeriode) + && Objects.equals(sisteLønnsendringsdato, that.sisteLønnsendringsdato); } @Override @@ -205,13 +202,12 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + - "periode=" + periode + - ", overstyrtPeriode=" + overstyrtPeriode + - ", prosentsats=" + prosentsats + - ", beskrivelse=" + beskrivelse + - ", sisteLønnsendringsdato=" + sisteLønnsendringsdato + - '>'; + return getClass().getSimpleName() + "<" + "periode=" + + periode + ", overstyrtPeriode=" + + overstyrtPeriode + ", prosentsats=" + + prosentsats + ", beskrivelse=" + + beskrivelse + ", sisteLønnsendringsdato=" + + sisteLønnsendringsdato + '>'; } boolean hasValues() { @@ -219,6 +215,7 @@ boolean hasValues() { } public boolean erAnsettelsesPeriode() { - return (prosentsats == null || prosentsats.getVerdi() == null || prosentsats.erNulltall()) && sisteLønnsendringsdato == null; + return (prosentsats == null || prosentsats.getVerdi() == null || prosentsats.erNulltall()) + && sisteLønnsendringsdato == null; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtaleBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtaleBuilder.java index 60daa54d4..7334c1e98 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtaleBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/AktivitetsAvtaleBuilder.java @@ -3,7 +3,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.Optional; - import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @@ -21,7 +20,8 @@ public static AktivitetsAvtaleBuilder ny() { } static AktivitetsAvtaleBuilder oppdater(Optional aktivitetsAvtale) { - return new AktivitetsAvtaleBuilder(aktivitetsAvtale.orElseGet(AktivitetsAvtale::new), aktivitetsAvtale.isPresent()); + return new AktivitetsAvtaleBuilder( + aktivitetsAvtale.orElseGet(AktivitetsAvtale::new), aktivitetsAvtale.isPresent()); } public AktivitetsAvtaleBuilder medProsentsats(Stillingsprosent prosentsats) { @@ -30,7 +30,8 @@ public AktivitetsAvtaleBuilder medProsentsats(Stillingsprosent prosentsats) { } public AktivitetsAvtaleBuilder medProsentsats(BigDecimal prosentsats) { - this.aktivitetsAvtaleEntitet.setProsentsats(prosentsats == null ? Stillingsprosent.nullProsent() : Stillingsprosent.arbeid(prosentsats)); + this.aktivitetsAvtaleEntitet.setProsentsats( + prosentsats == null ? Stillingsprosent.nullProsent() : Stillingsprosent.arbeid(prosentsats)); return this; } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rArbeid.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rArbeid.java" index d546ba5f5..747f4f8da 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rArbeid.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rArbeid.java" @@ -1,12 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -20,7 +13,12 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -56,16 +54,16 @@ public class AktørArbeid extends BaseEntitet implements IndexKey { // hibernate } - /** - * Deep copy ctor - */ + /** Deep copy ctor */ AktørArbeid(AktørArbeid aktørArbeid) { this.aktørId = aktørArbeid.getAktørId(); - this.yrkesaktiviter = aktørArbeid.yrkesaktiviter.stream().map(yrkesaktivitet -> { - Yrkesaktivitet yrkes = new Yrkesaktivitet(yrkesaktivitet); - yrkes.setAktørArbeid(this); - return yrkes; - }).collect(Collectors.toCollection(LinkedHashSet::new)); + this.yrkesaktiviter = aktørArbeid.yrkesaktiviter.stream() + .map(yrkesaktivitet -> { + Yrkesaktivitet yrkes = new Yrkesaktivitet(yrkesaktivitet); + yrkes.setAktørArbeid(this); + return yrkes; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -86,9 +84,7 @@ public String getIndexKey() { this.aktørId = aktørId; } - /** - * Alle yrkesaktiviteter (ufiltret ifht skjæringstidspunkt vurdering. ) - */ + /** Alle yrkesaktiviteter (ufiltret ifht skjæringstidspunkt vurdering. ) */ public Collection hentAlleYrkesaktiviteter() { return Set.copyOf(yrkesaktiviter); } @@ -107,17 +103,19 @@ boolean hasValues() { YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkel(Opptjeningsnøkkel identifikator, ArbeidType arbeidType) { Optional yrkesaktivitet = yrkesaktiviter.stream() - .filter(ya -> ya.getArbeidType().equals(arbeidType) && new Opptjeningsnøkkel(ya).equals(identifikator)) - .findFirst(); + .filter(ya -> ya.getArbeidType().equals(arbeidType) && new Opptjeningsnøkkel(ya).equals(identifikator)) + .findFirst(); final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet); oppdatere.medArbeidType(arbeidType); return oppdatere; } - YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkel(Opptjeningsnøkkel identifikator, Set arbeidTyper) { + YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkel( + Opptjeningsnøkkel identifikator, Set arbeidTyper) { Optional yrkesaktivitet = yrkesaktiviter.stream() - .filter(ya -> arbeidTyper.contains(ya.getArbeidType()) && new Opptjeningsnøkkel(ya).equals(identifikator)) - .findFirst(); + .filter(ya -> + arbeidTyper.contains(ya.getArbeidType()) && new Opptjeningsnøkkel(ya).equals(identifikator)) + .findFirst(); final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet); if (!oppdatere.getErOppdatering()) { // Defaulter til ordinert arbeidsforhold hvis saksbehandler har lagt til fra GUI @@ -133,12 +131,15 @@ void fjernYrkesaktivitetForBuilder(YrkesaktivitetBuilder builder) { yrkesaktiviter.removeIf(ya -> ya.getArbeidType().equals(arbeidType)); } else { Opptjeningsnøkkel nøkkel = new Opptjeningsnøkkel(yrkesaktivitetKladd); - yrkesaktiviter.removeIf(ya -> ya.getArbeidType().equals(arbeidType) && new Opptjeningsnøkkel(ya).matcher(nøkkel)); + yrkesaktiviter.removeIf( + ya -> ya.getArbeidType().equals(arbeidType) && new Opptjeningsnøkkel(ya).matcher(nøkkel)); } } YrkesaktivitetBuilder getYrkesaktivitetBuilderForType(ArbeidType type) { - Optional yrkesaktivitet = yrkesaktiviter.stream().filter(ya -> ya.getArbeidType().equals(type)).findFirst(); + Optional yrkesaktivitet = yrkesaktiviter.stream() + .filter(ya -> ya.getArbeidType().equals(type)) + .findFirst(); final YrkesaktivitetBuilder oppdatere = YrkesaktivitetBuilder.oppdatere(yrkesaktivitet); oppdatere.medArbeidType(type); return oppdatere; @@ -171,7 +172,9 @@ public String toString() { } void tilbakestillYrkesaktiviteter() { - this.yrkesaktiviter = yrkesaktiviter.stream().filter(Yrkesaktivitet::erYrkesaktivitetMedLegacyInnhold).collect(Collectors.toSet()); + this.yrkesaktiviter = yrkesaktiviter.stream() + .filter(Yrkesaktivitet::erYrkesaktivitetMedLegacyInnhold) + .collect(Collectors.toSet()); } void tilbakestillYrkesaktiviteterInklusiveInntektFrilans() { diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rInntekt.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rInntekt.java" index 495f8f0a2..bacf49cfc 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rInntekt.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rInntekt.java" @@ -1,14 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; - -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -22,7 +13,13 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @@ -56,20 +53,20 @@ public class AktørInntekt extends BaseEntitet implements IndexKey { private long versjon; AktørInntekt() { - //hibernate + // hibernate } - /** - * Deep copy ctor - */ + /** Deep copy ctor */ AktørInntekt(AktørInntekt aktørInntekt) { this.aktørId = aktørInntekt.getAktørId(); - this.inntekt = aktørInntekt.inntekt.stream().map(i -> { - Inntekt inntektTmpEntitet = new Inntekt(i); - inntektTmpEntitet.setAktørInntekt(this); - return inntektTmpEntitet; - }).collect(Collectors.toCollection(LinkedHashSet::new)); + this.inntekt = aktørInntekt.inntekt.stream() + .map(i -> { + Inntekt inntektTmpEntitet = new Inntekt(i); + inntektTmpEntitet.setAktørInntekt(this); + return inntektTmpEntitet; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -95,9 +92,7 @@ void setInntektArbeidYtelser(InntektArbeidYtelseAggregat inntektArbeidYtelser) { this.aktørId = aktørId; } - /** - * Returner alle inntekter, ufiltrert. - */ + /** Returner alle inntekter, ufiltrert. */ public Collection getInntekt() { return Collections.unmodifiableSet(inntekt); } @@ -108,10 +103,10 @@ public boolean hasValues() { public InntektBuilder getInntektBuilder(InntektskildeType inntektskildeType, Opptjeningsnøkkel nøkkel) { Optional inntektOptional = getInntekt().stream() - .filter(i -> inntektskildeType.equals(i.getInntektsKilde())) - .filter(i -> i.getArbeidsgiver() != null && new Opptjeningsnøkkel(i.getArbeidsgiver()).matcher(nøkkel) || inntektskildeType.equals( - InntektskildeType.SIGRUN)) - .findFirst(); + .filter(i -> inntektskildeType.equals(i.getInntektsKilde())) + .filter(i -> i.getArbeidsgiver() != null && new Opptjeningsnøkkel(i.getArbeidsgiver()).matcher(nøkkel) + || inntektskildeType.equals(InntektskildeType.SIGRUN)) + .findFirst(); InntektBuilder oppdatere = InntektBuilder.oppdatere(inntektOptional); if (!oppdatere.getErOppdatering()) { oppdatere.medInntektsKilde(inntektskildeType); @@ -121,10 +116,11 @@ public InntektBuilder getInntektBuilder(InntektskildeType inntektskildeType, Opp public InntektBuilder getInntektBuilderForYtelser(InntektskildeType inntektskildeType) { Optional inntektOptional = getInntekt().stream() - .filter(i -> i.getArbeidsgiver() == null) - .filter(i -> inntektskildeType.equals(i.getInntektsKilde())) - .filter(i -> i.getAlleInntektsposter().stream().anyMatch(post -> post.getInntektspostType().equals(InntektspostType.YTELSE))) - .findFirst(); + .filter(i -> i.getArbeidsgiver() == null) + .filter(i -> inntektskildeType.equals(i.getInntektsKilde())) + .filter(i -> i.getAlleInntektsposter().stream() + .anyMatch(post -> post.getInntektspostType().equals(InntektspostType.YTELSE))) + .findFirst(); InntektBuilder oppdatere = InntektBuilder.oppdatere(inntektOptional); if (!oppdatere.getErOppdatering()) { oppdatere.medInntektsKilde(inntektskildeType); diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rYtelse.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rYtelse.java" index ccb2d4e00..97d294db7 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rYtelse.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Akt\303\270rYtelse.java" @@ -1,14 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -22,6 +13,14 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.time.LocalDate; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -37,24 +36,32 @@ public class AktørYtelse extends BaseEntitet implements IndexKey { /** - * Her legger man inn ytelser/kilder som er innhentet tidligere, men som ikke blir reinnhentet etter sanering av integrasjon - * Nye søknader vil ikke ha disse i opptjeningen -> saner integrasjon. - * - SVP Siste SVP / Infotrygd ble innvilget høst 2019 og løp ut mars 2020. - * - FP Siste utbetaling av foreldrepenger var tom januar 2022 + * Her legger man inn ytelser/kilder som er innhentet tidligere, men som ikke blir reinnhentet etter sanering av + * integrasjon Nye søknader vil ikke ha disse i opptjeningen -> saner integrasjon. - SVP Siste SVP / Infotrygd ble + * innvilget høst 2019 og løp ut mars 2020. - FP Siste utbetaling av foreldrepenger var tom januar 2022 */ - private static final Set UTGÅTT_INFOTRYGD = Set.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER); + private static final Set UTGÅTT_INFOTRYGD = + Set.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER); + @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_AKTOER_YTELSE") private Long id; + @Embedded - @AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "aktoer_id", nullable = false, updatable = false))) + @AttributeOverrides( + @AttributeOverride( + name = "aktørId", + column = @Column(name = "aktoer_id", nullable = false, updatable = false))) private AktørId aktørId; + @ManyToOne(optional = false) @JoinColumn(name = "inntekt_arbeid_ytelser_id", nullable = false, updatable = false) private InntektArbeidYtelseAggregat inntektArbeidYtelser; + @OneToMany(mappedBy = "aktørYtelse") @ChangeTracked private Set ytelser = new LinkedHashSet<>(); + @Version @Column(name = "versjon", nullable = false) private long versjon; @@ -63,16 +70,16 @@ public class AktørYtelse extends BaseEntitet implements IndexKey { // hibernate } - /** - * Deep copy ctor - */ + /** Deep copy ctor */ AktørYtelse(AktørYtelse aktørYtelse) { this.aktørId = aktørYtelse.getAktørId(); - this.ytelser = aktørYtelse.getAlleYtelser().stream().map(ytelse -> { - Ytelse ytelseEntitet = new Ytelse(ytelse); - ytelseEntitet.setAktørYtelse(this); - return ytelseEntitet; - }).collect(Collectors.toCollection(LinkedHashSet::new)); + this.ytelser = aktørYtelse.getAlleYtelser().stream() + .map(ytelse -> { + Ytelse ytelseEntitet = new Ytelse(ytelse); + ytelseEntitet.setAktørYtelse(this); + return ytelseEntitet; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); } private static boolean beholdLegacyYtelseFraKilde(Ytelse y) { @@ -98,9 +105,7 @@ public String getIndexKey() { this.aktørId = aktørId; } - /** - * Alle tilstøende ytelser (ufiltrert). - */ + /** Alle tilstøende ytelser (ufiltrert). */ public Collection getAlleYtelser() { return List.copyOf(ytelser); } @@ -115,57 +120,83 @@ boolean hasValues() { YtelseBuilder getYtelseBuilderForType(Fagsystem fagsystem, YtelseType type, Saksnummer saksnummer) { Optional ytelse = getAlleYtelser().stream() - .filter(ya -> ya.getKilde().equals(fagsystem) && ya.getRelatertYtelseType().equals(type) && ya.getSaksreferanse().equals(saksnummer)) - .findFirst(); - return YtelseBuilder.oppdatere(ytelse).medYtelseType(type).medKilde(fagsystem).medSaksreferanse(saksnummer); - } - - YtelseBuilder getYtelseBuilderForType(Fagsystem fagsystem, - YtelseType type, - Saksnummer saksnummer, - IntervallEntitet periode, - Optional tidligsteAnvistFom) { + .filter(ya -> ya.getKilde().equals(fagsystem) + && ya.getRelatertYtelseType().equals(type) + && ya.getSaksreferanse().equals(saksnummer)) + .findFirst(); + return YtelseBuilder.oppdatere(ytelse) + .medYtelseType(type) + .medKilde(fagsystem) + .medSaksreferanse(saksnummer); + } + + YtelseBuilder getYtelseBuilderForType( + Fagsystem fagsystem, + YtelseType type, + Saksnummer saksnummer, + IntervallEntitet periode, + Optional tidligsteAnvistFom) { // OBS kan være flere med samme Saksnummer+FOM: Konvensjon ifm satsjustering List aktuelleYtelser = getAlleYtelser().stream() - .filter(ya -> ya.getKilde().equals(fagsystem) && ya.getRelatertYtelseType().equals(type) && (saksnummer.equals(ya.getSaksreferanse()) - && periode.getFomDato().equals(ya.getPeriode().getFomDato()))) - .collect(Collectors.toList()); - Optional ytelse = aktuelleYtelser.stream().filter(ya -> periode.equals(ya.getPeriode())).findFirst(); + .filter(ya -> ya.getKilde().equals(fagsystem) + && ya.getRelatertYtelseType().equals(type) + && (saksnummer.equals(ya.getSaksreferanse()) + && periode.getFomDato().equals(ya.getPeriode().getFomDato()))) + .collect(Collectors.toList()); + Optional ytelse = aktuelleYtelser.stream() + .filter(ya -> periode.equals(ya.getPeriode())) + .findFirst(); if (ytelse.isEmpty() && !aktuelleYtelser.isEmpty()) { - // Håndtere endret TOM-dato som regel ifm at ytelsen er opphørt. Hvis flere med samme FOM-dato sjekk anvist-fom + // Håndtere endret TOM-dato som regel ifm at ytelsen er opphørt. Hvis flere med samme FOM-dato sjekk + // anvist-fom if (tidligsteAnvistFom.isPresent()) { ytelse = aktuelleYtelser.stream() - .filter(yt -> yt.getYtelseAnvist().stream().anyMatch(ya -> tidligsteAnvistFom.get().equals(ya.getAnvistFOM()))) - .findFirst(); + .filter(yt -> yt.getYtelseAnvist().stream() + .anyMatch(ya -> tidligsteAnvistFom.get().equals(ya.getAnvistFOM()))) + .findFirst(); } if (ytelse.isEmpty()) { - ytelse = aktuelleYtelser.stream().filter(yt -> yt.getYtelseAnvist().isEmpty()).findFirst(); + ytelse = aktuelleYtelser.stream() + .filter(yt -> yt.getYtelseAnvist().isEmpty()) + .findFirst(); } } - return YtelseBuilder.oppdatere(ytelse).medYtelseType(type).medKilde(fagsystem).medSaksreferanse(saksnummer); + return YtelseBuilder.oppdatere(ytelse) + .medYtelseType(type) + .medKilde(fagsystem) + .medSaksreferanse(saksnummer); } - YtelseBuilder getYtelseBuilderForType(Fagsystem fagsystem, - YtelseType type, IntervallEntitet periode, - Optional tidligsteAnvistFom) { + YtelseBuilder getYtelseBuilderForType( + Fagsystem fagsystem, YtelseType type, IntervallEntitet periode, Optional tidligsteAnvistFom) { // OBS kan være flere med samme Tema/TUK+FOM: Konvensjon ifm rammevedtak BS List aktuelleYtelser = getAlleYtelser().stream() - .filter(ya -> ya.getKilde().equals(fagsystem) && ya.getRelatertYtelseType().equals(type) - && (periode.getFomDato().equals(ya.getPeriode().getFomDato()))) - .collect(Collectors.toList()); - Optional ytelse = aktuelleYtelser.stream().filter(ya -> periode.equals(ya.getPeriode())).findFirst(); + .filter(ya -> ya.getKilde().equals(fagsystem) + && ya.getRelatertYtelseType().equals(type) + && (periode.getFomDato().equals(ya.getPeriode().getFomDato()))) + .collect(Collectors.toList()); + Optional ytelse = aktuelleYtelser.stream() + .filter(ya -> periode.equals(ya.getPeriode())) + .findFirst(); if (ytelse.isEmpty() && !aktuelleYtelser.isEmpty()) { - // Håndtere endret TOM-dato som regel ifm at ytelsen er opphørt. Hvis flere med samme FOM-dato sjekk anvist-fom + // Håndtere endret TOM-dato som regel ifm at ytelsen er opphørt. Hvis flere med samme FOM-dato sjekk + // anvist-fom if (tidligsteAnvistFom.isPresent()) { ytelse = aktuelleYtelser.stream() - .filter(yt -> yt.getYtelseAnvist().stream().anyMatch(ya -> tidligsteAnvistFom.get().equals(ya.getAnvistFOM()))) - .findFirst(); + .filter(yt -> yt.getYtelseAnvist().stream() + .anyMatch(ya -> tidligsteAnvistFom.get().equals(ya.getAnvistFOM()))) + .findFirst(); } if (ytelse.isEmpty()) { - ytelse = aktuelleYtelser.stream().filter(yt -> yt.getYtelseAnvist().isEmpty()).findFirst(); + ytelse = aktuelleYtelser.stream() + .filter(yt -> yt.getYtelseAnvist().isEmpty()) + .findFirst(); } } - return YtelseBuilder.oppdatere(ytelse).medYtelseType(type).medKilde(fagsystem).medPeriode(periode); + return YtelseBuilder.oppdatere(ytelse) + .medYtelseType(type) + .medKilde(fagsystem) + .medPeriode(periode); } void leggTilYtelse(Ytelse ytelse) { @@ -174,7 +205,8 @@ void leggTilYtelse(Ytelse ytelse) { } void tilbakestillYtelser() { - this.ytelser = ytelser.stream().filter(AktørYtelse::beholdLegacyYtelseFraKilde).collect(Collectors.toSet()); + this.ytelser = + ytelser.stream().filter(AktørYtelse::beholdLegacyYtelseFraKilde).collect(Collectors.toSet()); } @Override @@ -197,5 +229,4 @@ public int hashCode() { public String toString() { return getClass().getSimpleName() + "<" + "aktørId=" + aktørId + ", ytelser=" + ytelser + '>'; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Arbeidsgiver.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Arbeidsgiver.java index 867194f2e..a9f452bbd 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Arbeidsgiver.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Arbeidsgiver.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.io.Serializable; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.Embedded; - +import java.io.Serializable; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.domene.virksomhet.Virksomhet; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -20,11 +18,13 @@ @Embeddable public class Arbeidsgiver implements IndexKey, TraverseValue, Serializable { /** - * Kun en av denne og {@link #arbeidsgiverAktørId} kan være satt. Sett denne hvis ArbeidsgiverEntitet er en Organisasjon. + * Kun en av denne og {@link #arbeidsgiverAktørId} kan være satt. Sett denne hvis ArbeidsgiverEntitet er en + * Organisasjon. */ @ChangeTracked @Embedded - @AttributeOverrides(@AttributeOverride(name = "orgNummer", column = @Column(name = "arbeidsgiver_orgnr", updatable = false))) + @AttributeOverrides( + @AttributeOverride(name = "orgNummer", column = @Column(name = "arbeidsgiver_orgnr", updatable = false))) private OrgNummer arbeidsgiverOrgnr; /** @@ -32,7 +32,8 @@ public class Arbeidsgiver implements IndexKey, TraverseValue, Serializable { */ @ChangeTracked @Embedded - @AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "arbeidsgiver_aktor_id", updatable = false))) + @AttributeOverrides( + @AttributeOverride(name = "aktørId", column = @Column(name = "arbeidsgiver_aktor_id", updatable = false))) private AktørId arbeidsgiverAktørId; private Arbeidsgiver(OrgNummer arbeidsgiverOrgnr, AktørId arbeidsgiverAktørId) { @@ -72,8 +73,8 @@ public OrgNummer getOrgnr() { } /** - * Returneer ident for ArbeidsgiverEntitet. Kan være Org nummer eller AktørDto id (dersom ArbeidsgiverEntitet er en enkelt person - - * f.eks. for Frilans el.) + * Returneer ident for ArbeidsgiverEntitet. Kan være Org nummer eller AktørDto id (dersom ArbeidsgiverEntitet er en + * enkelt person - f.eks. for Frilans el.) */ public String getIdentifikator() { if (arbeidsgiverAktørId != null) { @@ -82,16 +83,12 @@ public String getIdentifikator() { return arbeidsgiverOrgnr.getId(); } - /** - * Return true hvis ArbeidsgiverEntitet er en {@link Virksomhet}, false hvis en Person. - */ + /** Return true hvis ArbeidsgiverEntitet er en {@link Virksomhet}, false hvis en Person. */ public boolean getErVirksomhet() { return this.arbeidsgiverOrgnr != null; } - /** - * Return true hvis ArbeidsgiverEntitet er en {@link AktørId}, ellers false. - */ + /** Return true hvis ArbeidsgiverEntitet er en {@link AktørId}, ellers false. */ public boolean erAktørId() { return this.arbeidsgiverAktørId != null; } @@ -105,7 +102,8 @@ public boolean equals(Object o) { return false; } Arbeidsgiver that = (Arbeidsgiver) o; - return Objects.equals(arbeidsgiverOrgnr, that.arbeidsgiverOrgnr) && Objects.equals(arbeidsgiverAktørId, that.arbeidsgiverAktørId); + return Objects.equals(arbeidsgiverOrgnr, that.arbeidsgiverOrgnr) + && Objects.equals(arbeidsgiverAktørId, that.arbeidsgiverAktørId); } @Override @@ -115,7 +113,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "arbeidsgiverOrgnr=" + arbeidsgiverOrgnr + ", arbeidsgiverAktørId='" + arbeidsgiverAktørId + '\'' - + '>'; + return getClass().getSimpleName() + "<" + "arbeidsgiverOrgnr=" + arbeidsgiverOrgnr + ", arbeidsgiverAktørId='" + + arbeidsgiverAktørId + '\'' + '>'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/BekreftetPermisjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/BekreftetPermisjon.java index 6532b1e7c..a1c9cff46 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/BekreftetPermisjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/BekreftetPermisjon.java @@ -1,15 +1,13 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embeddable; import jakarta.persistence.Embedded; - +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.BekreftetPermisjonStatus; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.iay.jpa.BekreftetPermisjonStatusKodeverdiConverter; @@ -22,7 +20,10 @@ public class BekreftetPermisjon { private BekreftetPermisjonStatus status = BekreftetPermisjonStatus.UDEFINERT; @Embedded - @AttributeOverrides({@AttributeOverride(name = "fomDato", column = @Column(name = "bekreftet_permisjon_fom")), @AttributeOverride(name = "tomDato", column = @Column(name = "bekreftet_permisjon_tom"))}) + @AttributeOverrides({ + @AttributeOverride(name = "fomDato", column = @Column(name = "bekreftet_permisjon_fom")), + @AttributeOverride(name = "tomDato", column = @Column(name = "bekreftet_permisjon_tom")) + }) private IntervallEntitet periode; public BekreftetPermisjon() { @@ -68,5 +69,4 @@ public int hashCode() { public String toString() { return getClass().getSimpleName() + "<" + "periode=" + periode + ", status=" + status + '>'; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/GrunnlagReferanse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/GrunnlagReferanse.java index dc2dc7d4f..697cad513 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/GrunnlagReferanse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/GrunnlagReferanse.java @@ -1,12 +1,10 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.util.Objects; -import java.util.UUID; - +import com.fasterxml.jackson.annotation.JsonValue; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - -import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Objects; +import java.util.UUID; @Embeddable public class GrunnlagReferanse { @@ -53,5 +51,4 @@ public int hashCode() { public String toString() { return getClass().getSimpleName() + "<" + referanse + ">"; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntekt.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntekt.java index d6855529f..e2444e65f 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntekt.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntekt.java @@ -1,12 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -19,7 +12,12 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -60,17 +58,17 @@ public class Inntekt extends BaseEntitet implements IndexKey { // hibernate } - /** - * Deep copy. - */ + /** Deep copy. */ Inntekt(Inntekt inntektMal) { this.inntektskildeType = inntektMal.getInntektsKilde(); this.arbeidsgiver = inntektMal.getArbeidsgiver(); - this.inntektspost = inntektMal.getAlleInntektsposter().stream().map(ip -> { - Inntektspost inntektspostEntitet = new Inntektspost(ip); - inntektspostEntitet.setInntekt(this); - return inntektspostEntitet; - }).collect(Collectors.toCollection(LinkedHashSet::new)); + this.inntektspost = inntektMal.getAlleInntektsposter().stream() + .map(ip -> { + Inntektspost inntektspostEntitet = new Inntektspost(ip); + inntektspostEntitet.setInntekt(this); + return inntektspostEntitet; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -87,7 +85,8 @@ public boolean equals(Object obj) { return false; } Inntekt other = (Inntekt) obj; - return Objects.equals(this.getInntektsKilde(), other.getInntektsKilde()) && Objects.equals(this.getArbeidsgiver(), other.getArbeidsgiver()); + return Objects.equals(this.getInntektsKilde(), other.getInntektsKilde()) + && Objects.equals(this.getArbeidsgiver(), other.getArbeidsgiver()); } @Override @@ -121,9 +120,7 @@ void setArbeidsgiver(Arbeidsgiver arbeidsgiver) { this.arbeidsgiver = arbeidsgiver; } - /** - * Hent alle utbetalinger (ufiltrert). - */ + /** Hent alle utbetalinger (ufiltrert). */ public Collection getAlleInntektsposter() { return Collections.unmodifiableSet(inntektspost); } @@ -150,12 +147,14 @@ public boolean hasValues() { } void tilbakestillInntektsposterForPerioder(Set perioder) { - this.inntektspost = inntektspost.stream().filter(ip -> !perioder.contains(ip.getPeriode())).collect(Collectors.toSet()); + this.inntektspost = inntektspost.stream() + .filter(ip -> !perioder.contains(ip.getPeriode())) + .collect(Collectors.toSet()); } @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregat.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregat.java index 3622149bb..52e46d2ba 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregat.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregat.java @@ -1,14 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDateTime; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -17,12 +8,18 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - -import org.hibernate.annotations.NaturalId; - +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.DiffIgnore; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; +import org.hibernate.annotations.NaturalId; @Table(name = "IAY_INNTEKT_ARBEID_YTELSER") @Entity(name = "InntektArbeidYtelser") @@ -62,40 +59,48 @@ public class InntektArbeidYtelseAggregat extends BaseEntitet { this.eksternReferanse = angittEksternReferanse; } - InntektArbeidYtelseAggregat(UUID eksternReferanse, LocalDateTime opprettetTidspunkt, InntektArbeidYtelseAggregat kopierFra) { + InntektArbeidYtelseAggregat( + UUID eksternReferanse, LocalDateTime opprettetTidspunkt, InntektArbeidYtelseAggregat kopierFra) { Objects.requireNonNull(eksternReferanse, "eksternReferanse"); - this.setAktørInntekt(kopierFra.getAktørInntekt().stream().map(ai -> { - AktørInntekt aktørInntektEntitet = new AktørInntekt(ai); - aktørInntektEntitet.setInntektArbeidYtelser(this); - return aktørInntektEntitet; - }).collect(Collectors.toList())); - - this.setAktørArbeid(kopierFra.getAktørArbeid().stream().map(aktørArbied -> { - AktørArbeid aktørArbeidEntitet = new AktørArbeid(aktørArbied); - aktørArbeidEntitet.setInntektArbeidYtelser(this); - return aktørArbeidEntitet; - }).collect(Collectors.toList())); - - this.setAktørYtelse(kopierFra.getAktørYtelse().stream().map(ay -> { - AktørYtelse aktørYtelseEntitet = new AktørYtelse(ay); - aktørYtelseEntitet.setInntektArbeidYtelser(this); - return aktørYtelseEntitet; - }).collect(Collectors.toList())); + this.setAktørInntekt(kopierFra.getAktørInntekt().stream() + .map(ai -> { + AktørInntekt aktørInntektEntitet = new AktørInntekt(ai); + aktørInntektEntitet.setInntektArbeidYtelser(this); + return aktørInntektEntitet; + }) + .collect(Collectors.toList())); + + this.setAktørArbeid(kopierFra.getAktørArbeid().stream() + .map(aktørArbied -> { + AktørArbeid aktørArbeidEntitet = new AktørArbeid(aktørArbied); + aktørArbeidEntitet.setInntektArbeidYtelser(this); + return aktørArbeidEntitet; + }) + .collect(Collectors.toList())); + + this.setAktørYtelse(kopierFra.getAktørYtelse().stream() + .map(ay -> { + AktørYtelse aktørYtelseEntitet = new AktørYtelse(ay); + aktørYtelseEntitet.setInntektArbeidYtelser(this); + return aktørYtelseEntitet; + }) + .collect(Collectors.toList())); this.setOpprettetTidspunkt(opprettetTidspunkt); this.eksternReferanse = eksternReferanse; } /** - * Copy constructor - inklusiv angitt referanse og opprettet tid. Brukes for immutable copy internt i minne. Hvis lagres i samme database - * vil det gi unik constraint exception. Men nyttig for å sende data til andre systemer. + * Copy constructor - inklusiv angitt referanse og opprettet tid. Brukes for immutable copy internt i minne. Hvis + * lagres i samme database vil det gi unik constraint exception. Men nyttig for å sende data til andre systemer. */ InntektArbeidYtelseAggregat(InntektArbeidYtelseAggregat kopierFra) { this(kopierFra.getEksternReferanse(), kopierFra.getOpprettetTidspunkt(), kopierFra); } /** - * Identifisere en immutable instans av grunnlaget unikt og er egnet for utveksling (eks. til abakus eller andre systemer) + * Identifisere en immutable instans av grunnlaget unikt og er egnet for utveksling (eks. til abakus eller andre + * systemer) */ public UUID getEksternReferanse() { return eksternReferanse; @@ -148,8 +153,9 @@ public boolean equals(Object obj) { return false; } InntektArbeidYtelseAggregat other = (InntektArbeidYtelseAggregat) obj; - return Objects.equals(this.getAktørInntekt(), other.getAktørInntekt()) && Objects.equals(this.getAktørArbeid(), other.getAktørArbeid()) - && Objects.equals(this.getAktørYtelse(), other.getAktørYtelse()); + return Objects.equals(this.getAktørInntekt(), other.getAktørInntekt()) + && Objects.equals(this.getAktørArbeid(), other.getAktørArbeid()) + && Objects.equals(this.getAktørYtelse(), other.getAktørYtelse()); } @Override @@ -159,8 +165,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "aktørInntekt=" + aktørInntekt + ", aktørArbeid=" + aktørArbeid + ", aktørYtelse=" + aktørYtelse - + '>'; + return getClass().getSimpleName() + "<" + "aktørInntekt=" + aktørInntekt + ", aktørArbeid=" + aktørArbeid + + ", aktørYtelse=" + aktørYtelse + '>'; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregatBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregatBuilder.java index 0741e10a8..6eaf6ba3d 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregatBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseAggregatBuilder.java @@ -8,7 +8,6 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; @@ -22,11 +21,12 @@ /** * Builder for å håndtere en gitt versjon {@link VersjonType} av grunnlaget. - *

- * Holder styr på om det er en oppdatering av eksisterende informasjon, om det gjelder før eller etter skjæringstidspunktet - * og om det er registerdata eller saksbehandlers beslutninger. - *

- * NB! Viktig at denne builderen hentes fra repository for å sikre at den er rett tilstand ved oppdatering. Hvis ikke kan data gå tapt. + * + *

Holder styr på om det er en oppdatering av eksisterende informasjon, om det gjelder før eller etter + * skjæringstidspunktet og om det er registerdata eller saksbehandlers beslutninger. + * + *

NB! Viktig at denne builderen hentes fra repository for å sikre at den er rett tilstand ved oppdatering. Hvis ikke + * kan data gå tapt. */ public class InntektArbeidYtelseAggregatBuilder { @@ -39,27 +39,32 @@ private InntektArbeidYtelseAggregatBuilder(InntektArbeidYtelseAggregat kladd, Ve this.versjon = versjon; } - public static InntektArbeidYtelseAggregatBuilder oppdatere(Optional oppdatere, VersjonType versjon) { + public static InntektArbeidYtelseAggregatBuilder oppdatere( + Optional oppdatere, VersjonType versjon) { return builderFor(oppdatere, UUID.randomUUID(), LocalDateTime.now(), versjon); } - public static InntektArbeidYtelseAggregatBuilder pekeTil(InntektArbeidYtelseAggregat oppdatere, VersjonType versjon) { + public static InntektArbeidYtelseAggregatBuilder pekeTil( + InntektArbeidYtelseAggregat oppdatere, VersjonType versjon) { Objects.requireNonNull(oppdatere); return new InntektArbeidYtelseAggregatBuilder(oppdatere, versjon); } - public static InntektArbeidYtelseAggregatBuilder builderFor(Optional kopierDataFra, - UUID angittReferanse, - LocalDateTime angittTidspunkt, - VersjonType versjon) { - return kopierDataFra.map( - kopier -> new InntektArbeidYtelseAggregatBuilder(new InntektArbeidYtelseAggregat(angittReferanse, angittTidspunkt, kopier), versjon)) - .orElseGet(() -> new InntektArbeidYtelseAggregatBuilder(new InntektArbeidYtelseAggregat(angittReferanse, angittTidspunkt), versjon)); + public static InntektArbeidYtelseAggregatBuilder builderFor( + Optional kopierDataFra, + UUID angittReferanse, + LocalDateTime angittTidspunkt, + VersjonType versjon) { + return kopierDataFra + .map(kopier -> new InntektArbeidYtelseAggregatBuilder( + new InntektArbeidYtelseAggregat(angittReferanse, angittTidspunkt, kopier), versjon)) + .orElseGet(() -> new InntektArbeidYtelseAggregatBuilder( + new InntektArbeidYtelseAggregat(angittReferanse, angittTidspunkt), versjon)); } /** - * Legger til inntekter for en gitt aktør hvis det ikke er en oppdatering av eksisterende. - * Ved oppdatering eksisterer koblingen for denne aktøren allerede så en kopi av forrige innslag manipuleres før lagring. + * Legger til inntekter for en gitt aktør hvis det ikke er en oppdatering av eksisterende. Ved oppdatering + * eksisterer koblingen for denne aktøren allerede så en kopi av forrige innslag manipuleres før lagring. * * @param aktørInntekt {@link AktørInntektBuilder} * @return this @@ -73,8 +78,8 @@ public static InntektArbeidYtelseAggregatBuilder builderFor(Optional Objects.equals(it.getArbeidsgiver(), arbeidsgiver) && Objects.equals(it.getEksternReferanse(), eksternReferanse)) - .findFirst(); + .filter(it -> Objects.equals(it.getArbeidsgiver(), arbeidsgiver) + && Objects.equals(it.getEksternReferanse(), eksternReferanse)) + .findFirst(); if (referanse.isPresent()) { return referanse.get().getInternReferanse(); } @@ -125,37 +132,46 @@ public List getNyeInternArbeidsforholdReferanser() { } /** - * Oppretter builder for aktiviteter for en gitt aktør. Baserer seg på en kopi av forrige innslag for aktøren hvis det eksisterer. + * Oppretter builder for aktiviteter for en gitt aktør. Baserer seg på en kopi av forrige innslag for aktøren hvis + * det eksisterer. * * @param aktørId aktøren * @return builder {@link AktørArbeidBuilder} */ public AktørArbeidBuilder getAktørArbeidBuilder(AktørId aktørId) { - Optional aktørArbeid = kladd.getAktørArbeid().stream().filter(aa -> aktørId.equals(aa.getAktørId())).findFirst(); + Optional aktørArbeid = kladd.getAktørArbeid().stream() + .filter(aa -> aktørId.equals(aa.getAktørId())) + .findFirst(); return AktørArbeidBuilder.oppdatere(aktørArbeid).medAktørId(aktørId); } /** - * Oppretter builder for inntekter for en gitt aktør. Baserer seg på en kopi av forrige innslag for aktøren hvis det eksisterer. + * Oppretter builder for inntekter for en gitt aktør. Baserer seg på en kopi av forrige innslag for aktøren hvis det + * eksisterer. * * @param aktørId aktøren * @return builder {@link AktørInntektBuilder} */ public AktørInntektBuilder getAktørInntektBuilder(AktørId aktørId) { - Optional aktørInntekt = kladd.getAktørInntekt().stream().filter(aa -> aktørId.equals(aa.getAktørId())).findFirst(); + Optional aktørInntekt = kladd.getAktørInntekt().stream() + .filter(aa -> aktørId.equals(aa.getAktørId())) + .findFirst(); final AktørInntektBuilder oppdatere = AktørInntektBuilder.oppdatere(aktørInntekt); oppdatere.medAktørId(aktørId); return oppdatere; } /** - * Oppretter builder for tilstøtende ytelser for en gitt aktør. Baserer seg på en kopi av forrige innslag for aktøren hvis det eksisterer. + * Oppretter builder for tilstøtende ytelser for en gitt aktør. Baserer seg på en kopi av forrige innslag for + * aktøren hvis det eksisterer. * * @param aktørId aktøren * @return builder {@link AktørYtelseBuilder} */ public AktørYtelseBuilder getAktørYtelseBuilder(AktørId aktørId) { - Optional aktørYtelse = kladd.getAktørYtelse().stream().filter(ay -> aktørId.equals(ay.getAktørId())).findFirst(); + Optional aktørYtelse = kladd.getAktørYtelse().stream() + .filter(ay -> aktørId.equals(ay.getAktørId())) + .findFirst(); return AktørYtelseBuilder.oppdatere(aktørYtelse).medAktørId(aktørId); } @@ -193,11 +209,13 @@ public static class AktørArbeidBuilder { return this; } - public YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkelAvType(Opptjeningsnøkkel nøkkel, ArbeidType arbeidType) { + public YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkelAvType( + Opptjeningsnøkkel nøkkel, ArbeidType arbeidType) { return kladd.getYrkesaktivitetBuilderForNøkkel(nøkkel, arbeidType); } - public YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkelAvType(Opptjeningsnøkkel nøkkel, Set arbeidType) { + public YrkesaktivitetBuilder getYrkesaktivitetBuilderForNøkkelAvType( + Opptjeningsnøkkel nøkkel, Set arbeidType) { return kladd.getYrkesaktivitetBuilderForNøkkel(nøkkel, arbeidType); } @@ -270,7 +288,8 @@ public static class AktørInntektBuilder { this.aktørInntekt.setAktørId(aktørId); } - public InntektBuilder getInntektBuilder(InntektskildeType inntektskildeType, Opptjeningsnøkkel opptjeningsnøkkel) { + public InntektBuilder getInntektBuilder( + InntektskildeType inntektskildeType, Opptjeningsnøkkel opptjeningsnøkkel) { return aktørInntekt.getInntektBuilder(inntektskildeType, opptjeningsnøkkel); } @@ -341,17 +360,20 @@ public YtelseBuilder getYtelselseBuilderForType(Fagsystem fagsystem, YtelseType return kladd.getYtelseBuilderForType(fagsystem, type, sakId); } - public YtelseBuilder getYtelselseBuilderForType(Fagsystem fagsystem, - YtelseType type, - Saksnummer sakId, - IntervallEntitet periode, - Optional tidligsteAnvistFom) { + public YtelseBuilder getYtelselseBuilderForType( + Fagsystem fagsystem, + YtelseType type, + Saksnummer sakId, + IntervallEntitet periode, + Optional tidligsteAnvistFom) { return kladd.getYtelseBuilderForType(fagsystem, type, sakId, periode, tidligsteAnvistFom); } - public YtelseBuilder getYtelselseBuilderForType(Fagsystem fagsystem, - YtelseType type, IntervallEntitet periode, - Optional tidligsteAnvistFom) { + public YtelseBuilder getYtelselseBuilderForType( + Fagsystem fagsystem, + YtelseType type, + IntervallEntitet periode, + Optional tidligsteAnvistFom) { return kladd.getYtelseBuilderForType(fagsystem, type, periode, tidligsteAnvistFom); } @@ -382,7 +404,5 @@ boolean harVerdi() { public String toString() { return getClass().getSimpleName() + "<" + "kladd=" + kladd + ", oppdatering=" + oppdatering + '>'; } - } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlag.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlag.java index 75292d61c..e99ddacee 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlag.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlag.java @@ -1,12 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDateTime; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; - -import org.hibernate.annotations.NaturalId; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -20,12 +13,17 @@ import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; import no.nav.foreldrepenger.abakus.domene.iay.søknad.OppgittOpptjening; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.DiffIgnore; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.vedtak.felles.jpa.converters.BooleanToStringConverter; +import org.hibernate.annotations.NaturalId; @Entity(name = "InntektArbeidGrunnlag") @Table(name = "GR_ARBEID_INNTEKT") @@ -42,7 +40,11 @@ public class InntektArbeidYtelseGrunnlag extends BaseEntitet { @NaturalId @DiffIgnore @Embedded - @AttributeOverrides({@AttributeOverride(name = "referanse", column = @Column(name = "grunnlag_referanse", updatable = false, unique = true))}) + @AttributeOverrides({ + @AttributeOverride( + name = "referanse", + column = @Column(name = "grunnlag_referanse", updatable = false, unique = true)) + }) private GrunnlagReferanse grunnlagReferanse; @OneToOne @@ -55,9 +57,7 @@ public class InntektArbeidYtelseGrunnlag extends BaseEntitet { @ChangeTracked private InntektArbeidYtelseAggregat saksbehandlet; - /** - * versjon 1 - støtter kun en oppgitt opptjening på en behandling, kan heller ikke oppdateres - */ + /** versjon 1 - støtter kun en oppgitt opptjening på en behandling, kan heller ikke oppdateres */ @OneToOne @JoinColumn(name = "oppgitt_opptjening_id", updatable = false, unique = true) @ChangeTracked @@ -95,12 +95,14 @@ private InntektArbeidYtelseGrunnlag() { this(UUID.randomUUID(), grunnlag.getOpprettetTidspunkt()); // NB! skal ikke lage ny versjon av oppgitt opptjening! Lenker bare inn - grunnlag.getOppgittOpptjening().ifPresent(kopiAvOppgittOpptjening -> this.setOppgittOpptjening(kopiAvOppgittOpptjening)); + grunnlag.getOppgittOpptjening() + .ifPresent(kopiAvOppgittOpptjening -> this.setOppgittOpptjening(kopiAvOppgittOpptjening)); grunnlag.getOverstyrtOppgittOpptjening().ifPresent(this::setOverstyrtOppgittOpptjening); grunnlag.getRegisterVersjon().ifPresent(nyRegisterVerson -> this.setRegister(nyRegisterVerson)); - grunnlag.getSaksbehandletVersjon().ifPresent(nySaksbehandletFørVersjon -> this.setSaksbehandlet(nySaksbehandletFørVersjon)); + grunnlag.getSaksbehandletVersjon() + .ifPresent(nySaksbehandletFørVersjon -> this.setSaksbehandlet(nySaksbehandletFørVersjon)); grunnlag.getInntektsmeldinger().ifPresent(this::setInntektsmeldinger); @@ -126,14 +128,16 @@ public GrunnlagReferanse getGrunnlagReferanse() { void setGrunnlagReferanse(GrunnlagReferanse grunnlagReferanse) { if (this.koblingId != null && !Objects.equals(this.grunnlagReferanse, grunnlagReferanse)) { - throw new IllegalStateException(String.format("Kan ikke overskrive grunnlagReferanse %s: %s", this.grunnlagReferanse, grunnlagReferanse)); + throw new IllegalStateException(String.format( + "Kan ikke overskrive grunnlagReferanse %s: %s", this.grunnlagReferanse, grunnlagReferanse)); } this.grunnlagReferanse = grunnlagReferanse; } /** * Returnerer en overstyrt versjon av aggregat. Hvis saksbehandler har løst et aksjonspunkt i forbindele med - * opptjening vil det finnes et overstyrt aggregat, gjelder for FØR første dag i permisjonsuttaket (skjæringstidspunktet) + * opptjening vil det finnes et overstyrt aggregat, gjelder for FØR første dag i permisjonsuttaket + * (skjæringstidspunktet) */ public Optional getSaksbehandletVersjon() { return Optional.ofNullable(saksbehandlet); @@ -151,9 +155,7 @@ public Optional getRegisterVersjon() { return Optional.ofNullable(register); } - /** - * Returnerer aggregat som holder alle inntektsmeldingene som benyttes i behandlingen. - */ + /** Returnerer aggregat som holder alle inntektsmeldingene som benyttes i behandlingen. */ public Optional getInntektsmeldinger() { return Optional.ofNullable(inntektsmeldinger); } @@ -162,9 +164,7 @@ void setInntektsmeldinger(InntektsmeldingAggregat inntektsmeldingAggregat) { this.inntektsmeldinger = inntektsmeldingAggregat; } - /** - * Returnerer oppgitt opptjening hvis det finnes. (Inneholder opplysninger søker opplyser om i søknaden) - */ + /** Returnerer oppgitt opptjening hvis det finnes. (Inneholder opplysninger søker opplyser om i søknaden) */ public Optional getOppgittOpptjening() { return Optional.ofNullable(oppgittOpptjening); } @@ -180,9 +180,7 @@ public Optional getOverstyrtOppgittOpptjening() { return Optional.ofNullable(overstyrtOppgittOpptjening); } - /** - * Returnerer overstyrt oppgitt opptjening hvis det finnes, eller vanlig oppgitt opptjening - */ + /** Returnerer overstyrt oppgitt opptjening hvis det finnes, eller vanlig oppgitt opptjening */ public Optional getGjeldendeOppgittOpptjening() { return getOverstyrtOppgittOpptjening().or(this::getOppgittOpptjening); } @@ -193,7 +191,8 @@ void setOverstyrtOppgittOpptjening(OppgittOpptjening overstyrtOppgittOpptjening) void setKobling(Long koblingId) { if (this.koblingId != null && !Objects.equals(this.koblingId, koblingId)) { - throw new IllegalStateException(String.format("Kan ikke overskrive koblingId %s: %s", this.koblingId, koblingId)); + throw new IllegalStateException( + String.format("Kan ikke overskrive koblingId %s: %s", this.koblingId, koblingId)); } this.koblingId = koblingId; } @@ -202,16 +201,12 @@ void setAktivt(boolean aktiv) { this.aktiv = aktiv; } - /** - * Hvorvidt dette er det siste (aktive grunnlaget) for en behandling. - */ + /** Hvorvidt dette er det siste (aktive grunnlaget) for en behandling. */ public boolean isAktiv() { return aktiv; } - /** - * Unik id for dette grunnlaget. - */ + /** Unik id for dette grunnlaget. */ public Long getId() { return id; } @@ -237,7 +232,9 @@ public boolean equals(Object o) { return false; } var that = (InntektArbeidYtelseGrunnlag) o; - return aktiv == that.aktiv && Objects.equals(register, that.register) && Objects.equals(saksbehandlet, that.saksbehandlet); + return aktiv == that.aktiv + && Objects.equals(register, that.register) + && Objects.equals(saksbehandlet, that.saksbehandlet); } @Override @@ -248,5 +245,4 @@ public int hashCode() { void fjernSaksbehandlet() { saksbehandlet = null; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilder.java index 9256ecd73..3e969b7bb 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilder.java @@ -5,14 +5,12 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.abakus.iaygrunnlag.request.Dataset; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjonBuilder; import no.nav.foreldrepenger.abakus.domene.iay.søknad.OppgittOpptjeningBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class InntektArbeidYtelseGrunnlagBuilder { private static final Logger LOG = LoggerFactory.getLogger(InntektArbeidYtelseGrunnlagBuilder.class); @@ -27,11 +25,10 @@ public static InntektArbeidYtelseGrunnlagBuilder nytt() { return ny(UUID.randomUUID(), LocalDateTime.now()); } - /** - * Brukes ved migrering. - */ + /** Brukes ved migrering. */ public static InntektArbeidYtelseGrunnlagBuilder ny(UUID grunnlagReferanse, LocalDateTime opprettetTidspunkt) { - return new InntektArbeidYtelseGrunnlagBuilder(new InntektArbeidYtelseGrunnlag(grunnlagReferanse, opprettetTidspunkt)); + return new InntektArbeidYtelseGrunnlagBuilder( + new InntektArbeidYtelseGrunnlag(grunnlagReferanse, opprettetTidspunkt)); } public static InntektArbeidYtelseGrunnlagBuilder oppdatere(InntektArbeidYtelseGrunnlag kladd) { @@ -39,10 +36,12 @@ public static InntektArbeidYtelseGrunnlagBuilder oppdatere(InntektArbeidYtelseGr } public static InntektArbeidYtelseGrunnlagBuilder oppdatere(Optional kladd) { - return kladd.map(InntektArbeidYtelseGrunnlagBuilder::oppdatere).orElseGet(InntektArbeidYtelseGrunnlagBuilder::nytt); + return kladd.map(InntektArbeidYtelseGrunnlagBuilder::oppdatere) + .orElseGet(InntektArbeidYtelseGrunnlagBuilder::nytt); } - public static InntektArbeidYtelseGrunnlagBuilder kopierDeler(InntektArbeidYtelseGrunnlag original, Set dataset) { + public static InntektArbeidYtelseGrunnlagBuilder kopierDeler( + InntektArbeidYtelseGrunnlag original, Set dataset) { final var kladd = new InntektArbeidYtelseGrunnlag(original); if (skalIkkeKopierMed(dataset, Dataset.OPPGITT_OPPTJENING)) { @@ -59,7 +58,8 @@ public static InntektArbeidYtelseGrunnlagBuilder kopierDeler(InntektArbeidYtelse } if (skalIkkeKopierMed(dataset, Dataset.OVERSTYRT)) { kladd.getArbeidsforholdInformasjon().ifPresent(it -> { - final var informasjonBuilder = ArbeidsforholdInformasjonBuilder.oppdatere(it).tilbakestillOverstyringer(); + final var informasjonBuilder = + ArbeidsforholdInformasjonBuilder.oppdatere(it).tilbakestillOverstyringer(); kladd.setInformasjon(informasjonBuilder.build()); }); kladd.setSaksbehandlet(null); @@ -95,15 +95,17 @@ public ArbeidsforholdInformasjonBuilder getInformasjonBuilder() { public ArbeidsforholdInformasjon getInformasjon() { var informasjon = kladd.getArbeidsforholdInformasjon(); - var informasjonEntitet = informasjon.map(it -> { - var entitet = it; - if (entitet.getId() == null) { - // ulagret, med preparert, returner her istdf å lage nye hver gang. - return entitet; - } else { - return new ArbeidsforholdInformasjon(it); - } - }).orElseGet(() -> new ArbeidsforholdInformasjon()); + var informasjonEntitet = informasjon + .map(it -> { + var entitet = it; + if (entitet.getId() == null) { + // ulagret, med preparert, returner her istdf å lage nye hver gang. + return entitet; + } else { + return new ArbeidsforholdInformasjon(it); + } + }) + .orElseGet(() -> new ArbeidsforholdInformasjon()); kladd.setInformasjon(informasjonEntitet); return informasjonEntitet; } @@ -182,5 +184,4 @@ public InntektArbeidYtelseGrunnlagBuilder medData(InntektArbeidYtelseAggregatBui public Optional getArbeidsforholdInformasjon() { return kladd.getArbeidsforholdInformasjon(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepository.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepository.java index fdb7a1cb6..a1a045cd4 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepository.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepository.java @@ -1,5 +1,10 @@ package no.nav.foreldrepenger.abakus.domene.iay; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Query; +import jakarta.persistence.TypedQuery; import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.Collection; @@ -13,14 +18,6 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; - -import org.hibernate.jpa.HibernateHints; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; -import jakarta.persistence.Query; -import jakarta.persistence.TypedQuery; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjonBuilder; import no.nav.foreldrepenger.abakus.domene.iay.diff.RegisterdataDiffsjekker; @@ -40,6 +37,7 @@ import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.vedtak.exception.TekniskException; import no.nav.vedtak.felles.jpa.HibernateVerktøy; +import org.hibernate.jpa.HibernateHints; @ApplicationScoped public class InntektArbeidYtelseRepository { @@ -60,14 +58,16 @@ public InntektArbeidYtelseRepository(EntityManager entityManager) { public InntektArbeidYtelseGrunnlag hentInntektArbeidYtelseForBehandling(KoblingReferanse koblingReferanse) { Optional grunnlag = getAktivtInntektArbeidGrunnlag(koblingReferanse); - return grunnlag.orElseThrow( - () -> new TekniskException("FP-731232", String.format("Finner ikke InntektArbeidYtelse grunnlag for kobling %s", koblingReferanse))); - + return grunnlag.orElseThrow(() -> new TekniskException( + "FP-731232", + String.format("Finner ikke InntektArbeidYtelse grunnlag for kobling %s", koblingReferanse))); } - public Optional hentIAYAggregatFor(KoblingReferanse koblingReferanse, UUID eksternReferanse) { + public Optional hentIAYAggregatFor( + KoblingReferanse koblingReferanse, UUID eksternReferanse) { TypedQuery query = entityManager.createQuery( - "SELECT iay " + " FROM InntektArbeidYtelser iay " + " WHERE iay.eksternReferanse = :eksternReferanse", InntektArbeidYtelseAggregat.class); + "SELECT iay " + " FROM InntektArbeidYtelser iay " + " WHERE iay.eksternReferanse = :eksternReferanse", + InntektArbeidYtelseAggregat.class); query.setParameter("eksternReferanse", eksternReferanse); var res = HibernateVerktøy.hentUniktResultat(query); @@ -78,15 +78,18 @@ public Optional hentIAYAggregatFor(KoblingReferanse } private void validerKoblingMatcherIayAggregat(KoblingReferanse koblingReferanse, UUID eksternReferanse) { - var matchKoblingIayAggregat = entityManager.createNativeQuery( - "select 1 from kobling k " + " where k.aktiv=true and k.kobling_referanse=:ref and " + " (" - + " exists(select 1 from GR_ARBEID_INNTEKT gr inner join IAY_INNTEKT_ARBEID_YTELSER iaya on gr.register_id=iaya.id where iaya.ekstern_referanse=:eksternReferanse )" - + " OR " - + " exists (select 1 from GR_ARBEID_INNTEKT gr inner join IAY_INNTEKT_ARBEID_YTELSER iaya on gr.saksbehandlet_id=iaya.id where iaya.ekstern_referanse=:eksternReferanse )" - + " )").setParameter("ref", koblingReferanse.getReferanse()).setParameter("eksternReferanse", eksternReferanse); + var matchKoblingIayAggregat = entityManager + .createNativeQuery( + "select 1 from kobling k " + " where k.aktiv=true and k.kobling_referanse=:ref and " + " (" + + " exists(select 1 from GR_ARBEID_INNTEKT gr inner join IAY_INNTEKT_ARBEID_YTELSER iaya on gr.register_id=iaya.id where iaya.ekstern_referanse=:eksternReferanse )" + + " OR " + + " exists (select 1 from GR_ARBEID_INNTEKT gr inner join IAY_INNTEKT_ARBEID_YTELSER iaya on gr.saksbehandlet_id=iaya.id where iaya.ekstern_referanse=:eksternReferanse )" + + " )") + .setParameter("ref", koblingReferanse.getReferanse()) + .setParameter("eksternReferanse", eksternReferanse); if (matchKoblingIayAggregat.getResultStream().findFirst().isEmpty()) { - throw new IllegalStateException( - "KoblingReferanse [" + koblingReferanse + "] er ikke aktiv eller er ikke knyttet til IAY aggregat [" + eksternReferanse + "]"); + throw new IllegalStateException("KoblingReferanse [" + koblingReferanse + + "] er ikke aktiv eller er ikke knyttet til IAY aggregat [" + eksternReferanse + "]"); } } @@ -98,19 +101,20 @@ public TidssoneConfig hentKonfigurasjon() { return new TidssoneConfig((String) timezone, tidsstempel); } - public Set hentAlleInntektsmeldingerFor(AktørId aktørId, - Saksnummer saksnummer, - no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { + public Set hentAlleInntektsmeldingerFor( + AktørId aktørId, Saksnummer saksnummer, no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { // sjekker kun kobling.aktiv; ikke om grunnlag er aktivt eller ikke, tar alt - final TypedQuery query = entityManager.createQuery(""" + final TypedQuery query = entityManager.createQuery( + """ SELECT DISTINCT(im) FROM InntektArbeidGrunnlag gr JOIN Kobling k ON k.id = gr.koblingId JOIN Inntektsmeldinger ims ON ims.id = gr.inntektsmeldinger.id JOIN Inntektsmelding im ON im.inntektsmeldinger.id = ims.id WHERE k.saksnummer = :ref AND k.ytelseType = :ytelse and k.aktørId = :aktørId and k.aktiv=true - """, Inntektsmelding.class); + """, + Inntektsmelding.class); query.setParameter("aktørId", aktørId); query.setParameter("ref", saksnummer); query.setParameter("ytelse", ytelseType); @@ -118,11 +122,13 @@ SELECT DISTINCT(im) return inntektsmeldingSet; } - public Map hentArbeidsforholdInfoInntektsmeldingerMapFor(AktørId aktørId, - Saksnummer saksnummer, - KoblingReferanse ref, - no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { - final TypedQuery query = entityManager.createQuery(""" + public Map hentArbeidsforholdInfoInntektsmeldingerMapFor( + AktørId aktørId, + Saksnummer saksnummer, + KoblingReferanse ref, + no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { + final TypedQuery query = entityManager.createQuery( + """ SELECT im, arbInf FROM InntektArbeidGrunnlag gr JOIN Kobling k ON k.id = gr.koblingId @@ -130,7 +136,8 @@ public Map hentArbeidsforholdInfoInn JOIN Inntektsmelding im ON im.inntektsmeldinger.id = ims.id JOIN ArbeidsforholdInformasjon arbInf on arbInf.id = gr.arbeidsforholdInformasjon.id WHERE k.saksnummer = :ref AND k.koblingReferanse = :eksternRef AND k.ytelseType = :ytelse and k.aktørId = :aktørId and k.aktiv=true and gr.aktiv=:aktiv - """, Object[].class); + """, + Object[].class); query.setParameter("aktørId", aktørId); query.setParameter("ref", saksnummer); query.setParameter("ytelse", ytelseType); @@ -140,11 +147,11 @@ public Map hentArbeidsforholdInfoInn return queryTilMap(query.getResultList()); } - public Map hentArbeidsforholdInfoInntektsmeldingerMapFor(AktørId aktørId, - Saksnummer saksnummer, - no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { + public Map hentArbeidsforholdInfoInntektsmeldingerMapFor( + AktørId aktørId, Saksnummer saksnummer, no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType) { - final TypedQuery query = entityManager.createQuery(""" + final TypedQuery query = entityManager.createQuery( + """ SELECT im, arbInf FROM InntektArbeidGrunnlag gr JOIN Kobling k ON k.id = gr.koblingId @@ -152,7 +159,8 @@ public Map hentArbeidsforholdInfoInn JOIN Inntektsmelding im ON im.inntektsmeldinger.id = ims.id JOIN ArbeidsforholdInformasjon arbInf on arbInf.id = gr.arbeidsforholdInformasjon.id WHERE k.saksnummer = :saksnummer AND k.ytelseType = :ytelse and k.aktørId = :aktørId and k.aktiv=true - """, Object[].class); + """, + Object[].class); query.setParameter("aktørId", aktørId); query.setParameter("saksnummer", saksnummer); query.setParameter("ytelse", ytelseType); @@ -169,19 +177,21 @@ private Map queryTilMap(List oldValue, LinkedHashMap::new)); + return inntektsmeldingArbinfoMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey(Inntektsmelding.COMP_REKKEFØLGE)) + .collect(Collectors.toMap( + Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); } - public List hentAlleInntektArbeidYtelseGrunnlagFor(AktørId aktørId, - Saksnummer saksnummer, - no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType, - boolean kunAktive) { + public List hentAlleInntektArbeidYtelseGrunnlagFor( + AktørId aktørId, + Saksnummer saksnummer, + no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType, + boolean kunAktive) { String sql; if (kunAktive) { - sql = """ + sql = + """ SELECT gr FROM InntektArbeidGrunnlag gr JOIN Kobling k ON k.id = gr.koblingId @@ -190,7 +200,8 @@ public List hentAlleInntektArbeidYtelseGrunnlagFor( ORDER BY gr.koblingId, gr.opprettetTidspunkt """; } else { - sql = """ + sql = + """ SELECT gr FROM InntektArbeidGrunnlag gr JOIN Kobling k ON k.id = gr.koblingId @@ -199,7 +210,8 @@ public List hentAlleInntektArbeidYtelseGrunnlagFor( """; } - final TypedQuery query = entityManager.createQuery(sql, InntektArbeidYtelseGrunnlag.class); + final TypedQuery query = + entityManager.createQuery(sql, InntektArbeidYtelseGrunnlag.class); query.setParameter("aktørId", aktørId); query.setParameter("saksnummer", saksnummer); query.setParameter("ytelse", ytelseType); @@ -208,33 +220,40 @@ public List hentAlleInntektArbeidYtelseGrunnlagFor( return grunnlag; } - public Optional hentInntektArbeidYtelseGrunnlagForBehandling(KoblingReferanse koblingReferanse) { + public Optional hentInntektArbeidYtelseGrunnlagForBehandling( + KoblingReferanse koblingReferanse) { Optional grunnlag = getAktivtInntektArbeidGrunnlag(koblingReferanse); return grunnlag.map(InntektArbeidYtelseGrunnlag.class::cast); } - public DiffResult diffResultat(InntektArbeidYtelseGrunnlag grunnlag1, InntektArbeidYtelseGrunnlag grunnlag2, boolean onlyCheckTrackedFields) { - return new RegisterdataDiffsjekker(onlyCheckTrackedFields).getDiffEntity().diff(grunnlag1, grunnlag2); + public DiffResult diffResultat( + InntektArbeidYtelseGrunnlag grunnlag1, + InntektArbeidYtelseGrunnlag grunnlag2, + boolean onlyCheckTrackedFields) { + return new RegisterdataDiffsjekker(onlyCheckTrackedFields) + .getDiffEntity() + .diff(grunnlag1, grunnlag2); } /** * @param koblingReferanse - * @param versjonType (REGISTER, SAKSBEHANDLET) + * @param versjonType (REGISTER, SAKSBEHANDLET) * @return InntektArbeidYtelseAggregatBuilder - *

- * NB! bør benytte via InntektArbeidYtelseTjeneste og ikke direkte + *

NB! bør benytte via InntektArbeidYtelseTjeneste og ikke direkte */ - public InntektArbeidYtelseAggregatBuilder opprettBuilderFor(KoblingReferanse koblingReferanse, - UUID angittAggregatReferanse, - LocalDateTime angittOpprettetTidspunkt, - VersjonType versjonType) { + public InntektArbeidYtelseAggregatBuilder opprettBuilderFor( + KoblingReferanse koblingReferanse, + UUID angittAggregatReferanse, + LocalDateTime angittOpprettetTidspunkt, + VersjonType versjonType) { Optional grunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); return opprettBuilderFor(versjonType, angittAggregatReferanse, angittOpprettetTidspunkt, grunnlag); } public Optional hentOppgittOpptjeningFor(UUID oppgittOpptjeningEksternReferanse) { TypedQuery query = entityManager.createQuery( - "SELECT oo " + " FROM OppgittOpptjening oo " + " WHERE oo.eksternReferanse = :eksternReferanse", OppgittOpptjening.class); + "SELECT oo " + " FROM OppgittOpptjening oo " + " WHERE oo.eksternReferanse = :eksternReferanse", + OppgittOpptjening.class); query.setParameter("eksternReferanse", oppgittOpptjeningEksternReferanse); var res = HibernateVerktøy.hentUniktResultat(query); @@ -242,33 +261,37 @@ public Optional hentOppgittOpptjeningFor(UUID oppgittOpptjeni return Optional.empty(); } else { // sjekk om opptjening finnes i noen aktivt grunnlag - var query2 = entityManager.createNativeQuery("select 1 from kobling k" + " inner join GR_ARBEID_INNTEKT gr on gr.kobling_id=k.id" - + " inner join oppgitt_opptjening opp on opp.id=gr.oppgitt_opptjening_id" - + " where k.aktiv=true and gr.aktiv=:aktiv and opp.ekstern_referanse=:ref"); + var query2 = entityManager.createNativeQuery( + "select 1 from kobling k" + " inner join GR_ARBEID_INNTEKT gr on gr.kobling_id=k.id" + + " inner join oppgitt_opptjening opp on opp.id=gr.oppgitt_opptjening_id" + + " where k.aktiv=true and gr.aktiv=:aktiv and opp.ekstern_referanse=:ref"); query2.setParameter("aktiv", true); query2.setParameter("ref", oppgittOpptjeningEksternReferanse); - boolean harAktivKoblingOgGrunnlag = query.getResultStream().findAny().isPresent(); + boolean harAktivKoblingOgGrunnlag = + query.getResultStream().findAny().isPresent(); if (harAktivKoblingOgGrunnlag) { return res; } else { throw new IllegalStateException( - "Etterspurte OppgittOpptjening som ikke er koblet til noe aktiv kobling/grunnlag: " + oppgittOpptjeningEksternReferanse); + "Etterspurte OppgittOpptjening som ikke er koblet til noe aktiv kobling/grunnlag: " + + oppgittOpptjeningEksternReferanse); } } } - private InntektArbeidYtelseAggregatBuilder opprettBuilderFor(VersjonType versjonType, - UUID angittReferanse, - LocalDateTime opprettetTidspunkt, - Optional grunnlag) { + private InntektArbeidYtelseAggregatBuilder opprettBuilderFor( + VersjonType versjonType, + UUID angittReferanse, + LocalDateTime opprettetTidspunkt, + Optional grunnlag) { InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(grunnlag); Objects.requireNonNull(grunnlagBuilder, "grunnlagBuilder"); Optional aggregat = Optional.ofNullable(grunnlagBuilder.getKladd()); Objects.requireNonNull(aggregat, "aggregat"); if (aggregat.isPresent()) { final InntektArbeidYtelseGrunnlag aggregat1 = aggregat.get(); - return InntektArbeidYtelseAggregatBuilder.builderFor(hentRiktigVersjon(versjonType, aggregat1), angittReferanse, opprettetTidspunkt, - versjonType); + return InntektArbeidYtelseAggregatBuilder.builderFor( + hentRiktigVersjon(versjonType, aggregat1), angittReferanse, opprettetTidspunkt, versjonType); } throw new TekniskException("FP-512369", "Aggregat kan ikke være null ved opprettelse av builder"); } @@ -277,7 +300,8 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, OppgittOpptjen if (oppgittOpptjening == null) { return null; } - Optional iayGrunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); + Optional iayGrunnlag = + hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); InntektArbeidYtelseGrunnlagBuilder grunnlag = InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayGrunnlag); grunnlag.medOppgittOpptjening(oppgittOpptjening); @@ -287,26 +311,29 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, OppgittOpptjen return build.getGrunnlagReferanse(); } - public GrunnlagReferanse lagreOgNullstillOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder oppgittOpptjening) { + public GrunnlagReferanse lagreOgNullstillOverstyring( + KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder oppgittOpptjening) { if (oppgittOpptjening == null) { return null; } - Optional iayGrunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); + Optional iayGrunnlag = + hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); InntektArbeidYtelseGrunnlagBuilder grunnlag = InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayGrunnlag); - grunnlag.medOppgittOpptjening(oppgittOpptjening) - .fjernOverstyrtOppgittOpptjening(); + grunnlag.medOppgittOpptjening(oppgittOpptjening).fjernOverstyrtOppgittOpptjening(); InntektArbeidYtelseGrunnlag build = grunnlag.build(); lagreOgFlush(koblingReferanse, build); return build.getGrunnlagReferanse(); } - public GrunnlagReferanse lagreOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder overstyrOppgittOpptjening) { + public GrunnlagReferanse lagreOverstyring( + KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder overstyrOppgittOpptjening) { if (overstyrOppgittOpptjening == null) { return null; } - Optional iayGrunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); + Optional iayGrunnlag = + hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); InntektArbeidYtelseGrunnlagBuilder grunnlag = InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayGrunnlag); grunnlag.medOverstyrtOppgittOpptjening(overstyrOppgittOpptjening); @@ -316,21 +343,24 @@ public GrunnlagReferanse lagreOverstyring(KoblingReferanse koblingReferanse, Opp return build.getGrunnlagReferanse(); } - public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, - ArbeidsforholdInformasjonBuilder informasjonBuilder, - List inntektsmeldingerList) { + public GrunnlagReferanse lagre( + KoblingReferanse koblingReferanse, + ArbeidsforholdInformasjonBuilder informasjonBuilder, + List inntektsmeldingerList) { Objects.requireNonNull(inntektsmeldingerList, "inntektsmelding"); InntektArbeidYtelseGrunnlagBuilder builder = opprettGrunnlagBuilderFor(koblingReferanse); - var utdaterteInntektsmeldingerJournalposter = oppdaterBuilderMedNyeInntektsmeldinger(informasjonBuilder, inntektsmeldingerList, builder); + var utdaterteInntektsmeldingerJournalposter = + oppdaterBuilderMedNyeInntektsmeldinger(informasjonBuilder, inntektsmeldingerList, builder); InntektArbeidYtelseGrunnlag grunnlag = builder.build(); var utdaterteInntektsmeldinger = inntektsmeldingerList.stream() - .filter(it -> utdaterteInntektsmeldingerJournalposter.contains(it.getJournalpostId()) && harIkkeAltHåndtertJournalpost(grunnlag, - it.getJournalpostId())) - .collect(Collectors.toList()); + .filter(it -> utdaterteInntektsmeldingerJournalposter.contains(it.getJournalpostId()) + && harIkkeAltHåndtertJournalpost(grunnlag, it.getJournalpostId())) + .collect(Collectors.toList()); var utdatertBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(grunnlag); - lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(koblingReferanse, informasjonBuilder, utdaterteInntektsmeldinger, utdatertBuilder); + lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger( + koblingReferanse, informasjonBuilder, utdaterteInntektsmeldinger, utdatertBuilder); lagreOgFlush(koblingReferanse, grunnlag); return grunnlag.getGrunnlagReferanse(); @@ -338,15 +368,17 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, private boolean harIkkeAltHåndtertJournalpost(InntektArbeidYtelseGrunnlag build, JournalpostId journalpostId) { var imaggregat = build.getInntektsmeldinger(); - return imaggregat.map(inntektsmeldingAggregat -> inntektsmeldingAggregat.getInntektsmeldinger() - .stream() - .noneMatch(it -> it.getJournalpostId().equals(journalpostId))).orElse(true); + return imaggregat + .map(inntektsmeldingAggregat -> inntektsmeldingAggregat.getInntektsmeldinger().stream() + .noneMatch(it -> it.getJournalpostId().equals(journalpostId))) + .orElse(true); } - private void lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(KoblingReferanse koblingReferanse, - ArbeidsforholdInformasjonBuilder informasjonBuilder, - List utdaterteInntektsmeldinger, - InntektArbeidYtelseGrunnlagBuilder utdatertBuilder) { + private void lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger( + KoblingReferanse koblingReferanse, + ArbeidsforholdInformasjonBuilder informasjonBuilder, + List utdaterteInntektsmeldinger, + InntektArbeidYtelseGrunnlagBuilder utdatertBuilder) { Set utdaterteInntektsmeldingerJournalposter = new HashSet<>(); utdatertBuilder.medDeaktivert(); @@ -356,7 +388,8 @@ private void lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(KoblingReferan final InntektsmeldingAggregat inntektsmeldinger = utdatertBuilder.getInntektsmeldinger(); for (Inntektsmelding inntektsmelding : utdaterteInntektsmeldinger) { - utdaterteInntektsmeldingerJournalposter.addAll(inntektsmeldinger.leggTilEllerErstattMedUtdatertForHistorikk(inntektsmelding)); + utdaterteInntektsmeldingerJournalposter.addAll( + inntektsmeldinger.leggTilEllerErstattMedUtdatertForHistorikk(inntektsmelding)); } utdatertBuilder.setInntektsmeldinger(inntektsmeldinger); utdatertBuilder.medInformasjon(informasjonBuilder.build()); @@ -366,11 +399,12 @@ private void lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(KoblingReferan if (!utdaterteInntektsmeldingerJournalposter.isEmpty()) { var collect = utdaterteInntektsmeldinger.stream() - .filter(it -> utdaterteInntektsmeldingerJournalposter.contains(it.getJournalpostId()) && harIkkeAltHåndtertJournalpost(build, - it.getJournalpostId())) - .collect(Collectors.toList()); + .filter(it -> utdaterteInntektsmeldingerJournalposter.contains(it.getJournalpostId()) + && harIkkeAltHåndtertJournalpost(build, it.getJournalpostId())) + .collect(Collectors.toList()); var builder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(build); - lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(koblingReferanse, informasjonBuilder, collect, builder); + lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger( + koblingReferanse, informasjonBuilder, collect, builder); } } @@ -379,9 +413,10 @@ private void lagreDeaktivertGrunnlagMedUtdaterteInntektsmeldinger(KoblingReferan * * @return utdaterteInntektsmeldinger */ - public Set oppdaterBuilderMedNyeInntektsmeldinger(ArbeidsforholdInformasjonBuilder informasjonBuilder, - List nyeInntektsmeldinger, - InntektArbeidYtelseGrunnlagBuilder targetBuilder) { + public Set oppdaterBuilderMedNyeInntektsmeldinger( + ArbeidsforholdInformasjonBuilder informasjonBuilder, + List nyeInntektsmeldinger, + InntektArbeidYtelseGrunnlagBuilder targetBuilder) { Set utdaterteInntektsmeldinger = new HashSet<>(); @@ -392,12 +427,17 @@ public Set oppdaterBuilderMedNyeInntektsmeldinger(ArbeidsforholdI final InntektsmeldingAggregat inntektsmeldinger = targetBuilder.getInntektsmeldinger(); for (Inntektsmelding inntektsmelding : nyeInntektsmeldinger) { // Kommet inn inntektsmelding på arbeidsforhold som vi har gått videre med uten inntektsmelding? - if (informasjonBuilder.kommetInntektsmeldingPåArbeidsforholdHvorViTidligereBehandletUtenInntektsmelding(inntektsmelding)) { - informasjonBuilder.fjernOverstyringVedrørende(inntektsmelding.getArbeidsgiver(), inntektsmelding.getArbeidsforholdRef()); + if (informasjonBuilder.kommetInntektsmeldingPåArbeidsforholdHvorViTidligereBehandletUtenInntektsmelding( + inntektsmelding)) { + informasjonBuilder.fjernOverstyringVedrørende( + inntektsmelding.getArbeidsgiver(), inntektsmelding.getArbeidsforholdRef()); } - // Gjelder tilfeller der det først har kommet inn inntektsmelding uten id, også kommer det inn en inntektsmelding med spesifik id + // Gjelder tilfeller der det først har kommet inn inntektsmelding uten id, også kommer det inn en + // inntektsmelding med spesifik id // nullstiller da valg gjort i 5080 slik at saksbehandler må ta stilling til aksjonspunktet på nytt. - informasjonBuilder.utledeArbeidsgiverSomMåTilbakestilles(inntektsmelding).ifPresent(informasjonBuilder::fjernOverstyringerSomGjelder); + informasjonBuilder + .utledeArbeidsgiverSomMåTilbakestilles(inntektsmelding) + .ifPresent(informasjonBuilder::fjernOverstyringerSomGjelder); utdaterteInntektsmeldinger.addAll(inntektsmeldinger.leggTilEllerErstatt(inntektsmelding)); } targetBuilder.setInntektsmeldinger(inntektsmeldinger); @@ -407,7 +447,8 @@ public Set oppdaterBuilderMedNyeInntektsmeldinger(ArbeidsforholdI } private InntektArbeidYtelseGrunnlagBuilder opprettGrunnlagBuilderFor(KoblingReferanse koblingReferanse) { - Optional inntektArbeidAggregat = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); + Optional inntektArbeidAggregat = + hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); return InntektArbeidYtelseGrunnlagBuilder.oppdatere(inntektArbeidAggregat); } @@ -447,36 +488,46 @@ private void lagreOgFlush(KoblingReferanse koblingReferanse, InntektArbeidYtelse */ private void sjekkKonsistens(InntektArbeidYtelseGrunnlag grunnlag) { final var arbeidsforholdInformasjon = grunnlag.getArbeidsforholdInformasjon() - .orElseGet(() -> ArbeidsforholdInformasjonBuilder.builder(Optional.empty()).build()); + .orElseGet(() -> ArbeidsforholdInformasjonBuilder.builder(Optional.empty()) + .build()); var grRef = grunnlag.getGrunnlagReferanse(); - grunnlag.getRegisterVersjon() - .ifPresent( - aggregat -> aggregat.getAktørArbeid().stream().map(AktørArbeid::hentAlleYrkesaktiviteter).flatMap(Collection::stream).forEach(it -> { + grunnlag.getRegisterVersjon().ifPresent(aggregat -> aggregat.getAktørArbeid().stream() + .map(AktørArbeid::hentAlleYrkesaktiviteter) + .flatMap(Collection::stream) + .forEach(it -> { if (it.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) { var arRef = aggregat.getEksternReferanse(); - arbeidsforholdInformasjon.finnEkstern(grRef, it.getArbeidsgiver(), - it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref + arbeidsforholdInformasjon.finnEkstern( + grRef, + it.getArbeidsgiver(), + it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref // (kaster exception hvis ikke) } })); - grunnlag.getInntektsmeldinger().ifPresent(aggregat -> aggregat.getInntektsmeldinger().forEach(it -> { - if (it.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) { - arbeidsforholdInformasjon.finnEkstern(grRef, it.getArbeidsgiver(), - it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref - // (kaster exception hvis ikke) - } - })); + grunnlag.getInntektsmeldinger() + .ifPresent(aggregat -> aggregat.getInntektsmeldinger().forEach(it -> { + if (it.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) { + arbeidsforholdInformasjon.finnEkstern( + grRef, + it.getArbeidsgiver(), + it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref + // (kaster exception hvis ikke) + } + })); - grunnlag.getSaksbehandletVersjon() - .ifPresent( - aggregat -> aggregat.getAktørArbeid().stream().map(AktørArbeid::hentAlleYrkesaktiviteter).flatMap(Collection::stream).forEach(it -> { + grunnlag.getSaksbehandletVersjon().ifPresent(aggregat -> aggregat.getAktørArbeid().stream() + .map(AktørArbeid::hentAlleYrkesaktiviteter) + .flatMap(Collection::stream) + .forEach(it -> { if (it.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) { var arRef = aggregat.getEksternReferanse(); - arbeidsforholdInformasjon.finnEkstern(grRef, it.getArbeidsgiver(), - it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref + arbeidsforholdInformasjon.finnEkstern( + grRef, + it.getArbeidsgiver(), + it.getArbeidsforholdRef()); // Validerer om det finnes ekstern for intern ref // (kaster exception hvis ikke) } })); @@ -632,7 +683,8 @@ private void lagreInntekt(AktørInntekt aktørInntekt) { } } - private Optional hentRiktigVersjon(VersjonType versjonType, InntektArbeidYtelseGrunnlag aggregat) { + private Optional hentRiktigVersjon( + VersjonType versjonType, InntektArbeidYtelseGrunnlag aggregat) { if (versjonType == VersjonType.REGISTER) { return aggregat.getRegisterVersjon(); } else if (versjonType == VersjonType.SAKSBEHANDLET) { @@ -644,9 +696,10 @@ private Optional hentRiktigVersjon(VersjonType vers private Optional getAktivtInntektArbeidGrunnlag(KoblingReferanse koblingReferanse) { final TypedQuery query = entityManager.createQuery( - "SELECT gr FROM InntektArbeidGrunnlag gr " + " JOIN Kobling k ON k.id=gr.koblingId" + - " WHERE k.koblingReferanse = :ref" + - " AND gr.aktiv = :aktivt", InntektArbeidYtelseGrunnlag.class); + "SELECT gr FROM InntektArbeidGrunnlag gr " + " JOIN Kobling k ON k.id=gr.koblingId" + + " WHERE k.koblingReferanse = :ref" + + " AND gr.aktiv = :aktivt", + InntektArbeidYtelseGrunnlag.class); query.setParameter("ref", koblingReferanse); query.setParameter("aktivt", true); List resultList = query.getResultList(); @@ -654,7 +707,8 @@ private Optional getAktivtInntektArbeidGrunnlag(Kob return Optional.empty(); } else if (resultList.size() == 1) { validerKoblingErAktiv(koblingReferanse); // validerer her istdf. spørring for å avdekke om det brukes feil - final Optional grunnlag = resultList.stream().findFirst(); + final Optional grunnlag = + resultList.stream().findFirst(); return grunnlag; } throw new IllegalStateException("Finner flere aktive grunnlag på koblingReferanse=" + koblingReferanse); @@ -664,7 +718,8 @@ private Optional validerKoblingErAktiv(KoblingReferanse koblingReferans return koblingRepository.hentForKoblingReferanse(koblingReferanse); } - private Optional hentArbeidsforholdInformasjon(Optional grunnlag) { + private Optional hentArbeidsforholdInformasjon( + Optional grunnlag) { if (grunnlag.isPresent()) { final Optional inntektArbeidYtelseGrunnlag = Optional.of(grunnlag.get()); return inntektArbeidYtelseGrunnlag.flatMap(InntektArbeidYtelseGrunnlag::getArbeidsforholdInformasjon); @@ -672,35 +727,43 @@ private Optional hentArbeidsforholdInformasjon(Option return Optional.empty(); } - public Optional hentArbeidsforholdInformasjonForBehandling(KoblingReferanse koblingReferanse) { - final Optional grunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); + public Optional hentArbeidsforholdInformasjonForBehandling( + KoblingReferanse koblingReferanse) { + final Optional grunnlag = + hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse); return hentArbeidsforholdInformasjon(grunnlag); } - public Optional hentInntektArbeidYtelseForReferanse(GrunnlagReferanse grunnlagReferanse) { + public Optional hentInntektArbeidYtelseForReferanse( + GrunnlagReferanse grunnlagReferanse) { if (grunnlagReferanse == null) { return Optional.empty(); } - Optional grunnlag = getVersjonAvInntektArbeidYtelseForReferanseId(grunnlagReferanse); + Optional grunnlag = + getVersjonAvInntektArbeidYtelseForReferanseId(grunnlagReferanse); return grunnlag.map(InntektArbeidYtelseGrunnlag.class::cast); } public Long hentKoblingIdFor(GrunnlagReferanse grunnlagReferanse) { var query = entityManager.createQuery( - "SELECT k FROM Kobling k JOIN InntektArbeidGrunnlag gr ON gr.koblingId=k.id WHERE gr.grunnlagReferanse=:ref", Kobling.class); + "SELECT k FROM Kobling k JOIN InntektArbeidGrunnlag gr ON gr.koblingId=k.id WHERE gr.grunnlagReferanse=:ref", + Kobling.class); query.setParameter("ref", grunnlagReferanse); Kobling kobling = HibernateVerktøy.hentEksaktResultat(query); validerKoblingErAktiv(kobling.getKoblingReferanse()); return kobling.getId(); } - private Optional getVersjonAvInntektArbeidYtelseForReferanseId(GrunnlagReferanse grunnlagReferanse) { + private Optional getVersjonAvInntektArbeidYtelseForReferanseId( + GrunnlagReferanse grunnlagReferanse) { Objects.requireNonNull(grunnlagReferanse, "aggregatId"); final TypedQuery query = entityManager.createQuery( - "FROM InntektArbeidGrunnlag gr " + " WHERE gr.grunnlagReferanse = :ref ", InntektArbeidYtelseGrunnlag.class); + "FROM InntektArbeidGrunnlag gr " + " WHERE gr.grunnlagReferanse = :ref ", + InntektArbeidYtelseGrunnlag.class); query.setParameter("ref", grunnlagReferanse); query.setHint(HibernateHints.HINT_CACHE_MODE, "IGNORE"); - Optional grunnlagOpt = query.getResultList().stream().findFirst(); + Optional grunnlagOpt = + query.getResultList().stream().findFirst(); if (grunnlagOpt.isPresent()) { var kobling = koblingRepository.hentForKoblingId(grunnlagOpt.get().getKoblingId()); @@ -711,21 +774,25 @@ private Optional getVersjonAvInntektArbeidYtelseFor public KoblingReferanse hentKoblingReferanseFor(GrunnlagReferanse grunnlagReferanse) { final TypedQuery query = entityManager.createQuery( - "SELECT k.koblingReferanse FROM Kobling k JOIN InntektArbeidGrunnlag gr ON gr.koblingId = k.id WHERE gr.grunnlagReferanse=:ref", - KoblingReferanse.class); + "SELECT k.koblingReferanse FROM Kobling k JOIN InntektArbeidGrunnlag gr ON gr.koblingId = k.id WHERE gr.grunnlagReferanse=:ref", + KoblingReferanse.class); query.setParameter("ref", grunnlagReferanse); return query.getSingleResult(); } private Long hentKoblingIdFor(KoblingReferanse koblingReferanse) { - return koblingRepository.hentForKoblingReferanse(koblingReferanse).map(Kobling::getId).orElse(null); + return koblingRepository + .hentForKoblingReferanse(koblingReferanse) + .map(Kobling::getId) + .orElse(null); } public boolean erGrunnlagAktivt(UUID eksternReferanse) { Objects.requireNonNull(eksternReferanse, "aggregatId"); final TypedQuery query = entityManager.createQuery( - "SELECT gr.aktiv FROM InntektArbeidGrunnlag gr JOIN Kobling k ON gr.koblingId=k.id " - + " WHERE gr.grunnlagReferanse = :ref AND k.aktiv = true ", Boolean.class); + "SELECT gr.aktiv FROM InntektArbeidGrunnlag gr JOIN Kobling k ON gr.koblingId=k.id " + + " WHERE gr.grunnlagReferanse = :ref AND k.aktiv = true ", + Boolean.class); query.setParameter("ref", new GrunnlagReferanse(eksternReferanse)); query.setHint(HibernateHints.HINT_CACHE_MODE, "IGNORE"); Optional grunnlagOpt = query.getResultList().stream().findFirst(); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektBuilder.java index e4dedd75c..189610488 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektBuilder.java @@ -2,7 +2,6 @@ import java.util.Optional; import java.util.Set; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektFilter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektFilter.java index 70d0cd646..0b1cf95b5 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektFilter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektFilter.java @@ -14,15 +14,14 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; /** - * Filter for å hente inntekter og inntektsposter fra grunnlag. Tilbyr håndtering av skjæringstidspunkt og filtereing på inntektskilder slik - * at en ikke trenger å implementere selv navigering av modellen. + * Filter for å hente inntekter og inntektsposter fra grunnlag. Tilbyr håndtering av skjæringstidspunkt og filtereing på + * inntektskilder slik at en ikke trenger å implementere selv navigering av modellen. */ public class InntektFilter { public static final InntektFilter EMPTY = new InntektFilter(Collections.emptyList()); @@ -41,7 +40,8 @@ public InntektFilter(Collection inntekter) { this(inntekter, null, null); } - public InntektFilter(Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { + public InntektFilter( + Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { this.inntekter = inntekter == null ? Collections.emptyList() : inntekter; this.skjæringstidspunkt = skjæringstidspunkt; this.venstreSideASkjæringstidspunkt = venstreSideASkjæringstidspunkt; @@ -60,7 +60,9 @@ public boolean isEmpty() { } public InntektFilter filter(Arbeidsgiver arbeidsgiver) { - var innt = inntekter.stream().filter(i -> Objects.equals(arbeidsgiver, i.getArbeidsgiver())).collect(Collectors.toList()); + var innt = inntekter.stream() + .filter(i -> Objects.equals(arbeidsgiver, i.getArbeidsgiver())) + .collect(Collectors.toList()); return copyWith(innt, skjæringstidspunkt, venstreSideASkjæringstidspunkt); } @@ -104,7 +106,9 @@ public Collection filtrer(Inntekt inntekt, Collection filtrerInntektspost(inntekt, ip)).collect(Collectors.toCollection(LinkedHashSet::new)); + return inntektsposter.stream() + .filter(ip -> filtrerInntektspost(inntekt, ip)) + .collect(Collectors.toCollection(LinkedHashSet::new)); } public InntektFilter før(LocalDate skjæringstidspunkt) { @@ -120,7 +124,9 @@ public List getAlleInntektBeregningsgrunnlag() { } public List getAlleInntekter(InntektskildeType kilde) { - return inntekter.stream().filter(it -> kilde == null || kilde.equals(it.getInntektsKilde())).collect(Collectors.toUnmodifiableList()); + return inntekter.stream() + .filter(it -> kilde == null || kilde.equals(it.getInntektsKilde())) + .collect(Collectors.toUnmodifiableList()); } public List getAlleInntekter() { @@ -135,28 +141,24 @@ public List getAlleInntektSammenligningsgrunnlag() { return getAlleInntekter(InntektskildeType.INNTEKT_SAMMENLIGNING); } - /** - * Get alle inntektsposter - fullstendig ufiltrert og uten hensyn til konfigurert skjæringstidspunkt. - */ + /** Get alle inntektsposter - fullstendig ufiltrert og uten hensyn til konfigurert skjæringstidspunkt. */ public Collection getAlleInntektsposter() { - return Collections.unmodifiableCollection(inntekter.stream().flatMap(i -> i.getAlleInntektsposter().stream()).collect(Collectors.toList())); + return Collections.unmodifiableCollection(inntekter.stream() + .flatMap(i -> i.getAlleInntektsposter().stream()) + .collect(Collectors.toList())); } - /** - * Get inntektsposter - filtrert for skjæringstidspunkt hvis satt på filter. - */ + /** Get inntektsposter - filtrert for skjæringstidspunkt hvis satt på filter. */ public Collection getFiltrertInntektsposter() { return getInntektsposter((InntektskildeType) null); } - /** - * Get inntektsposter - filtrert for skjæringstidspunkt, inntektsposttype, etc hvis satt på filter. - */ + /** Get inntektsposter - filtrert for skjæringstidspunkt, inntektsposttype, etc hvis satt på filter. */ public Collection getInntektsposter(InntektskildeType kilde) { Collection inntektsposter = getAlleInntekter(null).stream() - .filter(i -> kilde == null || kilde.equals(i.getInntektsKilde())) - .flatMap(i -> i.getAlleInntektsposter().stream().filter(ip -> filtrerInntektspost(i, ip))) - .collect(Collectors.toList()); + .filter(i -> kilde == null || kilde.equals(i.getInntektsKilde())) + .flatMap(i -> i.getAlleInntektsposter().stream().filter(ip -> filtrerInntektspost(i, ip))) + .collect(Collectors.toList()); return Collections.unmodifiableCollection(inntektsposter); } @@ -174,30 +176,31 @@ public Collection getInntektsposterSammenligningsgrunnlag() { @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } private boolean filtrerInntektspost(Inntekt inntekt, Inntektspost ip) { - return (inntektspostFilter == null || inntektspostFilter.test(inntekt, ip)) && skalMedEtterSkjæringstidspunktVurdering(ip); + return (inntektspostFilter == null || inntektspostFilter.test(inntekt, ip)) + && skalMedEtterSkjæringstidspunktVurdering(ip); } - /** - * Get inntektsposter. Filtrer for skjæringstidspunkt, inntektsposttype etc hvis definert - */ + /** Get inntektsposter. Filtrer for skjæringstidspunkt, inntektsposttype etc hvis definert */ private Collection getInntektsposter(Collection inntekter) { Collection inntektsposter = inntekter.stream() - .flatMap(i -> i.getAlleInntektsposter().stream().filter(ip -> filtrerInntektspost(i, ip))) - .collect(Collectors.toList()); + .flatMap(i -> i.getAlleInntektsposter().stream().filter(ip -> filtrerInntektspost(i, ip))) + .collect(Collectors.toList()); return Collections.unmodifiableCollection(inntektsposter); } private Collection getFiltrertInntektsposter(Inntekt inntekt) { - Collection inntektsposter = inntekt.getAlleInntektsposter() - .stream() - .filter(ip -> filtrerInntektspost(inntekt, ip)) - .collect(Collectors.toList()); + Collection inntektsposter = inntekt.getAlleInntektsposter().stream() + .filter(ip -> filtrerInntektspost(inntekt, ip)) + .collect(Collectors.toList()); return Collections.unmodifiableCollection(inntektsposter); } @@ -211,49 +214,57 @@ private Collection getFiltrertInntektsposter(Inntekt inntekt) { return periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)); } else { return periode.getFomDato().isAfter(skjæringstidspunkt) - || periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)) && periode.getTomDato().isAfter(skjæringstidspunkt); + || periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)) + && periode.getTomDato().isAfter(skjæringstidspunkt); } } return true; } - /** - * Appliserer angitt funksjon til hver inntekt og for inntekts inntektsposter som matcher dette filteret. - */ + /** Appliserer angitt funksjon til hver inntekt og for inntekts inntektsposter som matcher dette filteret. */ public void forFilter(BiConsumer> consumer) { getAlleInntekter().forEach(i -> { - var inntektsposterFiltrert = getFiltrertInntektsposter(i).stream().filter(ip -> filtrerInntektspost(i, ip)).collect(Collectors.toList()); + var inntektsposterFiltrert = getFiltrertInntektsposter(i).stream() + .filter(ip -> filtrerInntektspost(i, ip)) + .collect(Collectors.toList()); consumer.accept(i, inntektsposterFiltrert); }); } public InntektFilter filter(Predicate filterFunc) { - return copyWith(getAlleInntekter().stream().filter(filterFunc).collect(Collectors.toList()), skjæringstidspunkt, - venstreSideASkjæringstidspunkt); + return copyWith( + getAlleInntekter().stream().filter(filterFunc).collect(Collectors.toList()), + skjæringstidspunkt, + venstreSideASkjæringstidspunkt); } public InntektFilter filter(BiPredicate filterFunc) { - var copy = copyWith(getAlleInntekter().stream() - .filter(i -> i.getAlleInntektsposter().stream().anyMatch(ip -> filterFunc.test(i, ip))) - .collect(Collectors.toList()), skjæringstidspunkt, venstreSideASkjæringstidspunkt); + var copy = copyWith( + getAlleInntekter().stream() + .filter(i -> i.getAlleInntektsposter().stream().anyMatch(ip -> filterFunc.test(i, ip))) + .collect(Collectors.toList()), + skjæringstidspunkt, + venstreSideASkjæringstidspunkt); if (copy.inntektspostFilter == null) { copy.inntektspostFilter = filterFunc; } else { - copy.inntektspostFilter = (inntekt, inntektspost) -> filterFunc.test(inntekt, inntektspost) && this.inntektspostFilter.test(inntekt, - inntektspost); + copy.inntektspostFilter = (inntekt, inntektspost) -> + filterFunc.test(inntekt, inntektspost) && this.inntektspostFilter.test(inntekt, inntektspost); } return copy; } - private InntektFilter copyWith(Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { + private InntektFilter copyWith( + Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { var copy = new InntektFilter(inntekter, skjæringstidspunkt, venstreSideASkjæringstidspunkt); copy.inntektspostFilter = this.inntektspostFilter; return copy; } public boolean anyMatchFilter(BiPredicate matcher) { - return getAlleInntekter().stream().anyMatch(i -> getFiltrertInntektsposter(i).stream().anyMatch(ip -> matcher.test(i, ip))); + return getAlleInntekter().stream() + .anyMatch(i -> getFiltrertInntektsposter(i).stream().anyMatch(ip -> matcher.test(i, ip))); } public Collection mapInntektspost(BiFunction mapper) { @@ -261,5 +272,4 @@ public Collection mapInntektspost(BiFunction ma forFilter((inntekt, inntektsposter) -> inntektsposter.forEach(ip -> result.add(mapper.apply(inntekt, ip)))); return Collections.unmodifiableList(result); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektsmeldingAggregat.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektsmeldingAggregat.java index 4adc5f8f1..660ab4db7 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektsmeldingAggregat.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektsmeldingAggregat.java @@ -1,12 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -15,14 +8,18 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding.Inntektsmelding; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.foreldrepenger.abakus.typer.JournalpostId; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Entity(name = "Inntektsmeldinger") @Table(name = "IAY_INNTEKTSMELDINGER") @@ -51,18 +48,21 @@ public InntektsmeldingAggregat() { } public InntektsmeldingAggregat(Collection inntektsmeldinger) { - this.inntektsmeldinger.addAll(inntektsmeldinger.stream().sorted(Inntektsmelding.COMP_REKKEFØLGE).map(i -> { - var inntektsmeldingEntitet = new Inntektsmelding(i); - inntektsmeldingEntitet.setInntektsmeldinger(this); - return inntektsmeldingEntitet; - }).collect(Collectors.toList())); + this.inntektsmeldinger.addAll(inntektsmeldinger.stream() + .sorted(Inntektsmelding.COMP_REKKEFØLGE) + .map(i -> { + var inntektsmeldingEntitet = new Inntektsmelding(i); + inntektsmeldingEntitet.setInntektsmeldinger(this); + return inntektsmeldingEntitet; + }) + .collect(Collectors.toList())); } - /** - * Get alle inntektsmeldinger (både de som skal brukes og ikke brukes). - */ + /** Get alle inntektsmeldinger (både de som skal brukes og ikke brukes). */ public List getInntektsmeldinger() { - return inntektsmeldinger.stream().sorted(Inntektsmelding.COMP_REKKEFØLGE).collect(Collectors.toUnmodifiableList()); + return inntektsmeldinger.stream() + .sorted(Inntektsmelding.COMP_REKKEFØLGE) + .collect(Collectors.toUnmodifiableList()); } public Long getId() { @@ -70,16 +70,15 @@ public Long getId() { } /** - * Den persisterte inntektsmeldingen kan være av nyere dato, bestemmes av - * innsendingstidspunkt på inntektsmeldingen. + * Den persisterte inntektsmeldingen kan være av nyere dato, bestemmes av innsendingstidspunkt på inntektsmeldingen. * * @return lagtTilEllerIkke */ public Set leggTilEllerErstattMedUtdatertForHistorikk(Inntektsmelding inntektsmelding) { var collect = inntektsmeldinger.stream() - .filter(it -> it.gjelderSammeArbeidsforhold(inntektsmelding)) - .map(Inntektsmelding::getJournalpostId) - .collect(Collectors.toCollection(HashSet::new)); + .filter(it -> it.gjelderSammeArbeidsforhold(inntektsmelding)) + .map(Inntektsmelding::getJournalpostId) + .collect(Collectors.toCollection(HashSet::new)); boolean fjernet = inntektsmeldinger.removeIf(it -> it.gjelderSammeArbeidsforhold(inntektsmelding)); if (fjernet || inntektsmeldinger.stream().noneMatch(it -> it.gjelderSammeArbeidsforhold(inntektsmelding))) { @@ -93,21 +92,25 @@ public Set leggTilEllerErstattMedUtdatertForHistorikk(Inntektsmel } /** - * Den persisterte inntektsmeldingen kan være av nyere dato, bestemmes av - * innsendingstidspunkt på inntektsmeldingen. + * Den persisterte inntektsmeldingen kan være av nyere dato, bestemmes av innsendingstidspunkt på inntektsmeldingen. * * @return lagtTilEllerIkke */ public Set leggTilEllerErstatt(Inntektsmelding inntektsmelding) { var collect = inntektsmeldinger.stream() - .filter(it -> skalFjerneInntektsmelding(it, inntektsmelding)) - .map(Inntektsmelding::getJournalpostId) - .collect(Collectors.toCollection(HashSet::new)); + .filter(it -> skalFjerneInntektsmelding(it, inntektsmelding)) + .map(Inntektsmelding::getJournalpostId) + .collect(Collectors.toCollection(HashSet::new)); boolean fjernet = inntektsmeldinger.removeIf(it -> skalFjerneInntektsmelding(it, inntektsmelding)); - inntektsmeldinger.stream().filter(it -> it.gjelderSammeArbeidsforhold(inntektsmelding) && !fjernet).findFirst().ifPresent(e -> { - LOG.info("Persistert inntektsmelding med journalpostid {} er nyere enn den mottatte med journalpostid {}. Ignoreres", - e.getJournalpostId(), inntektsmelding.getJournalpostId()); - }); + inntektsmeldinger.stream() + .filter(it -> it.gjelderSammeArbeidsforhold(inntektsmelding) && !fjernet) + .findFirst() + .ifPresent(e -> { + LOG.info( + "Persistert inntektsmelding med journalpostid {} er nyere enn den mottatte med journalpostid {}. Ignoreres", + e.getJournalpostId(), + inntektsmelding.getJournalpostId()); + }); if (fjernet || inntektsmeldinger.stream().noneMatch(it -> it.gjelderSammeArbeidsforhold(inntektsmelding))) { final Inntektsmelding entitet = inntektsmelding; diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntektspost.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntektspost.java index c1f6eca83..3c7c174c9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntektspost.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Inntektspost.java @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,6 +13,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @@ -47,12 +46,11 @@ public class Inntektspost extends BaseEntitet implements IndexKey { @Column(name = "skatte_og_avgiftsregel_type", nullable = false, updatable = false) private SkatteOgAvgiftsregelType skatteOgAvgiftsregelType = SkatteOgAvgiftsregelType.UDEFINERT; - /** - * Beskriver hva inntekten gjelder dersom den er av typen LØNN - */ + /** Beskriver hva inntekten gjelder dersom den er av typen LØNN */ @Convert(converter = LønnsbeskrivelseKodeverdiConverter.class) @Column(name = "lonnsinntekt_beskrivelse", nullable = false, updatable = false) private LønnsinntektBeskrivelse lønnsinntektBeskrivelse = LønnsinntektBeskrivelse.UDEFINERT; + @ManyToOne(optional = false) @JoinColumn(name = "inntekt_id", nullable = false, updatable = false, unique = true) private Inntekt inntekt; @@ -77,9 +75,7 @@ public Inntektspost() { // hibernate } - /** - * Deep copy. - */ + /** Deep copy. */ Inntektspost(Inntektspost inntektspost) { this.inntektspostType = inntektspost.getInntektspostType(); this.skatteOgAvgiftsregelType = inntektspost.getSkatteOgAvgiftsregelType(); @@ -97,12 +93,13 @@ public String getIndexKey() { /** * Underkategori av utbetaling - *

- * F.eks + * + *

F.eks + * *

    - *
  • Lønn
  • - *
  • Ytelse
  • - *
  • Næringsinntekt
  • + *
  • Lønn + *
  • Ytelse + *
  • Næringsinntekt *
* * @return {@link InntektspostType} @@ -116,8 +113,7 @@ void setInntektspostType(InntektspostType inntektspostType) { } /** - * En kodeverksverdi som angir særskilt beskatningsregel. - * Den er ikke alltid satt, og kommer fra inntektskomponenten + * En kodeverksverdi som angir særskilt beskatningsregel. Den er ikke alltid satt, og kommer fra inntektskomponenten * * @return {@link SkatteOgAvgiftsregelType} */ @@ -187,9 +183,10 @@ public boolean equals(Object obj) { return false; } Inntektspost other = (Inntektspost) obj; - return Objects.equals(this.inntektspostType, other.inntektspostType) && Objects.equals( - this.ytelse, other.ytelse) && Objects.equals(this.skatteOgAvgiftsregelType, other.skatteOgAvgiftsregelType) && Objects.equals( - this.periode, other.periode); + return Objects.equals(this.inntektspostType, other.inntektspostType) + && Objects.equals(this.ytelse, other.ytelse) + && Objects.equals(this.skatteOgAvgiftsregelType, other.skatteOgAvgiftsregelType) + && Objects.equals(this.periode, other.periode); } @Override @@ -200,12 +197,15 @@ public int hashCode() { @Override public String toString() { return getClass().getSimpleName() + "<" + ", ytelse=" + ytelse + ", inntektspostType=" + inntektspostType - + ", skatteOgAvgiftsregelType=" + skatteOgAvgiftsregelType + ", periode=" + periode + ", beløp=" + beløp + '>'; + + ", skatteOgAvgiftsregelType=" + skatteOgAvgiftsregelType + ", periode=" + periode + ", beløp=" + beløp + + '>'; } public boolean hasValues() { - return (ytelse != null || !Objects.equals(ytelse, "-")) || inntektspostType != null || periode.getFomDato() != null - || periode.getTomDato() != null || beløp != null; + return (ytelse != null || !Objects.equals(ytelse, "-")) + || inntektspostType != null + || periode.getFomDato() != null + || periode.getTomDato() != null + || beløp != null; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektspostBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektspostBuilder.java index ea946a6ee..c939ef059 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektspostBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektspostBuilder.java @@ -2,7 +2,6 @@ import java.math.BigDecimal; import java.time.LocalDate; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.abakus.iaygrunnlag.kodeverk.LønnsinntektBeskrivelse; @@ -56,5 +55,4 @@ public Inntektspost build() { } throw new IllegalStateException(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/OpptjeningInntektPeriode.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/OpptjeningInntektPeriode.java index 2c1248852..10fc828d1 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/OpptjeningInntektPeriode.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/OpptjeningInntektPeriode.java @@ -2,7 +2,6 @@ import java.math.BigDecimal; import java.time.LocalDate; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Opptjeningsn\303\270kkel.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Opptjeningsn\303\270kkel.java" index f9056ca9e..4ec2cd2ab 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Opptjeningsn\303\270kkel.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Opptjeningsn\303\270kkel.java" @@ -2,7 +2,6 @@ import java.util.Objects; import java.util.Optional; - import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; public class Opptjeningsnøkkel { @@ -20,13 +19,16 @@ public class Opptjeningsnøkkel { } public Opptjeningsnøkkel(InternArbeidsforholdRef arbeidsforholdId, Arbeidsgiver arbeidsgiver) { - this(arbeidsforholdId, arbeidsgiver.getErVirksomhet() ? arbeidsgiver.getIdentifikator() : null, - arbeidsgiver.getErVirksomhet() ? null : arbeidsgiver.getIdentifikator()); + this( + arbeidsforholdId, + arbeidsgiver.getErVirksomhet() ? arbeidsgiver.getIdentifikator() : null, + arbeidsgiver.getErVirksomhet() ? null : arbeidsgiver.getIdentifikator()); } public Opptjeningsnøkkel(InternArbeidsforholdRef internArbeidsforholdRef, String orgNummer, String aktørId) { if (internArbeidsforholdRef == null && orgNummer == null && aktørId == null) { - throw new IllegalArgumentException("Minst en av internArbeidsforholdRef, orgnummer og aktørId må vere ulik null"); + throw new IllegalArgumentException( + "Minst en av internArbeidsforholdRef, orgnummer og aktørId må vere ulik null"); } this.arbeidsforholdId = internArbeidsforholdRef; this.orgNummer = orgNummer; @@ -41,7 +43,8 @@ public class Opptjeningsnøkkel { return new Opptjeningsnøkkel(arbeidsgiver); } - public static Opptjeningsnøkkel forArbeidsforholdIdMedArbeidgiver(InternArbeidsforholdRef arbeidsforholdId, Arbeidsgiver arbeidsgiver) { + public static Opptjeningsnøkkel forArbeidsforholdIdMedArbeidgiver( + InternArbeidsforholdRef arbeidsforholdId, Arbeidsgiver arbeidsgiver) { return new Opptjeningsnøkkel(arbeidsforholdId, arbeidsgiver); } @@ -50,10 +53,9 @@ public class Opptjeningsnøkkel { } /** - * Gir en opptjeningsnøkkel basert på følgende rank - * 1) ArbeidsforholdId er en unik id fra AAreg - * 2) Org nummer er iden til en virksomhet som fungere som arbeidsgiver - * 3) AktørDto id er iden til en person som fungere som arbeidsgiver + * Gir en opptjeningsnøkkel basert på følgende rank 1) ArbeidsforholdId er en unik id fra AAreg 2) Org nummer er + * iden til en virksomhet som fungere som arbeidsgiver 3) AktørDto id er iden til en person som fungere som + * arbeidsgiver */ public String getVerdi() { if (harArbeidsforholdId()) { @@ -112,7 +114,7 @@ public Type getArbeidsgiverType() { } } - //TODO(OJR) håndter ikke frilans? + // TODO(OJR) håndter ikke frilans? public boolean matcher(Opptjeningsnøkkel other) { if (other == null) { return false; @@ -129,8 +131,8 @@ public boolean matcher(Opptjeningsnøkkel other) { } return likArbeidsforholdsId && likArbeidsgiver; } else { - if ((Type.ORG_NUMMER.equals(other.getType()) || Type.ORG_NUMMER.equals(this.getType())) && (!other.harArbeidsforholdId() - || !this.harArbeidsforholdId())) { + if ((Type.ORG_NUMMER.equals(other.getType()) || Type.ORG_NUMMER.equals(this.getType())) + && (!other.harArbeidsforholdId() || !this.harArbeidsforholdId())) { return other.orgNummer != null && other.orgNummer.equals(this.orgNummer); } return Objects.equals(other.aktørId, this.aktørId); @@ -145,8 +147,9 @@ public boolean equals(Object obj) { return false; } Opptjeningsnøkkel other = (Opptjeningsnøkkel) obj; - return Objects.equals(aktørId, other.aktørId) && Objects.equals(orgNummer, other.orgNummer) && Objects.equals(arbeidsforholdId, - other.arbeidsforholdId); + return Objects.equals(aktørId, other.aktørId) + && Objects.equals(orgNummer, other.orgNummer) + && Objects.equals(arbeidsforholdId, other.arbeidsforholdId); } @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Permisjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Permisjon.java index 4b9066e99..534a1959a 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Permisjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Permisjon.java @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,7 +13,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -58,9 +56,7 @@ public Permisjon() { // hibernate } - /** - * Deep copy ctor - */ + /** Deep copy ctor */ Permisjon(Permisjon permisjon) { this.permisjonsbeskrivelseType = permisjon.getPermisjonsbeskrivelseType(); this.periode = IntervallEntitet.fraOgMedTilOgMed(permisjon.getFraOgMed(), permisjon.getTilOgMed()); @@ -132,8 +128,9 @@ public boolean equals(Object obj) { return false; } Permisjon other = (Permisjon) obj; - return Objects.equals(this.permisjonsbeskrivelseType, other.permisjonsbeskrivelseType) && Objects.equals(this.periode, other.periode) - && Objects.equals(this.prosentsats, other.prosentsats); + return Objects.equals(this.permisjonsbeskrivelseType, other.permisjonsbeskrivelseType) + && Objects.equals(this.periode, other.periode) + && Objects.equals(this.prosentsats, other.prosentsats); } @Override @@ -143,8 +140,8 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "permisjonsbeskrivelseType=" + permisjonsbeskrivelseType + ", periode=" + periode + ", prosentsats=" - + prosentsats + '>'; + return getClass().getSimpleName() + "<" + "permisjonsbeskrivelseType=" + permisjonsbeskrivelseType + + ", periode=" + periode + ", prosentsats=" + prosentsats + '>'; } public Yrkesaktivitet getYrkesaktivitet() { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/PermisjonBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/PermisjonBuilder.java index 23bbaca34..fc95bdace 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/PermisjonBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/PermisjonBuilder.java @@ -2,7 +2,6 @@ import java.math.BigDecimal; import java.time.LocalDate; - import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @@ -38,5 +37,4 @@ public Permisjon build() { } throw new IllegalStateException(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Yrkesaktivitet.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Yrkesaktivitet.java index c1a528d3b..585c28bfd 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Yrkesaktivitet.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Yrkesaktivitet.java @@ -1,13 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -20,7 +12,13 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -39,33 +37,39 @@ public class Yrkesaktivitet extends BaseEntitet implements IndexKey { * For Yrkesaktivitet gjelder dette frilansaktiviteter innhentet fra Inntektskomponenten */ static final LocalDate CUTOFF_FRILANS_AAREG = LocalDate.of(2020, 1, 1); + @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_YRKESAKTIVITET") private Long id; + @OneToMany(mappedBy = "yrkesaktivitet") @ChangeTracked private Set aktivitetsAvtale = new LinkedHashSet<>(); + @OneToMany(mappedBy = "yrkesaktivitet") @ChangeTracked private Set permisjon = new LinkedHashSet<>(); + @Column(name = "NAVN_ARBEIDSGIVER_UTLAND") @ChangeTracked private String navnArbeidsgiverUtland; - /** - * Kan være privat eller virksomhet som arbeidsgiver. Dersom {@link #arbeidType} = 'NÆRING', er denne null. - */ + /** Kan være privat eller virksomhet som arbeidsgiver. Dersom {@link #arbeidType} = 'NÆRING', er denne null. */ @Embedded @ChangeTracked private Arbeidsgiver arbeidsgiver; + @Embedded private InternArbeidsforholdRef arbeidsforholdRef; + @ManyToOne(optional = false) @JoinColumn(name = "aktoer_arbeid_id", nullable = false, updatable = false) private AktørArbeid aktørArbeid; + @ChangeTracked @Convert(converter = ArbeidTypeKodeverdiConverter.class) @Column(name = "arbeid_type", nullable = false, updatable = false) private ArbeidType arbeidType; + @Version @Column(name = "versjon", nullable = false) private long versjon; @@ -80,18 +84,21 @@ public Yrkesaktivitet(Yrkesaktivitet yrkesaktivitet) { this.arbeidsforholdRef = yrkesaktivitet.getArbeidsforholdRef(); this.navnArbeidsgiverUtland = yrkesaktivitet.getNavnArbeidsgiverUtland(); - this.aktivitetsAvtale = yrkesaktivitet.aktivitetsAvtale.stream().map(aa -> { - AktivitetsAvtale aktivitetsAvtaleEntitet = new AktivitetsAvtale(aa); - aktivitetsAvtaleEntitet.setYrkesaktivitet(this); - return aktivitetsAvtaleEntitet; - }).collect(Collectors.toCollection(LinkedHashSet::new)); - - this.permisjon = yrkesaktivitet.permisjon.stream().map(p -> { - Permisjon permisjon = new Permisjon(p); - permisjon.setYrkesaktivitet(this); - return permisjon; - }).collect(Collectors.toCollection(LinkedHashSet::new)); - + this.aktivitetsAvtale = yrkesaktivitet.aktivitetsAvtale.stream() + .map(aa -> { + AktivitetsAvtale aktivitetsAvtaleEntitet = new AktivitetsAvtale(aa); + aktivitetsAvtaleEntitet.setYrkesaktivitet(this); + return aktivitetsAvtaleEntitet; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); + + this.permisjon = yrkesaktivitet.permisjon.stream() + .map(p -> { + Permisjon permisjon = new Permisjon(p); + permisjon.setYrkesaktivitet(this); + return permisjon; + }) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -106,20 +113,22 @@ public String getIndexKey() { /** * Kategorisering av aktivitet som er enten pensjonsgivende inntekt eller likestilt med pensjonsgivende inntekt - *

- * Fra aa-reg + * + *

Fra aa-reg + * *

    - *
  • {@value ArbeidType#ORDINÆRT_ARBEIDSFORHOLD}
  • - *
  • {@value ArbeidType#MARITIMT_ARBEIDSFORHOLD}
  • - *
  • {@value ArbeidType#FORENKLET_OPPGJØRSORDNING}
  • + *
  • {@value ArbeidType#ORDINÆRT_ARBEIDSFORHOLD} + *
  • {@value ArbeidType#MARITIMT_ARBEIDSFORHOLD} + *
  • {@value ArbeidType#FORENKLET_OPPGJØRSORDNING} *
- *

- * Fra inntektskomponenten + * + *

Fra inntektskomponenten + * *

    - *
  • {@value ArbeidType#FRILANSER_OPPDRAGSTAKER_MED_MER}
  • + *
  • {@value ArbeidType#FRILANSER_OPPDRAGSTAKER_MED_MER} *
- *

- * De resterende kommer fra søknaden + * + *

De resterende kommer fra søknaden * * @return {@link ArbeidType} */ @@ -132,9 +141,10 @@ void setArbeidType(ArbeidType arbeidType) { } /** - * Unik identifikator for arbeidsforholdet til aktøren i bedriften. Selve nøkkelen er ikke unik, men er unik for arbeidstaker hos arbeidsgiver. - *

- * NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg + * Unik identifikator for arbeidsforholdet til aktøren i bedriften. Selve nøkkelen er ikke unik, men er unik for + * arbeidstaker hos arbeidsgiver. + * + *

NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg * * @return referanse */ @@ -148,8 +158,8 @@ void setArbeidsforholdId(InternArbeidsforholdRef arbeidsforholdId) { /** * Liste over fremtidige / historiske permisjoner hos arbeidsgiver. - *

- * NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg + * + *

NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg * * @return liste med permisjoner */ @@ -162,9 +172,7 @@ void leggTilPermisjon(Permisjon permisjon) { permisjon.setYrkesaktivitet(this); } - /** - * Alle aktivitetsavtaler - */ + /** Alle aktivitetsavtaler */ public Collection getAlleAktivitetsAvtaler() { return Collections.unmodifiableSet(aktivitetsAvtale); } @@ -177,8 +185,8 @@ void leggTilAktivitetsAvtale(AktivitetsAvtale aktivitetsAvtale) { /** * ArbeidsgiverEntitet - *

- * NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg + * + *

NB! Vil kun forekomme i aktiviteter som er hentet inn fra aa-reg * * @return {@link ArbeidsgiverEntitet} */ @@ -206,7 +214,7 @@ void setNavnArbeidsgiverUtland(String navnArbeidsgiverUtland) { /** * Identifiser om yrkesaktiviteten gjelder for arbeidsgiver og arbeidsforholdRef. * - * @param arbeidsgiver en {@link Arbeidsgiver} + * @param arbeidsgiver en {@link Arbeidsgiver} * @param arbeidsforholdRef et {@link InternArbeidsforholdRef} * @return true hvis arbeidsgiver og arbeidsforholdRef macther */ @@ -226,18 +234,22 @@ void tilbakestillPermisjon() { void tilbakestillAvtaler() { if (erYrkesaktivitetMedLegacyInnhold()) { - this.aktivitetsAvtale = aktivitetsAvtale.stream().filter(this::erLegacyAktivitetsAvtale).collect(Collectors.toSet()); + this.aktivitetsAvtale = aktivitetsAvtale.stream() + .filter(this::erLegacyAktivitetsAvtale) + .collect(Collectors.toSet()); } else { aktivitetsAvtale.clear(); } } boolean erYrkesaktivitetMedLegacyInnhold() { - return ArbeidType.FRILANSER_OPPDRAGSTAKER_MED_MER.equals(arbeidType) && aktivitetsAvtale.stream().anyMatch(this::erLegacyAktivitetsAvtale); + return ArbeidType.FRILANSER_OPPDRAGSTAKER_MED_MER.equals(arbeidType) + && aktivitetsAvtale.stream().anyMatch(this::erLegacyAktivitetsAvtale); } private boolean erLegacyAktivitetsAvtale(AktivitetsAvtale avtale) { - return avtale.getPeriode().getTomDato() != null && CUTOFF_FRILANS_AAREG.isAfter(avtale.getPeriode().getTomDato()); + return avtale.getPeriode().getTomDato() != null + && CUTOFF_FRILANS_AAREG.isAfter(avtale.getPeriode().getTomDato()); } void tilbakestillAvtalerInklusiveInntektFrilans() { @@ -252,24 +264,25 @@ public boolean equals(Object obj) { return false; } Yrkesaktivitet other = (Yrkesaktivitet) obj; - return Objects.equals(this.getArbeidsforholdRef(), other.getArbeidsforholdRef()) && Objects.equals(this.getNavnArbeidsgiverUtland(), - other.getNavnArbeidsgiverUtland()) && Objects.equals(this.getArbeidType(), other.getArbeidType()) && Objects.equals( - this.getArbeidsgiver(), other.getArbeidsgiver()); + return Objects.equals(this.getArbeidsforholdRef(), other.getArbeidsforholdRef()) + && Objects.equals(this.getNavnArbeidsgiverUtland(), other.getNavnArbeidsgiverUtland()) + && Objects.equals(this.getArbeidType(), other.getArbeidType()) + && Objects.equals(this.getArbeidsgiver(), other.getArbeidsgiver()); } @Override public int hashCode() { - return Objects.hash(this.getArbeidsforholdRef(), getNavnArbeidsgiverUtland(), getArbeidType(), getArbeidsgiver()); + return Objects.hash( + this.getArbeidsforholdRef(), getNavnArbeidsgiverUtland(), getArbeidType(), getArbeidsgiver()); } @Override public String toString() { - return "YrkesaktivitetEntitet{" + "id=" + id + ", arbeidsgiver=" + arbeidsgiver + ", arbeidsforholdRef=" + arbeidsforholdRef + ", arbeidType=" - + arbeidType + '}'; + return "YrkesaktivitetEntitet{" + "id=" + id + ", arbeidsgiver=" + arbeidsgiver + ", arbeidsforholdRef=" + + arbeidsforholdRef + ", arbeidType=" + arbeidType + '}'; } void fjernPeriode(IntervallEntitet aktivitetsPeriode) { aktivitetsAvtale.removeIf(aa -> aa.matcherPeriode(aktivitetsPeriode)); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YrkesaktivitetBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YrkesaktivitetBuilder.java index 410face18..6d536dd7e 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YrkesaktivitetBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YrkesaktivitetBuilder.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.domene.iay; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; @@ -103,14 +102,14 @@ public Yrkesaktivitet build() { return kladd; } - public AktivitetsAvtaleBuilder getAktivitetsAvtaleBuilder(IntervallEntitet aktivitetsPeriode, boolean erAnsettelsesperioden) { - AktivitetsAvtaleBuilder oppdater = AktivitetsAvtaleBuilder.oppdater(kladd.getAlleAktivitetsAvtaler() - .stream() - .filter(aa -> aa.matcherPeriode(aktivitetsPeriode) && (!ArbeidType.erRegisterType(kladd.getArbeidType()) - || aa.erAnsettelsesPeriode() == erAnsettelsesperioden)) - .findFirst()); + public AktivitetsAvtaleBuilder getAktivitetsAvtaleBuilder( + IntervallEntitet aktivitetsPeriode, boolean erAnsettelsesperioden) { + AktivitetsAvtaleBuilder oppdater = AktivitetsAvtaleBuilder.oppdater(kladd.getAlleAktivitetsAvtaler().stream() + .filter(aa -> aa.matcherPeriode(aktivitetsPeriode) + && (!ArbeidType.erRegisterType(kladd.getArbeidType()) + || aa.erAnsettelsesPeriode() == erAnsettelsesperioden)) + .findFirst()); oppdater.medPeriode(aktivitetsPeriode); return oppdater; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Ytelse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Ytelse.java index 025e7b52c..d37a7a4ac 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Ytelse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/Ytelse.java @@ -1,14 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDateTime; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -24,6 +15,14 @@ import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -65,9 +64,7 @@ public class Ytelse extends BaseEntitet implements IndexKey { @Column(name = "status", nullable = false) private YtelseStatus status; - /** - * Saksnummer (fra Arena, Infotrygd, VLFP, K9, VLSP..). - */ + /** Saksnummer (fra Arena, Infotrygd, VLFP, K9, VLSP..). */ @ChangeTracked @Embedded @AttributeOverrides(@AttributeOverride(name = "saksnummer", column = @Column(name = "saksreferanse"))) @@ -106,11 +103,10 @@ public Ytelse(Ytelse ytelse) { ygn.setYtelse(this); this.ytelseGrunnlag = ygn; }); - this.ytelseAnvist = ytelse.getYtelseAnvist() - .stream() - .map(YtelseAnvist::new) - .peek(it -> it.setYtelse(this)) - .collect(Collectors.toCollection(LinkedHashSet::new)); + this.ytelseAnvist = ytelse.getYtelseAnvist().stream() + .map(YtelseAnvist::new) + .peek(it -> it.setYtelse(this)) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -189,7 +185,6 @@ public Collection getYtelseAnvist() { void leggTilYtelseAnvist(YtelseAnvist ytelseAnvist) { ytelseAnvist.setYtelse(this); this.ytelseAnvist.add(ytelseAnvist); - } void tilbakestillAnvisteYtelser() { @@ -205,8 +200,10 @@ public boolean equals(Object o) { return false; } var that = (Ytelse) o; - return Objects.equals(relatertYtelseType, that.relatertYtelseType) && Objects.equals(saksreferanse, that.saksreferanse) && - (Objects.equals(periode, that.periode) || Objects.equals(periode.getFomDato(), that.periode.getFomDato())); + return Objects.equals(relatertYtelseType, that.relatertYtelseType) + && Objects.equals(saksreferanse, that.saksreferanse) + && (Objects.equals(periode, that.periode) + || Objects.equals(periode.getFomDato(), that.periode.getFomDato())); } @Override @@ -216,12 +213,11 @@ public int hashCode() { @Override public String toString() { - return "YtelseEntitet{" + - "relatertYtelseType=" + relatertYtelseType + - ", periode=" + periode + - ", relatertYtelseStatus=" + status + - ", vedtattTidspunkt=" + vedtattTidspunkt + - ", saksReferanse='" + saksreferanse + '\'' + - '}'; + return "YtelseEntitet{" + "relatertYtelseType=" + + relatertYtelseType + ", periode=" + + periode + ", relatertYtelseStatus=" + + status + ", vedtattTidspunkt=" + + vedtattTidspunkt + ", saksReferanse='" + + saksreferanse + '\'' + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvist.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvist.java index ef42ae92c..3e740512c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvist.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvist.java @@ -1,11 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -19,7 +13,11 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -72,7 +70,8 @@ public YtelseAnvist() { } public YtelseAnvist(YtelseAnvist ytelseAnvist) { - this.anvistPeriode = IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFOM(), ytelseAnvist.getAnvistTOM()); + this.anvistPeriode = + IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFOM(), ytelseAnvist.getAnvistTOM()); this.beløp = ytelseAnvist.getBeløp().orElse(null); this.dagsats = ytelseAnvist.getDagsats().orElse(null); this.utbetalingsgradProsent = ytelseAnvist.getUtbetalingsgradProsent().orElse(null); @@ -131,7 +130,6 @@ public Set getYtelseAnvistAndeler() { void leggTilYtelseAnvistAndel(YtelseAnvistAndel ytelseAnvistAndel) { ytelseAnvistAndel.setYtelseAnvist(this); this.ytelseAnvistAndeler.add(ytelseAnvistAndel); - } @Override @@ -143,8 +141,10 @@ public boolean equals(Object o) { return false; } YtelseAnvist that = (YtelseAnvist) o; - return Objects.equals(anvistPeriode, that.anvistPeriode) && Objects.equals(beløp, that.beløp) && Objects.equals(dagsats, that.dagsats) - && Objects.equals(utbetalingsgradProsent, that.utbetalingsgradProsent); + return Objects.equals(anvistPeriode, that.anvistPeriode) + && Objects.equals(beløp, that.beløp) + && Objects.equals(dagsats, that.dagsats) + && Objects.equals(utbetalingsgradProsent, that.utbetalingsgradProsent); } @Override @@ -154,7 +154,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "periode=" + anvistPeriode + ", beløp=" + beløp + ", dagsats=" + dagsats - + ", utbetalingsgradProsent=" + utbetalingsgradProsent + '>'; + return getClass().getSimpleName() + "<" + "periode=" + anvistPeriode + ", beløp=" + beløp + ", dagsats=" + + dagsats + ", utbetalingsgradProsent=" + utbetalingsgradProsent + '>'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndel.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndel.java index 745aff2b4..54eb4820c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndel.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndel.java @@ -1,12 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.sql.Types; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; - -import org.hibernate.annotations.JdbcTypeCode; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -20,6 +13,10 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.sql.Types; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -29,7 +26,7 @@ import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; import no.nav.foreldrepenger.abakus.vedtak.domene.InntektskategoriKodeverdiConverter; - +import org.hibernate.annotations.JdbcTypeCode; @Entity(name = "YtelseAnvistAndel") @Table(name = "IAY_YTELSE_ANVIST_ANDEL") @@ -47,7 +44,6 @@ public class YtelseAnvistAndel extends BaseEntitet implements IndexKey { @ChangeTracked private Arbeidsgiver arbeidsgiver; - /* TODO: må fikses i databasen siden det brukes VARCHAR(100) der. //NOSONAR Kolonnen bør være av type UUID i postgres, jeg klarte dessverre ikke å finne ut om det er mulig å overskrive @JdbcTypeCode av en @Embedded entitet. Om man endrer i databasen vil utkommentert kode virke igjen. @@ -58,9 +54,7 @@ public class YtelseAnvistAndel extends BaseEntitet implements IndexKey { @JdbcTypeCode(Types.VARCHAR) // Trenges for å kunne mappe til VARCHAR i database. @Column(name = "arbeidsforhold_intern_id") private UUID arbeidsforholdRef; - /** - * Netto dagsats som tilsvarer grunnlagsdagsats * utbetalingsgrad - */ + /** Netto dagsats som tilsvarer grunnlagsdagsats * utbetalingsgrad */ @Embedded @AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "dagsats", nullable = false))) @ChangeTracked @@ -80,7 +74,6 @@ public class YtelseAnvistAndel extends BaseEntitet implements IndexKey { @Column(name = "inntektskategori", nullable = false, updatable = false) private Inntektskategori inntektskategori = Inntektskategori.UDEFINERT; - @Version @Column(name = "versjon", nullable = false) private long versjon; @@ -95,7 +88,7 @@ public YtelseAnvistAndel(YtelseAnvistAndel ytelseAnvistAndel) { this.inntektskategori = ytelseAnvistAndel.getInntektskategori(); this.refusjonsgradProsent = ytelseAnvistAndel.getRefusjonsgradProsent(); this.utbetalingsgradProsent = ytelseAnvistAndel.getUtbetalingsgradProsent(); - //this.arbeidsforholdRef = ytelseAnvistAndel.getArbeidsforholdRef(); //NOSONAR + // this.arbeidsforholdRef = ytelseAnvistAndel.getArbeidsforholdRef(); //NOSONAR this.arbeidsforholdRef = ytelseAnvistAndel.getArbeidsforholdRef().getUUIDReferanse(); } @@ -107,14 +100,13 @@ void setArbeidsgiver(Arbeidsgiver arbeidsgiver) { this.arbeidsgiver = arbeidsgiver; } - public InternArbeidsforholdRef getArbeidsforholdRef() { - //return arbeidsforholdRef != null ? arbeidsforholdRef : InternArbeidsforholdRef.nullRef(); //NOSONAR + // return arbeidsforholdRef != null ? arbeidsforholdRef : InternArbeidsforholdRef.nullRef(); //NOSONAR return InternArbeidsforholdRef.ref(arbeidsforholdRef); } void setArbeidsforholdRef(InternArbeidsforholdRef arbeidsforholdRef) { - //this.arbeidsforholdRef = arbeidsforholdRef; //NOSONAR + // this.arbeidsforholdRef = arbeidsforholdRef; //NOSONAR this.arbeidsforholdRef = (arbeidsforholdRef != null ? arbeidsforholdRef.getUUIDReferanse() : null); } @@ -163,21 +155,27 @@ public boolean equals(Object o) { return false; } YtelseAnvistAndel that = (YtelseAnvistAndel) o; - return ytelseAnvist.equals(that.ytelseAnvist) && Objects.equals(arbeidsgiver, that.arbeidsgiver) && dagsats.equals(that.dagsats) - && inntektskategori == that.inntektskategori && utbetalingsgradProsent.equals(that.utbetalingsgradProsent) && refusjonsgradProsent.equals( - that.refusjonsgradProsent); + return ytelseAnvist.equals(that.ytelseAnvist) + && Objects.equals(arbeidsgiver, that.arbeidsgiver) + && dagsats.equals(that.dagsats) + && inntektskategori == that.inntektskategori + && utbetalingsgradProsent.equals(that.utbetalingsgradProsent) + && refusjonsgradProsent.equals(that.refusjonsgradProsent); } @Override public int hashCode() { - return Objects.hash(ytelseAnvist, arbeidsgiver, dagsats, inntektskategori, utbetalingsgradProsent, refusjonsgradProsent); + return Objects.hash( + ytelseAnvist, arbeidsgiver, dagsats, inntektskategori, utbetalingsgradProsent, refusjonsgradProsent); } @Override public String toString() { - return "YtelseAnvistAndel{" + "id=" + id + ", ytelseAnvist=" + ytelseAnvist + ", arbeidsgiver=" + arbeidsgiver + ", arbeidsforholdRef=" - + arbeidsforholdRef + ", dagsats=" + dagsats + ", utbetalingsgradProsent=" + utbetalingsgradProsent + ", refusjonsgradProsent=" - + refusjonsgradProsent + ", inntektskategori=" + inntektskategori + ", versjon=" + versjon + '}'; + return "YtelseAnvistAndel{" + "id=" + id + ", ytelseAnvist=" + ytelseAnvist + ", arbeidsgiver=" + arbeidsgiver + + ", arbeidsforholdRef=" + + arbeidsforholdRef + ", dagsats=" + dagsats + ", utbetalingsgradProsent=" + utbetalingsgradProsent + + ", refusjonsgradProsent=" + + refusjonsgradProsent + ", inntektskategori=" + inntektskategori + ", versjon=" + versjon + '}'; } @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndelBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndelBuilder.java index 65de054c7..c352d311a 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndelBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistAndelBuilder.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.domene.iay; import java.math.BigDecimal; - import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; @@ -51,7 +50,6 @@ public YtelseAnvistAndelBuilder medArbeidsforholdRef(InternArbeidsforholdRef arb return this; } - public YtelseAnvistAndelBuilder medInntektskategori(Inntektskategori inntektskategori) { if (inntektskategori != null) { this.ytelseAnvistAndel.setInntektskategori(inntektskategori); @@ -62,5 +60,4 @@ public YtelseAnvistAndelBuilder medInntektskategori(Inntektskategori inntektskat public YtelseAnvistAndel build() { return ytelseAnvistAndel; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistBuilder.java index 2f2870295..1e9f9c4ba 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistBuilder.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.domene.iay; import java.math.BigDecimal; - import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @@ -48,9 +47,7 @@ public YtelseAnvistBuilder leggTilYtelseAnvistAndel(YtelseAnvistAndel ytelseAnvi return this; } - public YtelseAnvist build() { return ytelseAnvist; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseBuilder.java index 725d498fb..da6412dac 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseBuilder.java @@ -2,7 +2,6 @@ import java.time.LocalDateTime; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -94,5 +93,4 @@ public void tilbakestillAnvisninger() { public YtelseGrunnlagBuilder getGrunnlagBuilder() { return YtelseGrunnlagBuilder.ny(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseFilter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseFilter.java index 182511f24..da3389d15 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseFilter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseFilter.java @@ -10,12 +10,11 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; - import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; /** - * Filter for å hente ytelser fra grunnlag. Tilbyr håndtering av skjæringstidspunkt og filtereing på ytelser slik - * at en ikke trenger å implementere selv navigering av modellen. + * Filter for å hente ytelser fra grunnlag. Tilbyr håndtering av skjæringstidspunkt og filtereing på ytelser slik at en + * ikke trenger å implementere selv navigering av modellen. */ public class YtelseFilter { public static final YtelseFilter EMPTY = new YtelseFilter(Collections.emptyList()); @@ -34,7 +33,8 @@ public YtelseFilter(Collection inntekter) { this(inntekter, null, null); } - public YtelseFilter(Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { + public YtelseFilter( + Collection inntekter, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { this.ytelser = inntekter == null ? Collections.emptyList() : inntekter; this.skjæringstidspunkt = skjæringstidspunkt; this.venstreSideASkjæringstidspunkt = venstreSideASkjæringstidspunkt; @@ -64,27 +64,27 @@ public List getAlleYtelser() { return List.copyOf(ytelser); } - /** - * Get ytelser - filtrert for skjæringstidspunkt hvis satt på filter. - */ + /** Get ytelser - filtrert for skjæringstidspunkt hvis satt på filter. */ public Collection getFiltrertYtelser() { return getFiltrertYtelser(getAlleYtelser()); } @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } - /** - * Get ytelser. Filtrer for skjæringstidspunkt, etc hvis definert - */ + /** Get ytelser. Filtrer for skjæringstidspunkt, etc hvis definert */ private Collection getFiltrertYtelser(Collection ytelser) { Collection resultat = ytelser.stream() - .filter(yt -> (this.ytelseFilter == null || this.ytelseFilter.test(yt)) && skalMedEtterSkjæringstidspunktVurdering(yt)) - .collect(Collectors.toList()); + .filter(yt -> (this.ytelseFilter == null || this.ytelseFilter.test(yt)) + && skalMedEtterSkjæringstidspunktVurdering(yt)) + .collect(Collectors.toList()); return Collections.unmodifiableCollection(resultat); } @@ -95,22 +95,23 @@ private Collection getFiltrertYtelser(Collection ytelser) { return periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)); } else { return periode.getFomDato().isAfter(skjæringstidspunkt) - || periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)) && periode.getTomDato().isAfter(skjæringstidspunkt); + || periode.getFomDato().isBefore(skjæringstidspunkt.plusDays(1)) + && periode.getTomDato().isAfter(skjæringstidspunkt); } } return true; } - /** - * Appliserer angitt funksjon til hver ytelse som matcher dette filteret. - */ + /** Appliserer angitt funksjon til hver ytelse som matcher dette filteret. */ public void forFilter(Consumer consumer) { getAlleYtelser().forEach(consumer); } public YtelseFilter filter(Predicate filterFunc) { - var copy = copyWith(getFiltrertYtelser().stream().filter(filterFunc).collect(Collectors.toList()), skjæringstidspunkt, - venstreSideASkjæringstidspunkt); + var copy = copyWith( + getFiltrertYtelser().stream().filter(filterFunc).collect(Collectors.toList()), + skjæringstidspunkt, + venstreSideASkjæringstidspunkt); if (copy.ytelseFilter == null) { copy.ytelseFilter = filterFunc; } else { @@ -119,7 +120,8 @@ public YtelseFilter filter(Predicate filterFunc) { return copy; } - private YtelseFilter copyWith(Collection ytelser, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { + private YtelseFilter copyWith( + Collection ytelser, LocalDate skjæringstidspunkt, Boolean venstreSideASkjæringstidspunkt) { var copy = new YtelseFilter(ytelser, skjæringstidspunkt, venstreSideASkjæringstidspunkt); copy.ytelseFilter = this.ytelseFilter; return copy; @@ -134,5 +136,4 @@ public Collection mapYtelse(Function mapper) { forFilter(ytelse -> mapper.apply(ytelse)); return Collections.unmodifiableList(result); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlag.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlag.java index b2811db3e..089107bc6 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlag.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlag.java @@ -1,13 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -22,7 +14,13 @@ import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; @@ -88,11 +86,13 @@ public YtelseGrunnlag(YtelseGrunnlag ytelseGrunnlag) { this.graderingProsent = ytelseGrunnlag.getGraderingProsent().orElse(null); this.inntektProsent = ytelseGrunnlag.getInntektsgrunnlagProsent().orElse(null); this.opprinneligIdentdato = ytelseGrunnlag.getOpprinneligIdentdato().orElse(null); - this.ytelseStørrelse = ytelseGrunnlag.getYtelseStørrelse().stream().map(ys -> { - YtelseStørrelse ytelseStørrelseEntitet = new YtelseStørrelse(ys); - ytelseStørrelseEntitet.setYtelseGrunnlag(this); - return ytelseStørrelseEntitet; - }).collect(Collectors.toList()); + this.ytelseStørrelse = ytelseGrunnlag.getYtelseStørrelse().stream() + .map(ys -> { + YtelseStørrelse ytelseStørrelseEntitet = new YtelseStørrelse(ys); + ytelseStørrelseEntitet.setYtelseGrunnlag(this); + return ytelseStørrelseEntitet; + }) + .collect(Collectors.toList()); this.vedtaksDagsats = ytelseGrunnlag.getVedtaksDagsats().orElse(null); } @@ -143,14 +143,12 @@ void setOpprinneligIdentdato(LocalDate dato) { void leggTilYtelseStørrelse(YtelseStørrelse ytelseStørrelse) { ytelseStørrelse.setYtelseGrunnlag(this); this.ytelseStørrelse.add(ytelseStørrelse); - } void tilbakestillStørrelse() { ytelseStørrelse.clear(); } - void setYtelse(Ytelse ytelse) { this.ytelse = ytelse; } @@ -172,20 +170,31 @@ public boolean equals(Object o) { return false; } var that = (YtelseGrunnlag) o; - return Objects.equals(arbeidskategori, that.arbeidskategori) && Objects.equals(dekningsgradProsent, that.dekningsgradProsent) - && Objects.equals(graderingProsent, that.graderingProsent) && Objects.equals(inntektProsent, that.inntektProsent) && Objects.equals( - opprinneligIdentdato, that.opprinneligIdentdato) && Objects.equals(vedtaksDagsats, that.vedtaksDagsats); + return Objects.equals(arbeidskategori, that.arbeidskategori) + && Objects.equals(dekningsgradProsent, that.dekningsgradProsent) + && Objects.equals(graderingProsent, that.graderingProsent) + && Objects.equals(inntektProsent, that.inntektProsent) + && Objects.equals(opprinneligIdentdato, that.opprinneligIdentdato) + && Objects.equals(vedtaksDagsats, that.vedtaksDagsats); } @Override public int hashCode() { - return Objects.hash(arbeidskategori, dekningsgradProsent, graderingProsent, inntektProsent, opprinneligIdentdato, vedtaksDagsats); + return Objects.hash( + arbeidskategori, + dekningsgradProsent, + graderingProsent, + inntektProsent, + opprinneligIdentdato, + vedtaksDagsats); } @Override public String toString() { - return "YtelseGrunnlagEntitet{" + "arbeidskategori=" + arbeidskategori + ", dekngradProsent=" + dekningsgradProsent + ", graderingProsent=" - + graderingProsent + ", inntektProsent=" + inntektProsent + ", opprinneligIdentdato=" + opprinneligIdentdato + ", vedtaksDagsats=" - + vedtaksDagsats + '}'; + return "YtelseGrunnlagEntitet{" + "arbeidskategori=" + arbeidskategori + ", dekngradProsent=" + + dekningsgradProsent + ", graderingProsent=" + + graderingProsent + ", inntektProsent=" + inntektProsent + ", opprinneligIdentdato=" + + opprinneligIdentdato + ", vedtaksDagsats=" + + vedtaksDagsats + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlagBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlagBuilder.java index f687f9c01..9bff69fd9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlagBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseGrunnlagBuilder.java @@ -2,7 +2,6 @@ import java.math.BigDecimal; import java.time.LocalDate; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelse.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelse.java" index 81e6b4711..cd512b48f 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelse.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelse.java" @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay; -import java.util.Objects; -import java.util.Optional; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,7 +13,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.util.Objects; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -121,7 +119,9 @@ public boolean equals(Object o) { return false; } var that = (YtelseStørrelse) o; - return Objects.equals(orgNummer, that.orgNummer) && Objects.equals(beløp, that.beløp) && Objects.equals(hyppighet, that.hyppighet); + return Objects.equals(orgNummer, that.orgNummer) + && Objects.equals(beløp, that.beløp) + && Objects.equals(hyppighet, that.hyppighet); } @Override @@ -132,7 +132,8 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "virksomhet=" + orgNummer + ", beløp=" + beløp + ", hyppighet=" + hyppighet + '>'; + return getClass().getSimpleName() + "<" + "virksomhet=" + orgNummer + ", beløp=" + beløp + ", hyppighet=" + + hyppighet + '>'; } boolean hasValues() { diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelseBuilder.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelseBuilder.java" index 8618ff9f8..c00ad7f71 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelseBuilder.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseSt\303\270rrelseBuilder.java" @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.domene.iay; import java.math.BigDecimal; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.OrgNummer; @@ -44,5 +43,4 @@ public class YtelseStørrelseBuilder { } throw new IllegalStateException(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjon.java index f9c20b9dc..02cc61d89 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjon.java @@ -1,15 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.UUID; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -20,10 +10,15 @@ import jakarta.persistence.PostLoad; import jakarta.persistence.Table; import jakarta.persistence.Version; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; import no.nav.foreldrepenger.abakus.domene.iay.GrunnlagReferanse; @@ -31,6 +26,8 @@ import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Gjelder ekstra informasjon om arbeidsforhold (overstyringer, angitte eksterne/interne referanser for arbeidsforhold). @@ -87,41 +84,45 @@ public Collection getOverstyringer() { } private Optional finnForEkstern(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef ref) { - var arbeidsforholdReferanser = this.referanser.stream().filter(this::erIkkeMerget).collect(Collectors.toList()); + var arbeidsforholdReferanser = + this.referanser.stream().filter(this::erIkkeMerget).collect(Collectors.toList()); return arbeidsforholdReferanser.stream() - .filter(it -> it.getArbeidsgiver().equals(arbeidsgiver) && it.getEksternReferanse().equals(ref)) - .findFirst() - .map(ArbeidsforholdReferanse::getInternReferanse); + .filter(it -> it.getArbeidsgiver().equals(arbeidsgiver) + && it.getEksternReferanse().equals(ref)) + .findFirst() + .map(ArbeidsforholdReferanse::getInternReferanse); } private boolean erIkkeMerget(ArbeidsforholdReferanse arbeidsforholdReferanseEntitet) { return overstyringer.stream() - .noneMatch(ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) && ov.getArbeidsgiver() - .equals(arbeidsforholdReferanseEntitet.getArbeidsgiver()) && ov.getArbeidsforholdRef() - .equals(arbeidsforholdReferanseEntitet.getInternReferanse())); + .noneMatch(ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) + && ov.getArbeidsgiver().equals(arbeidsforholdReferanseEntitet.getArbeidsgiver()) + && ov.getArbeidsforholdRef().equals(arbeidsforholdReferanseEntitet.getInternReferanse())); } - private ArbeidsforholdReferanse finnEksisterendeInternReferanseEllerOpprettNy(Arbeidsgiver arbeidsgiverEntitet, EksternArbeidsforholdRef ref) { - return finnEksisterendeReferanse(arbeidsgiverEntitet, ref).orElseGet( - () -> opprettNyReferanse(arbeidsgiverEntitet, InternArbeidsforholdRef.nyRef(), ref)); + private ArbeidsforholdReferanse finnEksisterendeInternReferanseEllerOpprettNy( + Arbeidsgiver arbeidsgiverEntitet, EksternArbeidsforholdRef ref) { + return finnEksisterendeReferanse(arbeidsgiverEntitet, ref) + .orElseGet(() -> opprettNyReferanse(arbeidsgiverEntitet, InternArbeidsforholdRef.nyRef(), ref)); } - private Optional finnEksisterendeReferanse(Arbeidsgiver arbeidsgiverEntitet, EksternArbeidsforholdRef ref) { + private Optional finnEksisterendeReferanse( + Arbeidsgiver arbeidsgiverEntitet, EksternArbeidsforholdRef ref) { return this.referanser.stream() - .filter(this::erIkkeMerget) - .filter(it -> it.getArbeidsgiver().equals(arbeidsgiverEntitet) && it.getEksternReferanse().equals(ref)) - .findAny(); + .filter(this::erIkkeMerget) + .filter(it -> it.getArbeidsgiver().equals(arbeidsgiverEntitet) + && it.getEksternReferanse().equals(ref)) + .findAny(); } - /** - * @deprecated Bruk {@link ArbeidsforholdInformasjonBuilder} i stedet. - */ + /** @deprecated Bruk {@link ArbeidsforholdInformasjonBuilder} i stedet. */ @Deprecated(forRemoval = true) - public ArbeidsforholdReferanse opprettNyReferanse(Arbeidsgiver arbeidsgiverEntitet, - InternArbeidsforholdRef internReferanse, - EksternArbeidsforholdRef eksternReferanse) { - final ArbeidsforholdReferanse arbeidsforholdReferanseEntitet = new ArbeidsforholdReferanse(arbeidsgiverEntitet, internReferanse, - eksternReferanse); + public ArbeidsforholdReferanse opprettNyReferanse( + Arbeidsgiver arbeidsgiverEntitet, + InternArbeidsforholdRef internReferanse, + EksternArbeidsforholdRef eksternReferanse) { + final ArbeidsforholdReferanse arbeidsforholdReferanseEntitet = + new ArbeidsforholdReferanse(arbeidsgiverEntitet, internReferanse, eksternReferanse); arbeidsforholdReferanseEntitet.setInformasjon(this); referanser.add(arbeidsforholdReferanseEntitet); return arbeidsforholdReferanseEntitet; @@ -155,7 +156,8 @@ public int hashCode() { @Override public String toString() { - return "ArbeidsforholdInformasjonEntitet{" + "referanser=" + referanser + ", overstyringer=" + overstyringer + '}'; + return "ArbeidsforholdInformasjonEntitet{" + "referanser=" + referanser + ", overstyringer=" + overstyringer + + '}'; } void fjernOverstyringerSomGjelder(Arbeidsgiver arbeidsgiver) { @@ -164,29 +166,36 @@ void fjernOverstyringerSomGjelder(Arbeidsgiver arbeidsgiver) { void fjernOverstyringVedrørende(Arbeidsgiver arbeidsgiverEntitet, InternArbeidsforholdRef arbeidsforholdRef) { overstyringer.removeIf( - ov -> !Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) && ov.getArbeidsgiver().getErVirksomhet() - && ov.getArbeidsgiver().equals(arbeidsgiverEntitet) && ov.getArbeidsforholdRef().gjelderFor(arbeidsforholdRef)); + ov -> !Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) + && ov.getArbeidsgiver().getErVirksomhet() + && ov.getArbeidsgiver().equals(arbeidsgiverEntitet) + && ov.getArbeidsforholdRef().gjelderFor(arbeidsforholdRef)); } /** - * @deprecated FIXME (FC): Trengs denne eller kan vi alltid stole på ref er den vi skal returnere? Skal egentlig returnere ref, - * men per nå har vi antagelig interne ider som har erstattet andre interne id'er. Må isåfall avsjekke migrering av disse. + * @deprecated FIXME (FC): Trengs denne eller kan vi alltid stole på ref er den vi skal returnere? Skal egentlig + * returnere ref, men per nå har vi antagelig interne ider som har erstattet andre interne id'er. Må isåfall + * avsjekke migrering av disse. */ @Deprecated(forRemoval = true) public InternArbeidsforholdRef finnEllerOpprett(Arbeidsgiver arbeidsgiver, final InternArbeidsforholdRef ref) { final Optional erstattning = overstyringer.stream() - .filter(ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) && ov.getArbeidsgiver().equals(arbeidsgiver) - && ov.getArbeidsforholdRef().gjelderFor(ref)) - .findAny(); - if (erstattning.isPresent() && !erstattning.get().getNyArbeidsforholdRef().equals(ref)) { + .filter(ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) + && ov.getArbeidsgiver().equals(arbeidsgiver) + && ov.getArbeidsforholdRef().gjelderFor(ref)) + .findAny(); + if (erstattning.isPresent() + && !erstattning.get().getNyArbeidsforholdRef().equals(ref)) { var r = finnEllerOpprett(arbeidsgiver, erstattning.get().getNyArbeidsforholdRef()); return InternArbeidsforholdRef.ref(r.getReferanse()); } else { final ArbeidsforholdReferanse referanse = this.referanser.stream() - .filter(this::erIkkeMerget) - .filter(it -> it.getArbeidsgiver().equals(arbeidsgiver) && it.getInternReferanse().equals(ref)) - .findFirst() - .orElseThrow(() -> new IllegalStateException("InternArbeidsforholdReferanse må eksistere fra før, fant ikke: " + ref)); + .filter(this::erIkkeMerget) + .filter(it -> it.getArbeidsgiver().equals(arbeidsgiver) + && it.getInternReferanse().equals(ref)) + .findFirst() + .orElseThrow(() -> new IllegalStateException( + "InternArbeidsforholdReferanse må eksistere fra før, fant ikke: " + ref)); var r = referanse.getInternReferanse(); return InternArbeidsforholdRef.ref(r.getReferanse()); @@ -194,11 +203,15 @@ public InternArbeidsforholdRef finnEllerOpprett(Arbeidsgiver arbeidsgiver, final } InternArbeidsforholdRef finnEllerOpprett(Arbeidsgiver arbeidsgiver, final EksternArbeidsforholdRef ref) { - final Optional erstattning = overstyringer.stream().filter(ov -> { - var historiskReferanse = finnForEksternBeholdHistoriskReferanse(arbeidsgiver, ref); - return historiskReferanse.isPresent() && ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) - && ov.getArbeidsgiver().equals(arbeidsgiver) && ov.getArbeidsforholdRef().gjelderFor(historiskReferanse.get()); - }).findAny(); + final Optional erstattning = overstyringer.stream() + .filter(ov -> { + var historiskReferanse = finnForEksternBeholdHistoriskReferanse(arbeidsgiver, ref); + return historiskReferanse.isPresent() + && ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) + && ov.getArbeidsgiver().equals(arbeidsgiver) + && ov.getArbeidsforholdRef().gjelderFor(historiskReferanse.get()); + }) + .findAny(); if (erstattning.isPresent()) { var r = finnEllerOpprett(arbeidsgiver, erstattning.get().getNyArbeidsforholdRef()); return InternArbeidsforholdRef.ref(r.getReferanse()); @@ -208,18 +221,20 @@ InternArbeidsforholdRef finnEllerOpprett(Arbeidsgiver arbeidsgiver, final Ekster } } - public Optional finnForEksternBeholdHistoriskReferanse(Arbeidsgiver arbeidsgiver, - EksternArbeidsforholdRef arbeidsforholdRef) { + public Optional finnForEksternBeholdHistoriskReferanse( + Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdRef) { // For å sike at det ikke mistes data ved sammenslåing av og innhenting av registerdata final Optional referanseEntitet = referanser.stream() - .filter(re -> overstyringer.stream() - .anyMatch( - ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) && ov.getArbeidsgiver().equals(arbeidsgiver) - && re.getEksternReferanse().equals(arbeidsforholdRef) && re.getInternReferanse().equals(ov.getArbeidsforholdRef()))) - .findAny(); + .filter(re -> overstyringer.stream() + .anyMatch(ov -> ov.getHandling().equals(ArbeidsforholdHandlingType.SLÅTT_SAMMEN_MED_ANNET) + && ov.getArbeidsgiver().equals(arbeidsgiver) + && re.getEksternReferanse().equals(arbeidsforholdRef) + && re.getInternReferanse().equals(ov.getArbeidsforholdRef()))) + .findAny(); if (referanseEntitet.isPresent()) { var internRef = referanseEntitet.get().getInternReferanse(); - return Optional.ofNullable(internRef == null ? null : InternArbeidsforholdRef.ref(internRef.getReferanse())); + return Optional.ofNullable( + internRef == null ? null : InternArbeidsforholdRef.ref(internRef.getReferanse())); } return finnForEkstern(arbeidsgiver, arbeidsforholdRef); } @@ -228,43 +243,50 @@ public EksternArbeidsforholdRef finnEkstern(Arbeidsgiver arbeidsgiver, InternArb return finnEkstern((UUID) null, arbeidsgiver, arbeidsforholdRef); } - public EksternArbeidsforholdRef finnEkstern(GrunnlagReferanse grRef, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { + public EksternArbeidsforholdRef finnEkstern( + GrunnlagReferanse grRef, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { return finnEkstern(grRef == null ? null : grRef.getReferanse(), arbeidsgiver, arbeidsforholdRef); } - public EksternArbeidsforholdRef finnEkstern(UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { + public EksternArbeidsforholdRef finnEkstern( + UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { if (internReferanse.getReferanse() == null) { return EksternArbeidsforholdRef.nullRef(); } return referanser.stream() - .filter(this::erIkkeMerget) - .filter(r -> Objects.equals(r.getInternReferanse(), internReferanse) && Objects.equals(r.getArbeidsgiver(), arbeidsgiver)) - .findFirst() - .map(ArbeidsforholdReferanse::getEksternReferanse) - .orElseThrow(() -> manglerReferanse(grunnlagReferanse, arbeidsgiver, internReferanse)); + .filter(this::erIkkeMerget) + .filter(r -> Objects.equals(r.getInternReferanse(), internReferanse) + && Objects.equals(r.getArbeidsgiver(), arbeidsgiver)) + .findFirst() + .map(ArbeidsforholdReferanse::getEksternReferanse) + .orElseThrow(() -> manglerReferanse(grunnlagReferanse, arbeidsgiver, internReferanse)); } - public EksternArbeidsforholdRef finnEksternRaw(Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { + public EksternArbeidsforholdRef finnEksternRaw( + Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { return finnEksternRaw(null, arbeidsgiver, arbeidsforholdRef); } - public EksternArbeidsforholdRef finnEksternRaw(UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { + public EksternArbeidsforholdRef finnEksternRaw( + UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { if (internReferanse.getReferanse() == null) { return EksternArbeidsforholdRef.nullRef(); } return referanser.stream() - .filter(r -> Objects.equals(r.getInternReferanse(), internReferanse) && Objects.equals(r.getArbeidsgiver(), arbeidsgiver)) - .findFirst() - .map(ArbeidsforholdReferanse::getEksternReferanse) - .orElseThrow(() -> manglerReferanse(grunnlagReferanse, arbeidsgiver, internReferanse)); + .filter(r -> Objects.equals(r.getInternReferanse(), internReferanse) + && Objects.equals(r.getArbeidsgiver(), arbeidsgiver)) + .findFirst() + .map(ArbeidsforholdReferanse::getEksternReferanse) + .orElseThrow(() -> manglerReferanse(grunnlagReferanse, arbeidsgiver, internReferanse)); } - private IllegalStateException manglerReferanse(UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { - return new IllegalStateException( - "Mangler eksternReferanse for internReferanse: " + internReferanse + ", arbeidsgiver: " + arbeidsgiver + ",\n blant referanser=" - + referanser + (grunnlagReferanse == null ? "" : ". Grunnlag[" + grunnlagReferanse + "]")); + private IllegalStateException manglerReferanse( + UUID grunnlagReferanse, Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internReferanse) { + return new IllegalStateException("Mangler eksternReferanse for internReferanse: " + internReferanse + + ", arbeidsgiver: " + arbeidsgiver + ",\n blant referanser=" + referanser + + (grunnlagReferanse == null ? "" : ". Grunnlag[" + grunnlagReferanse + "]")); } void leggTilNyReferanse(ArbeidsforholdReferanse arbeidsforholdReferanse) { @@ -277,22 +299,23 @@ void leggTilNyReferanse(ArbeidsforholdReferanse arbeidsforholdReferanse) { void validerDuplikatReferanser() { record Key(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef eksternArbeidsforhold) { static String internReferanse(ArbeidsforholdReferanse r2) { - return r2.getInternReferanse() == null ? null : r2.getInternReferanse().getReferanse(); + return r2.getInternReferanse() == null + ? null + : r2.getInternReferanse().getReferanse(); } } var gruppertArbeidsforhold = referanser.stream() - .filter(this::erIkkeMerget) - .collect(Collectors.groupingBy(r -> new Key(r.getArbeidsgiver(), r.getEksternReferanse()), - Collectors.mapping(Key::internReferanse, Collectors.toCollection(TreeSet::new)))); + .filter(this::erIkkeMerget) + .collect(Collectors.groupingBy( + r -> new Key(r.getArbeidsgiver(), r.getEksternReferanse()), + Collectors.mapping(Key::internReferanse, Collectors.toCollection(TreeSet::new)))); for (var e : gruppertArbeidsforhold.entrySet()) { if (e.getValue().size() > 1) { String msg = String.format("Duplikat internref for %s=%s", e.getKey(), e.getValue()); LOG.info(msg); - //throw new IllegalStateException(msg); + // throw new IllegalStateException(msg); } } - } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjonBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjonBuilder.java index f3407dce8..2ae9046ff 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjonBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdInformasjonBuilder.java @@ -3,7 +3,6 @@ import java.util.List; import java.util.Objects; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; import no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding.Inntektsmelding; @@ -22,8 +21,11 @@ public static ArbeidsforholdInformasjonBuilder oppdatere(ArbeidsforholdInformasj return new ArbeidsforholdInformasjonBuilder(new ArbeidsforholdInformasjon(oppdatere)); } - public static ArbeidsforholdInformasjonBuilder builder(Optional arbeidsforholdInformasjon) { - var arbeidInfo = arbeidsforholdInformasjon.map(ai -> new ArbeidsforholdInformasjon(ai)).orElseGet(ArbeidsforholdInformasjon::new); + public static ArbeidsforholdInformasjonBuilder builder( + Optional arbeidsforholdInformasjon) { + var arbeidInfo = arbeidsforholdInformasjon + .map(ai -> new ArbeidsforholdInformasjon(ai)) + .orElseGet(ArbeidsforholdInformasjon::new); return new ArbeidsforholdInformasjonBuilder(arbeidInfo); } @@ -32,19 +34,21 @@ public ArbeidsforholdInformasjonBuilder tilbakestillOverstyringer() { return this; } - public InternArbeidsforholdRef finnEllerOpprett(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef eksternArbeidsforholdRef) { - InternArbeidsforholdRef internArbeidsforholdRef = kladd.finnEllerOpprett(arbeidsgiver, eksternArbeidsforholdRef); + public InternArbeidsforholdRef finnEllerOpprett( + Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef eksternArbeidsforholdRef) { + InternArbeidsforholdRef internArbeidsforholdRef = + kladd.finnEllerOpprett(arbeidsgiver, eksternArbeidsforholdRef); if (erUkjentReferanse(arbeidsgiver, internArbeidsforholdRef)) { - leggTilNyReferanse(new ArbeidsforholdReferanse(arbeidsgiver, internArbeidsforholdRef, eksternArbeidsforholdRef)); + leggTilNyReferanse( + new ArbeidsforholdReferanse(arbeidsgiver, internArbeidsforholdRef, eksternArbeidsforholdRef)); } return internArbeidsforholdRef; } public boolean erUkjentReferanse(Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef internArbeidsforholdRef) { - return kladd.getArbeidsforholdReferanser() - .stream() - .noneMatch( - referanse -> referanse.getArbeidsgiver().equals(arbeidsgiver) && referanse.getInternReferanse().equals(internArbeidsforholdRef)); + return kladd.getArbeidsforholdReferanser().stream() + .noneMatch(referanse -> referanse.getArbeidsgiver().equals(arbeidsgiver) + && referanse.getInternReferanse().equals(internArbeidsforholdRef)); } public ArbeidsforholdInformasjonBuilder leggTil(ArbeidsforholdOverstyringBuilder overstyringBuilder) { @@ -64,7 +68,8 @@ public ArbeidsforholdInformasjon build() { return this; } - public ArbeidsforholdInformasjonBuilder fjernOverstyringVedrørende(Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { + public ArbeidsforholdInformasjonBuilder fjernOverstyringVedrørende( + Arbeidsgiver arbeidsgiver, InternArbeidsforholdRef arbeidsforholdRef) { kladd.fjernOverstyringVedrørende(arbeidsgiver, arbeidsforholdRef); return this; } @@ -77,24 +82,25 @@ public void leggTilNyReferanse(ArbeidsforholdReferanse arbeidsforholdReferanse) kladd.leggTilNyReferanse(arbeidsforholdReferanse); } - public boolean kommetInntektsmeldingPåArbeidsforholdHvorViTidligereBehandletUtenInntektsmelding(Inntektsmelding inntektsmelding) { - return kladd.getOverstyringer() - .stream() - .anyMatch(ov -> - (Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING) || Objects.equals(ov.getHandling(), - ArbeidsforholdHandlingType.IKKE_BRUK) || Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.BRUK_MED_OVERSTYRT_PERIODE)) - && ov.getArbeidsgiver().getErVirksomhet() && ov.getArbeidsgiver().equals(inntektsmelding.getArbeidsgiver()) - && ov.getArbeidsforholdRef().gjelderFor(inntektsmelding.getArbeidsforholdRef())); + public boolean kommetInntektsmeldingPåArbeidsforholdHvorViTidligereBehandletUtenInntektsmelding( + Inntektsmelding inntektsmelding) { + return kladd.getOverstyringer().stream() + .anyMatch(ov -> (Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING) + || Objects.equals(ov.getHandling(), ArbeidsforholdHandlingType.IKKE_BRUK) + || Objects.equals( + ov.getHandling(), ArbeidsforholdHandlingType.BRUK_MED_OVERSTYRT_PERIODE)) + && ov.getArbeidsgiver().getErVirksomhet() + && ov.getArbeidsgiver().equals(inntektsmelding.getArbeidsgiver()) + && ov.getArbeidsforholdRef().gjelderFor(inntektsmelding.getArbeidsforholdRef())); } public Optional utledeArbeidsgiverSomMåTilbakestilles(Inntektsmelding inntektsmelding) { if (inntektsmelding.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) { - return kladd.getOverstyringer() - .stream() - .filter(o -> o.getArbeidsgiver().equals(inntektsmelding.getArbeidsgiver()) && !o.getArbeidsforholdRef() - .gjelderForSpesifiktArbeidsforhold()) - .map(ArbeidsforholdOverstyring::getArbeidsgiver) - .findFirst(); + return kladd.getOverstyringer().stream() + .filter(o -> o.getArbeidsgiver().equals(inntektsmelding.getArbeidsgiver()) + && !o.getArbeidsforholdRef().gjelderForSpesifiktArbeidsforhold()) + .map(ArbeidsforholdOverstyring::getArbeidsgiver) + .findFirst(); } return Optional.empty(); } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdOverstyring.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdOverstyring.java index fcb2b6c64..ff275fa92 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdOverstyring.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/arbeidsforhold/ArbeidsforholdOverstyring.java @@ -1,13 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.CascadeType; @@ -24,7 +16,13 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; import no.nav.abakus.iaygrunnlag.kodeverk.BekreftetPermisjonStatus; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; @@ -38,9 +36,7 @@ import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; -/** - * Overstyring av arbeidsforhold angitt av saksbehandler. - */ +/** Overstyring av arbeidsforhold angitt av saksbehandler. */ @Entity(name = "ArbeidsforholdOverstyring") @Table(name = "IAY_ARBEIDSFORHOLD") public class ArbeidsforholdOverstyring extends BaseEntitet implements IndexKey { @@ -56,7 +52,10 @@ public class ArbeidsforholdOverstyring extends BaseEntitet implements IndexKey { private InternArbeidsforholdRef arbeidsforholdRef; @Embedded - @AttributeOverrides(@AttributeOverride(name = "referanse", column = @Column(name = "arbeidsforhold_intern_id_ny", updatable = false))) + @AttributeOverrides( + @AttributeOverride( + name = "referanse", + column = @Column(name = "arbeidsforhold_intern_id_ny", updatable = false))) private InternArbeidsforholdRef nyArbeidsforholdRef; @ChangeTracked @@ -68,9 +67,10 @@ public class ArbeidsforholdOverstyring extends BaseEntitet implements IndexKey { private String begrunnelse; /** - * Kjært navn for arbeidsgiver angitt av Saksbehandler (normalt kun ekstra arbeidsforhold lagt til). Ingen garanti for at dette matcher noe offisielt registrert navn. - *

- * Settes normalt kun for arbeidsforhold lagt til ekstra. Ellers hent fra + * Kjært navn for arbeidsgiver angitt av Saksbehandler (normalt kun ekstra arbeidsforhold lagt til). Ingen garanti + * for at dette matcher noe offisielt registrert navn. + * + *

Settes normalt kun for arbeidsforhold lagt til ekstra. Ellers hent fra * {@link no.nav.foreldrepenger.abakus.domene.iay.Yrkesaktivitet#getAktivitetsAvtalerForArbeid()}. */ @Column(name = "arbeidsgiver_navn") @@ -78,8 +78,8 @@ public class ArbeidsforholdOverstyring extends BaseEntitet implements IndexKey { /** * Stillingsprosent angitt av saksbehandler. - *

- * Settes normalt kun for arbeidsforhold lagt til ekstra. Ellers hent fra + * + *

Settes normalt kun for arbeidsforhold lagt til ekstra. Ellers hent fra * {@link no.nav.foreldrepenger.abakus.domene.iay.Yrkesaktivitet#getAktivitetsAvtalerForArbeid()}. */ @Embedded @@ -116,11 +116,10 @@ public class ArbeidsforholdOverstyring extends BaseEntitet implements IndexKey { this.nyArbeidsforholdRef = kopierFra.getNyArbeidsforholdRef(); this.arbeidsgiverNavn = kopierFra.getArbeidsgiverNavn(); this.begrunnelse = kopierFra.getBegrunnelse(); - this.arbeidsforholdOverstyrtePerioder = kopierFra.getArbeidsforholdOverstyrtePerioder() - .stream() - .map(ArbeidsforholdOverstyrtePerioder::new) - .peek(it -> it.setArbeidsforholdOverstyring(this)) - .collect(Collectors.toList()); + this.arbeidsforholdOverstyrtePerioder = kopierFra.getArbeidsforholdOverstyrtePerioder().stream() + .map(ArbeidsforholdOverstyrtePerioder::new) + .peek(it -> it.setArbeidsforholdOverstyring(this)) + .collect(Collectors.toList()); this.bekreftetPermisjon = kopierFra.bekreftetPermisjon; } @@ -155,8 +154,10 @@ public ArbeidsforholdHandlingType getHandling() { } void setHandling(ArbeidsforholdHandlingType handling) { - if(handling.isReadOnly()) { - throw new UnsupportedOperationException("Kan ikke opprette grunnlag da ArbeidsforholdHandlingType ikke lenger er supportert (annet enn lesing: " + handling ); + if (handling.isReadOnly()) { + throw new UnsupportedOperationException( + "Kan ikke opprette grunnlag da ArbeidsforholdHandlingType ikke lenger er supportert (annet enn lesing: " + + handling); } this.handling = handling; } @@ -216,13 +217,18 @@ void setBekreftetPermisjon(BekreftetPermisjon bekreftetPermisjon) { } public boolean erOverstyrt() { - return !Objects.equals(ArbeidsforholdHandlingType.BRUK, handling) || (Objects.equals(ArbeidsforholdHandlingType.BRUK, handling) - && !Objects.equals(bekreftetPermisjon.getStatus(), BekreftetPermisjonStatus.UDEFINERT)); + return !Objects.equals(ArbeidsforholdHandlingType.BRUK, handling) + || (Objects.equals(ArbeidsforholdHandlingType.BRUK, handling) + && !Objects.equals(bekreftetPermisjon.getStatus(), BekreftetPermisjonStatus.UDEFINERT)); } public boolean kreverIkkeInntektsmelding() { - return Set.of(ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER, ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING, - ArbeidsforholdHandlingType.BRUK_MED_OVERSTYRT_PERIODE, ArbeidsforholdHandlingType.INNTEKT_IKKE_MED_I_BG).contains(handling); + return Set.of( + ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER, + ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING, + ArbeidsforholdHandlingType.BRUK_MED_OVERSTYRT_PERIODE, + ArbeidsforholdHandlingType.INNTEKT_IKKE_MED_I_BG) + .contains(handling); } @Override @@ -234,7 +240,8 @@ public boolean equals(Object o) { return false; } var that = (ArbeidsforholdOverstyring) o; - return Objects.equals(arbeidsgiver, that.arbeidsgiver) && Objects.equals(arbeidsforholdRef, that.arbeidsforholdRef); + return Objects.equals(arbeidsgiver, that.arbeidsgiver) + && Objects.equals(arbeidsforholdRef, that.arbeidsforholdRef); } @Override @@ -244,7 +251,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + " stream = entityManager.createNativeQuery( - "select distinct journalpost_id, endret_tid from IAY_INNTEKTSMELDING where kanalreferanse is null order by endret_tid nulls first", - Tuple.class).getResultStream(); + Stream stream = entityManager + .createNativeQuery( + "select distinct journalpost_id, endret_tid from IAY_INNTEKTSMELDING where kanalreferanse is null order by endret_tid nulls first", + Tuple.class) + .getResultStream(); - var journalpostIder = stream.map(t -> t.get("journalpost_id", String.class)).collect(Collectors.toList()); + var journalpostIder = + stream.map(t -> t.get("journalpost_id", String.class)).collect(Collectors.toList()); for (var jourId : journalpostIder) { LOG.info("Mangler kanalreferanse for journalpost [{}] ", jourId); } LOG.info("Mangler kanalreferanse for antall journalposter: ({})", journalpostIder.size()); - } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Frav\303\246r.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Frav\303\246r.java" index 5e37fb3dd..2660396e9 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Frav\303\246r.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Frav\303\246r.java" @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; -import java.time.Duration; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Embedded; import jakarta.persistence.Entity; @@ -14,7 +10,9 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.Duration; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -37,9 +35,7 @@ public class Fravær extends BaseEntitet implements IndexKey { @ChangeTracked private IntervallEntitet periode; - /** - * tid oppgittFravær per dag. Hvis ikke oppgitt antas hele dagen å telle med. - */ + /** tid oppgittFravær per dag. Hvis ikke oppgitt antas hele dagen å telle med. */ @ChangeTracked @Column(name = "varighet_per_dag", nullable = true) private Duration varighetPerDag; @@ -103,6 +99,7 @@ public int hashCode() { @Override public String toString() { - return "NaturalYtelseEntitet{" + "id=" + id + ", periode=" + periode + ", varighetPerDag=" + varighetPerDag + '}'; + return "NaturalYtelseEntitet{" + "id=" + id + ", periode=" + periode + ", varighetPerDag=" + varighetPerDag + + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Gradering.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Gradering.java index 8e2bb5077..70d07b6ac 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Gradering.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Gradering.java @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,6 +12,9 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -40,7 +39,10 @@ public class Gradering extends BaseEntitet implements IndexKey { private IntervallEntitet periode; @Embedded - @AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "arbeidstid_prosent", updatable = false, nullable = false))) + @AttributeOverrides( + @AttributeOverride( + name = "verdi", + column = @Column(name = "arbeidstid_prosent", updatable = false, nullable = false))) @ChangeTracked private Stillingsprosent arbeidstidProsent; @@ -48,8 +50,7 @@ public class Gradering extends BaseEntitet implements IndexKey { @Column(name = "versjon", nullable = false) private long versjon; - Gradering() { - } + Gradering() {} private Gradering(IntervallEntitet periode, Stillingsprosent arbeidstidProsent) { this.arbeidstidProsent = arbeidstidProsent; @@ -57,7 +58,9 @@ private Gradering(IntervallEntitet periode, Stillingsprosent arbeidstidProsent) } public Gradering(LocalDate fom, LocalDate tom, BigDecimal arbeidstidProsent) { - this(tom == null ? IntervallEntitet.fraOgMed(fom) : IntervallEntitet.fraOgMedTilOgMed(fom, tom), Stillingsprosent.arbeid(arbeidstidProsent)); + this( + tom == null ? IntervallEntitet.fraOgMed(fom) : IntervallEntitet.fraOgMedTilOgMed(fom, tom), + Stillingsprosent.arbeid(arbeidstidProsent)); } Gradering(Gradering gradering) { @@ -80,16 +83,15 @@ public IntervallEntitet getPeriode() { /** * En arbeidstaker kan kombinere foreldrepenger med deltidsarbeid. - *

- * Når arbeidstakeren jobber deltid, utgjør foreldrepengene differansen mellom deltidsarbeidet og en 100 prosent stilling. - * Det er ingen nedre eller øvre grense for hvor mye eller lite arbeidstakeren kan arbeide. - *

- * Eksempel - * Arbeidstaker A har en 100 % stilling og arbeider fem dager i uken. Arbeidstakeren ønsker å arbeide to dager i uken i foreldrepengeperioden. - * Arbeidstids- prosenten blir da 40 %. - *

- * Arbeidstaker B har en 80 % stilling og arbeider fire dager i uken. Arbeidstakeren ønsker å arbeide to dager i uken i foreldrepengeperioden. - * Arbeidstidprosenten blir også her 40 %. + * + *

Når arbeidstakeren jobber deltid, utgjør foreldrepengene differansen mellom deltidsarbeidet og en 100 prosent + * stilling. Det er ingen nedre eller øvre grense for hvor mye eller lite arbeidstakeren kan arbeide. + * + *

Eksempel Arbeidstaker A har en 100 % stilling og arbeider fem dager i uken. Arbeidstakeren ønsker å arbeide to + * dager i uken i foreldrepengeperioden. Arbeidstids- prosenten blir da 40 %. + * + *

Arbeidstaker B har en 80 % stilling og arbeider fire dager i uken. Arbeidstakeren ønsker å arbeide to dager i + * uken i foreldrepengeperioden. Arbeidstidprosenten blir også her 40 %. * * @return prosentsats */ @@ -99,7 +101,8 @@ public Stillingsprosent getArbeidstidProsent() { @Override public String toString() { - return "GraderingEntitet{" + "id=" + id + ", periode=" + periode + ", arbeidstidProsent=" + arbeidstidProsent + '}'; + return "GraderingEntitet{" + "id=" + id + ", periode=" + periode + ", arbeidstidProsent=" + arbeidstidProsent + + '}'; } @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Inntektsmelding.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Inntektsmelding.java index 4dbd2b03b..58fa69095 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Inntektsmelding.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Inntektsmelding.java @@ -1,15 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -24,7 +14,15 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.InntektsmeldingInnsendingsårsakType; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; @@ -42,21 +40,22 @@ @Table(name = "IAY_INNTEKTSMELDING") public class Inntektsmelding extends BaseEntitet implements IndexKey { - public static final Comparator COMP_REKKEFØLGE = (Inntektsmelding a, Inntektsmelding b) -> { - if (a == b || (a == null && b == null)) { - return 0; - } else if (a == null) { - return -1; - } else if (b == null) { - return 1; - } - if (a.getKanalreferanse() != null && b.getKanalreferanse() != null) { - return a.getKanalreferanse().compareTo(b.getKanalreferanse()); - } else { - // crazy fallback for manglende kanalreferanser - return a.getInnsendingstidspunkt().compareTo(b.getInnsendingstidspunkt()); - } - }; + public static final Comparator COMP_REKKEFØLGE = + (Inntektsmelding a, Inntektsmelding b) -> { + if (a == b || (a == null && b == null)) { + return 0; + } else if (a == null) { + return -1; + } else if (b == null) { + return 1; + } + if (a.getKanalreferanse() != null && b.getKanalreferanse() != null) { + return a.getKanalreferanse().compareTo(b.getKanalreferanse()); + } else { + // crazy fallback for manglende kanalreferanser + return a.getInnsendingstidspunkt().compareTo(b.getInnsendingstidspunkt()); + } + }; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_INNTEKTSMELDING") @@ -107,7 +106,8 @@ public class Inntektsmelding extends BaseEntitet implements IndexKey { private Beløp inntektBeløp; @Embedded - @AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "refusjon_beloep", updatable = false))) + @AttributeOverrides( + @AttributeOverride(name = "verdi", column = @Column(name = "refusjon_beloep", updatable = false))) @ChangeTracked private Beløp refusjonBeløpPerMnd; @@ -140,12 +140,9 @@ public class Inntektsmelding extends BaseEntitet implements IndexKey { @Column(name = "versjon", nullable = false) private long versjon; - Inntektsmelding() { - } + Inntektsmelding() {} - /** - * copy ctor. - */ + /** copy ctor. */ public Inntektsmelding(Inntektsmelding inntektsmelding) { this.arbeidsgiver = inntektsmelding.getArbeidsgiver(); this.arbeidsforholdRef = inntektsmelding.getArbeidsforholdRef(); @@ -161,31 +158,41 @@ public Inntektsmelding(Inntektsmelding inntektsmelding) { this.kildesystem = inntektsmelding.getKildesystem(); this.mottattDato = inntektsmelding.getMottattDato(); - this.graderinger = inntektsmelding.getGraderinger().stream().map(g -> { - var data = new Gradering(g); - data.setInntektsmelding(this); - return data; - }).collect(Collectors.toList()); - this.naturalYtelser = inntektsmelding.getNaturalYtelser().stream().map(n -> { - var data = new NaturalYtelse(n); - data.setInntektsmelding(this); - return data; - }).collect(Collectors.toList()); - this.utsettelsePerioder = inntektsmelding.getUtsettelsePerioder().stream().map(u -> { - var data = new UtsettelsePeriode(u); - data.setInntektsmelding(this); - return data; - }).collect(Collectors.toList()); - this.endringerRefusjon = inntektsmelding.getEndringerRefusjon().stream().map(r -> { - var data = new Refusjon(r); - data.setInntektsmelding(this); - return data; - }).collect(Collectors.toList()); - this.oppgittFravær = inntektsmelding.getOppgittFravær().stream().map(f -> { - var data = new Fravær(f); - data.setInntektsmelding(this); - return data; - }).collect(Collectors.toList()); + this.graderinger = inntektsmelding.getGraderinger().stream() + .map(g -> { + var data = new Gradering(g); + data.setInntektsmelding(this); + return data; + }) + .collect(Collectors.toList()); + this.naturalYtelser = inntektsmelding.getNaturalYtelser().stream() + .map(n -> { + var data = new NaturalYtelse(n); + data.setInntektsmelding(this); + return data; + }) + .collect(Collectors.toList()); + this.utsettelsePerioder = inntektsmelding.getUtsettelsePerioder().stream() + .map(u -> { + var data = new UtsettelsePeriode(u); + data.setInntektsmelding(this); + return data; + }) + .collect(Collectors.toList()); + this.endringerRefusjon = inntektsmelding.getEndringerRefusjon().stream() + .map(r -> { + var data = new Refusjon(r); + data.setInntektsmelding(this); + return data; + }) + .collect(Collectors.toList()); + this.oppgittFravær = inntektsmelding.getOppgittFravær().stream() + .map(f -> { + var data = new Fravær(f); + data.setInntektsmelding(this); + return data; + }) + .collect(Collectors.toList()); } @Override @@ -235,9 +242,7 @@ void setKanalreferanse(String kanalreferanse) { this.kanalreferanse = kanalreferanse; } - /** - * Dato inntektsmelding mottatt i NAV (tilsvarer dato lagret i Joark). - */ + /** Dato inntektsmelding mottatt i NAV (tilsvarer dato lagret i Joark). */ public LocalDate getMottattDato() { return mottattDato; } @@ -304,7 +309,8 @@ public boolean gjelderForEtSpesifiktArbeidsforhold() { } public boolean gjelderSammeArbeidsforhold(Inntektsmelding annen) { - return getArbeidsgiver().equals(annen.getArbeidsgiver()) && getArbeidsforholdRef().gjelderFor(annen.getArbeidsforholdRef()); + return getArbeidsgiver().equals(annen.getArbeidsgiver()) + && getArbeidsforholdRef().gjelderFor(annen.getArbeidsforholdRef()); } /** @@ -330,8 +336,8 @@ void setStartDatoPermisjon(LocalDate startDatoPermisjon) { } /** - * Referanse til {@link no.nav.foreldrepenger.behandlingslager.behandling.MottattDokument} som benyttes for å markere - * hvilke dokument som er gjeldende i behandlingen + * Referanse til {@link no.nav.foreldrepenger.behandlingslager.behandling.MottattDokument} som benyttes for å + * markere hvilke dokument som er gjeldende i behandlingen * * @return {@link Long} */ @@ -400,7 +406,6 @@ void setJournalpostId(JournalpostId journalpostId) { * * @return {@Link Refusjon} */ - public List getEndringerRefusjon() { return Collections.unmodifiableList(endringerRefusjon); } @@ -443,8 +448,9 @@ public boolean equals(Object o) { return false; } var entitet = (Inntektsmelding) o; - return Objects.equals(getArbeidsgiver(), entitet.getArbeidsgiver()) && Objects.equals(getJournalpostId(), entitet.getJournalpostId()) - && Objects.equals(getArbeidsforholdRef(), entitet.getArbeidsforholdRef()); + return Objects.equals(getArbeidsgiver(), entitet.getArbeidsgiver()) + && Objects.equals(getJournalpostId(), entitet.getJournalpostId()) + && Objects.equals(getArbeidsforholdRef(), entitet.getArbeidsforholdRef()); } @Override @@ -454,11 +460,14 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "id=" + id + ", virksomhet=" + arbeidsgiver + ", arbeidsforholdId='" + arbeidsforholdRef + '\'' - + ", startDatoPermisjon=" + startDatoPermisjon + ", nærRelasjon=" + nærRelasjon + ", journalpostId=" + journalpostId + ", inntektBeløp=" - + inntektBeløp + ", refusjonBeløpPerMnd=" + refusjonBeløpPerMnd + ", refusjonOpphører=" + refusjonOpphører + ", innsendingsårsak= " - + innsendingsårsak + ", innsendingstidspunkt= " + innsendingstidspunkt + ", kanalreferanse=" + kanalreferanse + ", kildesystem=" - + kildesystem + ", mottattDato=" + mottattDato + '>'; + return getClass().getSimpleName() + "<" + "id=" + id + ", virksomhet=" + arbeidsgiver + ", arbeidsforholdId='" + + arbeidsforholdRef + '\'' + + ", startDatoPermisjon=" + startDatoPermisjon + ", nærRelasjon=" + nærRelasjon + ", journalpostId=" + + journalpostId + ", inntektBeløp=" + + inntektBeløp + ", refusjonBeløpPerMnd=" + refusjonBeløpPerMnd + ", refusjonOpphører=" + + refusjonOpphører + ", innsendingsårsak= " + + innsendingsårsak + ", innsendingstidspunkt= " + innsendingstidspunkt + ", kanalreferanse=" + + kanalreferanse + ", kildesystem=" + + kildesystem + ", mottattDato=" + mottattDato + '>'; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/InntektsmeldingBuilder.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/InntektsmeldingBuilder.java index 8fe70ae6c..eef81acec 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/InntektsmeldingBuilder.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/InntektsmeldingBuilder.java @@ -6,8 +6,6 @@ import java.util.Comparator; import java.util.Objects; import java.util.Optional; - - import no.nav.abakus.iaygrunnlag.kodeverk.InntektsmeldingInnsendingsårsakType; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; import no.nav.foreldrepenger.abakus.typer.Beløp; @@ -18,19 +16,18 @@ public class InntektsmeldingBuilder { - public static final Comparator COMP_REKKEFØLGE = (InntektsmeldingBuilder a, InntektsmeldingBuilder b) -> { - if (a == b) { - return 0; - } - if (a.getKanalreferanse() != null && b.getKanalreferanse() != null) { - return a.getKanalreferanse().compareTo(b.getKanalreferanse()); - } else { - // crazy fallback når mangler kanalreferanse. - return a.getInnsendingstidspunkt().compareTo(b.getInnsendingstidspunkt()); - } - - }; - + public static final Comparator COMP_REKKEFØLGE = + (InntektsmeldingBuilder a, InntektsmeldingBuilder b) -> { + if (a == b) { + return 0; + } + if (a.getKanalreferanse() != null && b.getKanalreferanse() != null) { + return a.getKanalreferanse().compareTo(b.getKanalreferanse()); + } else { + // crazy fallback når mangler kanalreferanse. + return a.getInnsendingstidspunkt().compareTo(b.getInnsendingstidspunkt()); + } + }; private final Inntektsmelding kladd; private boolean erBygget; @@ -170,7 +167,8 @@ public InntektsmeldingBuilder leggTil(Refusjon refusjon) { return this; } - public InntektsmeldingBuilder medInntektsmeldingaarsak(InntektsmeldingInnsendingsårsakType inntektsmeldingInnsendingsårsakType) { + public InntektsmeldingBuilder medInntektsmeldingaarsak( + InntektsmeldingInnsendingsårsakType inntektsmeldingInnsendingsårsakType) { precondition(); kladd.setInntektsmeldingInnsendingsårsak(inntektsmeldingInnsendingsårsakType); return this; @@ -197,20 +195,21 @@ public Inntektsmelding build() { private void sjekkArbeidsforholdKonsistens(InternArbeidsforholdRef internRef) { // magic - hvis har ekstern referanse må også intern referanse være spesifikk - if ((eksternArbeidsforholdId != null && eksternArbeidsforholdId.gjelderForSpesifiktArbeidsforhold()) && internRef.getReferanse() == null) { - throw new IllegalArgumentException( - "Begge referanser må gjelde spesifikke arbeidsforhold. " + " Ekstern: " + eksternArbeidsforholdId + ", Intern: " + internRef); + if ((eksternArbeidsforholdId != null && eksternArbeidsforholdId.gjelderForSpesifiktArbeidsforhold()) + && internRef.getReferanse() == null) { + throw new IllegalArgumentException("Begge referanser må gjelde spesifikke arbeidsforhold. " + " Ekstern: " + + eksternArbeidsforholdId + ", Intern: " + internRef); } } private void precondition() { if (erBygget) { - throw new IllegalStateException("Inntektsmelding objekt er allerede bygget, kan ikke modifisere nå. Returnerer kun : " + kladd); + throw new IllegalStateException( + "Inntektsmelding objekt er allerede bygget, kan ikke modifisere nå. Returnerer kun : " + kladd); } } public InntektsmeldingBuilder medJournalpostId(String journalpostId) { return medJournalpostId(journalpostId == null ? null : new JournalpostId(journalpostId)); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/NaturalYtelse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/NaturalYtelse.java index a48d5d476..5de5c81bf 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/NaturalYtelse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/NaturalYtelse.java @@ -1,5 +1,9 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; +import jakarta.persistence.*; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.NaturalytelseType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -9,12 +13,6 @@ import no.nav.foreldrepenger.abakus.iay.jpa.NaturalytelseTypeKodeverdiConverter; import no.nav.foreldrepenger.abakus.typer.Beløp; -import jakarta.persistence.*; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - @Entity(name = "NaturalYtelse") @Table(name = "IAY_NATURAL_YTELSE") public class NaturalYtelse extends BaseEntitet implements IndexKey { @@ -44,8 +42,7 @@ public class NaturalYtelse extends BaseEntitet implements IndexKey { @Column(name = "versjon", nullable = false) private long versjon; - NaturalYtelse() { - } + NaturalYtelse() {} public NaturalYtelse(LocalDate fom, LocalDate tom, BigDecimal beloepPerMnd, NaturalytelseType type) { this.beloepPerMnd = new Beløp(beloepPerMnd); @@ -104,6 +101,7 @@ public int hashCode() { @Override public String toString() { - return "NaturalYtelseEntitet{" + "id=" + id + ", periode=" + periode + ", beloepPerMnd=" + beloepPerMnd + ", type=" + type + '}'; + return "NaturalYtelseEntitet{" + "id=" + id + ", periode=" + periode + ", beloepPerMnd=" + beloepPerMnd + + ", type=" + type + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Refusjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Refusjon.java index f1ffc1834..d134103cc 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Refusjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Refusjon.java @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -15,7 +11,9 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -34,7 +32,8 @@ public class Refusjon extends BaseEntitet implements IndexKey { @JoinColumn(name = "inntektsmelding_id", nullable = false, updatable = false) private Inntektsmelding inntektsmelding; - @AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "refusjonsbeloep_mnd", nullable = false))) + @AttributeOverrides( + @AttributeOverride(name = "verdi", column = @Column(name = "refusjonsbeloep_mnd", nullable = false))) @ChangeTracked private Beløp refusjonsbeløpMnd; @@ -46,8 +45,7 @@ public class Refusjon extends BaseEntitet implements IndexKey { @Column(name = "versjon", nullable = false) private long versjon; - public Refusjon() { - } + public Refusjon() {} public Refusjon(BigDecimal refusjonsbeløpMnd, LocalDate fom) { this.refusjonsbeløpMnd = refusjonsbeløpMnd == null ? null : new Beløp(refusjonsbeløpMnd); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/UtsettelsePeriode.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/UtsettelsePeriode.java index 62882aec8..dfc8d7633 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/UtsettelsePeriode.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/UtsettelsePeriode.java @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -14,7 +11,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.UtsettelseÅrsakType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -58,8 +56,7 @@ private UtsettelsePeriode(LocalDate fom, LocalDate tom, UtsettelseÅrsakType år this.periode = IntervallEntitet.fraOgMedTilOgMed(fom, tom); } - UtsettelsePeriode() { - } + UtsettelsePeriode() {} UtsettelsePeriode(UtsettelsePeriode utsettelsePeriode) { this.periode = utsettelsePeriode.getPeriode(); diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittAnnenAktivitet.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittAnnenAktivitet.java" index 64278cb29..77d943ef5 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittAnnenAktivitet.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittAnnenAktivitet.java" @@ -1,7 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -12,7 +10,7 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -21,7 +19,6 @@ import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.iay.jpa.ArbeidTypeKodeverdiConverter; - @Table(name = "IAY_ANNEN_AKTIVITET") @Entity(name = "AnnenAktivitet") public class OppgittAnnenAktivitet extends BaseEntitet implements IndexKey { diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittArbeidsforhold.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittArbeidsforhold.java" index 6f2e80027..55464a451 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittArbeidsforhold.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittArbeidsforhold.java" @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -14,7 +10,9 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; @@ -28,12 +26,11 @@ /** * Entitetsklasse for oppgitte arbeidsforhold. - *

- * Implementert iht. builder pattern (ref. "Effective Java, 2. ed." J.Bloch). - * Non-public constructors og setters, dvs. immutable. - *

- * OBS: Legger man til nye felter så skal dette oppdateres mange steder: - * builder, equals, hashcode etc. + * + *

Implementert iht. builder pattern (ref. "Effective Java, 2. ed." J.Bloch). Non-public constructors og setters, + * dvs. immutable. + * + *

OBS: Legger man til nye felter så skal dette oppdateres mange steder: builder, equals, hashcode etc. */ @Table(name = "IAY_OPPGITT_ARBEIDSFORHOLD") @Entity(name = "OppgittArbeidsforhold") @@ -161,8 +158,10 @@ public boolean equals(Object o) { var that = (OppgittArbeidsforhold) o; - return Objects.equals(periode, that.periode) && Objects.equals(arbeidType, that.arbeidType) && Objects.equals(utenlandskVirksomhetNavn, - that.utenlandskVirksomhetNavn) && Objects.equals(landkode, that.landkode); + return Objects.equals(periode, that.periode) + && Objects.equals(arbeidType, that.arbeidType) + && Objects.equals(utenlandskVirksomhetNavn, that.utenlandskVirksomhetNavn) + && Objects.equals(landkode, that.landkode); } @Override @@ -172,7 +171,8 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "id=" + id + ", periode=" + periode + ", erUtenlandskInntekt=" + erUtenlandskInntekt - + ", arbeidType=" + arbeidType + ", landkode=" + landkode + ", utenlandskVirksomhetNavn=" + utenlandskVirksomhetNavn + '>'; + return getClass().getSimpleName() + "<" + "id=" + id + ", periode=" + periode + ", erUtenlandskInntekt=" + + erUtenlandskInntekt + ", arbeidType=" + arbeidType + ", landkode=" + landkode + + ", utenlandskVirksomhetNavn=" + utenlandskVirksomhetNavn + '>'; } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittEgenN\303\246ring.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittEgenN\303\246ring.java" index 135afc0e3..0ba0c5153 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittEgenN\303\246ring.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittEgenN\303\246ring.java" @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Embedded; @@ -14,7 +10,9 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; import no.nav.abakus.iaygrunnlag.kodeverk.VirksomhetType; @@ -27,7 +25,6 @@ import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.vedtak.felles.jpa.converters.BooleanToStringConverter; - @Table(name = "IAY_EGEN_NAERING") @Entity(name = "EgenNæring") public class OppgittEgenNæring extends BaseEntitet implements IndexKey { @@ -255,24 +252,43 @@ public boolean equals(Object o) { return false; } var that = (OppgittEgenNæring) o; - return Objects.equals(periode, that.periode) && Objects.equals(orgNummer, that.orgNummer) && Objects.equals(nyoppstartet, that.nyoppstartet) - && Objects.equals(virksomhetType, that.virksomhetType) && Objects.equals(regnskapsførerNavn, that.regnskapsførerNavn) && Objects.equals( - regnskapsførerTlf, that.regnskapsførerTlf) && Objects.equals(endringDato, that.endringDato) && Objects.equals(begrunnelse, - that.begrunnelse) && Objects.equals(bruttoInntekt, that.bruttoInntekt) && Objects.equals(landkode, that.landkode) && Objects.equals( - utenlandskVirksomhetNavn, that.utenlandskVirksomhetNavn); + return Objects.equals(periode, that.periode) + && Objects.equals(orgNummer, that.orgNummer) + && Objects.equals(nyoppstartet, that.nyoppstartet) + && Objects.equals(virksomhetType, that.virksomhetType) + && Objects.equals(regnskapsførerNavn, that.regnskapsførerNavn) + && Objects.equals(regnskapsførerTlf, that.regnskapsførerTlf) + && Objects.equals(endringDato, that.endringDato) + && Objects.equals(begrunnelse, that.begrunnelse) + && Objects.equals(bruttoInntekt, that.bruttoInntekt) + && Objects.equals(landkode, that.landkode) + && Objects.equals(utenlandskVirksomhetNavn, that.utenlandskVirksomhetNavn); } @Override public int hashCode() { - return Objects.hash(periode, orgNummer, virksomhetType, nyoppstartet, regnskapsførerNavn, regnskapsførerTlf, endringDato, begrunnelse, - bruttoInntekt, landkode, utenlandskVirksomhetNavn); + return Objects.hash( + periode, + orgNummer, + virksomhetType, + nyoppstartet, + regnskapsførerNavn, + regnskapsførerTlf, + endringDato, + begrunnelse, + bruttoInntekt, + landkode, + utenlandskVirksomhetNavn); } @Override public String toString() { - return "OppgittEgenNæring{" + "id=" + id + ", periode=" + periode + ", virksomhet=" + orgNummer + ", nyoppstartet=" + nyoppstartet - + ", virksomhetType=" + virksomhetType + ", regnskapsførerNavn='" + regnskapsførerNavn + '\'' + ", regnskapsførerTlf='" - + regnskapsførerTlf + '\'' + ", endringDato=" + endringDato + ", begrunnelse='" + begrunnelse + '\'' + ", bruttoInntekt=" + bruttoInntekt - + ", landkode=" + landkode + ", utenlandskVirksomhetNavn=" + utenlandskVirksomhetNavn + '}'; + return "OppgittEgenNæring{" + "id=" + id + ", periode=" + periode + ", virksomhet=" + orgNummer + + ", nyoppstartet=" + nyoppstartet + + ", virksomhetType=" + virksomhetType + ", regnskapsførerNavn='" + regnskapsførerNavn + '\'' + + ", regnskapsførerTlf='" + + regnskapsførerTlf + '\'' + ", endringDato=" + endringDato + ", begrunnelse='" + begrunnelse + '\'' + + ", bruttoInntekt=" + bruttoInntekt + + ", landkode=" + landkode + ", utenlandskVirksomhetNavn=" + utenlandskVirksomhetNavn + '}'; } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilans.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilans.java" index 543ff27c7..a63c5d3b2 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilans.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilans.java" @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Entity; @@ -15,12 +10,14 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; - +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.vedtak.felles.jpa.converters.BooleanToStringConverter; - @Table(name = "IAY_OPPGITT_FRILANS") @Entity(name = "Frilans") public class OppgittFrilans extends BaseEntitet { @@ -49,20 +46,20 @@ public class OppgittFrilans extends BaseEntitet { @ChangeTracked private List frilansoppdrag; - - public OppgittFrilans() { - } + public OppgittFrilans() {} /* copy ctor */ public OppgittFrilans(OppgittFrilans orginal) { harInntektFraFosterhjem = orginal.getHarInntektFraFosterhjem(); erNyoppstartet = orginal.getErNyoppstartet(); harNærRelasjon = orginal.getHarNærRelasjon(); - frilansoppdrag = orginal.getFrilansoppdrag().stream().map(orginalFrilansoppdrag -> { - OppgittFrilansoppdrag kopi = new OppgittFrilansoppdrag(orginalFrilansoppdrag); - kopi.setFrilans(this); - return kopi; - }).collect(Collectors.toList()); + frilansoppdrag = orginal.getFrilansoppdrag().stream() + .map(orginalFrilansoppdrag -> { + OppgittFrilansoppdrag kopi = new OppgittFrilansoppdrag(orginalFrilansoppdrag); + kopi.setFrilans(this); + return kopi; + }) + .collect(Collectors.toList()); } @Override @@ -74,9 +71,11 @@ public boolean equals(Object o) { return false; } var that = (OppgittFrilans) o; - return harInntektFraFosterhjem == that.harInntektFraFosterhjem && erNyoppstartet == that.erNyoppstartet - && harNærRelasjon == that.harNærRelasjon && Objects.equals(oppgittOpptjening, that.oppgittOpptjening) && Objects.equals(frilansoppdrag, - that.frilansoppdrag); + return harInntektFraFosterhjem == that.harInntektFraFosterhjem + && erNyoppstartet == that.erNyoppstartet + && harNærRelasjon == that.harNærRelasjon + && Objects.equals(oppgittOpptjening, that.oppgittOpptjening) + && Objects.equals(frilansoppdrag, that.frilansoppdrag); } @Override @@ -86,8 +85,9 @@ public int hashCode() { @Override public String toString() { - return "OppgittFrilans{" + "oppgittOpptjening=" + oppgittOpptjening + ", harInntektFraFosterhjem=" + harInntektFraFosterhjem - + ", erNyoppstartet=" + erNyoppstartet + ", harNærRelasjon=" + harNærRelasjon + ", frilansoppdrag=" + frilansoppdrag + '}'; + return "OppgittFrilans{" + "oppgittOpptjening=" + oppgittOpptjening + ", harInntektFraFosterhjem=" + + harInntektFraFosterhjem + ", erNyoppstartet=" + erNyoppstartet + ", harNærRelasjon=" + harNærRelasjon + + ", frilansoppdrag=" + frilansoppdrag + '}'; } public void setOppgittOpptjening(OppgittOpptjening oppgittOpptjening) { @@ -126,6 +126,7 @@ public List getFrilansoppdrag() { } public void setFrilansoppdrag(List frilansoppdrag) { - this.frilansoppdrag = frilansoppdrag.stream().peek(it -> it.setFrilans(this)).collect(Collectors.toList()); + this.frilansoppdrag = + frilansoppdrag.stream().peek(it -> it.setFrilans(this)).collect(Collectors.toList()); } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilansoppdrag.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilansoppdrag.java" index 1736daf17..47d99aa70 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilansoppdrag.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittFrilansoppdrag.java" @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.math.BigDecimal; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Embedded; import jakarta.persistence.Entity; @@ -12,14 +9,14 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - +import java.math.BigDecimal; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; - @Table(name = "IAY_OPPGITT_FRILANSOPPDRAG") @Entity(name = "Frilansoppdrag") public class OppgittFrilansoppdrag extends BaseEntitet implements IndexKey { @@ -42,8 +39,7 @@ public class OppgittFrilansoppdrag extends BaseEntitet implements IndexKey { @Column(name = "inntekt") private BigDecimal inntekt; - OppgittFrilansoppdrag() { - } + OppgittFrilansoppdrag() {} public OppgittFrilansoppdrag(String oppdragsgiver, IntervallEntitet periode, BigDecimal inntekt) { this.oppdragsgiver = oppdragsgiver; @@ -77,7 +73,9 @@ public boolean equals(Object o) { return false; } OppgittFrilansoppdrag that = (OppgittFrilansoppdrag) o; - return Objects.equals(frilans, that.frilans) && Objects.equals(oppdragsgiver, that.oppdragsgiver) && Objects.equals(periode, that.periode); + return Objects.equals(frilans, that.frilans) + && Objects.equals(oppdragsgiver, that.oppdragsgiver) + && Objects.equals(periode, that.periode); } @Override @@ -87,7 +85,8 @@ public int hashCode() { @Override public String toString() { - return "OppgittFrilansoppdrag{" + "frilans=" + frilans + ", oppdragsgiver='" + oppdragsgiver + '\'' + ", periode=" + periode + '}'; + return "OppgittFrilansoppdrag{" + "frilans=" + frilans + ", oppdragsgiver='" + oppdragsgiver + '\'' + + ", periode=" + periode + '}'; } public IntervallEntitet getPeriode() { diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjening.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjening.java" index 65508ae4c..d20b0f781 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjening.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjening.java" @@ -1,17 +1,5 @@ package no.nav.foreldrepenger.abakus.domene.iay.søknad; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; -import java.util.stream.Collectors; - -import org.hibernate.annotations.Immutable; -import org.hibernate.annotations.NaturalId; - import jakarta.persistence.Column; import jakarta.persistence.Embedded; import jakarta.persistence.Entity; @@ -21,10 +9,20 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.DiffIgnore; import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; import no.nav.foreldrepenger.abakus.typer.JournalpostId; +import org.hibernate.annotations.Immutable; +import org.hibernate.annotations.NaturalId; @Immutable @Entity(name = "OppgittOpptjening") @@ -81,26 +79,34 @@ public OppgittOpptjening(OppgittOpptjening orginal) { this.eksternReferanse = orginal.getEksternReferanse(); this.journalpostId = orginal.getJournalpostId(); this.innsendingstidspunkt = orginal.getInnsendingstidspunkt(); - this.oppgittArbeidsforhold = orginal.getOppgittArbeidsforhold().stream().map(oppgittArbeidsforhold -> { - OppgittArbeidsforhold kopi = new OppgittArbeidsforhold(oppgittArbeidsforhold); - kopi.setOppgittOpptjening(this); - return kopi; - }).collect(Collectors.toList()); - this.egenNæring = orginal.getEgenNæring().stream().map(egenNæring -> { - OppgittEgenNæring kopi = new OppgittEgenNæring(egenNæring); - kopi.setOppgittOpptjening(this); - return kopi; - }).collect(Collectors.toList()); - this.annenAktivitet = orginal.getAnnenAktivitet().stream().map(annenAktivitet -> { - OppgittAnnenAktivitet kopi = new OppgittAnnenAktivitet(annenAktivitet); - kopi.setOppgittOpptjening(this); - return kopi; - }).collect(Collectors.toList()); - this.frilans = orginal.getFrilans().map(frilans -> { - var kopi = new OppgittFrilans(frilans); - kopi.setOppgittOpptjening(this); - return kopi; - }).orElse(null); + this.oppgittArbeidsforhold = orginal.getOppgittArbeidsforhold().stream() + .map(oppgittArbeidsforhold -> { + OppgittArbeidsforhold kopi = new OppgittArbeidsforhold(oppgittArbeidsforhold); + kopi.setOppgittOpptjening(this); + return kopi; + }) + .collect(Collectors.toList()); + this.egenNæring = orginal.getEgenNæring().stream() + .map(egenNæring -> { + OppgittEgenNæring kopi = new OppgittEgenNæring(egenNæring); + kopi.setOppgittOpptjening(this); + return kopi; + }) + .collect(Collectors.toList()); + this.annenAktivitet = orginal.getAnnenAktivitet().stream() + .map(annenAktivitet -> { + OppgittAnnenAktivitet kopi = new OppgittAnnenAktivitet(annenAktivitet); + kopi.setOppgittOpptjening(this); + return kopi; + }) + .collect(Collectors.toList()); + this.frilans = orginal.getFrilans() + .map(frilans -> { + var kopi = new OppgittFrilans(frilans); + kopi.setOppgittOpptjening(this); + return kopi; + }) + .orElse(null); } public List getOppgittArbeidsforhold() { @@ -200,8 +206,10 @@ public boolean equals(Object o) { return false; } var that = (OppgittOpptjening) o; - return Objects.equals(oppgittArbeidsforhold, that.oppgittArbeidsforhold) && Objects.equals(egenNæring, that.egenNæring) && Objects.equals( - annenAktivitet, that.annenAktivitet) && Objects.equals(journalpostId, that.journalpostId); + return Objects.equals(oppgittArbeidsforhold, that.oppgittArbeidsforhold) + && Objects.equals(egenNæring, that.egenNæring) + && Objects.equals(annenAktivitet, that.annenAktivitet) + && Objects.equals(journalpostId, that.journalpostId); } @Override @@ -211,17 +219,17 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "id=" + id + ", oppgittArbeidsforhold=" + oppgittArbeidsforhold + ", egenNæring=" + egenNæring - + ", annenAktivitet=" + annenAktivitet + '>'; + return getClass().getSimpleName() + "<" + "id=" + id + ", oppgittArbeidsforhold=" + oppgittArbeidsforhold + + ", egenNæring=" + egenNæring + ", annenAktivitet=" + annenAktivitet + '>'; } - /** - * Nedstrippet versjon av toString, egnet for logging. - */ + /** Nedstrippet versjon av toString, egnet for logging. */ public String toStringSimple() { - return getClass().getSimpleName() + "<" + "id=" + id + ", eksternReferanse=" + eksternReferanse + ", oppgittArbeidsforhold=[" + ( - oppgittArbeidsforhold == null ? "0" : oppgittArbeidsforhold.size()) + "]" + ", egenNæring=[" + ( - egenNæring == null ? "0" : egenNæring.size()) + "]" + ", annenAktivitet=[" + (annenAktivitet == null ? "0" : annenAktivitet.size()) + "]" - + ", frilans=[" + (frilans == null ? "0" : frilans.getFrilansoppdrag().size()) + "]" + '>'; + return getClass().getSimpleName() + "<" + "id=" + id + ", eksternReferanse=" + eksternReferanse + + ", oppgittArbeidsforhold=[" + (oppgittArbeidsforhold == null ? "0" : oppgittArbeidsforhold.size()) + + "]" + ", egenNæring=[" + (egenNæring == null ? "0" : egenNæring.size()) + "]" + ", annenAktivitet=[" + + (annenAktivitet == null ? "0" : annenAktivitet.size()) + "]" + + ", frilans=[" + + (frilans == null ? "0" : frilans.getFrilansoppdrag().size()) + "]" + '>'; } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjeningBuilder.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjeningBuilder.java" index 4b08b8f84..cba48ec36 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjeningBuilder.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/s\303\270knad/OppgittOpptjeningBuilder.java" @@ -7,7 +7,6 @@ import java.time.ZoneId; import java.util.List; import java.util.UUID; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; import no.nav.abakus.iaygrunnlag.kodeverk.VirksomhetType; @@ -32,8 +31,11 @@ public static OppgittOpptjeningBuilder ny(UUID eksternReferanse, LocalDateTime o } public static OppgittOpptjeningBuilder ny(UUID eksternReferanse, OffsetDateTime opprettetTidspunktOriginalt) { - return new OppgittOpptjeningBuilder( - new OppgittOpptjening(eksternReferanse, opprettetTidspunktOriginalt.atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime())); + return new OppgittOpptjeningBuilder(new OppgittOpptjening( + eksternReferanse, + opprettetTidspunktOriginalt + .atZoneSameInstant(ZoneId.systemDefault()) + .toLocalDateTime())); } public OppgittOpptjeningBuilder medJournalpostId(JournalpostId journalpostId) { @@ -153,7 +155,6 @@ public static class EgenNæringBuilder { public EgenNæringBuilder medNyIArbeidslivet(boolean nyIArbeidslivet) { this.entitet.setNyIArbeidslivet(nyIArbeidslivet); return this; - } public EgenNæringBuilder medLandkode(Landkode landkode) { @@ -193,7 +194,8 @@ public OppgittArbeidsforholdBuilder medInnteket(BigDecimal inntekt) { return this; } - public OppgittArbeidsforholdBuilder medUtenlandskVirksomhet(Landkode landkode, String utenlandskVirksomhetNavn) { + public OppgittArbeidsforholdBuilder medUtenlandskVirksomhet( + Landkode landkode, String utenlandskVirksomhetNavn) { this.entitet.setLandkode(landkode); if (utenlandskVirksomhetNavn != null) { this.entitet.setUtenlandskVirksomhetNavn(utenlandskVirksomhetNavn); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/virksomhet/Virksomhet.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/virksomhet/Virksomhet.java index ca6c9f073..a4017ca1c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/virksomhet/Virksomhet.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/virksomhet/Virksomhet.java @@ -2,7 +2,6 @@ import java.time.LocalDate; import java.util.Objects; - import no.nav.abakus.iaygrunnlag.kodeverk.OrganisasjonType; public class Virksomhet { @@ -14,8 +13,7 @@ public class Virksomhet { private LocalDate oppstart; private OrganisasjonType organisasjonType = OrganisasjonType.UDEFINERT; - public Virksomhet() { - } + public Virksomhet() {} public String getOrgnr() { return orgnr; @@ -41,7 +39,6 @@ public OrganisasjonType getOrganisasjonstype() { return organisasjonType; } - @Override public boolean equals(Object obj) { if (obj == this) { @@ -64,11 +61,9 @@ public String toString() { } public static class Builder { - final private Virksomhet mal; + private final Virksomhet mal; - /** - * For oppretting av - */ + /** For oppretting av */ public Builder() { this.mal = new Virksomhet(); } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektArbeidYtelseTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektArbeidYtelseTjeneste.java index c998e3517..ae5532ad6 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektArbeidYtelseTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektArbeidYtelseTjeneste.java @@ -1,5 +1,7 @@ package no.nav.foreldrepenger.abakus.iay; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.time.LocalDateTime; import java.util.Collection; import java.util.Comparator; @@ -11,9 +13,6 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.request.Dataset; import no.nav.abakus.iaygrunnlag.request.InntektArbeidYtelseGrunnlagRequest.GrunnlagVersjon; @@ -86,47 +85,44 @@ public Optional hentGrunnlagFor(KoblingReferanse ko * Hent alle grunnlag for angitt saksnummer * * @param saksnummer - * @param boolean kunAktive - hvis true henter kun aktive grunnlag (ikke historiske versjoner) + * @param boolean kunAktive - hvis true henter kun aktive grunnlag (ikke historiske versjoner) * @return henter optional aggregat */ - public List hentAlleGrunnlagFor(AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType, boolean kunAktive) { + public List hentAlleGrunnlagFor( + AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType, boolean kunAktive) { return repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, ytelseType, kunAktive); } - public Set hentAlleInntektsmeldingerFor(AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType) { + public Set hentAlleInntektsmeldingerFor( + AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType) { return repository.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); } - public Map hentAlleInntektsmeldingerForEksternRef(AktørId aktørId, - Saksnummer saksnummer, - KoblingReferanse ref, - YtelseType ytelseType) { + public Map hentAlleInntektsmeldingerForEksternRef( + AktørId aktørId, Saksnummer saksnummer, KoblingReferanse ref, YtelseType ytelseType) { return repository.hentArbeidsforholdInfoInntektsmeldingerMapFor(aktørId, saksnummer, ref, ytelseType); } - - public Map hentArbeidsforholdinfoInntektsmeldingerMapFor(AktørId aktørId, - Saksnummer saksnummer, - YtelseType ytelseType) { + + public Map hentArbeidsforholdinfoInntektsmeldingerMapFor( + AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType) { return repository.hentArbeidsforholdInfoInntektsmeldingerMapFor(aktørId, saksnummer, ytelseType); } /** - * Hent grunnlag etterspurt (tar hensyn til GrunnlagVersjon) for angitt aktørId, saksnummer, ytelsetype. - * Skipper mellomliggende versjoner hvis ikke direkte spurt om. + * Hent grunnlag etterspurt (tar hensyn til GrunnlagVersjon) for angitt aktørId, saksnummer, ytelsetype. Skipper + * mellomliggende versjoner hvis ikke direkte spurt om. */ - public List hentGrunnlagEtterspurtFor(AktørId aktørId, - Saksnummer saksnummer, - YtelseType ytelseType, - GrunnlagVersjon grunnlagVersjon) { + public List hentGrunnlagEtterspurtFor( + AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType, GrunnlagVersjon grunnlagVersjon) { boolean kunAktive = GrunnlagVersjon.SISTE.equals(grunnlagVersjon); // shortcutter litt opphenting var grunnlag = hentAlleGrunnlagFor(aktørId, saksnummer, ytelseType, kunAktive); - var grunnlagByKobling = grunnlag.stream().collect(Collectors.groupingBy(InntektArbeidYtelseGrunnlag::getKoblingId)); + var grunnlagByKobling = + grunnlag.stream().collect(Collectors.groupingBy(InntektArbeidYtelseGrunnlag::getKoblingId)); - var grunnlagEtterspurt = grunnlagByKobling.entrySet() - .stream() - .flatMap(e -> filterGrunnlag(e.getKey(), e.getValue(), grunnlagVersjon).stream()); + var grunnlagEtterspurt = grunnlagByKobling.entrySet().stream() + .flatMap(e -> filterGrunnlag(e.getKey(), e.getValue(), grunnlagVersjon).stream()); return grunnlagEtterspurt.collect(Collectors.toList()); } @@ -143,12 +139,13 @@ public Optional hentGrunnlagFor(GrunnlagReferanse g * Opprett builder for saksbehandlers overstyringer. * * @param koblingReferanse - * @return Saksbehandlers overstyringer av IAY (primært {@link no.nav.foreldrepenger.abakus.domene.iay.AktørArbeid}). + * @return Saksbehandlers overstyringer av IAY (primært + * {@link no.nav.foreldrepenger.abakus.domene.iay.AktørArbeid}). */ - public InntektArbeidYtelseAggregatBuilder opprettBuilderForSaksbehandlet(KoblingReferanse koblingReferanse, - UUID angittReferanse, - LocalDateTime angittOpprettetTidspunkt) { - return repository.opprettBuilderFor(koblingReferanse, angittReferanse, angittOpprettetTidspunkt, VersjonType.SAKSBEHANDLET); + public InntektArbeidYtelseAggregatBuilder opprettBuilderForSaksbehandlet( + KoblingReferanse koblingReferanse, UUID angittReferanse, LocalDateTime angittOpprettetTidspunkt) { + return repository.opprettBuilderFor( + koblingReferanse, angittReferanse, angittOpprettetTidspunkt, VersjonType.SAKSBEHANDLET); } public void lagre(KoblingReferanse koblingReferanse, InntektArbeidYtelseGrunnlagBuilder builder) { @@ -156,7 +153,9 @@ public void lagre(KoblingReferanse koblingReferanse, InntektArbeidYtelseGrunnlag } public ArbeidsforholdInformasjon hentArbeidsforholdInformasjonForKobling(KoblingReferanse koblingReferanse) { - return repository.hentArbeidsforholdInformasjonForBehandling(koblingReferanse).orElseGet(ArbeidsforholdInformasjon::new); + return repository + .hentArbeidsforholdInformasjonForBehandling(koblingReferanse) + .orElseGet(ArbeidsforholdInformasjon::new); } public Optional hentOppgittOpptjeningFor(UUID oppgittOpptjeningEksternReferanse) { @@ -164,7 +163,8 @@ public Optional hentOppgittOpptjeningFor(UUID oppgittOpptjeni return oppgittOpptjening; } - public Optional hentIAYAggregatFor(KoblingReferanse koblingReferanse, UUID eksternReferanse) { + public Optional hentIAYAggregatFor( + KoblingReferanse koblingReferanse, UUID eksternReferanse) { return repository.hentIAYAggregatFor(koblingReferanse, eksternReferanse); } @@ -179,89 +179,102 @@ public boolean erGrunnlagAktivt(UUID eksternReferanse) { * @param dataset * @param beholdOpprinngeligeIM */ - public void kopierGrunnlagFraEksisterendeBehandling(YtelseType ytelseType, - AktørId aktørId, - Saksnummer saksnummer, - KoblingReferanse fraKobling, - KoblingReferanse tilKobling, - Set dataset, - boolean beholdOpprinngeligeIM) { + public void kopierGrunnlagFraEksisterendeBehandling( + YtelseType ytelseType, + AktørId aktørId, + Saksnummer saksnummer, + KoblingReferanse fraKobling, + KoblingReferanse tilKobling, + Set dataset, + boolean beholdOpprinngeligeIM) { var origAggregat = hentGrunnlagFor(fraKobling); if (origAggregat.isPresent()) { if (beholdOpprinngeligeIM) { - //gjelder spesialbehandlinger(berørt, feriepenger og utsatt start) + // gjelder spesialbehandlinger(berørt, feriepenger og utsatt start) kopierGrunnlagBeholdInntektsmeldinger(tilKobling, origAggregat.get(), dataset); } else { - kopierGrunnlagPlussNyereInntektsmeldingerForFagsak(tilKobling, ytelseType, aktørId, saksnummer, origAggregat.get(), dataset); + kopierGrunnlagPlussNyereInntektsmeldingerForFagsak( + tilKobling, ytelseType, aktørId, saksnummer, origAggregat.get(), dataset); } } } /** - * Dersom det finnes en eller flere nyere inntektsmeldinger på en annen behandling på samme fagsak, så vil - * disse kopieres til den angitte behandlingen. Dette trengs i tilfeller der en behandling har fått en ny - * inntektsmelding, blitt henlagt, og en revurdering er opprettet basert på en tidligere behandling med vedtak - * som ikke inkluderer en eller flere inntektsmeldinger som er mottatt etter vedtaket, men før revurderingen. + * Dersom det finnes en eller flere nyere inntektsmeldinger på en annen behandling på samme fagsak, så vil disse + * kopieres til den angitte behandlingen. Dette trengs i tilfeller der en behandling har fått en ny inntektsmelding, + * blitt henlagt, og en revurdering er opprettet basert på en tidligere behandling med vedtak som ikke inkluderer en + * eller flere inntektsmeldinger som er mottatt etter vedtaket, men før revurderingen. * * @param tilKobling * @param dataset * @return */ - private InntektArbeidYtelseGrunnlagBuilder kopierGrunnlagPlussNyereInntektsmeldingerForFagsak(KoblingReferanse tilKobling, - YtelseType ytelseType, - AktørId aktørId, - Saksnummer saksnummer, - InntektArbeidYtelseGrunnlag original, - Set dataset) { + private InntektArbeidYtelseGrunnlagBuilder kopierGrunnlagPlussNyereInntektsmeldingerForFagsak( + KoblingReferanse tilKobling, + YtelseType ytelseType, + AktørId aktørId, + Saksnummer saksnummer, + InntektArbeidYtelseGrunnlag original, + Set dataset) { var builder = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(original, dataset); if (dataset.contains(Dataset.INNTEKTSMELDING)) { - var gjeldendeInntektsmeldinger = original.getInntektsmeldinger().map(InntektsmeldingAggregat::getInntektsmeldinger).orElse(List.of()); + var gjeldendeInntektsmeldinger = original.getInntektsmeldinger() + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .orElse(List.of()); var sisteEksisterendeInntektsmelding = finnSisteEksisterendeInntektsmelding(gjeldendeInntektsmeldinger); - var arbeidsforholdInformasjon = original.getArbeidsforholdInformasjon().orElseGet(ArbeidsforholdInformasjon::new); + var arbeidsforholdInformasjon = + original.getArbeidsforholdInformasjon().orElseGet(ArbeidsforholdInformasjon::new); var informasjonBuilder = ArbeidsforholdInformasjonBuilder.oppdatere(arbeidsforholdInformasjon); - var alleInntektsmeldingerForSaksummer = hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, ytelseType); + var alleInntektsmeldingerForSaksummer = + hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, ytelseType); var eksisterendeGrunnlagRef = original.getGrunnlagReferanse().getReferanse(); - var kopierInntektsmeldingerEtterNyeste = alleInntektsmeldingerForSaksummer.entrySet() - .stream() - .filter(im -> (Inntektsmelding.COMP_REKKEFØLGE.compare(im.getKey(), sisteEksisterendeInntektsmelding) > 0)) - .map(entry -> { - Inntektsmelding nyInntektsmelding = entry.getKey(); - ArbeidsforholdInformasjon arbForholdInformasjon = entry.getValue(); - - var arbeidsgiver = nyInntektsmelding.getArbeidsgiver(); - var internRef = nyInntektsmelding.getArbeidsforholdRef(); - var eksternRef = arbForholdInformasjon.finnEkstern(eksisterendeGrunnlagRef, arbeidsgiver, - nyInntektsmelding.getArbeidsforholdRef()); - - InntektsmeldingBuilder inntektsmeldingBuilder = InntektsmeldingBuilder.kopi(nyInntektsmelding); - - if (eksternRef.gjelderForSpesifiktArbeidsforhold() && !internRef.gjelderForSpesifiktArbeidsforhold()) { - internRef = informasjonBuilder.finnEllerOpprett(arbeidsgiver, eksternRef); - } else { - if (eksternRef.gjelderForSpesifiktArbeidsforhold() && internRef.gjelderForSpesifiktArbeidsforhold() - && informasjonBuilder.erUkjentReferanse(arbeidsgiver, internRef)) { - informasjonBuilder.leggTilNyReferanse(new ArbeidsforholdReferanse(arbeidsgiver, internRef, eksternRef)); + var kopierInntektsmeldingerEtterNyeste = alleInntektsmeldingerForSaksummer.entrySet().stream() + .filter(im -> + (Inntektsmelding.COMP_REKKEFØLGE.compare(im.getKey(), sisteEksisterendeInntektsmelding) + > 0)) + .map(entry -> { + Inntektsmelding nyInntektsmelding = entry.getKey(); + ArbeidsforholdInformasjon arbForholdInformasjon = entry.getValue(); + + var arbeidsgiver = nyInntektsmelding.getArbeidsgiver(); + var internRef = nyInntektsmelding.getArbeidsforholdRef(); + var eksternRef = arbForholdInformasjon.finnEkstern( + eksisterendeGrunnlagRef, arbeidsgiver, nyInntektsmelding.getArbeidsforholdRef()); + + InntektsmeldingBuilder inntektsmeldingBuilder = InntektsmeldingBuilder.kopi(nyInntektsmelding); + + if (eksternRef.gjelderForSpesifiktArbeidsforhold() + && !internRef.gjelderForSpesifiktArbeidsforhold()) { + internRef = informasjonBuilder.finnEllerOpprett(arbeidsgiver, eksternRef); + } else { + if (eksternRef.gjelderForSpesifiktArbeidsforhold() + && internRef.gjelderForSpesifiktArbeidsforhold() + && informasjonBuilder.erUkjentReferanse(arbeidsgiver, internRef)) { + informasjonBuilder.leggTilNyReferanse( + new ArbeidsforholdReferanse(arbeidsgiver, internRef, eksternRef)); + } } - } - return inntektsmeldingBuilder.medArbeidsforholdId(internRef).medArbeidsforholdId(eksternRef); - }) - .map(InntektsmeldingBuilder::build) - .sorted(Inntektsmelding.COMP_REKKEFØLGE) - .collect(Collectors.toList()); - - repository.oppdaterBuilderMedNyeInntektsmeldinger(informasjonBuilder, kopierInntektsmeldingerEtterNyeste, builder); + return inntektsmeldingBuilder + .medArbeidsforholdId(internRef) + .medArbeidsforholdId(eksternRef); + }) + .map(InntektsmeldingBuilder::build) + .sorted(Inntektsmelding.COMP_REKKEFØLGE) + .collect(Collectors.toList()); + + repository.oppdaterBuilderMedNyeInntektsmeldinger( + informasjonBuilder, kopierInntektsmeldingerEtterNyeste, builder); } lagre(tilKobling, builder); return builder; } - private InntektArbeidYtelseGrunnlagBuilder kopierGrunnlagBeholdInntektsmeldinger(KoblingReferanse tilKobling, - InntektArbeidYtelseGrunnlag original, - Set dataset) { + private InntektArbeidYtelseGrunnlagBuilder kopierGrunnlagBeholdInntektsmeldinger( + KoblingReferanse tilKobling, InntektArbeidYtelseGrunnlag original, Set dataset) { var builder = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(original, dataset); lagre(tilKobling, builder); return builder; @@ -275,11 +288,11 @@ public KoblingReferanse hentKoblingReferanse(GrunnlagReferanse grunnlagReferanse return repository.hentKoblingReferanseFor(grunnlagReferanse); } - private List filterGrunnlag(Long koblingId, - List grunnlagPerKobling, - GrunnlagVersjon grunnlagVersjon) { + private List filterGrunnlag( + Long koblingId, List grunnlagPerKobling, GrunnlagVersjon grunnlagVersjon) { if (!grunnlagPerKobling.stream().allMatch(g -> Objects.equals(koblingId, g.getKoblingId()))) { - throw new IllegalArgumentException("Utvikler-feil: Fikk grunnlag som ikke har riktig koblingId: " + koblingId); + throw new IllegalArgumentException( + "Utvikler-feil: Fikk grunnlag som ikke har riktig koblingId: " + koblingId); } // quick returns @@ -288,23 +301,27 @@ private List filterGrunnlag(Long koblingId, } var sortertKopi = grunnlagPerKobling.stream() - .sorted(Comparator.comparing(InntektArbeidYtelseGrunnlag::getOpprettetTidspunkt, Comparator.nullsFirst(Comparator.naturalOrder()))) - .collect(Collectors.toCollection(LinkedList::new)); + .sorted(Comparator.comparing( + InntektArbeidYtelseGrunnlag::getOpprettetTidspunkt, + Comparator.nullsFirst(Comparator.naturalOrder()))) + .collect(Collectors.toCollection(LinkedList::new)); - InntektArbeidYtelseGrunnlag første = sortertKopi.getFirst(); // vil alltid være her da vi sjekker på tom liste først + InntektArbeidYtelseGrunnlag første = + sortertKopi.getFirst(); // vil alltid være her da vi sjekker på tom liste først InntektArbeidYtelseGrunnlag siste = sortertKopi.getLast(); // dobbeltsjekk siste skal være aktivt if (!siste.isAktiv()) { - throw new IllegalStateException("Siste grunnlag på " + koblingId + " er ikke aktivt, grunnlagReferanse: " + siste.getGrunnlagReferanse()); + throw new IllegalStateException("Siste grunnlag på " + koblingId + " er ikke aktivt, grunnlagReferanse: " + + siste.getGrunnlagReferanse()); } return switch (grunnlagVersjon) { case FØRSTE -> List.of(første); case SISTE -> List.of(siste); case FØRSTE_OG_SISTE -> Objects.equals(første, siste) ? List.of(første) : List.of(første, siste); - default -> throw new UnsupportedOperationException("GrunnlagVersjon " + grunnlagVersjon + " er ikke støttet her for " + koblingId); + default -> throw new UnsupportedOperationException( + "GrunnlagVersjon " + grunnlagVersjon + " er ikke støttet her for " + koblingId); }; - } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektsmeldingerTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektsmeldingerTjeneste.java index 26d3b0f50..cc88a31b6 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektsmeldingerTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/InntektsmeldingerTjeneste.java @@ -1,10 +1,8 @@ package no.nav.foreldrepenger.abakus.iay; -import java.util.List; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; - +import java.util.List; import no.nav.foreldrepenger.abakus.domene.iay.GrunnlagReferanse; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseRepository; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; @@ -17,8 +15,7 @@ public class InntektsmeldingerTjeneste { private InntektArbeidYtelseRepository repository; - public InntektsmeldingerTjeneste() { - } + public InntektsmeldingerTjeneste() {} @Inject public InntektsmeldingerTjeneste(InntektArbeidYtelseRepository repository) { @@ -26,14 +23,15 @@ public InntektsmeldingerTjeneste(InntektArbeidYtelseRepository repository) { } public ArbeidsforholdInformasjon hentArbeidsforholdInformasjonForKobling(KoblingReferanse koblingReferanse) { - return repository.hentArbeidsforholdInformasjonForBehandling(koblingReferanse).orElseGet(ArbeidsforholdInformasjon::new); + return repository + .hentArbeidsforholdInformasjonForBehandling(koblingReferanse) + .orElseGet(ArbeidsforholdInformasjon::new); } - public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, - ArbeidsforholdInformasjonBuilder informasjonBuilder, - List alleInntektsmeldinger) { + public GrunnlagReferanse lagre( + KoblingReferanse koblingReferanse, + ArbeidsforholdInformasjonBuilder informasjonBuilder, + List alleInntektsmeldinger) { return repository.lagre(koblingReferanse, informasjonBuilder, alleInntektsmeldinger); } - - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/OppgittOpptjeningTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/OppgittOpptjeningTjeneste.java index 9f6de4aa1..677bb01b5 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/OppgittOpptjeningTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/OppgittOpptjeningTjeneste.java @@ -12,8 +12,7 @@ public class OppgittOpptjeningTjeneste { private InntektArbeidYtelseRepository repository; - public OppgittOpptjeningTjeneste() { - } + public OppgittOpptjeningTjeneste() {} @Inject public OppgittOpptjeningTjeneste(InntektArbeidYtelseRepository repository) { @@ -24,7 +23,8 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, OppgittOpptjen return repository.lagre(koblingReferanse, builder); } - public GrunnlagReferanse lagreOgNullstillOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder builder) { + public GrunnlagReferanse lagreOgNullstillOverstyring( + KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder builder) { return repository.lagreOgNullstillOverstyring(koblingReferanse, builder); } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidTypeKodeverdiConverter.java index 6c3627492..32a1e7ed1 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidTypeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; @Converter(autoApply = true) diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidsforholdHandlingTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidsforholdHandlingTypeKodeverdiConverter.java index c849a5330..b13c53b40 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidsforholdHandlingTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidsforholdHandlingTypeKodeverdiConverter.java @@ -2,11 +2,11 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; @Converter(autoApply = true) -public class ArbeidsforholdHandlingTypeKodeverdiConverter implements AttributeConverter { +public class ArbeidsforholdHandlingTypeKodeverdiConverter + implements AttributeConverter { @Override public String convertToDatabaseColumn(ArbeidsforholdHandlingType attribute) { return attribute == null ? null : attribute.getKode(); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidskategoriKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidskategoriKodeverdiConverter.java index a0c746836..5258d258c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidskategoriKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/ArbeidskategoriKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; @Converter(autoApply = true) public class ArbeidskategoriKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/BekreftetPermisjonStatusKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/BekreftetPermisjonStatusKodeverdiConverter.java index 4009f003d..5ba46c959 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/BekreftetPermisjonStatusKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/BekreftetPermisjonStatusKodeverdiConverter.java @@ -2,12 +2,11 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.BekreftetPermisjonStatus; - @Converter(autoApply = true) -public class BekreftetPermisjonStatusKodeverdiConverter implements AttributeConverter { +public class BekreftetPermisjonStatusKodeverdiConverter + implements AttributeConverter { @Override public String convertToDatabaseColumn(BekreftetPermisjonStatus attribute) { return attribute == null ? null : attribute.getKode(); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektPeriodeTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektPeriodeTypeKodeverdiConverter.java index c8a17559a..1fe1635e5 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektPeriodeTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektPeriodeTypeKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; @Converter(autoApply = true) public class InntektPeriodeTypeKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektYtelseTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektYtelseTypeKodeverdiConverter.java index 4407e0d7f..ab0f31a62 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektYtelseTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektYtelseTypeKodeverdiConverter.java @@ -4,7 +4,6 @@ import jakarta.persistence.Converter; import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; - @Converter(autoApply = true) public class InntektYtelseTypeKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsKildeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsKildeKodeverdiConverter.java index 555335520..24418e089 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsKildeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsKildeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; @Converter(autoApply = true) diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsmeldingInnsendings\303\245rsakKodeverdiConverter.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsmeldingInnsendings\303\245rsakKodeverdiConverter.java" index 724ff18a2..10481eb88 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsmeldingInnsendings\303\245rsakKodeverdiConverter.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektsmeldingInnsendings\303\245rsakKodeverdiConverter.java" @@ -2,11 +2,11 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektsmeldingInnsendingsårsakType; @Converter(autoApply = true) -public class InntektsmeldingInnsendingsårsakKodeverdiConverter implements AttributeConverter { +public class InntektsmeldingInnsendingsårsakKodeverdiConverter + implements AttributeConverter { @Override public String convertToDatabaseColumn(InntektsmeldingInnsendingsårsakType attribute) { return attribute == null ? null : attribute.getKode(); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektspostTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektspostTypeKodeverdiConverter.java index dcb56fb5d..cb60b0bdd 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektspostTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/InntektspostTypeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @Converter(autoApply = true) diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/LandKodeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/LandKodeKodeverdiConverter.java index 2073484dd..dc298865b 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/LandKodeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/LandKodeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; @Converter(autoApply = true) diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/L\303\270nnsbeskrivelseKodeverdiConverter.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/L\303\270nnsbeskrivelseKodeverdiConverter.java" index 325099638..c7aa1e318 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/L\303\270nnsbeskrivelseKodeverdiConverter.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/L\303\270nnsbeskrivelseKodeverdiConverter.java" @@ -2,10 +2,8 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.LønnsinntektBeskrivelse; - @Converter(autoApply = true) public class LønnsbeskrivelseKodeverdiConverter implements AttributeConverter { @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/NaturalytelseTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/NaturalytelseTypeKodeverdiConverter.java index 8bda75783..02776e2b6 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/NaturalytelseTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/NaturalytelseTypeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.NaturalytelseType; @Converter(autoApply = true) diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/OrganisasjonstypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/OrganisasjonstypeKodeverdiConverter.java index fd96bbc81..8b5863c19 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/OrganisasjonstypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/OrganisasjonstypeKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.OrganisasjonType; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.OrganisasjonType; @Converter(autoApply = true) public class OrganisasjonstypeKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/PermisjonsbeskrivelseTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/PermisjonsbeskrivelseTypeKodeverdiConverter.java index 08fd29f09..e9fcd1652 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/PermisjonsbeskrivelseTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/PermisjonsbeskrivelseTypeKodeverdiConverter.java @@ -2,11 +2,11 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; @Converter(autoApply = true) -public class PermisjonsbeskrivelseTypeKodeverdiConverter implements AttributeConverter { +public class PermisjonsbeskrivelseTypeKodeverdiConverter + implements AttributeConverter { @Override public String convertToDatabaseColumn(PermisjonsbeskrivelseType attribute) { return attribute == null ? null : attribute.getKode(); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/SkatteOgAvgiftsregelTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/SkatteOgAvgiftsregelTypeKodeverdiConverter.java index 857e913d5..f91f1c22e 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/SkatteOgAvgiftsregelTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/SkatteOgAvgiftsregelTypeKodeverdiConverter.java @@ -2,12 +2,11 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.SkatteOgAvgiftsregelType; - @Converter(autoApply = true) -public class SkatteOgAvgiftsregelTypeKodeverdiConverter implements AttributeConverter { +public class SkatteOgAvgiftsregelTypeKodeverdiConverter + implements AttributeConverter { @Override public String convertToDatabaseColumn(SkatteOgAvgiftsregelType attribute) { return attribute == null ? null : attribute.getKode(); diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/Utsettelse\303\205rsakTypeKodeverdiConverter.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/Utsettelse\303\205rsakTypeKodeverdiConverter.java" index 5afb9b5c4..8134ede5f 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/Utsettelse\303\205rsakTypeKodeverdiConverter.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/Utsettelse\303\205rsakTypeKodeverdiConverter.java" @@ -1,10 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.UtsettelseÅrsakType; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - +import no.nav.abakus.iaygrunnlag.kodeverk.UtsettelseÅrsakType; @Converter(autoApply = true) public class UtsettelseÅrsakTypeKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/VirksomhetTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/VirksomhetTypeKodeverdiConverter.java index c5448011b..a00b20a90 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/VirksomhetTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/VirksomhetTypeKodeverdiConverter.java @@ -2,10 +2,8 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.VirksomhetType; - @Converter(autoApply = true) public class VirksomhetTypeKodeverdiConverter implements AttributeConverter { @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseStatusKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseStatusKodeverdiConverter.java index 65149c532..69c607d4b 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseStatusKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseStatusKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @Converter(autoApply = true) public class YtelseStatusKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseTypeKodeverdiConverter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseTypeKodeverdiConverter.java index dbf614438..6093407c9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseTypeKodeverdiConverter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/jpa/YtelseTypeKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.iay.jpa; -import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @Converter(autoApply = true) public class YtelseTypeKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/ArbeidsforholdRestTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/ArbeidsforholdRestTjeneste.java index 253c9ce7e..a9277939f 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/ArbeidsforholdRestTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/ArbeidsforholdRestTjeneste.java @@ -1,13 +1,5 @@ package no.nav.foreldrepenger.abakus.iay.tjeneste; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; -import java.util.function.Function; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -22,6 +14,10 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; +import java.util.function.Function; import no.nav.abakus.iaygrunnlag.ArbeidsforholdReferanse; import no.nav.abakus.iaygrunnlag.request.AktørDatoRequest; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; @@ -41,6 +37,8 @@ import no.nav.vedtak.sikkerhet.abac.TilpassetAbacAttributt; import no.nav.vedtak.sikkerhet.abac.beskyttet.ActionType; import no.nav.vedtak.sikkerhet.abac.beskyttet.ResourceType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @OpenAPIDefinition(tags = @Tag(name = "arbeidsforhold")) @Path("/arbeidsforhold/v1") @@ -55,14 +53,14 @@ public class ArbeidsforholdRestTjeneste { private ArbeidsforholdDtoTjeneste dtoTjeneste; private VirksomhetTjeneste virksomhetTjeneste; - public ArbeidsforholdRestTjeneste() { - } // CDI Ctor + public ArbeidsforholdRestTjeneste() {} // CDI Ctor @Inject - public ArbeidsforholdRestTjeneste(KoblingTjeneste koblingTjeneste, - InntektArbeidYtelseTjeneste iayTjeneste, - ArbeidsforholdDtoTjeneste dtoTjeneste, - VirksomhetTjeneste virksomhetTjeneste) { + public ArbeidsforholdRestTjeneste( + KoblingTjeneste koblingTjeneste, + InntektArbeidYtelseTjeneste iayTjeneste, + ArbeidsforholdDtoTjeneste dtoTjeneste, + VirksomhetTjeneste virksomhetTjeneste) { this.koblingTjeneste = koblingTjeneste; this.iayTjeneste = iayTjeneste; this.dtoTjeneste = dtoTjeneste; @@ -73,18 +71,24 @@ public ArbeidsforholdRestTjeneste(KoblingTjeneste koblingTjeneste, @Path("/arbeidstaker") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Gir ut alle arbeidsforhold i en gitt periode/dato for en gitt aktør. NB! Proxyer direkte til aa-registeret / ingen bruk av sak/kobling i abakus", tags = "arbeidsforhold") + @Operation( + description = + "Gir ut alle arbeidsforhold i en gitt periode/dato for en gitt aktør. NB! Proxyer direkte til aa-registeret / ingen bruk av sak/kobling i abakus", + tags = "arbeidsforhold") @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public Response hentArbeidsforhold(@NotNull @TilpassetAbacAttributt(supplierClass = AktørDatoRequestAbacDataSupplier.class) @Valid AktørDatoRequest request) { + public Response hentArbeidsforhold( + @NotNull @TilpassetAbacAttributt(supplierClass = AktørDatoRequestAbacDataSupplier.class) @Valid + AktørDatoRequest request) { var aktørId = new AktørId(request.getAktør().getIdent()); var periode = request.getPeriode(); LOG_CONTEXT.add("ytelseType", request.getYtelse().getKode()); LOG_CONTEXT.add("periode", periode); var fom = periode.getFom(); - var tom = Objects.equals(fom, periode.getTom()) ? fom.plusDays(1) // enkel dato søk - : periode.getTom(); // periode søk + var tom = Objects.equals(fom, periode.getTom()) + ? fom.plusDays(1) // enkel dato søk + : periode.getTom(); // periode søk var arbeidstakersArbeidsforhold = dtoTjeneste.mapFor(aktørId, fom, tom); final Response response = Response.ok(arbeidstakersArbeidsforhold).build(); return response; @@ -94,18 +98,24 @@ public Response hentArbeidsforhold(@NotNull @TilpassetAbacAttributt(supplierClas @Path("/arbeidstakerMedPermisjoner") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Gir ut alle arbeidsforhold og permisjoner i en gitt periode/dato for en gitt aktør. NB! Proxyer direkte til aa-registeret / ingen bruk av sak/kobling i abakus", tags = "arbeidsforhold") + @Operation( + description = + "Gir ut alle arbeidsforhold og permisjoner i en gitt periode/dato for en gitt aktør. NB! Proxyer direkte til aa-registeret / ingen bruk av sak/kobling i abakus", + tags = "arbeidsforhold") @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public Response hentArbeidsforholdOgPermisjonerForEnPeriode(@NotNull @TilpassetAbacAttributt(supplierClass = AktørDatoRequestAbacDataSupplier.class) @Valid AktørDatoRequest request) { + public Response hentArbeidsforholdOgPermisjonerForEnPeriode( + @NotNull @TilpassetAbacAttributt(supplierClass = AktørDatoRequestAbacDataSupplier.class) @Valid + AktørDatoRequest request) { var aktørId = new AktørId(request.getAktør().getIdent()); var periode = request.getPeriode(); LOG_CONTEXT.add("ytelseType", request.getYtelse().getKode()); LOG_CONTEXT.add("periode", periode); var fom = periode.getFom(); - var tom = Objects.equals(fom, periode.getTom()) ? fom.plusDays(1) // enkel dato søk - : periode.getTom(); // periode søk + var tom = Objects.equals(fom, periode.getTom()) + ? fom.plusDays(1) // enkel dato søk + : periode.getTom(); // periode søk var arbeidstakersArbeidsforhold = dtoTjeneste.mapArbForholdOgPermisjoner(aktørId, fom, tom); return Response.ok(arbeidstakersArbeidsforhold).build(); } @@ -114,23 +124,30 @@ public Response hentArbeidsforholdOgPermisjonerForEnPeriode(@NotNull @TilpassetA @Path("/referanse") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Finner eksisterende intern referanse for arbeidsforholdId eller lager en ny", tags = "arbeidsforhold") + @Operation( + description = "Finner eksisterende intern referanse for arbeidsforholdId eller lager en ny", + tags = "arbeidsforhold") @BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public Response finnEllerOpprettArbeidsforholdReferanse(@NotNull @TilpassetAbacAttributt(supplierClass = ArbeidsforholdReferanseAbacDataSupplier.class) @Valid ArbeidsforholdReferanse request) { + public Response finnEllerOpprettArbeidsforholdReferanse( + @NotNull @TilpassetAbacAttributt(supplierClass = ArbeidsforholdReferanseAbacDataSupplier.class) @Valid + ArbeidsforholdReferanse request) { - KoblingReferanse referanse = new KoblingReferanse(UUID.fromString(request.getKoblingReferanse().getReferanse())); + KoblingReferanse referanse = new KoblingReferanse( + UUID.fromString(request.getKoblingReferanse().getReferanse())); setupLogMdcFraKoblingReferanse(referanse); var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(referanse)); - ArbeidsforholdInformasjon arbeidsforholdInformasjon = iayTjeneste.hentArbeidsforholdInformasjonForKobling(referanse); + ArbeidsforholdInformasjon arbeidsforholdInformasjon = + iayTjeneste.hentArbeidsforholdInformasjonForKobling(referanse); String abakusReferanse = request.getArbeidsforholdId().getAbakusReferanse(); - InternArbeidsforholdRef arbeidsforholdRef = arbeidsforholdInformasjon.finnEllerOpprett(tilArbeidsgiver(request), - InternArbeidsforholdRef.ref(abakusReferanse)); + InternArbeidsforholdRef arbeidsforholdRef = arbeidsforholdInformasjon.finnEllerOpprett( + tilArbeidsgiver(request), InternArbeidsforholdRef.ref(abakusReferanse)); - var dto = dtoTjeneste.mapArbeidsforhold(request.getArbeidsgiver(), abakusReferanse, arbeidsforholdRef.getReferanse()); + var dto = dtoTjeneste.mapArbeidsforhold( + request.getArbeidsgiver(), abakusReferanse, arbeidsforholdRef.getReferanse()); koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); final Response response = Response.ok(dto).build(); return response; @@ -147,25 +164,26 @@ private Arbeidsgiver tilArbeidsgiver(@Valid @NotNull ArbeidsforholdReferanse req private void setupLogMdcFraKoblingReferanse(KoblingReferanse koblingReferanse) { var kobling = koblingTjeneste.hentFor(koblingReferanse); kobling.filter(k -> k.getSaksnummer() != null) - .ifPresent(k -> LoggUtil.setupLogMdc(k.getYtelseType(), kobling.get().getSaksnummer().getVerdi(), - koblingReferanse.getReferanse())); // legger til saksnummer i MDC + .ifPresent(k -> LoggUtil.setupLogMdc( + k.getYtelseType(), + kobling.get().getSaksnummer().getVerdi(), + koblingReferanse.getReferanse())); // legger til saksnummer i MDC } public static class AktørDatoRequestAbacDataSupplier implements Function { - public AktørDatoRequestAbacDataSupplier() { - } + public AktørDatoRequestAbacDataSupplier() {} @Override public AbacDataAttributter apply(Object obj) { AktørDatoRequest req = (AktørDatoRequest) obj; - return AbacDataAttributter.opprett().leggTil(StandardAbacAttributtType.AKTØR_ID, req.getAktør().getIdent()); + return AbacDataAttributter.opprett() + .leggTil(StandardAbacAttributtType.AKTØR_ID, req.getAktør().getIdent()); } } public static class ArbeidsforholdReferanseAbacDataSupplier implements Function { - public ArbeidsforholdReferanseAbacDataSupplier() { - } + public ArbeidsforholdReferanseAbacDataSupplier() {} @Override public AbacDataAttributter apply(Object obj) { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/GrunnlagRestTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/GrunnlagRestTjeneste.java index 7d5c7fa52..d47b31f2c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/GrunnlagRestTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/GrunnlagRestTjeneste.java @@ -1,27 +1,10 @@ package no.nav.foreldrepenger.abakus.iay.tjeneste; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.EnumSet; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -47,6 +30,20 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Request; import jakarta.ws.rs.core.Response; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.EnumSet; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.FnrPersonident; import no.nav.abakus.iaygrunnlag.Periode; @@ -55,7 +52,6 @@ import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.request.Dataset; import no.nav.abakus.iaygrunnlag.request.InntektArbeidYtelseGrunnlagRequest; -import no.nav.abakus.iaygrunnlag.request.InntektsmeldingerMottattRequest; import no.nav.abakus.iaygrunnlag.request.KopierGrunnlagRequest; import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseAggregatOverstyrtDto; import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseGrunnlagDto; @@ -91,8 +87,7 @@ public class GrunnlagRestTjeneste { private InntektArbeidYtelseTjeneste iayTjeneste; private KoblingTjeneste koblingTjeneste; - public GrunnlagRestTjeneste() { - } // CDI Ctor + public GrunnlagRestTjeneste() {} // CDI Ctor @Inject public GrunnlagRestTjeneste(InntektArbeidYtelseTjeneste iayTjeneste, KoblingTjeneste koblingTjeneste) { @@ -122,22 +117,41 @@ private static Periode mapPeriode(IntervallEntitet datoIntervall) { @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Hent ett enkelt IAY Grunnlag for angitt spesifikasjon. Spesifikasjonen kan angit hvilke data som ønskes", tags = "iay-grunnlag", responses = {@ApiResponse(description = "InntektArbeidYtelseGrunnlagDto", content = @Content(mediaType = "application/json", schema = @Schema(implementation = InntektArbeidYtelseGrunnlagDto.class))), @ApiResponse(responseCode = "204", description = "Det finnes ikke et grunnlag for forespørselen"), @ApiResponse(responseCode = "304", description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner")}) + @Operation( + description = + "Hent ett enkelt IAY Grunnlag for angitt spesifikasjon. Spesifikasjonen kan angit hvilke data som ønskes", + tags = "iay-grunnlag", + responses = { + @ApiResponse( + description = "InntektArbeidYtelseGrunnlagDto", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = InntektArbeidYtelseGrunnlagDto.class))), + @ApiResponse(responseCode = "204", description = "Det finnes ikke et grunnlag for forespørselen"), + @ApiResponse( + responseCode = "304", + description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner") + }) @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) public Response hentIayGrunnlag(@NotNull @Valid InntektArbeidYtelseGrunnlagRequestAbacDto spesifikasjon) { Response response; - LoggUtil.setupLogMdc(spesifikasjon.getYtelseType(), spesifikasjon.getSaksnummer(), spesifikasjon.getKoblingReferanse()); + LoggUtil.setupLogMdc( + spesifikasjon.getYtelseType(), spesifikasjon.getSaksnummer(), spesifikasjon.getKoblingReferanse()); var aktørId = new AktørId(spesifikasjon.getPerson().getIdent()); final var forespurtGrunnlagReferanse = spesifikasjon.getGrunnlagReferanse(); - var grunnlagReferanse = forespurtGrunnlagReferanse != null ? new GrunnlagReferanse(forespurtGrunnlagReferanse) : null; - var koblingReferanse = getKoblingReferanse(aktørId, spesifikasjon.getKoblingReferanse(), spesifikasjon.getGrunnlagReferanse()); + var grunnlagReferanse = + forespurtGrunnlagReferanse != null ? new GrunnlagReferanse(forespurtGrunnlagReferanse) : null; + var koblingReferanse = + getKoblingReferanse(aktørId, spesifikasjon.getKoblingReferanse(), spesifikasjon.getGrunnlagReferanse()); final var sisteKjenteGrunnlagReferanse = utledSisteKjenteGrunnlagReferanseFraSpesifikasjon(spesifikasjon); - final var sistKjenteErAktivt = sisteKjenteGrunnlagReferanse != null && iayTjeneste.erGrunnlagAktivt(sisteKjenteGrunnlagReferanse); + final var sistKjenteErAktivt = + sisteKjenteGrunnlagReferanse != null && iayTjeneste.erGrunnlagAktivt(sisteKjenteGrunnlagReferanse); if (sisteKjenteGrunnlagReferanse != null && sistKjenteErAktivt) { response = Response.notModified().build(); @@ -158,13 +172,36 @@ public Response hentIayGrunnlag(@NotNull @Valid InntektArbeidYtelseGrunnlagReque @GET @Path("/arbeidsforhold-referanser") @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Hent aktivt arbeidsforholdinformasjon grunnlag for angitt kobling", tags = "iay-grunnlag", responses = {@ApiResponse(description = "ArbeidsforholdInformasjon", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ArbeidsforholdInformasjon.class))), @ApiResponse(responseCode = "204", description = "Det finnes ikke et arbeidsforhold grunnlag for forespørselen"), @ApiResponse(responseCode = "304", description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner")}) + @Operation( + description = "Hent aktivt arbeidsforholdinformasjon grunnlag for angitt kobling", + tags = "iay-grunnlag", + responses = { + @ApiResponse( + description = "ArbeidsforholdInformasjon", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = ArbeidsforholdInformasjon.class))), + @ApiResponse( + responseCode = "204", + description = "Det finnes ikke et arbeidsforhold grunnlag for forespørselen"), + @ApiResponse( + responseCode = "304", + description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner") + }) @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT"}) - public Response hentArbeidsforholdInformasjon(@NotNull @Valid @QueryParam("ytelseType") YtelseType ytelseType, - @NotNull @Valid @TilpassetAbacAttributt(supplierClass = SaksnummerAbacDataSupplier.class) @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") String saksnummer, - @NotNull @Valid @QueryParam("kobling") UUID koblingReferanse, - @Context Request req) { + public Response hentArbeidsforholdInformasjon( + @NotNull @Valid @QueryParam("ytelseType") YtelseType ytelseType, + @NotNull + @Valid + @TilpassetAbacAttributt(supplierClass = SaksnummerAbacDataSupplier.class) + @Pattern( + regexp = "^[A-Za-z0-9_\\.\\-:]+$", + message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") + String saksnummer, + @NotNull @Valid @QueryParam("kobling") UUID koblingReferanse, + @Context Request req) { LoggUtil.setupLogMdc(ytelseType, saksnummer, koblingReferanse); CacheControl cc = new CacheControl(); @@ -180,39 +217,68 @@ public Response hentArbeidsforholdInformasjon(@NotNull @Valid @QueryParam("ytels return Response.noContent().build(); } - var etag = new EntityTag(aktivtGrunnlag.getGrunnlagReferanse().getReferanse().toString()); + var etag = new EntityTag( + aktivtGrunnlag.getGrunnlagReferanse().getReferanse().toString()); var rb = req.evaluatePreconditions(etag); if (rb == null) { - Kobling kobling = koblingTjeneste.hentFor(ref).orElseThrow(() -> new IllegalArgumentException("Har ikke kobling for " + ref)); - - if (!Objects.equals(kobling.getYtelseType(), ytelseType) || kobling.getSaksnummer() == null || !Objects.equals( - kobling.getSaksnummer().getVerdi(), saksnummer)) { - throw new IllegalArgumentException("Har ikke kobling for " + ref + ", for ytelse=" + ytelseType + ", saksnummer=" + saksnummer); + Kobling kobling = koblingTjeneste + .hentFor(ref) + .orElseThrow(() -> new IllegalArgumentException("Har ikke kobling for " + ref)); + + if (!Objects.equals(kobling.getYtelseType(), ytelseType) + || kobling.getSaksnummer() == null + || !Objects.equals(kobling.getSaksnummer().getVerdi(), saksnummer)) { + throw new IllegalArgumentException( + "Har ikke kobling for " + ref + ", for ytelse=" + ytelseType + ", saksnummer=" + saksnummer); } var dtoMapper = new IAYTilDtoMapper(kobling.getAktørId(), aktivtGrunnlag.getGrunnlagReferanse(), ref); - var aiDto = dtoMapper.mapArbeidsforholdInformasjon(aktivtGrunnlag.getGrunnlagReferanse().getReferanse(), ai); + var aiDto = dtoMapper.mapArbeidsforholdInformasjon( + aktivtGrunnlag.getGrunnlagReferanse().getReferanse(), ai); return Response.ok(aiDto) - .tag(etag) - .lastModified(getSistOppdatert(aktivtGrunnlag.getOpprettetTidspunkt(), aktivtGrunnlag.getEndretTidspunkt())) - .cacheControl(cc) - .build(); + .tag(etag) + .lastModified(getSistOppdatert( + aktivtGrunnlag.getOpprettetTidspunkt(), aktivtGrunnlag.getEndretTidspunkt())) + .cacheControl(cc) + .build(); } else { return rb.cacheControl(cc).tag(etag).build(); } - } @GET @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Hent aktivt IAY grunnlag grunnlag for angitt kobling", tags = "iay-grunnlag", responses = {@ApiResponse(description = "InntektArbeidYtelseGrunnlagDto", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ArbeidsforholdInformasjon.class))), @ApiResponse(responseCode = "204", description = "Det finnes ikke et arbeidsforhold grunnlag for forespørselen"), @ApiResponse(responseCode = "304", description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner")}) + @Operation( + description = "Hent aktivt IAY grunnlag grunnlag for angitt kobling", + tags = "iay-grunnlag", + responses = { + @ApiResponse( + description = "InntektArbeidYtelseGrunnlagDto", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = ArbeidsforholdInformasjon.class))), + @ApiResponse( + responseCode = "204", + description = "Det finnes ikke et arbeidsforhold grunnlag for forespørselen"), + @ApiResponse( + responseCode = "304", + description = "Grunnlaget har ikke endret seg i henhold til det fagsystemet allerede kjenner") + }) @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT"}) - public Response hentSisteIayGrunnlag(@NotNull @Valid @QueryParam("ytelseType") YtelseType ytelseType, - @TilpassetAbacAttributt(supplierClass = SaksnummerAbacDataSupplier.class) @NotNull @Valid @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") String saksnummer, - @NotNull @Valid @QueryParam("kobling") UUID koblingReferanse, - @Context Request req) { + public Response hentSisteIayGrunnlag( + @NotNull @Valid @QueryParam("ytelseType") YtelseType ytelseType, + @TilpassetAbacAttributt(supplierClass = SaksnummerAbacDataSupplier.class) + @NotNull + @Valid + @Pattern( + regexp = "^[A-Za-z0-9_\\.\\-:]+$", + message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") + String saksnummer, + @NotNull @Valid @QueryParam("kobling") UUID koblingReferanse, + @Context Request req) { LoggUtil.setupLogMdc(ytelseType, saksnummer, koblingReferanse); @@ -224,34 +290,42 @@ public Response hentSisteIayGrunnlag(@NotNull @Valid @QueryParam("ytelseType") Y var ref = new KoblingReferanse(koblingReferanse); var aktivtGrunnlag = iayTjeneste.hentAggregat(ref); - var etag = new EntityTag(aktivtGrunnlag.getGrunnlagReferanse().getReferanse().toString()); + var etag = new EntityTag( + aktivtGrunnlag.getGrunnlagReferanse().getReferanse().toString()); var rb = req.evaluatePreconditions(etag); if (rb == null) { - Kobling kobling = koblingTjeneste.hentFor(ref).orElseThrow(() -> new IllegalArgumentException("Har ikke kobling for " + ref)); - if (!Objects.equals(kobling.getYtelseType(), ytelseType) || kobling.getSaksnummer() == null || !Objects.equals( - kobling.getSaksnummer().getVerdi(), saksnummer)) { - throw new IllegalArgumentException("Har ikke kobling for " + ref + ", for ytelse=" + ytelseType + ", saksnummer=" + saksnummer); + Kobling kobling = koblingTjeneste + .hentFor(ref) + .orElseThrow(() -> new IllegalArgumentException("Har ikke kobling for " + ref)); + if (!Objects.equals(kobling.getYtelseType(), ytelseType) + || kobling.getSaksnummer() == null + || !Objects.equals(kobling.getSaksnummer().getVerdi(), saksnummer)) { + throw new IllegalArgumentException( + "Har ikke kobling for " + ref + ", for ytelse=" + ytelseType + ", saksnummer=" + saksnummer); } var dtoMapper = new IAYTilDtoMapper(kobling.getAktørId(), aktivtGrunnlag.getGrunnlagReferanse(), ref); var dto = dtoMapper.mapTilDto(aktivtGrunnlag, ytelseType, Set.of(Dataset.values())); return Response.ok(dto) - .tag(etag) - .lastModified(getSistOppdatert(aktivtGrunnlag.getOpprettetTidspunkt(), aktivtGrunnlag.getEndretTidspunkt())) - .cacheControl(cc) - .build(); + .tag(etag) + .lastModified(getSistOppdatert( + aktivtGrunnlag.getOpprettetTidspunkt(), aktivtGrunnlag.getEndretTidspunkt())) + .cacheControl(cc) + .build(); } else { return rb.cacheControl(cc).tag(etag).build(); } - } @PUT @Path("/overstyrt") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Lagrer siste versjon", tags = "iay-grunnlag", responses = {@ApiResponse(responseCode = "200", description = "Mottatt grunnlaget")}) + @Operation( + description = "Lagrer siste versjon", + tags = "iay-grunnlag", + responses = {@ApiResponse(responseCode = "200", description = "Mottatt grunnlaget")}) @BeskyttetRessurs(actionType = ActionType.UPDATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") public Response oppdaterOgLagreOverstyring(@NotNull @Valid OverstyrtInntektArbeidYtelseAbacDto dto) { @@ -261,10 +335,12 @@ public Response oppdaterOgLagreOverstyring(@NotNull @Valid OverstyrtInntektArbei setupLogMdcFraKoblingReferanse(koblingReferanse); - var nyttGrunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayTjeneste.hentGrunnlagFor(koblingReferanse)); + var nyttGrunnlagBuilder = + InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayTjeneste.hentGrunnlagFor(koblingReferanse)); - new IAYFraDtoMapper(iayTjeneste, aktørId, koblingReferanse).mapOverstyringerTilGrunnlagBuilder(dto.getOverstyrt(), - dto.getArbeidsforholdInformasjon(), nyttGrunnlagBuilder); + new IAYFraDtoMapper(iayTjeneste, aktørId, koblingReferanse) + .mapOverstyringerTilGrunnlagBuilder( + dto.getOverstyrt(), dto.getArbeidsforholdInformasjon(), nyttGrunnlagBuilder); iayTjeneste.lagre(koblingReferanse, nyttGrunnlagBuilder); @@ -275,7 +351,20 @@ public Response oppdaterOgLagreOverstyring(@NotNull @Valid OverstyrtInntektArbei @Path("/snapshot") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Hent IAY Grunnlag for angitt søke spesifikasjon", tags = "iay-grunnlag", responses = {@ApiResponse(description = "Grunnlaget for saken", content = @Content(mediaType = "application/json", schema = @Schema(implementation = InntektArbeidYtelseGrunnlagSakSnapshotDto.class)))}) + @Operation( + description = "Hent IAY Grunnlag for angitt søke spesifikasjon", + tags = "iay-grunnlag", + responses = { + @ApiResponse( + description = "Grunnlaget for saken", + content = + @Content( + mediaType = "application/json", + schema = + @Schema( + implementation = + InntektArbeidYtelseGrunnlagSakSnapshotDto.class))) + }) @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") public Response hentSnapshotIayGrunnlag(@NotNull @Valid InntektArbeidYtelseGrunnlagRequestAbacDto spesifikasjon) { @@ -288,8 +377,8 @@ public Response hentSnapshotIayGrunnlag(@NotNull @Valid InntektArbeidYtelseGrunn var snapshot = new InntektArbeidYtelseGrunnlagSakSnapshotDto(saksnummer, ytelseType, spesifikasjon.getPerson()); - var grunnlagEtterspurt = iayTjeneste.hentGrunnlagEtterspurtFor(aktørId, new Saksnummer(saksnummer), ytelseType, - spesifikasjon.getGrunnlagVersjon()); + var grunnlagEtterspurt = iayTjeneste.hentGrunnlagEtterspurtFor( + aktørId, new Saksnummer(saksnummer), ytelseType, spesifikasjon.getGrunnlagVersjon()); grunnlagEtterspurt.forEach(g -> { var kobling = koblingTjeneste.hent(g.getKoblingId()); @@ -297,7 +386,11 @@ public Response hentSnapshotIayGrunnlag(@NotNull @Valid InntektArbeidYtelseGrunn var dtoMapper = new IAYTilDtoMapper(aktørId, g.getGrunnlagReferanse(), kobling.getKoblingReferanse()); var dto = dtoMapper.mapTilDto(g, spesifikasjon.getYtelseType(), spesifikasjon.getDataset()); - snapshot.leggTil(dto, g.isAktiv(), mapPeriode(kobling.getOpplysningsperiode()), mapPeriode(kobling.getOpptjeningsperiode())); + snapshot.leggTil( + dto, + g.isAktiv(), + mapPeriode(kobling.getOpplysningsperiode()), + mapPeriode(kobling.getOpptjeningsperiode())); }); Response response = Response.ok(snapshot).build(); @@ -319,8 +412,14 @@ public Response kopierOgLagreGrunnlag(@NotNull @Valid KopierGrunnlagRequestAbac var kobling = oppdaterKobling(request); - iayTjeneste.kopierGrunnlagFraEksisterendeBehandling(kobling.getYtelseType(), kobling.getAktørId(), new Saksnummer(request.getSaksnummer()), - new KoblingReferanse(request.getGammelReferanse()), new KoblingReferanse(request.getNyReferanse()), request.getDataset(), false); + iayTjeneste.kopierGrunnlagFraEksisterendeBehandling( + kobling.getYtelseType(), + kobling.getAktørId(), + new Saksnummer(request.getSaksnummer()), + new KoblingReferanse(request.getGammelReferanse()), + new KoblingReferanse(request.getNyReferanse()), + request.getDataset(), + false); koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); @@ -342,8 +441,14 @@ public Response kopierOgLagreGrunnlagBeholdIM(@NotNull @Valid KopierGrunnlagRequ var kobling = oppdaterKobling(request); - iayTjeneste.kopierGrunnlagFraEksisterendeBehandling(kobling.getYtelseType(), kobling.getAktørId(), new Saksnummer(request.getSaksnummer()), - new KoblingReferanse(request.getGammelReferanse()), new KoblingReferanse(request.getNyReferanse()), request.getDataset(), true); + iayTjeneste.kopierGrunnlagFraEksisterendeBehandling( + kobling.getYtelseType(), + kobling.getAktørId(), + new Saksnummer(request.getSaksnummer()), + new KoblingReferanse(request.getGammelReferanse()), + new KoblingReferanse(request.getNyReferanse()), + request.getDataset(), + true); koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); @@ -356,11 +461,14 @@ private Date getSistOppdatert(LocalDateTime... tidspunkt) { return Date.from(tid.get(tid.size() - 1).atZone(ZoneId.systemDefault()).toInstant()); } - private UUID utledSisteKjenteGrunnlagReferanseFraSpesifikasjon(InntektArbeidYtelseGrunnlagRequestAbacDto spesifikasjon) { + private UUID utledSisteKjenteGrunnlagReferanseFraSpesifikasjon( + InntektArbeidYtelseGrunnlagRequestAbacDto spesifikasjon) { final var sisteKjenteGrunnlagReferanse = spesifikasjon.getSisteKjenteGrunnlagReferanse(); final var forespurtGrunnlagReferanse = spesifikasjon.getGrunnlagReferanse(); - return forespurtGrunnlagReferanse == null || forespurtGrunnlagReferanse.equals(sisteKjenteGrunnlagReferanse) ? sisteKjenteGrunnlagReferanse : null; + return forespurtGrunnlagReferanse == null || forespurtGrunnlagReferanse.equals(sisteKjenteGrunnlagReferanse) + ? sisteKjenteGrunnlagReferanse + : null; } private Kobling oppdaterKobling(@NotNull @Valid KopierGrunnlagRequest dto) { @@ -382,7 +490,8 @@ private Kobling oppdaterKobling(@NotNull @Valid KopierGrunnlagRequest dto) { } // Oppdater kobling med perioder mapPeriodeTilIntervall(dto.getOpplysningsperiode()).ifPresent(kobling::setOpplysningsperiode); - mapPeriodeTilIntervall(dto.getOpplysningsperiodeSkattegrunnlag()).ifPresent(kobling::setOpplysningsperiodeSkattegrunnlag); + mapPeriodeTilIntervall(dto.getOpplysningsperiodeSkattegrunnlag()) + .ifPresent(kobling::setOpplysningsperiodeSkattegrunnlag); mapPeriodeTilIntervall(dto.getOpptjeningsperiode()).ifPresent(kobling::setOpptjeningsperiode); // Diff & log endringer @@ -391,7 +500,8 @@ private Kobling oppdaterKobling(@NotNull @Valid KopierGrunnlagRequest dto) { } private Optional mapPeriodeTilIntervall(Periode periode) { - return Optional.ofNullable(periode == null ? null : IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); + return Optional.ofNullable( + periode == null ? null : IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); } private KoblingReferanse getKoblingReferanse(AktørId aktørId, UUID koblingRef, UUID grunnlagRef) { @@ -440,16 +550,18 @@ private KoblingReferanse getKoblingReferanse(AktørId aktørId, InntektArbeidYte return koblingReferanse; } - private InntektArbeidYtelseGrunnlag getGrunnlag(@SuppressWarnings("unused") InntektArbeidYtelseGrunnlagRequest spesifikasjon, // NOSONAR - GrunnlagReferanse grunnlagReferanse, - KoblingReferanse koblingReferanse) { + private InntektArbeidYtelseGrunnlag getGrunnlag( + @SuppressWarnings("unused") InntektArbeidYtelseGrunnlagRequest spesifikasjon, // NOSONAR + GrunnlagReferanse grunnlagReferanse, + KoblingReferanse koblingReferanse) { if (grunnlagReferanse != null) { var grunnlag = iayTjeneste.hentAggregat(grunnlagReferanse); if (koblingReferanse != null) { var grunnlagsKoblingReferanse = iayTjeneste.hentKoblingReferanse(grunnlagReferanse); if (!Objects.equals(koblingReferanse, grunnlagsKoblingReferanse)) { // returner kun angitt koblingReferanse i feilmelding, ikke den som er på grunnlag (sikkerhet). - throw new IllegalStateException("Angitt koblingreferanse matcher ikke grunnlag: " + koblingReferanse); + throw new IllegalStateException( + "Angitt koblingreferanse matcher ikke grunnlag: " + koblingReferanse); } } return grunnlag; @@ -465,20 +577,27 @@ private InntektArbeidYtelseGrunnlag getGrunnlag(@SuppressWarnings("unused") Innt private void setupLogMdcFraKoblingReferanse(KoblingReferanse koblingReferanse) { var kobling = koblingTjeneste.hentFor(koblingReferanse); kobling.filter(k -> k.getSaksnummer() != null) - .ifPresent(k -> LoggUtil.setupLogMdc(k.getYtelseType(), kobling.get().getSaksnummer().getVerdi(), - koblingReferanse.getReferanse())); // legger til saksnummer i MDC + .ifPresent(k -> LoggUtil.setupLogMdc( + k.getYtelseType(), + kobling.get().getSaksnummer().getVerdi(), + koblingReferanse.getReferanse())); // legger til saksnummer i MDC } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) - public static class InntektArbeidYtelseGrunnlagRequestAbacDto extends InntektArbeidYtelseGrunnlagRequest implements AbacDto { + public static class InntektArbeidYtelseGrunnlagRequestAbacDto extends InntektArbeidYtelseGrunnlagRequest + implements AbacDto { @JsonCreator - public InntektArbeidYtelseGrunnlagRequestAbacDto(@JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { + public InntektArbeidYtelseGrunnlagRequestAbacDto( + @JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { super(person); } @@ -486,26 +605,36 @@ public InntektArbeidYtelseGrunnlagRequestAbacDto(@JsonProperty(value = "personId public AbacDataAttributter abacAttributter() { return lagAbacAttributter(getPerson()); } - } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) public static class KopierGrunnlagRequestAbac extends KopierGrunnlagRequest implements AbacDto { @JsonCreator - public KopierGrunnlagRequestAbac(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "nyReferanse", required = true) @Valid @NotNull UUID nyReferanse, - @JsonProperty(value = "gammelReferanse", required = true) @Valid @NotNull UUID gammelReferanse, - @JsonProperty(value = "ytelseType", required = true) @Valid @NotNull no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "dataset", required = false) @Valid Set dataset) { - - super(saksnummer, nyReferanse, gammelReferanse, ytelseType, aktør, dataset == null ? EnumSet.allOf(Dataset.class) : dataset); + public KopierGrunnlagRequestAbac( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "nyReferanse", required = true) @Valid @NotNull UUID nyReferanse, + @JsonProperty(value = "gammelReferanse", required = true) @Valid @NotNull UUID gammelReferanse, + @JsonProperty(value = "ytelseType", required = true) @Valid @NotNull + no.nav.abakus.iaygrunnlag.kodeverk.YtelseType ytelseType, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "dataset", required = false) @Valid Set dataset) { + + super( + saksnummer, + nyReferanse, + gammelReferanse, + ytelseType, + aktør, + dataset == null ? EnumSet.allOf(Dataset.class) : dataset); } @Override @@ -514,20 +643,25 @@ public AbacDataAttributter abacAttributter() { } } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public static class InntektArbeidYtelseGrunnlagAbacDto extends InntektArbeidYtelseGrunnlagDto implements AbacDto { @JsonCreator - public InntektArbeidYtelseGrunnlagAbacDto(@JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, - @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull OffsetDateTime grunnlagTidspunkt, - @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UUID grunnlagReferanse, - @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, - @JsonProperty(value = "ytelseType") YtelseType ytelseType) { + public InntektArbeidYtelseGrunnlagAbacDto( + @JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, + @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull + OffsetDateTime grunnlagTidspunkt, + @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UUID grunnlagReferanse, + @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, + @JsonProperty(value = "ytelseType") YtelseType ytelseType) { super(person, grunnlagTidspunkt, grunnlagReferanse, koblingReferanse, ytelseType); } @@ -537,21 +671,25 @@ public AbacDataAttributter abacAttributter() { } } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public static class OverstyrtInntektArbeidYtelseAbacDto extends OverstyrtInntektArbeidYtelseDto implements AbacDto { @JsonCreator - public OverstyrtInntektArbeidYtelseAbacDto(@JsonProperty(value = "personIdent", required = true) PersonIdent person, - @JsonProperty(value = "grunnlagReferanse") @Valid @NotNull UUID grunnlagReferanse, - @JsonProperty(value = "koblingReferanse") @Valid @NotNull UUID koblingReferanse, - @JsonProperty(value = "ytelseType") YtelseType ytelseType, - @JsonProperty(value = "arbeidsforholdInformasjon") ArbeidsforholdInformasjon arbeidsforholdInformasjon, - @JsonProperty(value = "overstyrt") InntektArbeidYtelseAggregatOverstyrtDto overstyrt) { + public OverstyrtInntektArbeidYtelseAbacDto( + @JsonProperty(value = "personIdent", required = true) PersonIdent person, + @JsonProperty(value = "grunnlagReferanse") @Valid @NotNull UUID grunnlagReferanse, + @JsonProperty(value = "koblingReferanse") @Valid @NotNull UUID koblingReferanse, + @JsonProperty(value = "ytelseType") YtelseType ytelseType, + @JsonProperty(value = "arbeidsforholdInformasjon") ArbeidsforholdInformasjon arbeidsforholdInformasjon, + @JsonProperty(value = "overstyrt") InntektArbeidYtelseAggregatOverstyrtDto overstyrt) { super(person, grunnlagReferanse, koblingReferanse, ytelseType, arbeidsforholdInformasjon, overstyrt); } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjeneste.java index f1808872f..ed81b03f9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjeneste.java @@ -1,16 +1,10 @@ package no.nav.foreldrepenger.abakus.iay.tjeneste; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.function.Function; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -28,16 +22,18 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.FnrPersonident; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.UuidDto; import no.nav.abakus.iaygrunnlag.inntektsmelding.v1.InntektsmeldingerDto; -import no.nav.abakus.iaygrunnlag.inntektsmelding.v1.RefusjonskravDatoerDto; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.request.InntektsmeldingerMottattRequest; import no.nav.abakus.iaygrunnlag.request.InntektsmeldingerRequest; -import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlag; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjonBuilder; import no.nav.foreldrepenger.abakus.domene.iay.inntektsmelding.Inntektsmelding; import no.nav.foreldrepenger.abakus.felles.LoggUtil; @@ -66,13 +62,13 @@ public class InntektsmeldingerRestTjeneste { private KoblingTjeneste koblingTjeneste; private InntektArbeidYtelseTjeneste iayTjeneste; - public InntektsmeldingerRestTjeneste() { - } // CDI Ctor + public InntektsmeldingerRestTjeneste() {} // CDI Ctor @Inject - public InntektsmeldingerRestTjeneste(InntektsmeldingerTjeneste imTjeneste, - KoblingTjeneste koblingTjeneste, - InntektArbeidYtelseTjeneste iayTjeneste) { + public InntektsmeldingerRestTjeneste( + InntektsmeldingerTjeneste imTjeneste, + KoblingTjeneste koblingTjeneste, + InntektArbeidYtelseTjeneste iayTjeneste) { this.imTjeneste = imTjeneste; this.koblingTjeneste = koblingTjeneste; this.iayTjeneste = iayTjeneste; @@ -91,8 +87,10 @@ public Response hentInntektsmeldingerForSak(@NotNull @Valid InntektsmeldingerReq var aktørId = new AktørId(spesifikasjon.getPerson().getIdent()); var saksnummer = new Saksnummer(spesifikasjon.getSaksnummer()); var ytelseType = spesifikasjon.getYtelseType(); - var inntektsmeldingerMap = iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, ytelseType); - InntektsmeldingerDto inntektsmeldingerDto = MapInntektsmeldinger.mapUnikeInntektsmeldingerFraGrunnlag(inntektsmeldingerMap); + var inntektsmeldingerMap = + iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, ytelseType); + InntektsmeldingerDto inntektsmeldingerDto = + MapInntektsmeldinger.mapUnikeInntektsmeldingerFraGrunnlag(inntektsmeldingerMap); final Response build = Response.ok(inntektsmeldingerDto).build(); return build; @@ -102,7 +100,9 @@ public Response hentInntektsmeldingerForSak(@NotNull @Valid InntektsmeldingerReq @Path("/hentRefusjonskravDatoer") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(description = "Hent refusjonskrav fra inntektsmeldinger for angitt søke spesifikasjon", tags = "inntektsmelding") + @Operation( + description = "Hent refusjonskrav fra inntektsmeldinger for angitt søke spesifikasjon", + tags = "inntektsmelding") @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) public Response hentRefusjonskravDatoForSak(@NotNull @Valid InntektsmeldingerRequestAbacDto spesifikasjon) { @@ -113,9 +113,13 @@ public Response hentRefusjonskravDatoForSak(@NotNull @Valid InntektsmeldingerReq var ytelseType = spesifikasjon.getYtelseType(); var kobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType); if (kobling.isEmpty()) { - response = Response.ok(new InntektsmeldingerDto().medInntektsmeldinger(Collections.emptyList())).build(); + response = Response.ok(new InntektsmeldingerDto().medInntektsmeldinger(Collections.emptyList())) + .build(); } else { - LoggUtil.setupLogMdc(spesifikasjon.getYtelseType(), spesifikasjon.getSaksnummer(), kobling.get().getKoblingReferanse().asString()); + LoggUtil.setupLogMdc( + spesifikasjon.getYtelseType(), + spesifikasjon.getSaksnummer(), + kobling.get().getKoblingReferanse().asString()); var inntektsmeldinger = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); var nyesteGrunnlag = iayTjeneste.hentAggregat(kobling.get().getKoblingReferanse()); var refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(inntektsmeldinger, nyesteGrunnlag); @@ -126,23 +130,43 @@ public Response hentRefusjonskravDatoForSak(@NotNull @Valid InntektsmeldingerReq @POST @Path("/motta") - @Operation(description = "Motta og lagre inntektsmelding(er)", tags = "inntektsmelding", responses = {@ApiResponse(description = "Oppdatert grunnlagreferanse", content = @Content(mediaType = "application/json", schema = @Schema(implementation = UuidDto.class)))}) + @Operation( + description = "Motta og lagre inntektsmelding(er)", + tags = "inntektsmelding", + responses = { + @ApiResponse( + description = "Oppdatert grunnlagreferanse", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = UuidDto.class))) + }) @BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public UuidDto lagreInntektsmeldinger(@NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid InntektsmeldingerMottattRequest mottattRequest) { + public UuidDto lagreInntektsmeldinger( + @NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid + InntektsmeldingerMottattRequest mottattRequest) { UuidDto resultat = null; - LoggUtil.setupLogMdc(mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse().toString()); + LoggUtil.setupLogMdc( + mottattRequest.getYtelseType(), + mottattRequest.getSaksnummer(), + mottattRequest.getKoblingReferanse().toString()); var aktørId = new AktørId(mottattRequest.getAktør().getIdent()); var koblingReferanse = new KoblingReferanse(mottattRequest.getKoblingReferanse()); var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(koblingReferanse)); - var kobling = koblingTjeneste.finnEllerOpprett(mottattRequest.getYtelseType(), koblingReferanse, aktørId, - new Saksnummer(mottattRequest.getSaksnummer())); + var kobling = koblingTjeneste.finnEllerOpprett( + mottattRequest.getYtelseType(), + koblingReferanse, + aktørId, + new Saksnummer(mottattRequest.getSaksnummer())); - var informasjonBuilder = ArbeidsforholdInformasjonBuilder.oppdatere(imTjeneste.hentArbeidsforholdInformasjonForKobling(koblingReferanse)); + var informasjonBuilder = ArbeidsforholdInformasjonBuilder.oppdatere( + imTjeneste.hentArbeidsforholdInformasjonForKobling(koblingReferanse)); - var inntektsmeldingerAggregat = new MapInntektsmeldinger.MapFraDto().map(informasjonBuilder, mottattRequest.getInntektsmeldinger()); + var inntektsmeldingerAggregat = + new MapInntektsmeldinger.MapFraDto().map(informasjonBuilder, mottattRequest.getInntektsmeldinger()); List inntektsmeldinger = inntektsmeldingerAggregat.getInntektsmeldinger(); valider(kobling.getYtelseType(), inntektsmeldinger); @@ -164,10 +188,13 @@ private void valider(YtelseType ytelseType, List inntektsmeldin case FORELDREPENGER: case SVANGERSKAPSPENGER: case UDEFINERT: - // har ikke validering på Kapittel 14 ytelser her ennå pga feil i Gosys kopiering ved journalføring på annen sak. + // har ikke validering på Kapittel 14 ytelser her ennå pga feil i Gosys kopiering ved journalføring på + // annen sak. return; default: - var feil = inntektsmeldinger.stream().filter(im -> im.getKanalreferanse() == null).findFirst(); + var feil = inntektsmeldinger.stream() + .filter(im -> im.getKanalreferanse() == null) + .findFirst(); if (feil.isPresent()) { throw new IllegalArgumentException("Inntektsmelding mangler kanalreferanse: " + feil); } @@ -176,27 +203,30 @@ private void valider(YtelseType ytelseType, List inntektsmeldin public static class AbacDataSupplier implements Function { - public AbacDataSupplier() { - } + public AbacDataSupplier() {} @Override public AbacDataAttributter apply(Object obj) { var req = (InntektsmeldingerMottattRequest) obj; - return AbacDataAttributter.opprett().leggTil(StandardAbacAttributtType.AKTØR_ID, req.getAktør().getIdent()); + return AbacDataAttributter.opprett() + .leggTil(StandardAbacAttributtType.AKTØR_ID, req.getAktør().getIdent()); } - } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) public static class InntektsmeldingerRequestAbacDto extends InntektsmeldingerRequest implements AbacDto { @JsonCreator - public InntektsmeldingerRequestAbacDto(@JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { + public InntektsmeldingerRequestAbacDto( + @JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { super(person); } @@ -204,12 +234,14 @@ public InntektsmeldingerRequestAbacDto(@JsonProperty(value = "personIdent", requ public AbacDataAttributter abacAttributter() { final var abacDataAttributter = AbacDataAttributter.opprett(); if (FnrPersonident.IDENT_TYPE.equals(getPerson().getIdentType())) { - return abacDataAttributter.leggTil(StandardAbacAttributtType.FNR, getPerson().getIdent()); + return abacDataAttributter.leggTil( + StandardAbacAttributtType.FNR, getPerson().getIdent()); } else if (AktørIdPersonident.IDENT_TYPE.equals(getPerson().getIdentType())) { - return abacDataAttributter.leggTil(StandardAbacAttributtType.AKTØR_ID, getPerson().getIdent()); + return abacDataAttributter.leggTil( + StandardAbacAttributtType.AKTØR_ID, getPerson().getIdent()); } - throw new java.lang.IllegalArgumentException("Ukjent identtype: " + getPerson().getIdentType()); + throw new java.lang.IllegalArgumentException( + "Ukjent identtype: " + getPerson().getIdentType()); } - } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/OppgittOpptjeningRestTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/OppgittOpptjeningRestTjeneste.java index cdd224034..54d790f25 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/OppgittOpptjeningRestTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/OppgittOpptjeningRestTjeneste.java @@ -1,9 +1,5 @@ package no.nav.foreldrepenger.abakus.iay.tjeneste; - -import java.util.Optional; -import java.util.function.Function; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -18,6 +14,8 @@ import jakarta.ws.rs.POST; import jakarta.ws.rs.Path; import jakarta.ws.rs.core.Response; +import java.util.Optional; +import java.util.function.Function; import no.nav.abakus.iaygrunnlag.UuidDto; import no.nav.abakus.iaygrunnlag.request.OppgittOpptjeningMottattRequest; import no.nav.foreldrepenger.abakus.domene.iay.GrunnlagReferanse; @@ -45,26 +43,41 @@ public class OppgittOpptjeningRestTjeneste { private KoblingTjeneste koblingTjeneste; private OppgittOpptjeningTjeneste oppgittOpptjeningTjeneste; - public OppgittOpptjeningRestTjeneste() { - } // CDI Ctor + public OppgittOpptjeningRestTjeneste() {} // CDI Ctor @Inject - public OppgittOpptjeningRestTjeneste(KoblingTjeneste koblingTjeneste, OppgittOpptjeningTjeneste oppgittOpptjeningTjeneste) { + public OppgittOpptjeningRestTjeneste( + KoblingTjeneste koblingTjeneste, OppgittOpptjeningTjeneste oppgittOpptjeningTjeneste) { this.koblingTjeneste = koblingTjeneste; this.oppgittOpptjeningTjeneste = oppgittOpptjeningTjeneste; } @POST @Path("/motta") - @Operation(description = "Lagrer ned mottatt oppgitt opptjening", tags = "oppgitt opptjening", responses = {@ApiResponse(description = "Oppdatert grunnlagreferanse", content = @Content(mediaType = "application/json", schema = @Schema(implementation = UuidDto.class)))}) + @Operation( + description = "Lagrer ned mottatt oppgitt opptjening", + tags = "oppgitt opptjening", + responses = { + @ApiResponse( + description = "Oppdatert grunnlagreferanse", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = UuidDto.class))) + }) @BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) - public Response lagreOppgittOpptjening(@NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid OppgittOpptjeningMottattRequest mottattRequest) { - LoggUtil.setupLogMdc(mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); + public Response lagreOppgittOpptjening( + @NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid + OppgittOpptjeningMottattRequest mottattRequest) { + LoggUtil.setupLogMdc( + mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); if (mottattRequest.harOppgittJournalpostId() || mottattRequest.harOppgittInnsendingstidspunkt()) { - return Response.status(Response.Status.BAD_REQUEST.getStatusCode(), - "v1/motta skal ikke ha journalpostId eller innsendingstidspunkt. Skal du egentlig bruke /v2/motta ?").build(); + return Response.status( + Response.Status.BAD_REQUEST.getStatusCode(), + "v1/motta skal ikke ha journalpostId eller innsendingstidspunkt. Skal du egentlig bruke /v2/motta ?") + .build(); } Response response; @@ -72,8 +85,11 @@ public Response lagreOppgittOpptjening(@NotNull @TilpassetAbacAttributt(supplier var koblingReferanse = new KoblingReferanse(mottattRequest.getKoblingReferanse()); var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(koblingReferanse)); var aktørId = new AktørId(mottattRequest.getAktør().getIdent()); - var kobling = koblingTjeneste.finnEllerOpprett(mottattRequest.getYtelseType(), koblingReferanse, aktørId, - new Saksnummer(mottattRequest.getSaksnummer())); + var kobling = koblingTjeneste.finnEllerOpprett( + mottattRequest.getYtelseType(), + koblingReferanse, + aktørId, + new Saksnummer(mottattRequest.getSaksnummer())); OppgittOpptjeningBuilder builder = new MapOppgittOpptjening().mapFraDto(mottattRequest.getOppgittOpptjening()); GrunnlagReferanse grunnlagReferanse = oppgittOpptjeningTjeneste.lagre(koblingReferanse, builder); @@ -82,7 +98,8 @@ public Response lagreOppgittOpptjening(@NotNull @TilpassetAbacAttributt(supplier koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); if (grunnlagReferanse != null) { - response = Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); + response = + Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); } else { response = Response.noContent().build(); } @@ -92,17 +109,33 @@ public Response lagreOppgittOpptjening(@NotNull @TilpassetAbacAttributt(supplier @POST @Path("/overstyr") - @Operation(description = "Lagrer ned mottatt oppgitt opptjening", tags = "oppgitt opptjening", responses = {@ApiResponse(description = "Oppdatert grunnlagreferanse", content = @Content(mediaType = "application/json", schema = @Schema(implementation = UuidDto.class)))}) + @Operation( + description = "Lagrer ned mottatt oppgitt opptjening", + tags = "oppgitt opptjening", + responses = { + @ApiResponse( + description = "Oppdatert grunnlagreferanse", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = UuidDto.class))) + }) @BeskyttetRessurs(actionType = ActionType.UPDATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) - public Response lagreOverstyrtOppgittOpptjening(@NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid OppgittOpptjeningMottattRequest mottattRequest) { + public Response lagreOverstyrtOppgittOpptjening( + @NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid + OppgittOpptjeningMottattRequest mottattRequest) { Response response; - LoggUtil.setupLogMdc(mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); + LoggUtil.setupLogMdc( + mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); var koblingReferanse = new KoblingReferanse(mottattRequest.getKoblingReferanse()); var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(koblingReferanse)); var aktørId = new AktørId(mottattRequest.getAktør().getIdent()); - var kobling = koblingTjeneste.finnEllerOpprett(mottattRequest.getYtelseType(), koblingReferanse, aktørId, - new Saksnummer(mottattRequest.getSaksnummer())); + var kobling = koblingTjeneste.finnEllerOpprett( + mottattRequest.getYtelseType(), + koblingReferanse, + aktørId, + new Saksnummer(mottattRequest.getSaksnummer())); OppgittOpptjeningBuilder builder = new MapOppgittOpptjening().mapFraDto(mottattRequest.getOppgittOpptjening()); GrunnlagReferanse grunnlagReferanse = oppgittOpptjeningTjeneste.lagreOverstyring(koblingReferanse, builder); @@ -111,7 +144,8 @@ public Response lagreOverstyrtOppgittOpptjening(@NotNull @TilpassetAbacAttributt koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); if (grunnlagReferanse != null) { - response = Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); + response = + Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); } else { response = Response.noContent().build(); } @@ -121,26 +155,44 @@ public Response lagreOverstyrtOppgittOpptjening(@NotNull @TilpassetAbacAttributt @POST @Path("/motta-og-nullstill-overstyring") - @Operation(description = "Lagrer ned mottatt oppgitt opptjening og fjerner overstyring om den finnes", tags = "oppgitt opptjening", responses = {@ApiResponse(description = "Oppdatert grunnlagreferanse", content = @Content(mediaType = "application/json", schema = @Schema(implementation = UuidDto.class)))}) + @Operation( + description = "Lagrer ned mottatt oppgitt opptjening og fjerner overstyring om den finnes", + tags = "oppgitt opptjening", + responses = { + @ApiResponse( + description = "Oppdatert grunnlagreferanse", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = UuidDto.class))) + }) @BeskyttetRessurs(actionType = ActionType.UPDATE, resourceType = ResourceType.FAGSAK) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) - public Response lagreOppgittOpptjeningOgNullstillOverstyring(@NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid OppgittOpptjeningMottattRequest mottattRequest) { + public Response lagreOppgittOpptjeningOgNullstillOverstyring( + @NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid + OppgittOpptjeningMottattRequest mottattRequest) { Response response; - LoggUtil.setupLogMdc(mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); + LoggUtil.setupLogMdc( + mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse()); var koblingReferanse = new KoblingReferanse(mottattRequest.getKoblingReferanse()); var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(koblingReferanse)); var aktørId = new AktørId(mottattRequest.getAktør().getIdent()); - var kobling = koblingTjeneste.finnEllerOpprett(mottattRequest.getYtelseType(), koblingReferanse, aktørId, - new Saksnummer(mottattRequest.getSaksnummer())); + var kobling = koblingTjeneste.finnEllerOpprett( + mottattRequest.getYtelseType(), + koblingReferanse, + aktørId, + new Saksnummer(mottattRequest.getSaksnummer())); OppgittOpptjeningBuilder builder = new MapOppgittOpptjening().mapFraDto(mottattRequest.getOppgittOpptjening()); - GrunnlagReferanse grunnlagReferanse = oppgittOpptjeningTjeneste.lagreOgNullstillOverstyring(koblingReferanse, builder); + GrunnlagReferanse grunnlagReferanse = + oppgittOpptjeningTjeneste.lagreOgNullstillOverstyring(koblingReferanse, builder); koblingTjeneste.lagre(kobling); koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås)); if (grunnlagReferanse != null) { - response = Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); + response = + Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build(); } else { response = Response.noContent().build(); } @@ -153,7 +205,8 @@ public static class AbacDataSupplier implements Function mapFor(AktørId aktørId, LocalDate fom, LocalDate tom) { var ident = aktørConsumer.hentIdentForAktør(aktørId).orElseThrow(); var intervall = tom == null ? IntervallEntitet.fraOgMed(fom) : IntervallEntitet.fraOgMedTilOgMed(fom, tom); - Map> arbeidsforhold = arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(ident, - aktørId, intervall); + Map> arbeidsforhold = + arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(ident, aktørId, intervall); - return arbeidsforhold.entrySet().stream().map(this::mapTilArbeidsforhold).collect(Collectors.toList()); + return arbeidsforhold.entrySet().stream() + .map(this::mapTilArbeidsforhold) + .collect(Collectors.toList()); } public List mapArbForholdOgPermisjoner(AktørId aktørId, LocalDate fom, LocalDate tom) { var ident = aktørConsumer.hentIdentForAktør(aktørId).orElseThrow(); var intervall = tom == null ? IntervallEntitet.fraOgMed(fom) : IntervallEntitet.fraOgMedTilOgMed(fom, tom); - Map> arbeidsforhold = arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(ident, - aktørId, intervall); + Map> arbeidsforhold = + arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(ident, aktørId, intervall); - return arbeidsforhold.entrySet().stream().map(this::mapTilArbeidsforholdMedPermisjoner).collect(Collectors.toList()); + return arbeidsforhold.entrySet().stream() + .map(this::mapTilArbeidsforholdMedPermisjoner) + .collect(Collectors.toList()); } - private ArbeidsforholdDto mapTilArbeidsforholdMedPermisjoner(Map.Entry> arbeidsforholdEntry) { + private ArbeidsforholdDto mapTilArbeidsforholdMedPermisjoner( + Map.Entry> arbeidsforholdEntry) { ArbeidsforholdIdentifikator key = arbeidsforholdEntry.getKey(); Aktør arbeidsgiver = mapArbeidsgiver(key.getArbeidsgiver()); ArbeidType arbeidType = ArbeidType.finnForKodeverkEiersKode(key.getType()); @@ -84,45 +85,58 @@ private ArbeidsforholdDto mapTilArbeidsforholdMedPermisjoner(Map.Entry tilPermisjoner(List arbeidsforhold) { - return arbeidsforhold.stream().map(this::mapPermisjoner).flatMap(Collection::stream).toList(); + return arbeidsforhold.stream() + .map(this::mapPermisjoner) + .flatMap(Collection::stream) + .toList(); } private List tilArbeidsavtaler(List arbeidsforhold) { - return arbeidsforhold.stream().map(this::mapArbeidsavtaler).flatMap(Collection::stream).toList(); + return arbeidsforhold.stream() + .map(this::mapArbeidsavtaler) + .flatMap(Collection::stream) + .toList(); } private List mapArbeidsavtaler(Arbeidsforhold arbeidsforhold) { var ansettelse = new LocalDateInterval(arbeidsforhold.getArbeidFom(), arbeidsforhold.getArbeidTom()); var arbeidsavtalerTidlinje = arbeidsforhold.getArbeidsavtaler().stream() - .filter(arbeidsavtale -> !arbeidsavtale.getErAnsettelsesPerioden()) - .filter(arbeidsavtale -> arbeidsavtale.getStillingsprosent() != null) - .map(a -> new LocalDateSegment<>(safeFom(a.getArbeidsavtaleFom()), safeTom(a.getArbeidsavtaleTom()), a.getStillingsprosent())) - .collect(Collectors.collectingAndThen(Collectors.toList(), LocalDateTimeline::new)); + .filter(arbeidsavtale -> !arbeidsavtale.getErAnsettelsesPerioden()) + .filter(arbeidsavtale -> arbeidsavtale.getStillingsprosent() != null) + .map(a -> new LocalDateSegment<>( + safeFom(a.getArbeidsavtaleFom()), safeTom(a.getArbeidsavtaleTom()), a.getStillingsprosent())) + .collect(Collectors.collectingAndThen(Collectors.toList(), LocalDateTimeline::new)); return arbeidsavtalerTidlinje.intersection(ansettelse).stream() - .map(s -> new ArbeidsavtaleDto(new Periode(s.getFom(), s.getTom()), s.getValue())) - .toList(); + .map(s -> new ArbeidsavtaleDto(new Periode(s.getFom(), s.getTom()), s.getValue())) + .toList(); } private List mapPermisjoner(Arbeidsforhold arbeidsforhold) { var ansettelse = new LocalDateInterval(arbeidsforhold.getArbeidFom(), arbeidsforhold.getArbeidTom()); var permisjonTidslinje = arbeidsforhold.getPermisjoner().stream() - .filter(permisjon -> permisjon.getPermisjonsprosent() != null) - .map(p -> new LocalDateSegment<>(safeFom(p.getPermisjonFom()), safeTom(p.getPermisjonTom()), - List.of(new PermisjonTidslinjeObjekt(p.getPermisjonsprosent(), p.getPermisjonsÅrsak())))) - .collect(Collectors.collectingAndThen(Collectors.toList(), datoSegmenter -> new LocalDateTimeline<>(datoSegmenter, - StandardCombinators::concatLists))); + .filter(permisjon -> permisjon.getPermisjonsprosent() != null) + .map(p -> new LocalDateSegment<>( + safeFom(p.getPermisjonFom()), + safeTom(p.getPermisjonTom()), + List.of(new PermisjonTidslinjeObjekt(p.getPermisjonsprosent(), p.getPermisjonsÅrsak())))) + .collect(Collectors.collectingAndThen( + Collectors.toList(), + datoSegmenter -> new LocalDateTimeline<>(datoSegmenter, StandardCombinators::concatLists))); - return permisjonTidslinje.intersection(ansettelse) - .stream() - .map(ArbeidsforholdDtoTjeneste::tilPermisjonDto) - .flatMap(Collection::stream) - .toList(); + return permisjonTidslinje.intersection(ansettelse).stream() + .map(ArbeidsforholdDtoTjeneste::tilPermisjonDto) + .flatMap(Collection::stream) + .toList(); } private static List tilPermisjonDto(LocalDateSegment> s) { - return s.getValue().stream().map(permisjon -> new PermisjonDto(new Periode(s.getFom(), s.getTom()), finnForKodeverkEiersKode(permisjon.permisjonsÅrsak())) - .medProsentsats(permisjon.permisjonsprosent())).toList(); + return s.getValue().stream() + .map(permisjon -> new PermisjonDto( + new Periode(s.getFom(), s.getTom()), + finnForKodeverkEiersKode(permisjon.permisjonsÅrsak())) + .medProsentsats(permisjon.permisjonsprosent())) + .toList(); } private static LocalDate safeFom(LocalDate fom) { @@ -130,12 +144,13 @@ private static LocalDate safeFom(LocalDate fom) { } private static LocalDate safeTom(LocalDate tom) { - return tom!= null ? tom: Tid.TIDENES_ENDE; + return tom != null ? tom : Tid.TIDENES_ENDE; } private record PermisjonTidslinjeObjekt(BigDecimal permisjonsprosent, String permisjonsÅrsak) {} - private ArbeidsforholdDto mapTilArbeidsforhold(Map.Entry> arbeidsforholdEntry) { + private ArbeidsforholdDto mapTilArbeidsforhold( + Map.Entry> arbeidsforholdEntry) { ArbeidsforholdIdentifikator key = arbeidsforholdEntry.getKey(); Aktør arbeidsgiver = mapArbeidsgiver(key.getArbeidsgiver()); ArbeidType arbeidType = ArbeidType.finnForKodeverkEiersKode(key.getType()); @@ -146,11 +161,15 @@ private ArbeidsforholdDto mapTilArbeidsforhold(Map.Entry mapAnsettelsesPerioder(List arbeidsforhold) { - return arbeidsforhold.stream().map(af -> new Periode(af.getArbeidFom(), af.getArbeidTom())).collect(Collectors.toList()); + return arbeidsforhold.stream() + .map(af -> new Periode(af.getArbeidFom(), af.getArbeidTom())) + .collect(Collectors.toList()); } private ArbeidsforholdRefDto mapArbeidsforholdId(EksternArbeidsforholdRef arbeidsforholdId) { - if (arbeidsforholdId == null || arbeidsforholdId.getReferanse() == null || arbeidsforholdId.getReferanse().isEmpty()) { + if (arbeidsforholdId == null + || arbeidsforholdId.getReferanse() == null + || arbeidsforholdId.getReferanse().isEmpty()) { return null; } return new ArbeidsforholdRefDto(null, arbeidsforholdId.getReferanse()); @@ -165,7 +184,9 @@ private ArbeidsforholdRefDto mapArbeidsforholdId(EksternArbeidsforholdRef arbeid throw new IllegalArgumentException("Utvikler feil: ArbeidsgiverEntitet av ukjent type."); } - public ArbeidsforholdReferanseDto mapArbeidsforhold(Aktør arbeidsgiver, String eksternReferanse, String internReferanse) { - return new ArbeidsforholdReferanseDto(arbeidsgiver, new ArbeidsforholdRefDto(internReferanse, eksternReferanse)); + public ArbeidsforholdReferanseDto mapArbeidsforhold( + Aktør arbeidsgiver, String eksternReferanse, String internReferanse) { + return new ArbeidsforholdReferanseDto( + arbeidsgiver, new ArbeidsforholdRefDto(internReferanse, eksternReferanse)); } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYFraDtoMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYFraDtoMapper.java index e73026d1b..2469a4482 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYFraDtoMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYFraDtoMapper.java @@ -3,7 +3,6 @@ import java.time.ZoneId; import java.util.Objects; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.ArbeidsforholdInformasjon; import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseAggregatOverstyrtDto; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseAggregat; @@ -27,32 +26,39 @@ public IAYFraDtoMapper(InntektArbeidYtelseTjeneste tjeneste, AktørId aktørId, } /** - * Mapper oppdaterte data til grunnlag. Kan oppdatere tidligere grunnlag eller siste grunnlag på en kobling. Merk at det ikke nødvendigvis - * er tillatt å oppdatere tidliger grunnlag alltid (eks. OppgittOpptjening kan kun settes en gang). + * Mapper oppdaterte data til grunnlag. Kan oppdatere tidligere grunnlag eller siste grunnlag på en kobling. Merk at + * det ikke nødvendigvis er tillatt å oppdatere tidliger grunnlag alltid (eks. OppgittOpptjening kan kun settes en + * gang). */ - public void mapOverstyringerTilGrunnlagBuilder(InntektArbeidYtelseAggregatOverstyrtDto overstyrt, - ArbeidsforholdInformasjon arbeidsforholdInformasjon, - InntektArbeidYtelseGrunnlagBuilder builder) { - var arbeidsforholdInformasjonBuilder = new MapArbeidsforholdInformasjon.MapFraDto(builder).map(arbeidsforholdInformasjon); + public void mapOverstyringerTilGrunnlagBuilder( + InntektArbeidYtelseAggregatOverstyrtDto overstyrt, + ArbeidsforholdInformasjon arbeidsforholdInformasjon, + InntektArbeidYtelseGrunnlagBuilder builder) { + var arbeidsforholdInformasjonBuilder = + new MapArbeidsforholdInformasjon.MapFraDto(builder).map(arbeidsforholdInformasjon); builder.medInformasjon(arbeidsforholdInformasjonBuilder.build()); if (overstyrt != null) { - Optional aggregatEntitet = iayTjeneste.hentIAYAggregatFor(koblingReferanse, overstyrt.getEksternReferanse()); + Optional aggregatEntitet = + iayTjeneste.hentIAYAggregatFor(koblingReferanse, overstyrt.getEksternReferanse()); if (aggregatEntitet.isPresent()) { - var aggregatBuilder = InntektArbeidYtelseAggregatBuilder.pekeTil(aggregatEntitet.get(), VersjonType.SAKSBEHANDLET); + var aggregatBuilder = + InntektArbeidYtelseAggregatBuilder.pekeTil(aggregatEntitet.get(), VersjonType.SAKSBEHANDLET); builder.medSaksbehandlet(aggregatBuilder); } else { - var tidspunkt = overstyrt.getOpprettetTidspunkt().atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime(); - var saksbehandlerOverstyringer = iayTjeneste.opprettBuilderForSaksbehandlet(koblingReferanse, overstyrt.getEksternReferanse(), - tidspunkt); - var overstyrtAktørArbeid = new MapAktørArbeid.MapFraDto(aktørId, saksbehandlerOverstyringer).map(overstyrt.getArbeid()); + var tidspunkt = overstyrt + .getOpprettetTidspunkt() + .atZoneSameInstant(ZoneId.systemDefault()) + .toLocalDateTime(); + var saksbehandlerOverstyringer = iayTjeneste.opprettBuilderForSaksbehandlet( + koblingReferanse, overstyrt.getEksternReferanse(), tidspunkt); + var overstyrtAktørArbeid = + new MapAktørArbeid.MapFraDto(aktørId, saksbehandlerOverstyringer).map(overstyrt.getArbeid()); overstyrtAktørArbeid.forEach(saksbehandlerOverstyringer::leggTilAktørArbeid); builder.medSaksbehandlet(saksbehandlerOverstyringer); } } else { - builder.medSaksbehandlet(null); // fjerner saksbehandlet versjon + builder.medSaksbehandlet(null); // fjerner saksbehandlet versjon } - } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYTilDtoMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYTilDtoMapper.java index 38b0092e5..1532eedce 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYTilDtoMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/IAYTilDtoMapper.java @@ -3,7 +3,6 @@ import java.time.ZoneId; import java.util.Set; import java.util.UUID; - import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.request.Dataset; @@ -30,19 +29,28 @@ public IAYTilDtoMapper(AktørId aktørId, GrunnlagReferanse grunnlagReferanse, K this.koblingReferanse = koblingReferanse; } - public InntektArbeidYtelseGrunnlagDto mapTilDto(InntektArbeidYtelseGrunnlag grunnlag, YtelseType ytelseType, Set dataset) { + public InntektArbeidYtelseGrunnlagDto mapTilDto( + InntektArbeidYtelseGrunnlag grunnlag, YtelseType ytelseType, Set dataset) { if (grunnlag == null) { return null; } - var grunnlagTidspunkt = grunnlag.getOpprettetTidspunkt().atZone(ZoneId.systemDefault()).toOffsetDateTime(); - UUID denneGrunnlagRef = grunnlagReferanse != null ? grunnlagReferanse.getReferanse() : grunnlag.getGrunnlagReferanse().getReferanse(); - var dto = new InntektArbeidYtelseGrunnlagDto(new AktørIdPersonident(aktørId.getId()), grunnlagTidspunkt, denneGrunnlagRef, - koblingReferanse.getReferanse(), ytelseType); + var grunnlagTidspunkt = + grunnlag.getOpprettetTidspunkt().atZone(ZoneId.systemDefault()).toOffsetDateTime(); + UUID denneGrunnlagRef = grunnlagReferanse != null + ? grunnlagReferanse.getReferanse() + : grunnlag.getGrunnlagReferanse().getReferanse(); + var dto = new InntektArbeidYtelseGrunnlagDto( + new AktørIdPersonident(aktørId.getId()), + grunnlagTidspunkt, + denneGrunnlagRef, + koblingReferanse.getReferanse(), + ytelseType); // Selektiv mapping avhengig av hva som er forspurt av data if (dataset.contains(Dataset.REGISTER)) { - grunnlag.getRegisterVersjon().ifPresent(a -> mapRegisterOpplysninger(a, getArbeidsforholdInformasjon(grunnlag), dto)); + grunnlag.getRegisterVersjon() + .ifPresent(a -> mapRegisterOpplysninger(a, getArbeidsforholdInformasjon(grunnlag), dto)); } if (dataset.contains(Dataset.OVERSTYRT)) { @@ -50,7 +58,9 @@ public InntektArbeidYtelseGrunnlagDto mapTilDto(InntektArbeidYtelseGrunnlag grun var arbeidsforholdInformasjon = mapArbeidsforholdInformasjon(denneGrunnlagRef, ai); dto.medArbeidsforholdInformasjon(arbeidsforholdInformasjon); }); - grunnlag.getSaksbehandletVersjon().ifPresent(a -> mapSaksbehandlerOverstyrteOpplysninger(a, getArbeidsforholdInformasjon(grunnlag), dto)); + grunnlag.getSaksbehandletVersjon() + .ifPresent(a -> + mapSaksbehandlerOverstyrteOpplysninger(a, getArbeidsforholdInformasjon(grunnlag), dto)); } if (dataset.contains(Dataset.INNTEKTSMELDING)) { @@ -77,33 +87,37 @@ public InntektArbeidYtelseGrunnlagDto mapTilDto(InntektArbeidYtelseGrunnlag grun return dto; } - public no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.ArbeidsforholdInformasjon mapArbeidsforholdInformasjon(UUID grunnlagRef, - ArbeidsforholdInformasjon ai) { + public no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.ArbeidsforholdInformasjon mapArbeidsforholdInformasjon( + UUID grunnlagRef, ArbeidsforholdInformasjon ai) { return new MapArbeidsforholdInformasjon.MapTilDto().map(grunnlagRef, ai); } private ArbeidsforholdInformasjon getArbeidsforholdInformasjon(InntektArbeidYtelseGrunnlag grunnlag) { return grunnlag.getArbeidsforholdInformasjon() - .orElseThrow( - () -> new IllegalStateException("Mangler ArbeidsforholdInformasjon i grunnlag (påkrevd her): " + grunnlag.getGrunnlagReferanse())); + .orElseThrow( + () -> new IllegalStateException("Mangler ArbeidsforholdInformasjon i grunnlag (påkrevd her): " + + grunnlag.getGrunnlagReferanse())); } - private void mapRegisterOpplysninger(InntektArbeidYtelseAggregat aggregat, - ArbeidsforholdInformasjon arbeidsforholdInfo, - InntektArbeidYtelseGrunnlagDto dto) { + private void mapRegisterOpplysninger( + InntektArbeidYtelseAggregat aggregat, + ArbeidsforholdInformasjon arbeidsforholdInfo, + InntektArbeidYtelseGrunnlagDto dto) { var tidspunkt = aggregat.getOpprettetTidspunkt(); var arbeid = new MapAktørArbeid.MapTilDto(arbeidsforholdInfo).map(aggregat.getAktørArbeid()); var inntekter = new MapTilDto().map(aggregat.getAktørInntekt()); var ytelser = new MapAktørYtelse.MapTilDto().map(aggregat.getAktørYtelse()); - dto.medRegister(new InntektArbeidYtelseAggregatRegisterDto(tidspunkt, aggregat.getEksternReferanse()).medArbeid(arbeid) - .medInntekt(inntekter) - .medYtelse(ytelser)); + dto.medRegister(new InntektArbeidYtelseAggregatRegisterDto(tidspunkt, aggregat.getEksternReferanse()) + .medArbeid(arbeid) + .medInntekt(inntekter) + .medYtelse(ytelser)); } - private void mapSaksbehandlerOverstyrteOpplysninger(InntektArbeidYtelseAggregat aggregat, - ArbeidsforholdInformasjon arbeidsforholdInfo, - InntektArbeidYtelseGrunnlagDto dto) { + private void mapSaksbehandlerOverstyrteOpplysninger( + InntektArbeidYtelseAggregat aggregat, + ArbeidsforholdInformasjon arbeidsforholdInfo, + InntektArbeidYtelseGrunnlagDto dto) { var tidspunkt = aggregat.getOpprettetTidspunkt(); var aktørArbeid = aggregat.getAktørArbeid(); var arbeid = new MapAktørArbeid.MapTilDto(arbeidsforholdInfo).map(aktørArbeid); @@ -112,5 +126,4 @@ private void mapSaksbehandlerOverstyrteOpplysninger(InntektArbeidYtelseAggregat dto.medOverstyrt(overstyrt); } - } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rArbeid.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rArbeid.java" index 91bc7cbdd..67ff1790b 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rArbeid.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rArbeid.java" @@ -7,7 +7,6 @@ import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; @@ -38,17 +37,23 @@ public class MapAktørArbeid { private static final Comparator COMP_YRKESAKTIVITET = Comparator.comparing( - (YrkesaktivitetDto dto) -> dto.getArbeidsgiver().map(Aktør::getIdent).orElse(null), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getArbeidsforholdId() == null ? null : dto.getArbeidsforholdId().getAbakusReferanse(), - Comparator.nullsFirst(Comparator.naturalOrder())); + (YrkesaktivitetDto dto) -> + dto.getArbeidsgiver().map(Aktør::getIdent).orElse(null), + Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getArbeidsforholdId() == null + ? null + : dto.getArbeidsforholdId().getAbakusReferanse(), + Comparator.nullsFirst(Comparator.naturalOrder())); private static final Comparator COMP_AKTIVITETSAVTALE = Comparator.comparing( - (AktivitetsAvtaleDto dto) -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + (AktivitetsAvtaleDto dto) -> dto.getPeriode().getFom(), + Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); - private static final Comparator COMP_PERMISJON = Comparator.comparing((PermisjonDto dto) -> dto.getPeriode().getFom(), - Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_PERMISJON = Comparator.comparing( + (PermisjonDto dto) -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); static class MapFraDto { @@ -71,12 +76,15 @@ static class MapFraDto { private AktørArbeidBuilder mapAktørArbeid(ArbeidDto dto) { var builder = registerData.getAktørArbeidBuilder(tilAktørId(dto.getPerson())); - dto.getYrkesaktiviteter().forEach(yrkesaktivitetDto -> builder.leggTilYrkesaktivitet(mapYrkesaktivitet(yrkesaktivitetDto, builder))); + dto.getYrkesaktiviteter() + .forEach(yrkesaktivitetDto -> + builder.leggTilYrkesaktivitet(mapYrkesaktivitet(yrkesaktivitetDto, builder))); return builder; } /** - * Returnerer person sin aktørId. Denne trenger ikke være samme som søkers aktørid men kan f.eks. være annen part i en sak. + * Returnerer person sin aktørId. Denne trenger ikke være samme som søkers aktørid men kan f.eks. være annen + * part i en sak. */ private AktørId tilAktørId(PersonIdent person) { if (!(person instanceof AktørIdPersonident)) { @@ -87,52 +95,57 @@ static class MapFraDto { private YrkesaktivitetBuilder mapYrkesaktivitet(YrkesaktivitetDto dto, AktørArbeidBuilder builder) { var arbeidsgiver = dto.getArbeidsgiver().map(this::mapArbeidsgiver).orElse(null); - var internArbeidsforholdRef = arbeidsgiver == null ? null : mapArbeidsforholdRef(arbeidsgiver, dto.getArbeidsforholdId()); + var internArbeidsforholdRef = + arbeidsgiver == null ? null : mapArbeidsforholdRef(arbeidsgiver, dto.getArbeidsforholdId()); YrkesaktivitetBuilder yrkesaktivitetBuilder; if (arbeidsgiver == null) { yrkesaktivitetBuilder = builder.getYrkesaktivitetBuilderForType(dto.getType()); } else { - Opptjeningsnøkkel nøkkel = Opptjeningsnøkkel.forArbeidsforholdIdMedArbeidgiver(internArbeidsforholdRef, arbeidsgiver); + Opptjeningsnøkkel nøkkel = + Opptjeningsnøkkel.forArbeidsforholdIdMedArbeidgiver(internArbeidsforholdRef, arbeidsgiver); yrkesaktivitetBuilder = builder.getYrkesaktivitetBuilderForNøkkelAvType(nøkkel, dto.getType()); } - yrkesaktivitetBuilder.medArbeidsforholdId(internArbeidsforholdRef) - .medArbeidsgiver(arbeidsgiver) - .medArbeidsgiverNavn(dto.getNavnArbeidsgiverUtland()) - .medArbeidType(dto.getType()); + yrkesaktivitetBuilder + .medArbeidsforholdId(internArbeidsforholdRef) + .medArbeidsgiver(arbeidsgiver) + .medArbeidsgiverNavn(dto.getNavnArbeidsgiverUtland()) + .medArbeidType(dto.getType()); yrkesaktivitetBuilder.tilbakestillAvtaler(); dto.getAktivitetsAvtaler() - .forEach(aktivitetsAvtaleDto -> yrkesaktivitetBuilder.leggTilAktivitetsAvtale(mapAktivitetsAvtale(aktivitetsAvtaleDto))); + .forEach(aktivitetsAvtaleDto -> + yrkesaktivitetBuilder.leggTilAktivitetsAvtale(mapAktivitetsAvtale(aktivitetsAvtaleDto))); yrkesaktivitetBuilder.tilbakestillPermisjon(); dto.getPermisjoner() - .forEach( - permisjonDto -> yrkesaktivitetBuilder.leggTilPermisjon(mapPermisjon(permisjonDto, yrkesaktivitetBuilder.getPermisjonBuilder()))); + .forEach(permisjonDto -> yrkesaktivitetBuilder.leggTilPermisjon( + mapPermisjon(permisjonDto, yrkesaktivitetBuilder.getPermisjonBuilder()))); return yrkesaktivitetBuilder; } private Permisjon mapPermisjon(PermisjonDto dto, PermisjonBuilder permisjonBuilder) { - return permisjonBuilder.medPeriode(dto.getPeriode().getFom(), dto.getPeriode().getTom()) - .medPermisjonsbeskrivelseType(dto.getType()) - .medProsentsats(dto.getProsentsats()) - .build(); + return permisjonBuilder + .medPeriode(dto.getPeriode().getFom(), dto.getPeriode().getTom()) + .medPermisjonsbeskrivelseType(dto.getType()) + .medProsentsats(dto.getProsentsats()) + .build(); } private AktivitetsAvtaleBuilder mapAktivitetsAvtale(AktivitetsAvtaleDto dto) { return AktivitetsAvtaleBuilder.ny() - .medBeskrivelse(dto.getBeskrivelse()) - .medPeriode(mapPeriode(dto.getPeriode())) - .medProsentsats(dto.getStillingsprosent()) - .medSisteLønnsendringsdato(dto.getSistLønnsendring()); + .medBeskrivelse(dto.getBeskrivelse()) + .medPeriode(mapPeriode(dto.getPeriode())) + .medProsentsats(dto.getStillingsprosent()) + .medSisteLønnsendringsdato(dto.getSistLønnsendring()); } private IntervallEntitet mapPeriode(Periode periode) { return IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom()); } - private InternArbeidsforholdRef mapArbeidsforholdRef(@SuppressWarnings("unused") Arbeidsgiver arbeidsgiver, - ArbeidsforholdRefDto arbeidsforholdId) { + private InternArbeidsforholdRef mapArbeidsforholdRef( + @SuppressWarnings("unused") Arbeidsgiver arbeidsgiver, ArbeidsforholdRefDto arbeidsforholdId) { if (arbeidsforholdId == null) { return InternArbeidsforholdRef.nullRef(); } @@ -164,16 +177,21 @@ List map(Collection aktørArbeid) { } private ArbeidDto map(AktørArbeid arb) { - List yrkesaktiviteter = new ArrayList<>(getYrkesaktiviteter(arb.hentAlleYrkesaktiviteter())); + List yrkesaktiviteter = + new ArrayList<>(getYrkesaktiviteter(arb.hentAlleYrkesaktiviteter())); - var aktiviteter = yrkesaktiviteter.stream().filter(this::erGyldigYrkesaktivitet).sorted(COMP_YRKESAKTIVITET).collect(Collectors.toList()); + var aktiviteter = yrkesaktiviteter.stream() + .filter(this::erGyldigYrkesaktivitet) + .sorted(COMP_YRKESAKTIVITET) + .collect(Collectors.toList()); var dto = new ArbeidDto(new AktørIdPersonident(arb.getAktørId().getId())).medYrkesaktiviteter(aktiviteter); return dto; } private boolean erGyldigYrkesaktivitet(YrkesaktivitetDto yrkesaktivitet) { - return !yrkesaktivitet.getAktivitetsAvtaler().isEmpty() || !yrkesaktivitet.getPermisjoner().isEmpty(); + return !yrkesaktivitet.getAktivitetsAvtaler().isEmpty() + || !yrkesaktivitet.getPermisjoner().isEmpty(); } private List getYrkesaktiviteter(Collection aktiviteter) { @@ -183,30 +201,44 @@ private List getYrkesaktiviteter(Collection a private AktivitetsAvtaleDto map(AktivitetsAvtale aa) { LocalDate fomDato = aa.getPeriodeUtenOverstyring().getFomDato(); LocalDate tomDato = aa.getPeriodeUtenOverstyring().getTomDato(); - var avtale = new AktivitetsAvtaleDto(fomDato, tomDato).medBeskrivelse(aa.getBeskrivelse()) - .medSistLønnsendring(aa.getSisteLønnsendringsdato()) - .medStillingsprosent(aa.getProsentsats() == null ? null : aa.getProsentsats().getVerdi()); + var avtale = new AktivitetsAvtaleDto(fomDato, tomDato) + .medBeskrivelse(aa.getBeskrivelse()) + .medSistLønnsendring(aa.getSisteLønnsendringsdato()) + .medStillingsprosent( + aa.getProsentsats() == null + ? null + : aa.getProsentsats().getVerdi()); return avtale; } private PermisjonDto map(Permisjon p) { var permisjonsbeskrivelseType = p.getPermisjonsbeskrivelseType(); - var permisjon = new PermisjonDto(new Periode(p.getFraOgMed(), p.getTilOgMed()), permisjonsbeskrivelseType).medProsentsats( - p.getProsentsats() == null ? null : p.getProsentsats().getVerdi()); + var permisjon = new PermisjonDto(new Periode(p.getFraOgMed(), p.getTilOgMed()), permisjonsbeskrivelseType) + .medProsentsats( + p.getProsentsats() == null + ? null + : p.getProsentsats().getVerdi()); return permisjon; } private YrkesaktivitetDto mapYrkesaktivitet(Yrkesaktivitet a) { - var aktivitetsAvtaler = a.getAlleAktivitetsAvtaler().stream().map(this::map).sorted(COMP_AKTIVITETSAVTALE).collect(Collectors.toList()); - var permisjoner = a.getPermisjon().stream().map(this::map).sorted(COMP_PERMISJON).collect(Collectors.toList()); + var aktivitetsAvtaler = a.getAlleAktivitetsAvtaler().stream() + .map(this::map) + .sorted(COMP_AKTIVITETSAVTALE) + .collect(Collectors.toList()); + var permisjoner = a.getPermisjon().stream() + .map(this::map) + .sorted(COMP_PERMISJON) + .collect(Collectors.toList()); var arbeidsforholdId = mapArbeidsforholdsId(a.getArbeidsgiver(), a); var arbeidType = a.getArbeidType(); - var dto = new YrkesaktivitetDto(arbeidType).medArbeidsgiver(mapAktør(a.getArbeidsgiver())) - .medAktivitetsAvtaler(aktivitetsAvtaler) - .medPermisjoner(permisjoner) - .medArbeidsforholdId(arbeidsforholdId) - .medNavnArbeidsgiverUtland(a.getNavnArbeidsgiverUtland()); + var dto = new YrkesaktivitetDto(arbeidType) + .medArbeidsgiver(mapAktør(a.getArbeidsgiver())) + .medAktivitetsAvtaler(aktivitetsAvtaler) + .medPermisjoner(permisjoner) + .medArbeidsforholdId(arbeidsforholdId) + .medNavnArbeidsgiverUtland(a.getNavnArbeidsgiverUtland()); return dto; } @@ -216,24 +248,28 @@ private ArbeidsforholdRefDto mapArbeidsforholdsId(Arbeidsgiver arbeidsgiver, Yrk if (internRef == null || internRef.getReferanse() == null) { return null; } - var eksternRef = arbeidsforholdInformasjon == null ? null : arbeidsforholdInformasjon.finnEksternRaw(arbeidsgiver, internRef); + var eksternRef = arbeidsforholdInformasjon == null + ? null + : arbeidsforholdInformasjon.finnEksternRaw(arbeidsgiver, internRef); if (eksternRef == null || eksternRef.getReferanse() == null) { - throw new java.lang.IllegalStateException("Mapping til Abakus: Savner eksternRef for internRef: " + internRef); + throw new java.lang.IllegalStateException( + "Mapping til Abakus: Savner eksternRef for internRef: " + internRef); } - return new ArbeidsforholdRefDto(internRef.getReferanse(), eksternRef.getReferanse(), - no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem.AAREGISTERET); + return new ArbeidsforholdRefDto( + internRef.getReferanse(), + eksternRef.getReferanse(), + no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem.AAREGISTERET); } private Aktør mapAktør(Arbeidsgiver arbeidsgiver) { if (arbeidsgiver == null) { return null; // arbeidType='NÆRING' har null arbeidsgiver } - return arbeidsgiver.erAktørId() ? new AktørIdPersonident(arbeidsgiver.getAktørId().getId()) : new Organisasjon( - arbeidsgiver.getOrgnr().getId()); + return arbeidsgiver.erAktørId() + ? new AktørIdPersonident(arbeidsgiver.getAktørId().getId()) + : new Organisasjon(arbeidsgiver.getOrgnr().getId()); } - } - } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rInntekt.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rInntekt.java" index d5bec8938..f37202b6e 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rInntekt.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rInntekt.java" @@ -6,7 +6,6 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.Organisasjon; @@ -29,20 +28,31 @@ public class MapAktørInntekt { private static final Comparator COMP_UTBETALING = Comparator.comparing( - (UtbetalingDto dto) -> dto.getKilde() == null ? null : dto.getKilde().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getUtbetaler() == null ? null : dto.getUtbetaler().getIdent(), Comparator.nullsLast(Comparator.naturalOrder())); + (UtbetalingDto dto) -> + dto.getKilde() == null ? null : dto.getKilde().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getUtbetaler() == null + ? null + : dto.getUtbetaler().getIdent(), + Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_UTBETALINGSPOST = Comparator.comparing( - (UtbetalingsPostDto dto) -> dto.getInntektspostType().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing((UtbetalingsPostDto dto) -> dto.getInntektYtelseType() == null ? null : dto.getInntektYtelseType().getKode(), - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + (UtbetalingsPostDto dto) -> dto.getInntektspostType().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + (UtbetalingsPostDto dto) -> dto.getInntektYtelseType() == null + ? null + : dto.getInntektYtelseType().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); static class MapFraDto { @SuppressWarnings("unused") private final AktørId søkerAktørId; + private final InntektArbeidYtelseAggregatBuilder aggregatBuilder; MapFraDto(AktørId søkerAktørId, InntektArbeidYtelseAggregatBuilder aggregatBuilder) { @@ -54,17 +64,21 @@ static class MapFraDto { if (dtos == null || dtos.isEmpty()) { return Collections.emptyList(); } - var builders = dtos.stream().map(idto -> { - var builder = aggregatBuilder.getAktørInntektBuilder(tilAktørId(idto.getPerson())); - idto.getUtbetalinger().forEach(utbetalingDto -> builder.leggTilInntekt(mapUtbetaling(utbetalingDto))); - return builder; - }).collect(Collectors.toUnmodifiableList()); + var builders = dtos.stream() + .map(idto -> { + var builder = aggregatBuilder.getAktørInntektBuilder(tilAktørId(idto.getPerson())); + idto.getUtbetalinger() + .forEach(utbetalingDto -> builder.leggTilInntekt(mapUtbetaling(utbetalingDto))); + return builder; + }) + .collect(Collectors.toUnmodifiableList()); return builders; } /** - * Returnerer person sin aktørId. Denne trenger ikke være samme som søkers aktørid men kan f.eks. være annen part i en sak. + * Returnerer person sin aktørId. Denne trenger ikke være samme som søkers aktørid men kan f.eks. være annen + * part i en sak. */ private AktørId tilAktørId(PersonIdent person) { if (!(person instanceof AktørIdPersonident)) { @@ -75,20 +89,20 @@ static class MapFraDto { private InntektBuilder mapUtbetaling(UtbetalingDto dto) { InntektBuilder inntektBuilder = InntektBuilder.oppdatere(Optional.empty()) - .medArbeidsgiver(mapArbeidsgiver(dto.getUtbetaler())) - .medInntektsKilde(dto.getKilde()); + .medArbeidsgiver(mapArbeidsgiver(dto.getUtbetaler())) + .medInntektsKilde(dto.getKilde()); dto.getPoster().forEach(post -> inntektBuilder.leggTilInntektspost(mapInntektspost(post))); return inntektBuilder; } private InntektspostBuilder mapInntektspost(UtbetalingsPostDto post) { return InntektspostBuilder.ny() - .medBeløp(post.getBeløp()) - .medInntektspostType(post.getInntektspostType()) - .medPeriode(post.getPeriode().getFom(), post.getPeriode().getTom()) - .medSkatteOgAvgiftsregelType(post.getSkattAvgiftType()) - .medLønnsinntektBeskrivelse(post.getLønnsinntektBeskrivelse()) - .medYtelse(post.getInntektYtelseType()); + .medBeløp(post.getBeløp()) + .medInntektspostType(post.getInntektspostType()) + .medPeriode(post.getPeriode().getFom(), post.getPeriode().getTom()) + .medSkatteOgAvgiftsregelType(post.getSkattAvgiftType()) + .medLønnsinntektBeskrivelse(post.getLønnsinntektBeskrivelse()) + .medYtelse(post.getInntektYtelseType()); } private Arbeidsgiver mapArbeidsgiver(Aktør arbeidsgiver) { @@ -100,7 +114,6 @@ private Arbeidsgiver mapArbeidsgiver(Aktør arbeidsgiver) { } return Arbeidsgiver.person(new AktørId(arbeidsgiver.getIdent())); } - } static class MapTilDto { @@ -112,14 +125,18 @@ List map(Collection aktørInntekt) { } private InntekterDto mapTilInntekt(AktørInntekt ai) { - InntekterDto dto = new InntekterDto(new AktørIdPersonident(ai.getAktørId().getId())); + InntekterDto dto = + new InntekterDto(new AktørIdPersonident(ai.getAktørId().getId())); List utbetalinger = tilUtbetalinger(ai.getInntekt()); dto.setUtbetalinger(utbetalinger); return dto; } private List tilUtbetalinger(Collection inntekter) { - return inntekter.stream().map(in -> tilUtbetaling(in)).sorted(COMP_UTBETALING).collect(Collectors.toList()); + return inntekter.stream() + .map(in -> tilUtbetaling(in)) + .sorted(COMP_UTBETALING) + .collect(Collectors.toList()); } private UtbetalingDto tilUtbetaling(Inntekt inntekt) { @@ -142,22 +159,26 @@ private UtbetalingDto tilUtbetaling(Inntekt inntekt) { } private List tilPoster(Collection inntektspost) { - return inntektspost.stream().map(this::tilPost).sorted(COMP_UTBETALINGSPOST).collect(Collectors.toList()); + return inntektspost.stream() + .map(this::tilPost) + .sorted(COMP_UTBETALINGSPOST) + .collect(Collectors.toList()); } private UtbetalingsPostDto tilPost(Inntektspost inntektspost) { - var periode = new Periode(inntektspost.getPeriode().getFomDato(), inntektspost.getPeriode().getTomDato()); + var periode = new Periode( + inntektspost.getPeriode().getFomDato(), + inntektspost.getPeriode().getTomDato()); var inntektspostType = inntektspost.getInntektspostType(); var skattOgAvgiftType = inntektspost.getSkatteOgAvgiftsregelType(); UtbetalingsPostDto dto = new UtbetalingsPostDto(periode, inntektspostType) - .medInntektYtelseType(inntektspost.getInntektYtelseType()) - .medSkattAvgiftType(skattOgAvgiftType) - .medLønnsinntektbeskrivelse(inntektspost.getLønnsinntektBeskrivelse()) - .medBeløp(inntektspost.getBeløp().getVerdi()); + .medInntektYtelseType(inntektspost.getInntektYtelseType()) + .medSkattAvgiftType(skattOgAvgiftType) + .medLønnsinntektbeskrivelse(inntektspost.getLønnsinntektBeskrivelse()) + .medBeløp(inntektspost.getBeløp().getVerdi()); return dto; } - } } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rYtelse.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rYtelse.java" index 222cb3495..9b84ccde2 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rYtelse.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapAkt\303\270rYtelse.java" @@ -5,7 +5,6 @@ import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.Organisasjon; @@ -27,17 +26,26 @@ import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; public class MapAktørYtelse { - private static final Comparator COMP_YTELSE = Comparator.comparing(YtelseDto::getSaksnummer, - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getYtelseType() == null ? null : dto.getYtelseType().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_YTELSE = Comparator.comparing( + YtelseDto::getSaksnummer, Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getYtelseType() == null + ? null + : dto.getYtelseType().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_FORDELING = Comparator.comparing( - (FordelingDto dto) -> dto.getArbeidsgiver() == null ? null : dto.getArbeidsgiver().getIdent(), - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getHyppighet() == null ? null : dto.getHyppighet().getKode(), Comparator.nullsLast(Comparator.naturalOrder())); - + (FordelingDto dto) -> dto.getArbeidsgiver() == null + ? null + : dto.getArbeidsgiver().getIdent(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getHyppighet() == null + ? null + : dto.getHyppighet().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())); static class MapTilDto { @@ -45,7 +53,10 @@ private List mapFordeling(List ytelseStørrelse) if (ytelseStørrelse == null || ytelseStørrelse.isEmpty()) { return Collections.emptyList(); } - return ytelseStørrelse.stream().map(this::tilFordeling).sorted(COMP_FORDELING).collect(Collectors.toUnmodifiableList()); + return ytelseStørrelse.stream() + .map(this::tilFordeling) + .sorted(COMP_FORDELING) + .collect(Collectors.toUnmodifiableList()); } private YtelserDto mapTilYtelser(AktørYtelse ay) { @@ -71,7 +82,10 @@ private YtelseGrunnlagDto mapYtelseGrunnlag(YtelseGrunnlag gr) { } private FordelingDto tilFordeling(YtelseStørrelse ytelseStørrelse) { - var organisasjon = ytelseStørrelse.getVirksomhet().map(o -> new Organisasjon(o.getId())).orElse(null); + var organisasjon = ytelseStørrelse + .getVirksomhet() + .map(o -> new Organisasjon(o.getId())) + .orElse(null); var inntektPeriodeType = ytelseStørrelse.getHyppighet(); var beløp = ytelseStørrelse.getBeløp().getVerdi(); return new FordelingDto(organisasjon, inntektPeriodeType, beløp, ytelseStørrelse.getErRefusjon()); @@ -80,19 +94,28 @@ private FordelingDto tilFordeling(YtelseStørrelse ytelseStørrelse) { private YtelseDto tilYtelse(Ytelse ytelse) { var fagsystem = ytelse.getKilde(); - var periode = new Periode(ytelse.getPeriode().getFomDato(), ytelse.getPeriode().getTomDato()); + var periode = new Periode( + ytelse.getPeriode().getFomDato(), ytelse.getPeriode().getTomDato()); var ytelseType = ytelse.getRelatertYtelseType(); var ytelseStatus = ytelse.getStatus(); - var dto = new YtelseDto(fagsystem, ytelseType, periode, ytelseStatus).medSaksnummer( - ytelse.getSaksreferanse() == null ? null : ytelse.getSaksreferanse().getVerdi()).medVedtattTidspunkt(ytelse.getVedtattTidspunkt()); + var dto = new YtelseDto(fagsystem, ytelseType, periode, ytelseStatus) + .medSaksnummer( + ytelse.getSaksreferanse() == null + ? null + : ytelse.getSaksreferanse().getVerdi()) + .medVedtattTidspunkt(ytelse.getVedtattTidspunkt()); ytelse.getYtelseGrunnlag().ifPresent(gr -> dto.setGrunnlag(mapYtelseGrunnlag(gr))); - Comparator compAnvisning = Comparator.comparing((AnvisningDto anv) -> anv.getPeriode().getFom(), - Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(anv -> anv.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + Comparator compAnvisning = Comparator.comparing( + (AnvisningDto anv) -> anv.getPeriode().getFom(), + Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(anv -> anv.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); - var anvisninger = ytelse.getYtelseAnvist().stream().map(this::map).sorted(compAnvisning).collect(Collectors.toList()); + var anvisninger = ytelse.getYtelseAnvist().stream() + .map(this::map) + .sorted(compAnvisning) + .collect(Collectors.toList()); dto.setAnvisninger(anvisninger); return dto; @@ -105,26 +128,30 @@ private AnvisningDto map(YtelseAnvist ya) { ya.getDagsats().ifPresent(v -> dto.setDagsats(v.getVerdi())); ya.getUtbetalingsgradProsent().ifPresent(v -> dto.setUtbetalingsgrad(v.getVerdi())); if (ya.getYtelseAnvistAndeler() != null) { - dto.setAndeler(ya.getYtelseAnvistAndeler().stream().map(this::mapAndel).toList()); + dto.setAndeler( + ya.getYtelseAnvistAndeler().stream().map(this::mapAndel).toList()); } return dto; } - List map(Collection aktørYtelser) { return aktørYtelser.stream().map(this::mapTilYtelser).collect(Collectors.toList()); } private AnvistAndelDto mapAndel(YtelseAnvistAndel aa) { - return new AnvistAndelDto(aa.getArbeidsgiver().map(this::mapAktør).orElse(null), aa.getArbeidsforholdRef().getReferanse(), - aa.getDagsats().getVerdi(), aa.getUtbetalingsgradProsent().getVerdi(), aa.getRefusjonsgradProsent().getVerdi(), - aa.getInntektskategori()); + return new AnvistAndelDto( + aa.getArbeidsgiver().map(this::mapAktør).orElse(null), + aa.getArbeidsforholdRef().getReferanse(), + aa.getDagsats().getVerdi(), + aa.getUtbetalingsgradProsent().getVerdi(), + aa.getRefusjonsgradProsent().getVerdi(), + aa.getInntektskategori()); } private Aktør mapAktør(Arbeidsgiver arbeidsgiverEntitet) { - return arbeidsgiverEntitet.erAktørId() ? new AktørIdPersonident(arbeidsgiverEntitet.getAktørId().getId()) : new Organisasjon( - arbeidsgiverEntitet.getOrgnr().getId()); + return arbeidsgiverEntitet.erAktørId() + ? new AktørIdPersonident(arbeidsgiverEntitet.getAktørId().getId()) + : new Organisasjon(arbeidsgiverEntitet.getOrgnr().getId()); } - } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapArbeidsforholdInformasjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapArbeidsforholdInformasjon.java index 13261dd34..9a2e8dd06 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapArbeidsforholdInformasjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapArbeidsforholdInformasjon.java @@ -5,7 +5,6 @@ import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; @@ -32,17 +31,25 @@ class MapArbeidsforholdInformasjon { private static final Comparator COMP_ARBEIDSFORHOLD_REFERANSE = Comparator.comparing( - (ArbeidsforholdReferanseDto ref) -> ref.getArbeidsgiver().getIdent()) - .thenComparing(ref -> ref.getArbeidsforholdReferanse() == null ? null : ref.getArbeidsforholdReferanse().getAbakusReferanse(), - Comparator.nullsLast(Comparator.naturalOrder())); - - private static final Comparator COMP_ARBEIDSFORHOLD_OVERSTYRING = Comparator.comparing( - (ArbeidsforholdOverstyringDto ov) -> ov.getArbeidsgiver().getIdent()) - .thenComparing(ov -> ov.getArbeidsforholdRef() == null ? null : ov.getArbeidsforholdRef().getAbakusReferanse(), - Comparator.nullsLast(Comparator.naturalOrder())); - - private static final Comparator COMP_PERIODE = Comparator.comparing(Periode::getFom, Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(Periode::getTom, Comparator.nullsLast(Comparator.naturalOrder())); + (ArbeidsforholdReferanseDto ref) -> ref.getArbeidsgiver().getIdent()) + .thenComparing( + ref -> ref.getArbeidsforholdReferanse() == null + ? null + : ref.getArbeidsforholdReferanse().getAbakusReferanse(), + Comparator.nullsLast(Comparator.naturalOrder())); + + private static final Comparator COMP_ARBEIDSFORHOLD_OVERSTYRING = + Comparator.comparing((ArbeidsforholdOverstyringDto ov) -> + ov.getArbeidsgiver().getIdent()) + .thenComparing( + ov -> ov.getArbeidsforholdRef() == null + ? null + : ov.getArbeidsforholdRef().getAbakusReferanse(), + Comparator.nullsLast(Comparator.naturalOrder())); + + private static final Comparator COMP_PERIODE = Comparator.comparing( + Periode::getFom, Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(Periode::getTom, Comparator.nullsLast(Comparator.naturalOrder())); static class MapFraDto { private InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder; @@ -56,15 +63,21 @@ ArbeidsforholdInformasjonBuilder map(ArbeidsforholdInformasjon dto) { var builder = ArbeidsforholdInformasjonBuilder.builder(eksisterende); if (dto != null) { builder.fjernAlleOverstyringer(); - dto.getOverstyringer().stream().map(this::mapArbeidsforholdOverstyring).forEach(builder::leggTil); - dto.getReferanser().stream().map(this::mapArbeidsforholdReferanse).forEach(builder::leggTilNyReferanse); + dto.getOverstyringer().stream() + .map(this::mapArbeidsforholdOverstyring) + .forEach(builder::leggTil); + dto.getReferanser().stream() + .map(this::mapArbeidsforholdReferanse) + .forEach(builder::leggTilNyReferanse); } return builder; } private ArbeidsforholdReferanse mapArbeidsforholdReferanse(ArbeidsforholdReferanseDto r) { - var internRef = InternArbeidsforholdRef.ref(r.getArbeidsforholdReferanse().getAbakusReferanse()); - var eksternRef = EksternArbeidsforholdRef.ref(r.getArbeidsforholdReferanse().getEksternReferanse()); + var internRef = + InternArbeidsforholdRef.ref(r.getArbeidsforholdReferanse().getAbakusReferanse()); + var eksternRef = + EksternArbeidsforholdRef.ref(r.getArbeidsforholdReferanse().getEksternReferanse()); var arbeidsgiver = mapArbeidsgiver(r.getArbeidsgiver()); return new ArbeidsforholdReferanse(arbeidsgiver, internRef, eksternRef); } @@ -76,22 +89,25 @@ private ArbeidsforholdOverstyringBuilder mapArbeidsforholdOverstyring(Arbeidsfor var overstyringBuilder = ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()); - overstyringBuilder.medBeskrivelse(ov.getBegrunnelse()) - .medArbeidsgiver(arbeidsgiver) - .medArbeidsforholdRef(arbeidsgiverRef) - .medNyArbeidsforholdRef(nyArbeidsgiverRef) - .medHandling(ov.getHandling()) - .medAngittArbeidsgiverNavn(ov.getAngittArbeidsgiverNavn()) - .medAngittStillingsprosent(Stillingsprosent.arbeid(ov.getStillingsprosent())); + overstyringBuilder + .medBeskrivelse(ov.getBegrunnelse()) + .medArbeidsgiver(arbeidsgiver) + .medArbeidsforholdRef(arbeidsgiverRef) + .medNyArbeidsforholdRef(nyArbeidsgiverRef) + .medHandling(ov.getHandling()) + .medAngittArbeidsgiverNavn(ov.getAngittArbeidsgiverNavn()) + .medAngittStillingsprosent(Stillingsprosent.arbeid(ov.getStillingsprosent())); ov.getBekreftetPermisjon().ifPresent(bp -> { BekreftetPermisjonStatus bekreftetPermisjonStatus = bp.getBekreftetPermisjonStatus(); - var bekreftetPermisjon = new BekreftetPermisjon(bp.getPeriode().getFom(), bp.getPeriode().getTom(), bekreftetPermisjonStatus); + var bekreftetPermisjon = new BekreftetPermisjon( + bp.getPeriode().getFom(), bp.getPeriode().getTom(), bekreftetPermisjonStatus); overstyringBuilder.medBekreftetPermisjon(bekreftetPermisjon); }); // overstyrte perioder - ov.getArbeidsforholdOverstyrtePerioder().forEach(p -> overstyringBuilder.leggTilOverstyrtPeriode(p.getFom(), p.getTom())); + ov.getArbeidsforholdOverstyrtePerioder() + .forEach(p -> overstyringBuilder.leggTilOverstyrtPeriode(p.getFom(), p.getTom())); return overstyringBuilder; } @@ -114,51 +130,70 @@ private Arbeidsgiver mapArbeidsgiver(Aktør arbeidsgiver) { static class MapTilDto { - ArbeidsforholdInformasjon map(UUID grunnlagRef, no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon entitet) { + ArbeidsforholdInformasjon map( + UUID grunnlagRef, + no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon entitet) { if (entitet == null) { return null; } var arbeidsforholdInformasjon = new ArbeidsforholdInformasjon(grunnlagRef); - var overstyringer = entitet.getOverstyringer().stream().map(ao -> { - var dto = new ArbeidsforholdOverstyringDto(mapAktør(ao.getArbeidsgiver()), - mapArbeidsforholdsId(entitet, grunnlagRef, ao.getArbeidsgiver(), ao.getArbeidsforholdRef())).medBegrunnelse(ao.getBegrunnelse()) - .medBekreftetPermisjon(mapBekreftetPermisjon(ao.getBekreftetPermisjon())) - .medHandling(ao.getHandling()) - .medNavn(ao.getArbeidsgiverNavn()) - .medStillingsprosent(ao.getStillingsprosent() == null ? null : ao.getStillingsprosent().getVerdi()) - .medNyArbeidsforholdRef( - ao.getNyArbeidsforholdRef() == null ? null : mapArbeidsforholdsId(entitet, grunnlagRef, ao.getArbeidsgiver(), - ao.getNyArbeidsforholdRef())) - .medArbeidsforholdOverstyrtePerioder(map(ao.getArbeidsforholdOverstyrtePerioder())); - return dto; - }).sorted(COMP_ARBEIDSFORHOLD_OVERSTYRING).collect(Collectors.toList()); - - var referanser = entitet.getArbeidsforholdReferanser() - .stream() - .map(this::mapArbeidsforholdReferanse) - .sorted(COMP_ARBEIDSFORHOLD_REFERANSE) - .collect(Collectors.toList()); + var overstyringer = entitet.getOverstyringer().stream() + .map(ao -> { + var dto = new ArbeidsforholdOverstyringDto( + mapAktør(ao.getArbeidsgiver()), + mapArbeidsforholdsId( + entitet, grunnlagRef, ao.getArbeidsgiver(), ao.getArbeidsforholdRef())) + .medBegrunnelse(ao.getBegrunnelse()) + .medBekreftetPermisjon(mapBekreftetPermisjon(ao.getBekreftetPermisjon())) + .medHandling(ao.getHandling()) + .medNavn(ao.getArbeidsgiverNavn()) + .medStillingsprosent( + ao.getStillingsprosent() == null + ? null + : ao.getStillingsprosent().getVerdi()) + .medNyArbeidsforholdRef( + ao.getNyArbeidsforholdRef() == null + ? null + : mapArbeidsforholdsId( + entitet, + grunnlagRef, + ao.getArbeidsgiver(), + ao.getNyArbeidsforholdRef())) + .medArbeidsforholdOverstyrtePerioder(map(ao.getArbeidsforholdOverstyrtePerioder())); + return dto; + }) + .sorted(COMP_ARBEIDSFORHOLD_OVERSTYRING) + .collect(Collectors.toList()); + + var referanser = entitet.getArbeidsforholdReferanser().stream() + .map(this::mapArbeidsforholdReferanse) + .sorted(COMP_ARBEIDSFORHOLD_REFERANSE) + .collect(Collectors.toList()); return arbeidsforholdInformasjon.medOverstyringer(overstyringer).medReferanser(referanser); } private List map(List perioder) { - return perioder == null ? null : perioder.stream() - .map(ArbeidsforholdOverstyrtePerioder::getOverstyrtePeriode) - .map(this::mapPeriode) - .sorted(COMP_PERIODE) - .collect(Collectors.toList()); + return perioder == null + ? null + : perioder.stream() + .map(ArbeidsforholdOverstyrtePerioder::getOverstyrtePeriode) + .map(this::mapPeriode) + .sorted(COMP_PERIODE) + .collect(Collectors.toList()); } - private no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.BekreftetPermisjon mapBekreftetPermisjon(Optional entitet) { + private no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.BekreftetPermisjon mapBekreftetPermisjon( + Optional entitet) { if (entitet.isEmpty()) { return null; } var bekreftetPermisjon = entitet.get(); var periode = mapPeriode(bekreftetPermisjon.getPeriode()); var bekreftetPermisjonStatus = bekreftetPermisjon.getStatus(); - return new no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.BekreftetPermisjon(periode, bekreftetPermisjonStatus); + return new no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.BekreftetPermisjon( + periode, bekreftetPermisjonStatus); } private Periode mapPeriode(IntervallEntitet periode) { @@ -169,13 +204,16 @@ private ArbeidsforholdReferanseDto mapArbeidsforholdReferanse(ArbeidsforholdRefe var arbeidsgiver = mapAktør(ref.getArbeidsgiver()); var internReferanse = ref.getInternReferanse().getReferanse(); var eksternReferanse = ref.getEksternReferanse().getReferanse(); - return new ArbeidsforholdReferanseDto(arbeidsgiver, new ArbeidsforholdRefDto(internReferanse, eksternReferanse)); + return new ArbeidsforholdReferanseDto( + arbeidsgiver, new ArbeidsforholdRefDto(internReferanse, eksternReferanse)); } - private ArbeidsforholdRefDto mapArbeidsforholdsId(no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon arbeidsforholdInformasjon, - UUID grunnlagRef, - Arbeidsgiver arbeidsgiver, - InternArbeidsforholdRef ref) { + private ArbeidsforholdRefDto mapArbeidsforholdsId( + no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon + arbeidsforholdInformasjon, + UUID grunnlagRef, + Arbeidsgiver arbeidsgiver, + InternArbeidsforholdRef ref) { if (ref == null) { return null; } @@ -187,7 +225,8 @@ private ArbeidsforholdRefDto mapArbeidsforholdsId(no.nav.foreldrepenger.abakus.d */ String internId = ref.getReferanse(); if (internId != null) { - EksternArbeidsforholdRef eksternReferanse = arbeidsforholdInformasjon.finnEksternRaw(grunnlagRef, arbeidsgiver, ref); + EksternArbeidsforholdRef eksternReferanse = + arbeidsforholdInformasjon.finnEksternRaw(grunnlagRef, arbeidsgiver, ref); if (eksternReferanse == null || eksternReferanse.getReferanse() == null) { throw new IllegalStateException("Mangler eksternReferanse for internReferanse=" + ref); } @@ -197,8 +236,9 @@ private ArbeidsforholdRefDto mapArbeidsforholdsId(no.nav.foreldrepenger.abakus.d } private Aktør mapAktør(Arbeidsgiver arbeidsgiver) { - return arbeidsgiver.erAktørId() ? new AktørIdPersonident(arbeidsgiver.getAktørId().getId()) : new Organisasjon( - arbeidsgiver.getOrgnr().getId()); + return arbeidsgiver.erAktørId() + ? new AktørIdPersonident(arbeidsgiver.getAktørId().getId()) + : new Organisasjon(arbeidsgiver.getOrgnr().getId()); } } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldinger.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldinger.java index a4a873063..49958b547 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldinger.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldinger.java @@ -11,7 +11,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; @@ -48,81 +47,97 @@ public class MapInntektsmeldinger { - private static final Comparator COMP_ENDRINGER_REFUSJON = Comparator.comparing((RefusjonDto re) -> re.getFom(), - Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_ENDRINGER_REFUSJON = + Comparator.comparing((RefusjonDto re) -> re.getFom(), Comparator.nullsLast(Comparator.naturalOrder())); - private static final Comparator COMP_GRADERING = Comparator.comparing((GraderingDto dto) -> dto.getPeriode().getFom(), - Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(GraderingDto::getArbeidstidProsent, Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_GRADERING = Comparator.comparing( + (GraderingDto dto) -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(GraderingDto::getArbeidstidProsent, Comparator.nullsLast(Comparator.naturalOrder())); - private static final Comparator COMP_NATURALYTELSE = Comparator.comparing((NaturalytelseDto dto) -> dto.getPeriode().getFom(), - Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getType() == null ? null : dto.getType().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(NaturalytelseDto::getBeløpPerMnd, Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_NATURALYTELSE = Comparator.comparing( + (NaturalytelseDto dto) -> dto.getPeriode().getFom(), + Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getType() == null ? null : dto.getType().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(NaturalytelseDto::getBeløpPerMnd, Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_UTSETTELSE = Comparator.comparing( - (UtsettelsePeriodeDto dto) -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getUtsettelseÅrsakDto() == null ? null : dto.getUtsettelseÅrsakDto().getKode(), - Comparator.nullsLast(Comparator.naturalOrder())); - - private static final Comparator COMP_FRAVÆR = Comparator.comparing((FraværDto dto) -> dto.getPeriode().getFom(), - Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + (UtsettelsePeriodeDto dto) -> dto.getPeriode().getFom(), + Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getUtsettelseÅrsakDto() == null + ? null + : dto.getUtsettelseÅrsakDto().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())); + + private static final Comparator COMP_FRAVÆR = Comparator.comparing( + (FraværDto dto) -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_INNTEKTSMELDING = Comparator.comparing( - (InntektsmeldingDto im) -> im.getArbeidsgiver().getIdent()) - .thenComparing(im -> im.getInnsendingstidspunkt()) - .thenComparing(im -> im.getArbeidsforholdRef() == null ? null : im.getArbeidsforholdRef().getAbakusReferanse(), - Comparator.nullsLast(Comparator.naturalOrder())); - - - public static InntektsmeldingerDto mapUnikeInntektsmeldingerFraGrunnlag(Map inntektsmeldingerMap) { + (InntektsmeldingDto im) -> im.getArbeidsgiver().getIdent()) + .thenComparing(im -> im.getInnsendingstidspunkt()) + .thenComparing( + im -> im.getArbeidsforholdRef() == null + ? null + : im.getArbeidsforholdRef().getAbakusReferanse(), + Comparator.nullsLast(Comparator.naturalOrder())); + + public static InntektsmeldingerDto mapUnikeInntektsmeldingerFraGrunnlag( + Map inntektsmeldingerMap) { List inntektsmeldingerDtoList = mapUnikeInntektsmeldinger(inntektsmeldingerMap); InntektsmeldingerDto inntektsmeldingerDto = new InntektsmeldingerDto(); inntektsmeldingerDto.medInntektsmeldinger(inntektsmeldingerDtoList); return inntektsmeldingerDto; } - public static RefusjonskravDatoerDto mapRefusjonskravdatoer(Set inntektsmeldinger, InntektArbeidYtelseGrunnlag nyesteGrunnlag) { + public static RefusjonskravDatoerDto mapRefusjonskravdatoer( + Set inntektsmeldinger, InntektArbeidYtelseGrunnlag nyesteGrunnlag) { if (nyesteGrunnlag.getInntektsmeldinger().isEmpty()) { return new RefusjonskravDatoerDto(Collections.emptyList()); } - List refusjonskravDatoList = lagRefusjonskravdatoPerArbeidsgiver(inntektsmeldinger, nyesteGrunnlag); + List refusjonskravDatoList = + lagRefusjonskravdatoPerArbeidsgiver(inntektsmeldinger, nyesteGrunnlag); return new RefusjonskravDatoerDto(refusjonskravDatoList); } - private static List lagRefusjonskravdatoPerArbeidsgiver(Set inntektsmeldinger, - InntektArbeidYtelseGrunnlag nyesteGrunnlag) { + private static List lagRefusjonskravdatoPerArbeidsgiver( + Set inntektsmeldinger, InntektArbeidYtelseGrunnlag nyesteGrunnlag) { List refusjonskravDatoList = new ArrayList<>(); - Map> førsteRefusjonsdatoMap = nyesteGrunnlag.getInntektsmeldinger() - .map(MapInntektsmeldinger::lagFørsteRefusjonsdatoMap).orElse(Map.of()); - førsteRefusjonsdatoMap.forEach( - (arbeidsgiver, førsteDatoMedRefusjon) -> finnFørsteDatoForInnsendelseAvRefusjonskrav(inntektsmeldinger, arbeidsgiver).ifPresent( - innsendingDato -> refusjonskravDatoList.add( - new RefusjonskravDatoDto(mapTilAktør(arbeidsgiver), innsendingDato.toLocalDate(), førsteDatoMedRefusjon.orElse(null), - harRefusjonFraStart(arbeidsgiver, nyesteGrunnlag))))); + Map> førsteRefusjonsdatoMap = nyesteGrunnlag + .getInntektsmeldinger() + .map(MapInntektsmeldinger::lagFørsteRefusjonsdatoMap) + .orElse(Map.of()); + førsteRefusjonsdatoMap.forEach((arbeidsgiver, førsteDatoMedRefusjon) -> + finnFørsteDatoForInnsendelseAvRefusjonskrav(inntektsmeldinger, arbeidsgiver) + .ifPresent(innsendingDato -> refusjonskravDatoList.add(new RefusjonskravDatoDto( + mapTilAktør(arbeidsgiver), + innsendingDato.toLocalDate(), + førsteDatoMedRefusjon.orElse(null), + harRefusjonFraStart(arbeidsgiver, nyesteGrunnlag))))); return refusjonskravDatoList; } private static boolean harRefusjonFraStart(Arbeidsgiver arbeidsgiver, InntektArbeidYtelseGrunnlag nyesteGrunnlag) { - return nyesteGrunnlag.getInntektsmeldinger() - .stream() - .flatMap(ims -> ims.getInntektsmeldinger().stream()) - .filter(im -> im.getArbeidsgiver().equals(arbeidsgiver)) - .anyMatch(MapInntektsmeldinger::harRefusjonFraStart); + return nyesteGrunnlag.getInntektsmeldinger().stream() + .flatMap(ims -> ims.getInntektsmeldinger().stream()) + .filter(im -> im.getArbeidsgiver().equals(arbeidsgiver)) + .anyMatch(MapInntektsmeldinger::harRefusjonFraStart); } - - private static Map> lagFørsteRefusjonsdatoMap(InntektsmeldingAggregat inntektsmeldingAggregat) { - return inntektsmeldingAggregat.getInntektsmeldinger() - .stream() - .filter(MapInntektsmeldinger::harRefusjonskrav) - .collect(Collectors.toMap(Inntektsmelding::getArbeidsgiver, MapInntektsmeldinger::finnFørsteDatoMedRefusjon, - MapInntektsmeldinger::mergeDatoer)); + private static Map> lagFørsteRefusjonsdatoMap( + InntektsmeldingAggregat inntektsmeldingAggregat) { + return inntektsmeldingAggregat.getInntektsmeldinger().stream() + .filter(MapInntektsmeldinger::harRefusjonskrav) + .collect(Collectors.toMap( + Inntektsmelding::getArbeidsgiver, + MapInntektsmeldinger::finnFørsteDatoMedRefusjon, + MapInntektsmeldinger::mergeDatoer)); } private static Optional mergeDatoer(Optional d1, Optional d2) { @@ -134,13 +149,13 @@ private static Optional mergeDatoer(Optional d1, Optional< return dato1.isAfter(dato2) ? d2 : d1; } - private static Optional finnFørsteDatoForInnsendelseAvRefusjonskrav(Set inntektsmeldinger, - Arbeidsgiver arbeidsgiver) { + private static Optional finnFørsteDatoForInnsendelseAvRefusjonskrav( + Set inntektsmeldinger, Arbeidsgiver arbeidsgiver) { return inntektsmeldinger.stream() - .filter(im -> im.getArbeidsgiver().equals(arbeidsgiver)) - .filter(MapInntektsmeldinger::harRefusjonskrav) - .map(Inntektsmelding::getInnsendingstidspunkt) - .min(Comparator.naturalOrder()); + .filter(im -> im.getArbeidsgiver().equals(arbeidsgiver)) + .filter(MapInntektsmeldinger::harRefusjonskrav) + .map(Inntektsmelding::getInnsendingstidspunkt) + .min(Comparator.naturalOrder()); } private static Aktør mapTilAktør(Arbeidsgiver arbeidsgiver) { @@ -152,17 +167,20 @@ private static Optional mergeDatoer(Optional d1, Optional< } private static Optional finnFørsteDatoMedRefusjon(Inntektsmelding im) { - return harRefusjonFraStart(im) ? Optional.ofNullable(utledStartDato(im)) : im.getEndringerRefusjon() - .stream() - .map(Refusjon::getFom) - .min(Comparator.naturalOrder()); + return harRefusjonFraStart(im) + ? Optional.ofNullable(utledStartDato(im)) + : im.getEndringerRefusjon().stream().map(Refusjon::getFom).min(Comparator.naturalOrder()); } private static LocalDate utledStartDato(Inntektsmelding im) { if (im.getStartDatoPermisjon() != null) { return im.getStartDatoPermisjon(); } else { - return im.getOppgittFravær().stream().map(Fravær::getPeriode).map(IntervallEntitet::getFomDato).min(LocalDate::compareTo).orElse(null); + return im.getOppgittFravær().stream() + .map(Fravær::getPeriode) + .map(IntervallEntitet::getFomDato) + .min(LocalDate::compareTo) + .orElse(null); } } @@ -171,15 +189,17 @@ private static boolean harRefusjonskrav(Inntektsmelding im) { } private static boolean harEndringerIRefusjon(Inntektsmelding im) { - return im.getEndringerRefusjon().stream().anyMatch(refusjon -> !refusjon.getRefusjonsbeløp().erNulltall()); + return im.getEndringerRefusjon().stream() + .anyMatch(refusjon -> !refusjon.getRefusjonsbeløp().erNulltall()); } private static boolean harRefusjonFraStart(Inntektsmelding im) { - return im.getRefusjonBeløpPerMnd() != null && !im.getRefusjonBeløpPerMnd().erNulltall(); + return im.getRefusjonBeløpPerMnd() != null + && !im.getRefusjonBeløpPerMnd().erNulltall(); } - - private static List mapUnikeInntektsmeldinger(Map inntektsmeldingerMap) { + private static List mapUnikeInntektsmeldinger( + Map inntektsmeldingerMap) { List ims = new ArrayList<>(); inntektsmeldingerMap.forEach((key, value) -> { var mapper = new MapTilDto(value); @@ -188,7 +208,6 @@ private static List mapUnikeInntektsmeldinger(Map this.mapInntektsmelding(im)) - .sorted(COMP_INNTEKTSMELDING) - .collect(Collectors.toList()); + var inntektsmeldinger = inntektsmeldingAggregat.getInntektsmeldinger().stream() + .map(im -> this.mapInntektsmelding(im)) + .sorted(COMP_INNTEKTSMELDING) + .collect(Collectors.toList()); dto.medInntektsmeldinger(inntektsmeldinger); return dto; } else { throw new IllegalStateException( - "Utvikler-feil: Både arbeidsforholdInformasjon og inntektsmeldingAggregat må samtidig eksistere, men har arbeidsforholdInformasjon:" - + arbeidsforholdInformasjon + ", inntektsmeldingAggregat=" + inntektsmeldingAggregat); + "Utvikler-feil: Både arbeidsforholdInformasjon og inntektsmeldingAggregat må samtidig eksistere, men har arbeidsforholdInformasjon:" + + arbeidsforholdInformasjon + ", inntektsmeldingAggregat=" + inntektsmeldingAggregat); } } @@ -226,43 +244,59 @@ public InntektsmeldingDto mapInntektsmelding(Inntektsmelding im) { var innsendingsårsak = im.getInntektsmeldingInnsendingsårsak(); var mottattDato = im.getMottattDato(); - var inntektsmeldingDto = new InntektsmeldingDto(arbeidsgiver, journalpostId, innsendingstidspunkt, mottattDato).medArbeidsforholdRef( - arbeidsforholdId) - .medInnsendingsårsak(innsendingsårsak) - .medInntektBeløp(im.getInntektBeløp().getVerdi()) - .medKanalreferanse(im.getKanalreferanse()) - .medKildesystem(im.getKildesystem()) - .medRefusjonOpphører(im.getRefusjonOpphører()) - .medRefusjonsBeløpPerMnd(im.getRefusjonBeløpPerMnd() == null ? null : im.getRefusjonBeløpPerMnd().getVerdi()) - .medStartDatoPermisjon(im.getStartDatoPermisjon()) - .medNærRelasjon(im.getErNærRelasjon()); - - inntektsmeldingDto.medEndringerRefusjon( - im.getEndringerRefusjon().stream().map(this::mapEndringRefusjon).sorted(COMP_ENDRINGER_REFUSJON).collect(Collectors.toList())); - - inntektsmeldingDto.medGraderinger( - im.getGraderinger().stream().map(this::mapGradering).sorted(COMP_GRADERING).collect(Collectors.toList())); - - inntektsmeldingDto.medNaturalytelser( - im.getNaturalYtelser().stream().map(this::mapNaturalytelse).sorted(COMP_NATURALYTELSE).collect(Collectors.toList())); - - inntektsmeldingDto.medUtsettelsePerioder( - im.getUtsettelsePerioder().stream().map(this::mapUtsettelsePeriode).sorted(COMP_UTSETTELSE).collect(Collectors.toList())); - - inntektsmeldingDto.medOppgittFravær( - im.getOppgittFravær().stream().map(this::mapOppgittFravær).sorted(COMP_FRAVÆR).collect(Collectors.toList())); + var inntektsmeldingDto = new InntektsmeldingDto( + arbeidsgiver, journalpostId, innsendingstidspunkt, mottattDato) + .medArbeidsforholdRef(arbeidsforholdId) + .medInnsendingsårsak(innsendingsårsak) + .medInntektBeløp(im.getInntektBeløp().getVerdi()) + .medKanalreferanse(im.getKanalreferanse()) + .medKildesystem(im.getKildesystem()) + .medRefusjonOpphører(im.getRefusjonOpphører()) + .medRefusjonsBeløpPerMnd( + im.getRefusjonBeløpPerMnd() == null + ? null + : im.getRefusjonBeløpPerMnd().getVerdi()) + .medStartDatoPermisjon(im.getStartDatoPermisjon()) + .medNærRelasjon(im.getErNærRelasjon()); + + inntektsmeldingDto.medEndringerRefusjon(im.getEndringerRefusjon().stream() + .map(this::mapEndringRefusjon) + .sorted(COMP_ENDRINGER_REFUSJON) + .collect(Collectors.toList())); + + inntektsmeldingDto.medGraderinger(im.getGraderinger().stream() + .map(this::mapGradering) + .sorted(COMP_GRADERING) + .collect(Collectors.toList())); + + inntektsmeldingDto.medNaturalytelser(im.getNaturalYtelser().stream() + .map(this::mapNaturalytelse) + .sorted(COMP_NATURALYTELSE) + .collect(Collectors.toList())); + + inntektsmeldingDto.medUtsettelsePerioder(im.getUtsettelsePerioder().stream() + .map(this::mapUtsettelsePeriode) + .sorted(COMP_UTSETTELSE) + .collect(Collectors.toList())); + + inntektsmeldingDto.medOppgittFravær(im.getOppgittFravær().stream() + .map(this::mapOppgittFravær) + .sorted(COMP_FRAVÆR) + .collect(Collectors.toList())); return inntektsmeldingDto; } private RefusjonDto mapEndringRefusjon(Refusjon refusjon) { - return new RefusjonDto(refusjon.getFom(), refusjon.getRefusjonsbeløp().getVerdi()); + return new RefusjonDto( + refusjon.getFom(), refusjon.getRefusjonsbeløp().getVerdi()); } private GraderingDto mapGradering(Gradering gradering) { var periode = gradering.getPeriode(); var arbeidstidProsent = gradering.getArbeidstidProsent(); - return new GraderingDto(new Periode(periode.getFomDato(), periode.getTomDato()), arbeidstidProsent.getVerdi()); + return new GraderingDto( + new Periode(periode.getFomDato(), periode.getTomDato()), arbeidstidProsent.getVerdi()); } private NaturalytelseDto mapNaturalytelse(NaturalYtelse naturalYtelse) { @@ -284,95 +318,121 @@ private UtsettelsePeriodeDto mapUtsettelsePeriode(UtsettelsePeriode utsettelsePe } private Aktør mapAktør(Arbeidsgiver arbeidsgiverEntitet) { - return arbeidsgiverEntitet.erAktørId() ? new AktørIdPersonident(arbeidsgiverEntitet.getAktørId().getId()) : new Organisasjon( - arbeidsgiverEntitet.getOrgnr().getId()); + return arbeidsgiverEntitet.erAktørId() + ? new AktørIdPersonident(arbeidsgiverEntitet.getAktørId().getId()) + : new Organisasjon(arbeidsgiverEntitet.getOrgnr().getId()); } - private ArbeidsforholdRefDto mapArbeidsforholdsId(@SuppressWarnings("unused") Arbeidsgiver arbeidsgiver, - InternArbeidsforholdRef internRef, - EksternArbeidsforholdRef eksternRef) { - if ((internRef == null || internRef.getReferanse() == null) && (eksternRef == null || eksternRef.getReferanse() == null)) { + private ArbeidsforholdRefDto mapArbeidsforholdsId( + @SuppressWarnings("unused") Arbeidsgiver arbeidsgiver, + InternArbeidsforholdRef internRef, + EksternArbeidsforholdRef eksternRef) { + if ((internRef == null || internRef.getReferanse() == null) + && (eksternRef == null || eksternRef.getReferanse() == null)) { return null; - } else if (internRef != null && eksternRef != null && internRef.getReferanse() != null && eksternRef.getReferanse() != null) { - return new ArbeidsforholdRefDto(internRef.getReferanse(), eksternRef.getReferanse(), - no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem.AAREGISTERET); + } else if (internRef != null + && eksternRef != null + && internRef.getReferanse() != null + && eksternRef.getReferanse() != null) { + return new ArbeidsforholdRefDto( + internRef.getReferanse(), + eksternRef.getReferanse(), + no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem.AAREGISTERET); } else { throw new IllegalStateException( - "Både internArbeidsforholdRef og eksternArbeidsforholdRef må være satt (eller begge ikke satt), har nå internRef=" + internRef - + ", eksternRef=" + eksternRef); + "Både internArbeidsforholdRef og eksternArbeidsforholdRef må være satt (eller begge ikke satt), har nå internRef=" + + internRef + ", eksternRef=" + eksternRef); } } } public static class MapFraDto { - public InntektsmeldingAggregat map(ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon, InntektsmeldingerDto dto) { + public InntektsmeldingAggregat map( + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon, InntektsmeldingerDto dto) { if (dto == null) { return null; } - var inntektsmeldinger = dto.getInntektsmeldinger() - .stream() - .map(im -> mapInntektsmelding(arbeidsforholdInformasjon, im)) - .collect(Collectors.toList()); + var inntektsmeldinger = dto.getInntektsmeldinger().stream() + .map(im -> mapInntektsmelding(arbeidsforholdInformasjon, im)) + .collect(Collectors.toList()); return new InntektsmeldingAggregat(inntektsmeldinger); } - private Inntektsmelding mapInntektsmelding(ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon, InntektsmeldingDto dto) { + private Inntektsmelding mapInntektsmelding( + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon, InntektsmeldingDto dto) { var arbeidsforholdRef = dto.getArbeidsforholdRef(); - var internRef = InternArbeidsforholdRef.ref(arbeidsforholdRef == null ? null : arbeidsforholdRef.getAbakusReferanse()); - var eksternRef = EksternArbeidsforholdRef.ref(arbeidsforholdRef == null ? null : arbeidsforholdRef.getEksternReferanse()); + var internRef = InternArbeidsforholdRef.ref( + arbeidsforholdRef == null ? null : arbeidsforholdRef.getAbakusReferanse()); + var eksternRef = EksternArbeidsforholdRef.ref( + arbeidsforholdRef == null ? null : arbeidsforholdRef.getEksternReferanse()); var arbeidsgiver = mapArbeidsgiver(dto.getArbeidsgiver()); if (eksternRef.gjelderForSpesifiktArbeidsforhold() && !internRef.gjelderForSpesifiktArbeidsforhold()) { internRef = arbeidsforholdInformasjon.finnEllerOpprett(arbeidsgiver, eksternRef); } else { - if (eksternRef.gjelderForSpesifiktArbeidsforhold() && internRef.gjelderForSpesifiktArbeidsforhold() - && arbeidsforholdInformasjon.erUkjentReferanse(arbeidsgiver, internRef)) { - arbeidsforholdInformasjon.leggTilNyReferanse(new ArbeidsforholdReferanse(arbeidsgiver, internRef, eksternRef)); + if (eksternRef.gjelderForSpesifiktArbeidsforhold() + && internRef.gjelderForSpesifiktArbeidsforhold() + && arbeidsforholdInformasjon.erUkjentReferanse(arbeidsgiver, internRef)) { + arbeidsforholdInformasjon.leggTilNyReferanse( + new ArbeidsforholdReferanse(arbeidsgiver, internRef, eksternRef)); } } var journalpostId = dto.getJournalpostId().getId(); - var innsendingstidspunkt = dto.getInnsendingstidspunkt().atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime(); + var innsendingstidspunkt = dto.getInnsendingstidspunkt() + .atZoneSameInstant(ZoneId.systemDefault()) + .toLocalDateTime(); var innsendingsårsak = dto.getInnsendingsårsak(); var builder = InntektsmeldingBuilder.builder() - .medJournalpostId(journalpostId) - .medArbeidsgiver(mapArbeidsgiver(dto.getArbeidsgiver())) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medBeløp(dto.getInntektBeløp()) - .medArbeidsforholdId(eksternRef) - .medArbeidsforholdId(internRef) - .medStartDatoPermisjon(dto.getStartDatoPermisjon()) - .medRefusjon(dto.getRefusjonsBeløpPerMnd(), dto.getRefusjonOpphører()) - .medKanalreferanse(dto.getKanalreferanse()) - .medInntektsmeldingaarsak(innsendingsårsak) - .medNærRelasjon(dto.isNærRelasjon() == null ? false : dto.isNærRelasjon()) - .medKildesystem(dto.getKildesystem()) - .medMottattDato(dto.getMottattDato()); - - dto.getEndringerRefusjon().stream().map(eir -> new Refusjon(eir.getRefusjonsbeløpMnd(), eir.getFom())).forEach(builder::leggTil); - - dto.getGraderinger().stream().map(gr -> { - var periode = gr.getPeriode(); - return new Gradering(periode.getFom(), periode.getTom(), gr.getArbeidstidProsent()); - }).forEach(builder::leggTil); - - dto.getNaturalytelser().stream().map(ny -> { - var periode = ny.getPeriode(); - var naturalYtelseType = ny.getType(); - return new NaturalYtelse(periode.getFom(), periode.getTom(), ny.getBeløpPerMnd(), naturalYtelseType); - }).forEach(builder::leggTil); - - dto.getUtsettelsePerioder().stream().map(up -> { - var periode = up.getPeriode(); - var utsettelseÅrsak = up.getUtsettelseÅrsakDto(); - return UtsettelsePeriode.utsettelse(periode.getFom(), periode.getTom(), utsettelseÅrsak); - }).forEach(builder::leggTil); - - dto.getOppgittFravær().stream().map(ny -> { - var periode = ny.getPeriode(); - return new Fravær(periode.getFom(), periode.getTom(), ny.getVarighetPerDag()); - }).forEach(builder::leggTil); + .medJournalpostId(journalpostId) + .medArbeidsgiver(mapArbeidsgiver(dto.getArbeidsgiver())) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medBeløp(dto.getInntektBeløp()) + .medArbeidsforholdId(eksternRef) + .medArbeidsforholdId(internRef) + .medStartDatoPermisjon(dto.getStartDatoPermisjon()) + .medRefusjon(dto.getRefusjonsBeløpPerMnd(), dto.getRefusjonOpphører()) + .medKanalreferanse(dto.getKanalreferanse()) + .medInntektsmeldingaarsak(innsendingsårsak) + .medNærRelasjon(dto.isNærRelasjon() == null ? false : dto.isNærRelasjon()) + .medKildesystem(dto.getKildesystem()) + .medMottattDato(dto.getMottattDato()); + + dto.getEndringerRefusjon().stream() + .map(eir -> new Refusjon(eir.getRefusjonsbeløpMnd(), eir.getFom())) + .forEach(builder::leggTil); + + dto.getGraderinger().stream() + .map(gr -> { + var periode = gr.getPeriode(); + return new Gradering(periode.getFom(), periode.getTom(), gr.getArbeidstidProsent()); + }) + .forEach(builder::leggTil); + + dto.getNaturalytelser().stream() + .map(ny -> { + var periode = ny.getPeriode(); + var naturalYtelseType = ny.getType(); + return new NaturalYtelse( + periode.getFom(), periode.getTom(), ny.getBeløpPerMnd(), naturalYtelseType); + }) + .forEach(builder::leggTil); + + dto.getUtsettelsePerioder().stream() + .map(up -> { + var periode = up.getPeriode(); + var utsettelseÅrsak = up.getUtsettelseÅrsakDto(); + return UtsettelsePeriode.utsettelse(periode.getFom(), periode.getTom(), utsettelseÅrsak); + }) + .forEach(builder::leggTil); + + dto.getOppgittFravær().stream() + .map(ny -> { + var periode = ny.getPeriode(); + return new Fravær(periode.getFom(), periode.getTom(), ny.getVarighetPerDag()); + }) + .forEach(builder::leggTil); return builder.build(); } @@ -390,7 +450,5 @@ private Arbeidsgiver mapArbeidsgiver(Aktør arbeidsgiverDto) { } throw new IllegalArgumentException(); } - } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapOppgittOpptjening.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapOppgittOpptjening.java index 82de9fa9a..e40a31dab 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapOppgittOpptjening.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapOppgittOpptjening.java @@ -8,7 +8,6 @@ import java.util.UUID; import java.util.function.Function; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.JournalpostId; import no.nav.abakus.iaygrunnlag.Organisasjon; import no.nav.abakus.iaygrunnlag.Periode; @@ -33,34 +32,49 @@ public class MapOppgittOpptjening { - private static final Comparator COMP_FRILANSOPPDRAG = Comparator.comparing(OppgittFrilansoppdragDto::getOppdragsgiver, - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + private static final Comparator COMP_FRILANSOPPDRAG = Comparator.comparing( + OppgittFrilansoppdragDto::getOppdragsgiver, Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_ANNEN_AKTIVITET = Comparator.comparing( - (OppgittAnnenAktivitetDto dto) -> dto.getArbeidTypeDto() == null ? null : dto.getArbeidTypeDto().getKode(), - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); + (OppgittAnnenAktivitetDto dto) -> dto.getArbeidTypeDto() == null + ? null + : dto.getArbeidTypeDto().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_OPPGITT_ARBEIDSFORHOLD = Comparator.comparing( - (OppgittArbeidsforholdDto dto) -> dto.getArbeidTypeDto() == null ? null : dto.getArbeidTypeDto().getKode(), - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getLandkode() == null ? null : dto.getLandkode().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(OppgittArbeidsforholdDto::getInntekt, Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(OppgittArbeidsforholdDto::getVirksomhetNavn, Comparator.nullsLast(Comparator.naturalOrder())); + (OppgittArbeidsforholdDto dto) -> dto.getArbeidTypeDto() == null + ? null + : dto.getArbeidTypeDto().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getLandkode() == null ? null : dto.getLandkode().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(OppgittArbeidsforholdDto::getInntekt, Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + OppgittArbeidsforholdDto::getVirksomhetNavn, Comparator.nullsLast(Comparator.naturalOrder())); private static final Comparator COMP_OPPGITT_EGEN_NÆRING = Comparator.comparing( - (OppgittEgenNæringDto dto) -> dto.getVirksomhetTypeDto() == null ? null : dto.getVirksomhetTypeDto().getKode(), - Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getVirksomhet() == null ? null : dto.getVirksomhet().getIdent(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(dto -> dto.getLandkode() == null ? null : dto.getLandkode().getKode(), Comparator.nullsLast(Comparator.naturalOrder())) - .thenComparing(OppgittEgenNæringDto::getVirksomhetNavn, Comparator.nullsLast(Comparator.naturalOrder())); + (OppgittEgenNæringDto dto) -> dto.getVirksomhetTypeDto() == null + ? null + : dto.getVirksomhetTypeDto().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getFom(), Comparator.nullsFirst(Comparator.naturalOrder())) + .thenComparing(dto -> dto.getPeriode().getTom(), Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getVirksomhet() == null + ? null + : dto.getVirksomhet().getIdent(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing( + dto -> dto.getLandkode() == null ? null : dto.getLandkode().getKode(), + Comparator.nullsLast(Comparator.naturalOrder())) + .thenComparing(OppgittEgenNæringDto::getVirksomhetNavn, Comparator.nullsLast(Comparator.naturalOrder())); public OppgittOpptjeningDto mapTilDto(OppgittOpptjening oppgittOpptjening) { return new MapTilDto().map(oppgittOpptjening); @@ -77,23 +91,26 @@ public OppgittOpptjeningDto map(OppgittOpptjening oppgittOpptjening) { return null; } - var dto = new OppgittOpptjeningDto(oppgittOpptjening.getEksternReferanse(), oppgittOpptjening.getOpprettetTidspunkt()); + var dto = new OppgittOpptjeningDto( + oppgittOpptjening.getEksternReferanse(), oppgittOpptjening.getOpprettetTidspunkt()); - Optional.ofNullable(oppgittOpptjening.getJournalpostId()).ifPresent(jp -> dto.setJournalpostId(new JournalpostId(jp.getVerdi()))); + Optional.ofNullable(oppgittOpptjening.getJournalpostId()) + .ifPresent(jp -> dto.setJournalpostId(new JournalpostId(jp.getVerdi()))); Optional.ofNullable(oppgittOpptjening.getInnsendingstidspunkt()) - .ifPresent(tidspunkt -> dto.setInnsendingstidspunkt(tidspunkt.atZone(ZoneId.of("Europe/Oslo")).toOffsetDateTime())); - dto.medArbeidsforhold(oppgittOpptjening.getOppgittArbeidsforhold() - .stream() - .map(oa -> this.mapArbeidsforhold(oa)) - .sorted(COMP_OPPGITT_ARBEIDSFORHOLD) - .collect(Collectors.toList())); - dto.medEgenNæring( - oppgittOpptjening.getEgenNæring().stream().map(this::mapEgenNæring).sorted(COMP_OPPGITT_EGEN_NÆRING).collect(Collectors.toList())); - dto.medAnnenAktivitet(oppgittOpptjening.getAnnenAktivitet() - .stream() - .map(this::mapAnnenAktivitet) - .sorted(COMP_ANNEN_AKTIVITET) - .collect(Collectors.toList())); + .ifPresent(tidspunkt -> dto.setInnsendingstidspunkt( + tidspunkt.atZone(ZoneId.of("Europe/Oslo")).toOffsetDateTime())); + dto.medArbeidsforhold(oppgittOpptjening.getOppgittArbeidsforhold().stream() + .map(oa -> this.mapArbeidsforhold(oa)) + .sorted(COMP_OPPGITT_ARBEIDSFORHOLD) + .collect(Collectors.toList())); + dto.medEgenNæring(oppgittOpptjening.getEgenNæring().stream() + .map(this::mapEgenNæring) + .sorted(COMP_OPPGITT_EGEN_NÆRING) + .collect(Collectors.toList())); + dto.medAnnenAktivitet(oppgittOpptjening.getAnnenAktivitet().stream() + .map(this::mapAnnenAktivitet) + .sorted(COMP_ANNEN_AKTIVITET) + .collect(Collectors.toList())); oppgittOpptjening.getFrilans().ifPresent(f -> dto.medFrilans(mapFrilans(f))); @@ -105,14 +122,14 @@ private OppgittFrilansDto mapFrilans(OppgittFrilans frilans) { return null; } - var frilansoppdrag = frilans.getFrilansoppdrag() - .stream() - .map(this::mapFrilansoppdrag) - .sorted(COMP_FRILANSOPPDRAG) - .collect(Collectors.toList()); - var frilansDto = new OppgittFrilansDto(frilansoppdrag).medErNyoppstartet(frilans.getErNyoppstartet()) - .medHarInntektFraFosterhjem(frilans.getHarInntektFraFosterhjem()) - .medHarNærRelasjon(frilans.getHarNærRelasjon()); + var frilansoppdrag = frilans.getFrilansoppdrag().stream() + .map(this::mapFrilansoppdrag) + .sorted(COMP_FRILANSOPPDRAG) + .collect(Collectors.toList()); + var frilansDto = new OppgittFrilansDto(frilansoppdrag) + .medErNyoppstartet(frilans.getErNyoppstartet()) + .medHarInntektFraFosterhjem(frilans.getHarInntektFraFosterhjem()) + .medHarNærRelasjon(frilans.getHarNærRelasjon()); return frilansDto; } @@ -125,7 +142,8 @@ private OppgittArbeidsforholdDto mapArbeidsforhold(OppgittArbeidsforhold arbeids var periode = new Periode(periode1.getFomDato(), periode1.getTomDato()); var arbeidType = arbeidsforhold.getArbeidType(); - var dto = new OppgittArbeidsforholdDto(periode, arbeidType).medErUtenlandskInntekt(arbeidsforhold.erUtenlandskInntekt()); + var dto = new OppgittArbeidsforholdDto(periode, arbeidType) + .medErUtenlandskInntekt(arbeidsforhold.erUtenlandskInntekt()); Landkode landkode = arbeidsforhold.getLandkode(); var land = landkode == null || landkode.getKode() == null ? Landkode.NOR : landkode; @@ -152,20 +170,23 @@ private OppgittArbeidsforholdDto mapArbeidsforhold(OppgittArbeidsforhold arbeids IntervallEntitet periode1 = egenNæring.getPeriode(); var periode = new Periode(periode1.getFomDato(), periode1.getTomDato()); - var org = egenNæring.getOrgnummer() == null ? null : new Organisasjon(egenNæring.getOrgnummer().getId()); + var org = egenNæring.getOrgnummer() == null + ? null + : new Organisasjon(egenNæring.getOrgnummer().getId()); var virksomhetType = egenNæring.getVirksomhetType(); - var dto = new OppgittEgenNæringDto(periode).medBegrunnelse(egenNæring.getBegrunnelse()) - .medBruttoInntekt(egenNæring.getBruttoInntekt()) - .medEndringDato(egenNæring.getEndringDato()) - .medNyIArbeidslivet(egenNæring.getNyIArbeidslivet()) - .medNyoppstartet(egenNæring.getNyoppstartet()) - .medNærRelasjon(egenNæring.getNærRelasjon()) - .medRegnskapsførerNavn(egenNæring.getRegnskapsførerNavn()) - .medRegnskapsførerTlf(egenNæring.getRegnskapsførerTlf()) - .medVarigEndring(egenNæring.getVarigEndring()) - .medVirksomhet(org) - .medVirksomhetType(virksomhetType); + var dto = new OppgittEgenNæringDto(periode) + .medBegrunnelse(egenNæring.getBegrunnelse()) + .medBruttoInntekt(egenNæring.getBruttoInntekt()) + .medEndringDato(egenNæring.getEndringDato()) + .medNyIArbeidslivet(egenNæring.getNyIArbeidslivet()) + .medNyoppstartet(egenNæring.getNyoppstartet()) + .medNærRelasjon(egenNæring.getNærRelasjon()) + .medRegnskapsførerNavn(egenNæring.getRegnskapsførerNavn()) + .medRegnskapsførerTlf(egenNæring.getRegnskapsførerTlf()) + .medVarigEndring(egenNæring.getVarigEndring()) + .medVirksomhet(org) + .medVirksomhetType(virksomhetType); var virksomhet = egenNæring.getUtenlandskVirksomhetNavn(); Landkode landkode = egenNæring.getLandkode(); @@ -184,7 +205,9 @@ private OppgittFrilansoppdragDto mapFrilansoppdrag(OppgittFrilansoppdrag frilans return null; } - var periode = new Periode(frilansoppdrag.getPeriode().getFomDato(), frilansoppdrag.getPeriode().getTomDato()); + var periode = new Periode( + frilansoppdrag.getPeriode().getFomDato(), + frilansoppdrag.getPeriode().getTomDato()); var oppdragsgiver = frilansoppdrag.getOppdragsgiver(); OppgittFrilansoppdragDto oppgittFrilansoppdragDto = new OppgittFrilansoppdragDto(periode, oppdragsgiver); if (frilansoppdrag.getInntekt() != null) { @@ -198,7 +221,9 @@ private OppgittAnnenAktivitetDto mapAnnenAktivitet(OppgittAnnenAktivitet annenAk return null; } - var periode = new Periode(annenAktivitet.getPeriode().getFomDato(), annenAktivitet.getPeriode().getTomDato()); + var periode = new Periode( + annenAktivitet.getPeriode().getFomDato(), + annenAktivitet.getPeriode().getTomDato()); var arbeidType = annenAktivitet.getArbeidType(); return new OppgittAnnenAktivitetDto(periode, arbeidType); } @@ -211,7 +236,8 @@ public OppgittOpptjeningBuilder map(OppgittOpptjeningDto dto) { return null; } - var oppgittOpptjeningEksternReferanse = UUID.fromString(dto.getEksternReferanse().getReferanse()); + var oppgittOpptjeningEksternReferanse = + UUID.fromString(dto.getEksternReferanse().getReferanse()); var builder = OppgittOpptjeningBuilder.ny(oppgittOpptjeningEksternReferanse, dto.getOpprettetTidspunkt()); var annenAktivitet = mapEach(dto.getAnnenAktivitet(), this::mapAnnenAktivitet); @@ -227,10 +253,13 @@ public OppgittOpptjeningBuilder map(OppgittOpptjeningDto dto) { builder.leggTilFrilansOpplysninger(frilans); if (dto.getJournalpostId() != null) { - builder.medJournalpostId(new no.nav.foreldrepenger.abakus.typer.JournalpostId(dto.getJournalpostId().getId())); + builder.medJournalpostId(new no.nav.foreldrepenger.abakus.typer.JournalpostId( + dto.getJournalpostId().getId())); } if (dto.getInnsendingstidspunkt() != null) { - builder.medInnsendingstidspuntk(dto.getInnsendingstidspunkt().atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime()); + builder.medInnsendingstidspuntk(dto.getInnsendingstidspunkt() + .atZoneSameInstant(ZoneId.systemDefault()) + .toLocalDateTime()); } return builder; @@ -254,8 +283,13 @@ private OppgittFrilans mapFrilans(OppgittFrilansDto dto) { frilans.setHarNærRelasjon(dto.isHarNærRelasjon()); frilans.setHarInntektFraFosterhjem(dto.isHarInntektFraFosterhjem()); - var frilansoppdrag = mapEach(dto.getFrilansoppdrag(), f -> new OppgittFrilansoppdrag(f.getOppdragsgiver(), - IntervallEntitet.fraOgMedTilOgMed(f.getPeriode().getFom(), f.getPeriode().getTom()), f.getInntekt())); + var frilansoppdrag = mapEach( + dto.getFrilansoppdrag(), + f -> new OppgittFrilansoppdrag( + f.getOppdragsgiver(), + IntervallEntitet.fraOgMedTilOgMed( + f.getPeriode().getFom(), f.getPeriode().getTom()), + f.getInntekt())); frilans.setFrilansoppdrag(frilansoppdrag); return frilans; } @@ -267,20 +301,22 @@ private OppgittFrilans mapFrilans(OppgittFrilansDto dto) { var builder = EgenNæringBuilder.ny(); - var org = dto.getVirksomhet() == null ? null : new OrgNummer(dto.getVirksomhet().getIdent()); + var org = dto.getVirksomhet() == null + ? null + : new OrgNummer(dto.getVirksomhet().getIdent()); var periode = dto.getPeriode(); builder.medBegrunnelse(dto.getBegrunnelse()) - .medBruttoInntekt(dto.getBruttoInntekt()) - .medEndringDato(dto.getEndringDato()) - .medVirksomhet(org) - .medVirksomhetType(dto.getVirksomhetTypeDto()) - .medRegnskapsførerNavn(trimVedBehov(dto.getRegnskapsførerNavn())) - .medRegnskapsførerTlf(dto.getRegnskapsførerTlf()) - .medNyIArbeidslivet(dto.isNyIArbeidslivet()) - .medNyoppstartet(dto.isNyoppstartet()) - .medNærRelasjon(dto.isNærRelasjon()) - .medVarigEndring(dto.isVarigEndring()) - .medPeriode(IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); + .medBruttoInntekt(dto.getBruttoInntekt()) + .medEndringDato(dto.getEndringDato()) + .medVirksomhet(org) + .medVirksomhetType(dto.getVirksomhetTypeDto()) + .medRegnskapsførerNavn(trimVedBehov(dto.getRegnskapsførerNavn())) + .medRegnskapsførerTlf(dto.getRegnskapsførerTlf()) + .medNyIArbeidslivet(dto.isNyIArbeidslivet()) + .medNyoppstartet(dto.isNyoppstartet()) + .medNærRelasjon(dto.isNærRelasjon()) + .medVarigEndring(dto.isVarigEndring()) + .medPeriode(IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); Landkode landkode = mapLandkoder(dto.getLandkode()); builder.medUtenlandskVirksomhet(landkode, dto.getVirksomhetNavn()); @@ -288,7 +324,7 @@ private OppgittFrilans mapFrilans(OppgittFrilansDto dto) { return builder; } - //fix for TSF-798 + // fix for TSF-798 // regnskapsførerNavn oppgitt med 566 tegn... private String trimVedBehov(String regnskapsførerNavn) { if (regnskapsførerNavn != null && regnskapsførerNavn.length() > 400) { @@ -304,10 +340,10 @@ private OppgittArbeidsforholdBuilder mapOppgittArbeidsforhold(OppgittArbeidsforh Periode dto1 = dto.getPeriode(); var builder = OppgittArbeidsforholdBuilder.ny() - .medArbeidType(dto.getArbeidTypeDto()) - .medErUtenlandskInntekt(dto.isErUtenlandskInntekt()) - .medInnteket(dto.getInntekt()) - .medPeriode(IntervallEntitet.fraOgMedTilOgMed(dto1.getFom(), dto1.getTom())); + .medArbeidType(dto.getArbeidTypeDto()) + .medErUtenlandskInntekt(dto.isErUtenlandskInntekt()) + .medInnteket(dto.getInntekt()) + .medPeriode(IntervallEntitet.fraOgMedTilOgMed(dto1.getFom(), dto1.getTom())); Landkode landkode = mapLandkoder(dto.getLandkode()); builder.medUtenlandskVirksomhet(landkode, dto.getVirksomhetNavn()); @@ -329,7 +365,5 @@ private OppgittAnnenAktivitet mapAnnenAktivitet(OppgittAnnenAktivitetDto dto) { private Landkode mapLandkoder(Landkode landkode) { return landkode == null || landkode.getKode() == null ? Landkode.NOR : landkode; } - } - } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjeneste.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjeneste.java" index 86fdbb531..057c39bff 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjeneste.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjeneste.java" @@ -8,7 +8,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.abakus.iaygrunnlag.kodeverk.LønnsinntektBeskrivelse; @@ -20,43 +19,48 @@ import no.nav.foreldrepenger.abakus.domene.iay.Opptjeningsnøkkel; import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.InntektsInformasjon; -/** - * Lager Inntekt for lønnsinnntekter - */ +/** Lager Inntekt for lønnsinnntekter */ class ByggLønnsinntektInntektTjeneste { - - static void mapLønnsinntekter(InntektsInformasjon inntektsInformasjon, - InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder aktørInntektBuilder, - Map arbeidsgivereLookup) { - mapTilArbeidsgiver(inntektsInformasjon, arbeidsgivereLookup).entrySet() - .stream() - .map(e -> byggInntekt(e.getValue(), e.getKey(), aktørInntektBuilder, inntektsInformasjon.getKilde())) - .forEach(aktørInntektBuilder::leggTilInntekt); + static void mapLønnsinntekter( + InntektsInformasjon inntektsInformasjon, + InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder aktørInntektBuilder, + Map arbeidsgivereLookup) { + mapTilArbeidsgiver(inntektsInformasjon, arbeidsgivereLookup).entrySet().stream() + .map(e -> byggInntekt(e.getValue(), e.getKey(), aktørInntektBuilder, inntektsInformasjon.getKilde())) + .forEach(aktørInntektBuilder::leggTilInntekt); } - private static Map>> mapTilArbeidsgiver(InntektsInformasjon inntektsInformasjon, - Map arbeidsgivereLookup) { - - return inntektsInformasjon.getMånedsinntekterUtenomYtelser() - .stream() - .filter(mi -> arbeidsgivereLookup.get(mi.getArbeidsgiver()) != null) - .map(mi -> new MånedsbeløpOgSkatteOgAvgiftsregel(arbeidsgivereLookup.get(mi.getArbeidsgiver()), mi.getMåned(), mi.getBeløp(), - mi.getSkatteOgAvgiftsregelType(), mi.getLønnsbeskrivelseKode())) - .collect(Collectors.groupingBy(MånedsbeløpOgSkatteOgAvgiftsregel::getArbeidsgiver, - Collectors.groupingBy(MånedsbeløpOgSkatteOgAvgiftsregel::getMåned))); + private static Map>> mapTilArbeidsgiver( + InntektsInformasjon inntektsInformasjon, Map arbeidsgivereLookup) { + + return inntektsInformasjon.getMånedsinntekterUtenomYtelser().stream() + .filter(mi -> arbeidsgivereLookup.get(mi.getArbeidsgiver()) != null) + .map(mi -> new MånedsbeløpOgSkatteOgAvgiftsregel( + arbeidsgivereLookup.get(mi.getArbeidsgiver()), + mi.getMåned(), + mi.getBeløp(), + mi.getSkatteOgAvgiftsregelType(), + mi.getLønnsbeskrivelseKode())) + .collect(Collectors.groupingBy( + MånedsbeløpOgSkatteOgAvgiftsregel::getArbeidsgiver, + Collectors.groupingBy(MånedsbeløpOgSkatteOgAvgiftsregel::getMåned))); } - private static InntektBuilder byggInntekt(Map> inntekter, - Arbeidsgiver arbeidsgiver, - InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder aktørInntektBuilder, - InntektskildeType inntektOpptjening) { + private static InntektBuilder byggInntekt( + Map> inntekter, + Arbeidsgiver arbeidsgiver, + InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder aktørInntektBuilder, + InntektskildeType inntektOpptjening) { - InntektBuilder inntektBuilder = aktørInntektBuilder.getInntektBuilder(inntektOpptjening, new Opptjeningsnøkkel(arbeidsgiver)); + InntektBuilder inntektBuilder = + aktørInntektBuilder.getInntektBuilder(inntektOpptjening, new Opptjeningsnøkkel(arbeidsgiver)); for (var måned : inntekter.keySet()) { var månedsinnteker = inntekter.get(måned); - BigDecimal beløpSum = månedsinnteker.stream().map(MånedsbeløpOgSkatteOgAvgiftsregel::getBeløp).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal beløpSum = månedsinnteker.stream() + .map(MånedsbeløpOgSkatteOgAvgiftsregel::getBeløp) + .reduce(BigDecimal.ZERO, BigDecimal::add); Optional valgtSkatteOgAvgiftsregel = finnSkatteOgAvgiftsregel(månedsinnteker); @@ -69,27 +73,34 @@ private static InntektBuilder byggInntekt(Map finnSkatteOgAvgiftsregel(List månedsinnteker) { Map antalInntekterForAvgiftsregel = månedsinnteker.stream() - .filter(e -> e.getSkatteOgAvgiftsregelType() != null) - .collect(Collectors.groupingBy(MånedsbeløpOgSkatteOgAvgiftsregel::getSkatteOgAvgiftsregelType, - Collectors.collectingAndThen(Collectors.mapping(MånedsbeløpOgSkatteOgAvgiftsregel::getBeløp, Collectors.toSet()), Set::size))); + .filter(e -> e.getSkatteOgAvgiftsregelType() != null) + .collect(Collectors.groupingBy( + MånedsbeløpOgSkatteOgAvgiftsregel::getSkatteOgAvgiftsregelType, + Collectors.collectingAndThen( + Collectors.mapping(MånedsbeløpOgSkatteOgAvgiftsregel::getBeløp, Collectors.toSet()), + Set::size))); Optional valgtSkatteOgAvgiftsregel = Optional.empty(); if (antalInntekterForAvgiftsregel.keySet().size() > 1) { - valgtSkatteOgAvgiftsregel = Optional.ofNullable(velgSkatteOgAvgiftsRegel(antalInntekterForAvgiftsregel.keySet())); + valgtSkatteOgAvgiftsregel = + Optional.ofNullable(velgSkatteOgAvgiftsRegel(antalInntekterForAvgiftsregel.keySet())); } else if (antalInntekterForAvgiftsregel.keySet().size() == 1) { - valgtSkatteOgAvgiftsregel = Optional.of(antalInntekterForAvgiftsregel.keySet().iterator().next()); + valgtSkatteOgAvgiftsregel = Optional.of( + antalInntekterForAvgiftsregel.keySet().iterator().next()); } return valgtSkatteOgAvgiftsregel; } private static Optional finnLønnsbeskrivelseType(List månedsinnteker) { Set lønnsinntektBeskrivelse = månedsinnteker.stream() - .map(MånedsbeløpOgSkatteOgAvgiftsregel::getLønnsinntektBeskrivelseKode) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); + .map(MånedsbeløpOgSkatteOgAvgiftsregel::getLønnsinntektBeskrivelseKode) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); Optional valgtLønnsbesrivelseType = Optional.empty(); if (lønnsinntektBeskrivelse.size() > 1) { - if (lønnsinntektBeskrivelse.contains(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode())) { - return Optional.of(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()); + if (lønnsinntektBeskrivelse.contains( + LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode())) { + return Optional.of( + LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()); } else { return Optional.of(lønnsinntektBeskrivelse.iterator().next()); } @@ -99,16 +110,23 @@ private static Optional finnSkatteOgAvgiftsregel(List valgtSkatteOgAvgiftsregel, - Optional lønnsinntektBeskrivelseKode, - InntektBuilder inntektBuilder) { + private static void lagInntektsposter( + YearMonth måned, + BigDecimal sumInntektsbeløp, + Optional valgtSkatteOgAvgiftsregel, + Optional lønnsinntektBeskrivelseKode, + InntektBuilder inntektBuilder) { InntektspostBuilder inntektspostBuilder = inntektBuilder.getInntektspostBuilder(); - inntektspostBuilder.medBeløp(sumInntektsbeløp).medPeriode(måned.atDay(1), måned.atEndOfMonth()).medInntektspostType(InntektspostType.LØNN); - valgtSkatteOgAvgiftsregel.map(SkatteOgAvgiftsregelType::finnForKodeverkEiersKode).ifPresent(inntektspostBuilder::medSkatteOgAvgiftsregelType); - lønnsinntektBeskrivelseKode.map(LønnsinntektBeskrivelse::finnForKodeverkEiersKode).ifPresent(inntektspostBuilder::medLønnsinntektBeskrivelse); + inntektspostBuilder + .medBeløp(sumInntektsbeløp) + .medPeriode(måned.atDay(1), måned.atEndOfMonth()) + .medInntektspostType(InntektspostType.LØNN); + valgtSkatteOgAvgiftsregel + .map(SkatteOgAvgiftsregelType::finnForKodeverkEiersKode) + .ifPresent(inntektspostBuilder::medSkatteOgAvgiftsregelType); + lønnsinntektBeskrivelseKode + .map(LønnsinntektBeskrivelse::finnForKodeverkEiersKode) + .ifPresent(inntektspostBuilder::medLønnsinntektBeskrivelse); inntektBuilder.leggTilInntektspost(inntektspostBuilder); } @@ -130,11 +148,12 @@ public static final class MånedsbeløpOgSkatteOgAvgiftsregel { private String lønnsinntektBeskrivelseKode; - public MånedsbeløpOgSkatteOgAvgiftsregel(Arbeidsgiver arbeidsgiver, - YearMonth måned, - BigDecimal beløp, - String skatteOgAvgiftsregelType, - String lønnsinntektBeskrivelseKode) { + public MånedsbeløpOgSkatteOgAvgiftsregel( + Arbeidsgiver arbeidsgiver, + YearMonth måned, + BigDecimal beløp, + String skatteOgAvgiftsregelType, + String lønnsinntektBeskrivelseKode) { this.arbeidsgiver = arbeidsgiver; this.måned = måned; this.beløp = beløp; @@ -162,5 +181,4 @@ public String getSkatteOgAvgiftsregelType() { return lønnsinntektBeskrivelseKode; } } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggYrkesaktiviteterTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggYrkesaktiviteterTjeneste.java index a375a5ce8..e1723f1cb 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggYrkesaktiviteterTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ByggYrkesaktiviteterTjeneste.java @@ -8,7 +8,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; import no.nav.foreldrepenger.abakus.domene.iay.AktivitetsAvtaleBuilder; @@ -26,15 +25,17 @@ class ByggYrkesaktiviteterTjeneste { - YrkesaktivitetBuilder byggYrkesaktivitetForSøker(Map.Entry> arbeidsforhold, - Arbeidsgiver arbeidsgiver, - InternArbeidsforholdRef internReferanse, - InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder) { + YrkesaktivitetBuilder byggYrkesaktivitetForSøker( + Map.Entry> arbeidsforhold, + Arbeidsgiver arbeidsgiver, + InternArbeidsforholdRef internReferanse, + InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder) { var opptjeningsNøkkel = new Opptjeningsnøkkel(internReferanse, arbeidsgiver); final ArbeidsforholdIdentifikator arbeidsgiverIdent = arbeidsforhold.getKey(); final ArbeidType arbeidsforholdType = ArbeidType.finnForKodeverkEiersKode(arbeidsgiverIdent.getType()); - YrkesaktivitetBuilder builder = aktørArbeidBuilder.getYrkesaktivitetBuilderForNøkkelAvType(opptjeningsNøkkel, arbeidsforholdType); + YrkesaktivitetBuilder builder = + aktørArbeidBuilder.getYrkesaktivitetBuilderForNøkkelAvType(opptjeningsNøkkel, arbeidsforholdType); opprettMinimalYrkesaktivitet(arbeidsforhold.getKey(), arbeidsgiver, internReferanse, builder); builder.tilbakestillAvtaler(); @@ -60,31 +61,38 @@ private void byggYrkesaktivitetForPrivatperson(List arbeidsforho builder.leggTilAktivitetsAvtale(byggAnsettelsesPeriode(builder, fom)); } - private void sammenstillAktivitetsavtaler(List arbeidsforhold, YrkesaktivitetBuilder builder, LocalDate fom) { - finnSisteArbeidsavtale(arbeidsforhold).ifPresent( - arbeidsavtale -> builder.leggTilAktivitetsAvtale(lagAktivitetsavtale(builder, fom, arbeidsavtale))); + private void sammenstillAktivitetsavtaler( + List arbeidsforhold, YrkesaktivitetBuilder builder, LocalDate fom) { + finnSisteArbeidsavtale(arbeidsforhold) + .ifPresent(arbeidsavtale -> + builder.leggTilAktivitetsAvtale(lagAktivitetsavtale(builder, fom, arbeidsavtale))); } - private AktivitetsAvtaleBuilder lagAktivitetsavtale(YrkesaktivitetBuilder builder, LocalDate fom, Arbeidsavtale arbeidsavtale) { + private AktivitetsAvtaleBuilder lagAktivitetsavtale( + YrkesaktivitetBuilder builder, LocalDate fom, Arbeidsavtale arbeidsavtale) { return builder.getAktivitetsAvtaleBuilder() - .medProsentsats(arbeidsavtale.getStillingsprosent()) - .medSisteLønnsendringsdato(arbeidsavtale.getSisteLønnsendringsdato() != null ? arbeidsavtale.getSisteLønnsendringsdato() : fom) - .medPeriode(IntervallEntitet.fraOgMed(fom)); + .medProsentsats(arbeidsavtale.getStillingsprosent()) + .medSisteLønnsendringsdato( + arbeidsavtale.getSisteLønnsendringsdato() != null + ? arbeidsavtale.getSisteLønnsendringsdato() + : fom) + .medPeriode(IntervallEntitet.fraOgMed(fom)); } private Optional finnSisteArbeidsavtale(List arbeidsforhold) { return arbeidsforhold.stream() - .flatMap(arbeid -> arbeid.getArbeidsavtaler().stream()) - .filter(avtale -> !avtale.getErAnsettelsesPerioden()) - .max(Comparator.comparing(a -> a.getArbeidsavtaleTom() != null ? a.getArbeidsavtaleTom() : TIDENES_ENDE)); + .flatMap(arbeid -> arbeid.getArbeidsavtaler().stream()) + .filter(avtale -> !avtale.getErAnsettelsesPerioden()) + .max(Comparator.comparing( + a -> a.getArbeidsavtaleTom() != null ? a.getArbeidsavtaleTom() : TIDENES_ENDE)); } private LocalDate finnFomDatoForAnsettelsesPeriode(List arbeidsforhold) { return arbeidsforhold.stream() - .flatMap(arbeid -> arbeid.getArbeidsavtaler().stream()) - .map(Arbeidsavtale::getArbeidsavtaleFom) - .min(LocalDate::compareTo) - .orElse(TIDENES_BEGYNNELSE); + .flatMap(arbeid -> arbeid.getArbeidsavtaler().stream()) + .map(Arbeidsavtale::getArbeidsavtaleFom) + .min(LocalDate::compareTo) + .orElse(TIDENES_BEGYNNELSE); } private AktivitetsAvtaleBuilder byggAnsettelsesPeriode(YrkesaktivitetBuilder builder, LocalDate fom) { @@ -92,57 +100,68 @@ private AktivitetsAvtaleBuilder byggAnsettelsesPeriode(YrkesaktivitetBuilder bui } private void byggPermisjoner(YrkesaktivitetBuilder builder, Arbeidsforhold arbeidsforhold1) { - final LocalDate arbeidTom = arbeidsforhold1.getArbeidTom() != null ? arbeidsforhold1.getArbeidTom() : TIDENES_ENDE; + final LocalDate arbeidTom = + arbeidsforhold1.getArbeidTom() != null ? arbeidsforhold1.getArbeidTom() : TIDENES_ENDE; builder.tilbakestillPermisjon(); - arbeidsforhold1.getPermisjoner() - .stream() - .filter(p -> p.getPermisjonFom() != null && p.getPermisjonFom().isBefore(arbeidTom)) - .map(p -> opprettPermisjoner(p, builder, arbeidTom)) - .forEach(builder::leggTilPermisjon); + arbeidsforhold1.getPermisjoner().stream() + .filter(p -> p.getPermisjonFom() != null && p.getPermisjonFom().isBefore(arbeidTom)) + .map(p -> opprettPermisjoner(p, builder, arbeidTom)) + .forEach(builder::leggTilPermisjon); } private void byggYrkesaktivitetForVirksomhet(List arbeidsforhold, YrkesaktivitetBuilder builder) { for (Arbeidsforhold arbeid : arbeidsforhold) { - arbeid.getArbeidsavtaler().stream().map(a -> opprettAktivitetsAvtaler(a, builder)).forEach(builder::leggTilAktivitetsAvtale); + arbeid.getArbeidsavtaler().stream() + .map(a -> opprettAktivitetsAvtaler(a, builder)) + .forEach(builder::leggTilAktivitetsAvtale); byggPermisjoner(builder, arbeid); } } - private Permisjon opprettPermisjoner(no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Permisjon permisjon, - YrkesaktivitetBuilder yrkesaktivitetBuilder, - LocalDate arbeidsforholdTom) { + private Permisjon opprettPermisjoner( + no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Permisjon permisjon, + YrkesaktivitetBuilder yrkesaktivitetBuilder, + LocalDate arbeidsforholdTom) { PermisjonBuilder permisjonBuilder = yrkesaktivitetBuilder.getPermisjonBuilder(); LocalDate permisjonTom = permisjon.getPermisjonTom() == null ? arbeidsforholdTom : permisjon.getPermisjonTom(); - return permisjonBuilder.medProsentsats(permisjon.getPermisjonsprosent()) - .medPeriode(permisjon.getPermisjonFom(), permisjonTom) - .medPermisjonsbeskrivelseType(PermisjonsbeskrivelseType.finnForKodeverkEiersKode(permisjon.getPermisjonsÅrsak())) - .build(); + return permisjonBuilder + .medProsentsats(permisjon.getPermisjonsprosent()) + .medPeriode(permisjon.getPermisjonFom(), permisjonTom) + .medPermisjonsbeskrivelseType( + PermisjonsbeskrivelseType.finnForKodeverkEiersKode(permisjon.getPermisjonsÅrsak())) + .build(); } - private void opprettMinimalYrkesaktivitet(ArbeidsforholdIdentifikator arbeidsforhold, - Arbeidsgiver arbeidsgiver, - InternArbeidsforholdRef internReferanse, - YrkesaktivitetBuilder yrkesaktivitetBuilder) { - yrkesaktivitetBuilder.medArbeidType(ArbeidType.finnForKodeverkEiersKode(arbeidsforhold.getType())) - .medArbeidsforholdId(internReferanse) - .medArbeidsgiver(arbeidsgiver); + private void opprettMinimalYrkesaktivitet( + ArbeidsforholdIdentifikator arbeidsforhold, + Arbeidsgiver arbeidsgiver, + InternArbeidsforholdRef internReferanse, + YrkesaktivitetBuilder yrkesaktivitetBuilder) { + yrkesaktivitetBuilder + .medArbeidType(ArbeidType.finnForKodeverkEiersKode(arbeidsforhold.getType())) + .medArbeidsforholdId(internReferanse) + .medArbeidsgiver(arbeidsgiver); } - - private AktivitetsAvtaleBuilder opprettAktivitetsAvtaler(Arbeidsavtale arbeidsavtale, YrkesaktivitetBuilder yrkesaktivitetBuilder) { + private AktivitetsAvtaleBuilder opprettAktivitetsAvtaler( + Arbeidsavtale arbeidsavtale, YrkesaktivitetBuilder yrkesaktivitetBuilder) { IntervallEntitet periode; if (arbeidsavtale.getArbeidsavtaleTom() == null) { periode = IntervallEntitet.fraOgMed(arbeidsavtale.getArbeidsavtaleFom()); } else { - periode = IntervallEntitet.fraOgMedTilOgMed(arbeidsavtale.getArbeidsavtaleFom(), arbeidsavtale.getArbeidsavtaleTom()); + periode = IntervallEntitet.fraOgMedTilOgMed( + arbeidsavtale.getArbeidsavtaleFom(), arbeidsavtale.getArbeidsavtaleTom()); } - AktivitetsAvtaleBuilder aktivitetsAvtaleBuilder = yrkesaktivitetBuilder.getAktivitetsAvtaleBuilder(periode, - arbeidsavtale.getErAnsettelsesPerioden()); - aktivitetsAvtaleBuilder.medProsentsats(arbeidsavtale.getStillingsprosent()) - .medSisteLønnsendringsdato(arbeidsavtale.getSisteLønnsendringsdato() != null - || arbeidsavtale.getErAnsettelsesPerioden() ? arbeidsavtale.getSisteLønnsendringsdato() : periode.getFomDato()) - .medPeriode(periode); + AktivitetsAvtaleBuilder aktivitetsAvtaleBuilder = + yrkesaktivitetBuilder.getAktivitetsAvtaleBuilder(periode, arbeidsavtale.getErAnsettelsesPerioden()); + aktivitetsAvtaleBuilder + .medProsentsats(arbeidsavtale.getStillingsprosent()) + .medSisteLønnsendringsdato( + arbeidsavtale.getSisteLønnsendringsdato() != null || arbeidsavtale.getErAnsettelsesPerioden() + ? arbeidsavtale.getSisteLønnsendringsdato() + : periode.getFomDato()) + .medPeriode(periode); return aktivitetsAvtaleBuilder; } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforhold.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforhold.java index 5b102b2be..b5be869ab 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforhold.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforhold.java @@ -3,7 +3,6 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlagBuilder; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; @@ -14,39 +13,45 @@ final class FjernOverstyringerForBortfalteArbeidsforhold { /** - * Identifiserer og fjerner overstyringer for arbeidsforhold som har blitt overstyrt tidligere, men som nå ikke har blitt innhentet på nytt. - *

- * Dette kan være fordi arbeidsforholdet har blitt fjernet/endret i aareg til å ligge utenfor opplysningsperioden. + * Identifiserer og fjerner overstyringer for arbeidsforhold som har blitt overstyrt tidligere, men som nå ikke har + * blitt innhentet på nytt. + * + *

Dette kan være fordi arbeidsforholdet har blitt fjernet/endret i aareg til å ligge utenfor + * opplysningsperioden. * - * @param grunnlagBuilder Builder for grunnlaget + * @param grunnlagBuilder Builder for grunnlaget * @param innhentetArbeidsforhold Liste over arbeidsforhold som har blitt innhentet * @return Informasjonbuilder der overstyringer for bortfalte arbeidsforhold har blitt fjernet */ - static ArbeidsforholdInformasjonBuilder fjern(InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder, - Set innhentetArbeidsforhold) { + static ArbeidsforholdInformasjonBuilder fjern( + InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder, + Set innhentetArbeidsforhold) { ArbeidsforholdInformasjon informasjon = grunnlagBuilder.getInformasjon(); - List overstyringerSomMåFjernes = finnOverstyringerForBortfalteArbeidsforhold(innhentetArbeidsforhold, informasjon); + List overstyringerSomMåFjernes = + finnOverstyringerForBortfalteArbeidsforhold(innhentetArbeidsforhold, informasjon); ArbeidsforholdInformasjonBuilder informasjonBuilder = grunnlagBuilder.getInformasjonBuilder(); informasjonBuilder.fjernOverstyringVedrørende(overstyringerSomMåFjernes); return informasjonBuilder; } - - private static List finnOverstyringerForBortfalteArbeidsforhold(Set innhentetArbeidsforhold, - ArbeidsforholdInformasjon informasjon) { - return informasjon.getOverstyringer() - .stream() - .filter(FjernOverstyringerForBortfalteArbeidsforhold::erIkkeLagtTilFraInntektsmeldingEllerFiktivt) - .filter(ov -> innhentetArbeidsforhold.stream() - .noneMatch(arbeid -> arbeid.getArbeidsgiver().getIdentifikator().equals(ov.getArbeidsgiver().getIdentifikator()) && ( - arbeid.harArbeidsforholdRef() && arbeid.getArbeidsforholdId() - .gjelderFor(informasjon.finnEkstern(ov.getArbeidsgiver(), ov.getArbeidsforholdRef()))))) - .collect(Collectors.toList()); + private static List finnOverstyringerForBortfalteArbeidsforhold( + Set innhentetArbeidsforhold, ArbeidsforholdInformasjon informasjon) { + return informasjon.getOverstyringer().stream() + .filter(FjernOverstyringerForBortfalteArbeidsforhold::erIkkeLagtTilFraInntektsmeldingEllerFiktivt) + .filter(ov -> innhentetArbeidsforhold.stream() + .noneMatch(arbeid -> arbeid.getArbeidsgiver() + .getIdentifikator() + .equals(ov.getArbeidsgiver().getIdentifikator()) + && (arbeid.harArbeidsforholdRef() + && arbeid.getArbeidsforholdId() + .gjelderFor(informasjon.finnEkstern( + ov.getArbeidsgiver(), ov.getArbeidsforholdRef()))))) + .collect(Collectors.toList()); } private static boolean erIkkeLagtTilFraInntektsmeldingEllerFiktivt(ArbeidsforholdOverstyring ov) { return !ArbeidsforholdHandlingType.BASERT_PÅ_INNTEKTSMELDING.equals(ov.getHandling()) - && !ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER.equals(ov.getHandling()); + && !ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER.equals(ov.getHandling()); } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingTjeneste.java index b8b172802..09a7238b9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingTjeneste.java @@ -2,6 +2,8 @@ import static no.nav.foreldrepenger.abakus.registerdata.ByggLønnsinntektInntektTjeneste.mapLønnsinntekter; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.math.BigDecimal; import java.time.LocalDate; import java.time.YearMonth; @@ -14,13 +16,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; - -import jakarta.inject.Inject; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.enterprise.context.ApplicationScoped; import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @@ -52,16 +47,20 @@ import no.nav.foreldrepenger.abakus.typer.OrganisasjonsNummerValidator; import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.vedtak.exception.TekniskException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -/** - * Standard IAY register innhenter. - */ +/** Standard IAY register innhenter. */ @ApplicationScoped public class IAYRegisterInnhentingTjeneste { public static final Map ELEMENT_TIL_INNTEKTS_KILDE_MAP = Map.of( - RegisterdataElement.INNTEKT_PENSJONSGIVENDE, InntektskildeType.INNTEKT_OPPTJENING, RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, - InntektskildeType.INNTEKT_BEREGNING, RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG, InntektskildeType.INNTEKT_SAMMENLIGNING); + RegisterdataElement.INNTEKT_PENSJONSGIVENDE, + InntektskildeType.INNTEKT_OPPTJENING, + RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, + InntektskildeType.INNTEKT_BEREGNING, + RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG, + InntektskildeType.INNTEKT_SAMMENLIGNING); private static final Logger LOG = LoggerFactory.getLogger(IAYRegisterInnhentingTjeneste.class); protected InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste; @@ -77,24 +76,30 @@ public class IAYRegisterInnhentingTjeneste { } @Inject - public IAYRegisterInnhentingTjeneste(InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste, - VirksomhetTjeneste virksomhetTjeneste, - InnhentingSamletTjeneste innhentingSamletTjeneste, - AktørTjeneste aktørConsumer, - SigrunTjeneste sigrunTjeneste, - VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) { + public IAYRegisterInnhentingTjeneste( + InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste, + VirksomhetTjeneste virksomhetTjeneste, + InnhentingSamletTjeneste innhentingSamletTjeneste, + AktørTjeneste aktørConsumer, + SigrunTjeneste sigrunTjeneste, + VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) { this.inntektArbeidYtelseTjeneste = inntektArbeidYtelseTjeneste; this.virksomhetTjeneste = virksomhetTjeneste; this.innhentingSamletTjeneste = innhentingSamletTjeneste; this.aktørConsumer = aktørConsumer; this.sigrunTjeneste = sigrunTjeneste; - this.ytelseRegisterInnhenting = new YtelseRegisterInnhenting(innhentingSamletTjeneste, vedtattYtelseInnhentingTjeneste); + this.ytelseRegisterInnhenting = + new YtelseRegisterInnhenting(innhentingSamletTjeneste, vedtattYtelseInnhentingTjeneste); this.byggYrkesaktiviteterTjeneste = new ByggYrkesaktiviteterTjeneste(); } - private void innhentNæringsOpplysninger(Kobling kobling, InntektArbeidYtelseAggregatBuilder inntektArbeidYtelseAggregatBuilder) { - LOG.info("Henter lignet inntekt for sak=[{}, {}] med behandling='{}'", kobling.getSaksnummer(), kobling.getYtelseType(), - kobling.getKoblingReferanse()); + private void innhentNæringsOpplysninger( + Kobling kobling, InntektArbeidYtelseAggregatBuilder inntektArbeidYtelseAggregatBuilder) { + LOG.info( + "Henter lignet inntekt for sak=[{}, {}] med behandling='{}'", + kobling.getSaksnummer(), + kobling.getYtelseType(), + kobling.getKoblingReferanse()); var personIdent = getFnrFraAktørId(kobling.getAktørId()); @@ -105,13 +110,18 @@ public IAYRegisterInnhentingTjeneste(InntektArbeidYtelseTjeneste inntektArbeidYt inntektBuilder.tilbakestillInntektsposterForPerioder(map.keySet()); for (var entry : map.entrySet()) { - LOG.info("Fant lignet inntekt for periode {} for sak=[{}, {}] med behandling='{}'", entry.getKey(), kobling.getSaksnummer(), - kobling.getYtelseType(), kobling.getKoblingReferanse()); + LOG.info( + "Fant lignet inntekt for periode {} for sak=[{}, {}] med behandling='{}'", + entry.getKey(), + kobling.getSaksnummer(), + kobling.getYtelseType(), + kobling.getKoblingReferanse()); for (Map.Entry type : entry.getValue().entrySet()) { InntektspostBuilder inntektspostBuilder = inntektBuilder.getInntektspostBuilder(); - inntektspostBuilder.medInntektspostType(type.getKey()) - .medBeløp(type.getValue()) - .medPeriode(entry.getKey().getFomDato(), entry.getKey().getTomDato()); + inntektspostBuilder + .medInntektspostType(type.getKey()) + .medBeløp(type.getValue()) + .medPeriode(entry.getKey().getFomDato(), entry.getKey().getTomDato()); inntektBuilder.leggTilInntektspost(inntektspostBuilder); } } @@ -122,6 +132,7 @@ public IAYRegisterInnhentingTjeneste(InntektArbeidYtelseTjeneste inntektArbeidYt private class FnrSupplier { private final AktørId aktørId; + public FnrSupplier(AktørId aktørId) { this.aktørId = aktørId; } @@ -135,15 +146,18 @@ private PersonIdent tilPersonIdent() { } } - public InntektArbeidYtelseGrunnlagBuilder innhentRegisterdata(Kobling kobling, Set informasjonsElementer) { + public InntektArbeidYtelseGrunnlagBuilder innhentRegisterdata( + Kobling kobling, Set informasjonsElementer) { var grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere( - inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse())); + inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse())); var builder = grunnlagBuilder.getRegisterBuilder(); // Arbeidsforhold & inntekter - Set innhentetArbeidsforhold = innhentArbeidsforhold(kobling, builder, informasjonsElementer); + Set innhentetArbeidsforhold = + innhentArbeidsforhold(kobling, builder, informasjonsElementer); - if (informasjonsElementer.contains(RegisterdataElement.LIGNET_NÆRING) && skalInnhenteNæringsInntekterFor(kobling)) { + if (informasjonsElementer.contains(RegisterdataElement.LIGNET_NÆRING) + && skalInnhenteNæringsInntekterFor(kobling)) { innhentNæringsOpplysninger(kobling, builder); } // Ytelser @@ -152,7 +166,8 @@ public InntektArbeidYtelseGrunnlagBuilder innhentRegisterdata(Kobling kobling, S } // Fjerner overstyringer for bortfalte arbeidsforhold (f.eks. grunnet endringer i aareg) - var informasjonBuilder = FjernOverstyringerForBortfalteArbeidsforhold.fjern(grunnlagBuilder, innhentetArbeidsforhold); + var informasjonBuilder = + FjernOverstyringerForBortfalteArbeidsforhold.fjern(grunnlagBuilder, innhentetArbeidsforhold); builder.getNyeInternArbeidsforholdReferanser().forEach(informasjonBuilder::leggTilNyReferanse); @@ -166,19 +181,24 @@ public InntektArbeidYtelseGrunnlagBuilder innhentRegisterdata(Kobling kobling, S } private void innhentYtelser(Kobling kobling, InntektArbeidYtelseAggregatBuilder builder) { - ytelseRegisterInnhenting.byggYtelser(kobling, kobling.getAktørId(), getFnrFraAktørId(kobling.getAktørId()), - kobling.getOpplysningsperiode(), builder); + ytelseRegisterInnhenting.byggYtelser( + kobling, + kobling.getAktørId(), + getFnrFraAktørId(kobling.getAktørId()), + kobling.getOpplysningsperiode(), + builder); } - private Set innhentArbeidsforhold(Kobling kobling, - InntektArbeidYtelseAggregatBuilder builder, - Set informasjonsElementer) { - return byggOpptjeningOpplysningene(kobling, kobling.getAktørId(), kobling.getOpplysningsperiode(), builder, informasjonsElementer); + private Set innhentArbeidsforhold( + Kobling kobling, + InntektArbeidYtelseAggregatBuilder builder, + Set informasjonsElementer) { + return byggOpptjeningOpplysningene( + kobling, kobling.getAktørId(), kobling.getOpplysningsperiode(), builder, informasjonsElementer); } - private void leggTilInntekter(AktørId aktørId, - InntektArbeidYtelseAggregatBuilder builder, - InntektsInformasjon inntektsInformasjon) { + private void leggTilInntekter( + AktørId aktørId, InntektArbeidYtelseAggregatBuilder builder, InntektsInformasjon inntektsInformasjon) { var aktørInntektBuilder = builder.getAktørInntektBuilder(aktørId); InntektskildeType kilde = inntektsInformasjon.getKilde(); aktørInntektBuilder.fjernInntekterFraKilde(kilde); @@ -188,26 +208,31 @@ private void leggTilInntekter(AktørId aktørId, mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); builder.leggTilAktørInntekt(aktørInntektBuilder); - List ytelsesTrygdEllerPensjonInntekt = inntektsInformasjon.getYtelsesTrygdEllerPensjonInntektSummert(); + List ytelsesTrygdEllerPensjonInntekt = + inntektsInformasjon.getYtelsesTrygdEllerPensjonInntektSummert(); if (!ytelsesTrygdEllerPensjonInntekt.isEmpty()) { leggTilYtelseInntekter(ytelsesTrygdEllerPensjonInntekt, builder, aktørId, kilde); } } private Map lagArbeidsgiverLookup(InntektsInformasjon inntektsInformasjon) { - Map> alleArbeidsgivereMedMåneder = inntektsInformasjon.getMånedsinntekterUtenomYtelser() - .stream() - .collect(Collectors.groupingBy(Månedsinntekt::getArbeidsgiver, Collectors.mapping(Månedsinntekt::getMåned, Collectors.toSet()))); + Map> alleArbeidsgivereMedMåneder = + inntektsInformasjon.getMånedsinntekterUtenomYtelser().stream() + .collect(Collectors.groupingBy( + Månedsinntekt::getArbeidsgiver, + Collectors.mapping(Månedsinntekt::getMåned, Collectors.toSet()))); Map arbeidsgivereLookup = new HashMap<>(); - alleArbeidsgivereMedMåneder.forEach((agString, måneder) -> Optional.ofNullable(finnArbeidsgiverForInntektsData(agString, måneder)) - .ifPresent(ag -> arbeidsgivereLookup.put(agString, ag))); + alleArbeidsgivereMedMåneder.forEach( + (agString, måneder) -> Optional.ofNullable(finnArbeidsgiverForInntektsData(agString, måneder)) + .ifPresent(ag -> arbeidsgivereLookup.put(agString, ag))); return arbeidsgivereLookup; } - private void leggTilYtelseInntekter(List ytelsesTrygdEllerPensjonInntekt, - InntektArbeidYtelseAggregatBuilder builder, - AktørId aktørId, - InntektskildeType inntektOpptjening) { + private void leggTilYtelseInntekter( + List ytelsesTrygdEllerPensjonInntekt, + InntektArbeidYtelseAggregatBuilder builder, + AktørId aktørId, + InntektskildeType inntektOpptjening) { var aktørInntektBuilder = builder.getAktørInntektBuilder(aktørId); var inntektBuilderForYtelser = aktørInntektBuilder.getInntektBuilderForYtelser(inntektOpptjening); ytelsesTrygdEllerPensjonInntekt.forEach(mi -> lagInntektsposterYtelse(mi, inntektBuilderForYtelser)); @@ -216,22 +241,29 @@ private void leggTilYtelseInntekter(List ytelsesTrygdEllerPensjo builder.leggTilAktørInntekt(aktørInntektBuilder); } - private Arbeidsgiver finnArbeidsgiverForInntektsData(String arbeidsgiverString, Set inntekterForMåneder) { + private Arbeidsgiver finnArbeidsgiverForInntektsData( + String arbeidsgiverString, Set inntekterForMåneder) { if (OrganisasjonsNummerValidator.erGyldig(arbeidsgiverString)) { boolean orgledd = virksomhetTjeneste.sjekkOmOrganisasjonErOrgledd(arbeidsgiverString); if (!orgledd) { LocalDate hentedato = finnHentedatoForJuridisk(inntekterForMåneder); - return Arbeidsgiver.virksomhet(virksomhetTjeneste.hentOrganisasjonMedHensynTilJuridisk(arbeidsgiverString, hentedato)); + return Arbeidsgiver.virksomhet( + virksomhetTjeneste.hentOrganisasjonMedHensynTilJuridisk(arbeidsgiverString, hentedato)); } else { - LOG.info("Inntekter rapportert på orgledd({}), blir IKKE lagret", getIdentifikatorString(arbeidsgiverString)); + LOG.info( + "Inntekter rapportert på orgledd({}), blir IKKE lagret", + getIdentifikatorString(arbeidsgiverString)); return null; } } else { if (PersonIdent.erGyldigFnr(arbeidsgiverString)) { - var arbeidsgiverAktørId = aktørConsumer.hentAktørForIdent(new PersonIdent(arbeidsgiverString)) - .orElseThrow(() -> new TekniskException("FP-464378", - "Feil ved oppslag av aktørID for en arbeidgiver som er en privatperson registrert med fnr/dnr")); + var arbeidsgiverAktørId = aktørConsumer + .hentAktørForIdent(new PersonIdent(arbeidsgiverString)) + .orElseThrow( + () -> new TekniskException( + "FP-464378", + "Feil ved oppslag av aktørID for en arbeidgiver som er en privatperson registrert med fnr/dnr")); return Arbeidsgiver.person(arbeidsgiverAktørId); } else { return Arbeidsgiver.person(new AktørId(arbeidsgiverString)); @@ -252,78 +284,92 @@ private String getIdentifikatorString(String arbeidsgiverIdentifikator) { private LocalDate finnHentedatoForJuridisk(Set inntekterForMåneder) { return inntekterForMåneder.stream() - .map(m -> LocalDate.of(m.getYear(), m.getMonth(), 1)) - .max(Comparator.naturalOrder()) - .orElse(LocalDate.now()); + .map(m -> LocalDate.of(m.getYear(), m.getMonth(), 1)) + .max(Comparator.naturalOrder()) + .orElse(LocalDate.now()); } - private Set byggOpptjeningOpplysningene(Kobling kobling, - AktørId aktørId, - IntervallEntitet opplysningsPeriode, - InntektArbeidYtelseAggregatBuilder builder, - Set informasjonsElementer) { - var inntektselementer = Set.of(RegisterdataElement.INNTEKT_PENSJONSGIVENDE, RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, - RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG); - - if (informasjonsElementer.stream().noneMatch(inntektselementer::contains) && !informasjonsElementer.contains( - RegisterdataElement.ARBEIDSFORHOLD)) { + private Set byggOpptjeningOpplysningene( + Kobling kobling, + AktørId aktørId, + IntervallEntitet opplysningsPeriode, + InntektArbeidYtelseAggregatBuilder builder, + Set informasjonsElementer) { + var inntektselementer = Set.of( + RegisterdataElement.INNTEKT_PENSJONSGIVENDE, + RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, + RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG); + + if (informasjonsElementer.stream().noneMatch(inntektselementer::contains) + && !informasjonsElementer.contains(RegisterdataElement.ARBEIDSFORHOLD)) { return Collections.emptySet(); } Set arbeidsforholdList = new HashSet<>(); if (informasjonsElementer.contains(RegisterdataElement.ARBEIDSFORHOLD)) { - InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder = builder.getAktørArbeidBuilder(aktørId); + InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder = + builder.getAktørArbeidBuilder(aktørId); aktørArbeidBuilder.tilbakestillYrkesaktiviteter(); - // Hvis/Når AAREG en gang i framtiden gir frilans som del av default arbeidsforholdtype - så kan følgende kuttes - Map> arbeidsforholdFrilans = innhentingSamletTjeneste.getArbeidsforholdFrilans( - aktørId, getFnrFraAktørId(aktørId), opplysningsPeriode); - arbeidsforholdFrilans.entrySet() - .forEach(forholdet -> oversettArbeidsforholdTilYrkesaktivitet(kobling, builder, forholdet, aktørArbeidBuilder)); + // Hvis/Når AAREG en gang i framtiden gir frilans som del av default arbeidsforholdtype - så kan følgende + // kuttes + Map> arbeidsforholdFrilans = + innhentingSamletTjeneste.getArbeidsforholdFrilans( + aktørId, getFnrFraAktørId(aktørId), opplysningsPeriode); + arbeidsforholdFrilans + .entrySet() + .forEach(forholdet -> + oversettArbeidsforholdTilYrkesaktivitet(kobling, builder, forholdet, aktørArbeidBuilder)); arbeidsforholdList.addAll(arbeidsforholdFrilans.keySet()); - Map> arbeidsforhold = innhentingSamletTjeneste.getArbeidsforhold(aktørId, - getFnrFraAktørId(aktørId), opplysningsPeriode); - arbeidsforhold.entrySet().forEach(forholdet -> oversettArbeidsforholdTilYrkesaktivitet(kobling, builder, forholdet, aktørArbeidBuilder)); + Map> arbeidsforhold = + innhentingSamletTjeneste.getArbeidsforhold(aktørId, getFnrFraAktørId(aktørId), opplysningsPeriode); + arbeidsforhold + .entrySet() + .forEach(forholdet -> + oversettArbeidsforholdTilYrkesaktivitet(kobling, builder, forholdet, aktørArbeidBuilder)); arbeidsforholdList.addAll(arbeidsforhold.keySet()); } if (informasjonsElementer.stream().anyMatch(inntektselementer::contains)) { informasjonsElementer.stream() - .filter(ELEMENT_TIL_INNTEKTS_KILDE_MAP::containsKey) - .forEach(registerdataElement -> innhentInntektsopplysningFor(kobling, aktørId, opplysningsPeriode, builder, informasjonsElementer, - registerdataElement)); + .filter(ELEMENT_TIL_INNTEKTS_KILDE_MAP::containsKey) + .forEach(registerdataElement -> innhentInntektsopplysningFor( + kobling, aktørId, opplysningsPeriode, builder, informasjonsElementer, registerdataElement)); } else { Set.of(RegisterdataElement.INNTEKT_PENSJONSGIVENDE) - .forEach(registerdataElement -> innhentInntektsopplysningFor(kobling, aktørId, opplysningsPeriode, builder, informasjonsElementer, - registerdataElement)); + .forEach(registerdataElement -> innhentInntektsopplysningFor( + kobling, aktørId, opplysningsPeriode, builder, informasjonsElementer, registerdataElement)); } return arbeidsforholdList; } - private void innhentInntektsopplysningFor(Kobling kobling, - AktørId aktørId, - IntervallEntitet opplysningsPeriode, - InntektArbeidYtelseAggregatBuilder builder, - Set informasjonsElementer, - RegisterdataElement registerdataElement) { + private void innhentInntektsopplysningFor( + Kobling kobling, + AktørId aktørId, + IntervallEntitet opplysningsPeriode, + InntektArbeidYtelseAggregatBuilder builder, + Set informasjonsElementer, + RegisterdataElement registerdataElement) { var inntektsKilde = ELEMENT_TIL_INNTEKTS_KILDE_MAP.get(registerdataElement); - var inntektsInformasjon = innhentingSamletTjeneste.getInntektsInformasjon(aktørId, opplysningsPeriode, inntektsKilde); + var inntektsInformasjon = + innhentingSamletTjeneste.getInntektsInformasjon(aktørId, opplysningsPeriode, inntektsKilde); // En slags ytelse som er utbetalt fra NAV til bruker som LØNN ... if (innhentingSamletTjeneste.skalInnhenteLønnskompensasjon(kobling, inntektsKilde)) { - inntektsInformasjon.leggTilMånedsinntekter(innhentingSamletTjeneste.getLønnskompensasjon(aktørId, opplysningsPeriode)); + inntektsInformasjon.leggTilMånedsinntekter( + innhentingSamletTjeneste.getLønnskompensasjon(aktørId, opplysningsPeriode)); } if (informasjonsElementer.contains(registerdataElement)) { leggTilInntekter(aktørId, builder, inntektsInformasjon); } } - private Optional finnReferanseFor(KoblingReferanse koblingReferanse, - Arbeidsgiver arbeidsgiver, - EksternArbeidsforholdRef arbeidsforholdRef) { - Optional arbeidsforholdInformasjon = inntektArbeidYtelseTjeneste.hentGrunnlagFor(koblingReferanse) - .flatMap(InntektArbeidYtelseGrunnlag::getArbeidsforholdInformasjon); + private Optional finnReferanseFor( + KoblingReferanse koblingReferanse, Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdRef) { + Optional arbeidsforholdInformasjon = inntektArbeidYtelseTjeneste + .hentGrunnlagFor(koblingReferanse) + .flatMap(InntektArbeidYtelseGrunnlag::getArbeidsforholdInformasjon); if (arbeidsforholdInformasjon.isPresent()) { final ArbeidsforholdInformasjon informasjon = arbeidsforholdInformasjon.get(); return informasjon.finnForEksternBeholdHistoriskReferanse(arbeidsgiver, arbeidsforholdRef); @@ -331,26 +377,30 @@ private Optional finnReferanseFor(KoblingReferanse kobl return Optional.empty(); } - private void oversettArbeidsforholdTilYrkesaktivitet(Kobling kobling, - InntektArbeidYtelseAggregatBuilder builder, - Map.Entry> arbeidsforhold, - InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder) { + private void oversettArbeidsforholdTilYrkesaktivitet( + Kobling kobling, + InntektArbeidYtelseAggregatBuilder builder, + Map.Entry> arbeidsforhold, + InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeidBuilder) { var koblingReferanse = kobling.getKoblingReferanse(); ArbeidsforholdIdentifikator arbeidsgiverIdent = arbeidsforhold.getKey(); Arbeidsgiver arbeidsgiver = mapArbeidsgiver(arbeidsgiverIdent); - String arbeidsforholdId = arbeidsgiverIdent.harArbeidsforholdRef() ? arbeidsgiverIdent.getArbeidsforholdId().getReferanse() : null; + String arbeidsforholdId = arbeidsgiverIdent.harArbeidsforholdRef() + ? arbeidsgiverIdent.getArbeidsforholdId().getReferanse() + : null; var eksternReferanse = EksternArbeidsforholdRef.ref(arbeidsforholdId); var arbeidsforholdRef = finnReferanseFor(koblingReferanse, arbeidsgiver, eksternReferanse); - var internReferanse = arbeidsforholdRef.orElseGet(() -> builder.medNyInternArbeidsforholdRef(arbeidsgiver, eksternReferanse)); + var internReferanse = + arbeidsforholdRef.orElseGet(() -> builder.medNyInternArbeidsforholdRef(arbeidsgiver, eksternReferanse)); - YrkesaktivitetBuilder yrkesaktivitetBuilder = byggYrkesaktiviteterTjeneste.byggYrkesaktivitetForSøker(arbeidsforhold, arbeidsgiver, - internReferanse, aktørArbeidBuilder); + YrkesaktivitetBuilder yrkesaktivitetBuilder = byggYrkesaktiviteterTjeneste.byggYrkesaktivitetForSøker( + arbeidsforhold, arbeidsgiver, internReferanse, aktørArbeidBuilder); - InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeid = aktørArbeidBuilder.leggTilYrkesaktivitet(yrkesaktivitetBuilder); + InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder aktørArbeid = + aktørArbeidBuilder.leggTilYrkesaktivitet(yrkesaktivitetBuilder); builder.leggTilAktørArbeid(aktørArbeid); - } private Arbeidsgiver mapArbeidsgiver(ArbeidsforholdIdentifikator arbeidsforhold) { @@ -365,33 +415,37 @@ private Arbeidsgiver mapArbeidsgiver(ArbeidsforholdIdentifikator arbeidsforhold) } private void lagInntektsposterYtelse(Månedsinntekt månedsinntekt, InntektBuilder inntektBuilder) { - inntektBuilder.leggTilInntektspost(inntektBuilder.getInntektspostBuilder() - .medBeløp(månedsinntekt.getBeløp()) - .medPeriode(månedsinntekt.getMåned().atDay(1), månedsinntekt.getMåned().atEndOfMonth()) - .medInntektspostType(InntektspostType.YTELSE) - .medYtelse(mapTilKodeliste(månedsinntekt))); + inntektBuilder.leggTilInntektspost(inntektBuilder + .getInntektspostBuilder() + .medBeløp(månedsinntekt.getBeløp()) + .medPeriode( + månedsinntekt.getMåned().atDay(1), + månedsinntekt.getMåned().atEndOfMonth()) + .medInntektspostType(InntektspostType.YTELSE) + .medYtelse(mapTilKodeliste(månedsinntekt))); } - private InntektYtelseType mapTilKodeliste(Månedsinntekt månedsinntekt) { if (månedsinntekt.getPensjonKode() != null) { - return InntektYtelseType.finnForKodeverkEiersKode(InntektYtelseType.Kategori.TRYGD, månedsinntekt.getPensjonKode()); + return InntektYtelseType.finnForKodeverkEiersKode( + InntektYtelseType.Kategori.TRYGD, månedsinntekt.getPensjonKode()); } else if (månedsinntekt.getYtelseKode() != null) { - return InntektYtelseType.finnForKodeverkEiersKode(InntektYtelseType.Kategori.YTELSE, månedsinntekt.getYtelseKode()); + return InntektYtelseType.finnForKodeverkEiersKode( + InntektYtelseType.Kategori.YTELSE, månedsinntekt.getYtelseKode()); } else if (månedsinntekt.getNæringsinntektKode() != null) { - return InntektYtelseType.finnForKodeverkEiersKode(InntektYtelseType.Kategori.NÆRING, månedsinntekt.getNæringsinntektKode()); + return InntektYtelseType.finnForKodeverkEiersKode( + InntektYtelseType.Kategori.NÆRING, månedsinntekt.getNæringsinntektKode()); } return null; } private boolean skalInnhenteNæringsInntekterFor(Kobling kobling) { - Optional grunnlag = inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse()); + Optional grunnlag = + inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse()); // FP, SVP bruker ikke aggregat for oppgitt opptjening (støtter kun en pr behandling) return grunnlag.flatMap(InntektArbeidYtelseGrunnlag::getGjeldendeOppgittOpptjening) - .map(oppgittOpptjening -> !oppgittOpptjening.getEgenNæring().isEmpty()) - .orElse(false); + .map(oppgittOpptjening -> !oppgittOpptjening.getEgenNæring().isEmpty()) + .orElse(false); } - - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjeneste.java index 7c74b2253..732674bb9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjeneste.java @@ -1,5 +1,7 @@ package no.nav.foreldrepenger.abakus.registerdata; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.math.BigDecimal; import java.time.YearMonth; import java.util.ArrayList; @@ -7,12 +9,6 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -36,12 +32,15 @@ import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.foreldrepenger.konfig.Environment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class InnhentingSamletTjeneste { private static final Logger LOG = LoggerFactory.getLogger(InnhentingSamletTjeneste.class); - private static final Set LØNNSKOMP_FOR_YTELSER = Set.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER); + private static final Set LØNNSKOMP_FOR_YTELSER = + Set.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER); private static final boolean FAILSOFT_DEV = Environment.current().isDev(); private ArbeidsforholdTjeneste arbeidsforholdTjeneste; private InntektTjeneste inntektTjeneste; @@ -50,16 +49,16 @@ public class InnhentingSamletTjeneste { private LønnskompensasjonRepository lønnskompensasjonRepository; InnhentingSamletTjeneste() { - //CDI + // CDI } @Inject - public InnhentingSamletTjeneste(ArbeidsforholdTjeneste arbeidsforholdTjeneste, - - InntektTjeneste inntektTjeneste, - InnhentingInfotrygdTjeneste innhentingInfotrygdTjeneste, - LønnskompensasjonRepository lønnskompensasjonRepository, - FpwsproxyKlient fpwsproxyKlient) { + public InnhentingSamletTjeneste( + ArbeidsforholdTjeneste arbeidsforholdTjeneste, + InntektTjeneste inntektTjeneste, + InnhentingInfotrygdTjeneste innhentingInfotrygdTjeneste, + LønnskompensasjonRepository lønnskompensasjonRepository, + FpwsproxyKlient fpwsproxyKlient) { this.arbeidsforholdTjeneste = arbeidsforholdTjeneste; this.inntektTjeneste = inntektTjeneste; this.fpwsproxyKlient = fpwsproxyKlient; @@ -67,9 +66,10 @@ public InnhentingSamletTjeneste(ArbeidsforholdTjeneste arbeidsforholdTjeneste, this.lønnskompensasjonRepository = lønnskompensasjonRepository; } - public InntektsInformasjon getInntektsInformasjon(AktørId aktørId, IntervallEntitet periode, InntektskildeType kilde) { - FinnInntektRequest.FinnInntektRequestBuilder builder = FinnInntektRequest.builder(YearMonth.from(periode.getFomDato()), - YearMonth.from(periode.getTomDato())); + public InntektsInformasjon getInntektsInformasjon( + AktørId aktørId, IntervallEntitet periode, InntektskildeType kilde) { + FinnInntektRequest.FinnInntektRequestBuilder builder = + FinnInntektRequest.builder(YearMonth.from(periode.getFomDato()), YearMonth.from(periode.getTomDato())); builder.medAktørId(aktørId.getId()); @@ -82,34 +82,33 @@ public InntektsInformasjon getInntektsInformasjon(AktørId aktørId, IntervallEn public List getLønnskompensasjon(AktørId aktørId, IntervallEntitet periode) { List resultat = new ArrayList<>(); - lønnskompensasjonRepository.hentLønnskompensasjonForIPeriode(aktørId, periode.getFomDato(), periode.getTomDato()) - .stream() - .filter(lk -> lk.getBeløp().getVerdi().compareTo(BigDecimal.ZERO) > 0) - .forEach(lk -> resultat.addAll(periodiserLønnskompensasjon(lk))); + lønnskompensasjonRepository + .hentLønnskompensasjonForIPeriode(aktørId, periode.getFomDato(), periode.getTomDato()) + .stream() + .filter(lk -> lk.getBeløp().getVerdi().compareTo(BigDecimal.ZERO) > 0) + .forEach(lk -> resultat.addAll(periodiserLønnskompensasjon(lk))); return resultat; } private List periodiserLønnskompensasjon(LønnskompensasjonVedtak vedtak) { - return vedtak.getAnvistePerioder() - .stream() - .map(a -> new Månedsinntekt.Builder().medMåned(YearMonth.from(a.getAnvistFom())) - .medBeløp(a.getBeløp().map(Beløp::getVerdi).orElse(BigDecimal.ZERO)) - .medArbeidsgiver(vedtak.getOrgNummer().getId()) - .medYtelse(false) - .build()) - .filter(mi -> mi.getBeløp().compareTo(BigDecimal.ZERO) > 0) - .collect(Collectors.toList()); + return vedtak.getAnvistePerioder().stream() + .map(a -> new Månedsinntekt.Builder() + .medMåned(YearMonth.from(a.getAnvistFom())) + .medBeløp(a.getBeløp().map(Beløp::getVerdi).orElse(BigDecimal.ZERO)) + .medArbeidsgiver(vedtak.getOrgNummer().getId()) + .medYtelse(false) + .build()) + .filter(mi -> mi.getBeløp().compareTo(BigDecimal.ZERO) > 0) + .collect(Collectors.toList()); } - public Map> getArbeidsforhold(AktørId aktørId, - PersonIdent ident, - IntervallEntitet opplysningsPeriode) { + public Map> getArbeidsforhold( + AktørId aktørId, PersonIdent ident, IntervallEntitet opplysningsPeriode) { return arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(ident, aktørId, opplysningsPeriode); } - public Map> getArbeidsforholdFrilans(AktørId aktørId, - PersonIdent ident, - IntervallEntitet opplysningsPeriode) { + public Map> getArbeidsforholdFrilans( + AktørId aktørId, PersonIdent ident, IntervallEntitet opplysningsPeriode) { return arbeidsforholdTjeneste.finnArbeidsforholdFrilansForIdentIPerioden(ident, aktørId, opplysningsPeriode); } @@ -120,11 +119,13 @@ public List innhentInfotrygdGrunnlag(PersonIdent ident, return innhentingInfotrygdTjeneste.getInfotrygdYtelser(ident, periode); } - public List innhentSpokelseGrunnlag(PersonIdent ident, @SuppressWarnings("unused") IntervallEntitet periode) { + public List innhentSpokelseGrunnlag( + PersonIdent ident, @SuppressWarnings("unused") IntervallEntitet periode) { return innhentingInfotrygdTjeneste.getSPøkelseYtelser(ident, periode.getFomDato()); } - public List hentDagpengerAAP(PersonIdent ident, IntervallEntitet opplysningsPeriode) { + public List hentDagpengerAAP( + PersonIdent ident, IntervallEntitet opplysningsPeriode) { var fom = opplysningsPeriode.getFomDato(); var tom = opplysningsPeriode.getTomDato(); var saker = fpwsproxyKlient.hentDagpengerAAP(ident, fom, tom); @@ -140,12 +141,15 @@ private List filtrerYtelserTjenester(List informasjonsElementer; var payloadAsString = prosessTaskData.getPayloadAsString(); @@ -67,10 +68,14 @@ protected void prosesser(ProsessTaskData prosessTaskData) { } else { informasjonsElementer = Set.of(RegisterdataElement.values()); } - LOG.info("Registerdataelementer for sak=[{}, {}] med behandling='{}' er: {} ", kobling.getSaksnummer(), kobling.getYtelseType(), - kobling.getKoblingReferanse(), informasjonsElementer); - InntektArbeidYtelseGrunnlagBuilder builder = innhentTjeneste.innhentRegisterdata(kobling, informasjonsElementer); + LOG.info( + "Registerdataelementer for sak=[{}, {}] med behandling='{}' er: {} ", + kobling.getSaksnummer(), + kobling.getYtelseType(), + kobling.getKoblingReferanse(), + informasjonsElementer); + InntektArbeidYtelseGrunnlagBuilder builder = + innhentTjeneste.innhentRegisterdata(kobling, informasjonsElementer); iayTjeneste.lagre(kobling.getKoblingReferanse(), builder); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjeneste.java index c7737d6f6..cffb80c3f 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjeneste.java @@ -1,11 +1,9 @@ package no.nav.foreldrepenger.abakus.registerdata; -import java.time.LocalDate; -import java.util.List; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; - +import java.time.LocalDate; +import java.util.List; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseAggregatBuilder; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlagBuilder; @@ -32,82 +30,99 @@ public class VedtattYtelseInnhentingTjeneste { private VedtakYtelseRepository vedtakYtelseRepository; private InntektArbeidYtelseRepository inntektArbeidYtelseRepository; - protected VedtattYtelseInnhentingTjeneste() { - } + protected VedtattYtelseInnhentingTjeneste() {} @Inject - public VedtattYtelseInnhentingTjeneste(VedtakYtelseRepository vedtakYtelseRepository, - InntektArbeidYtelseRepository inntektArbeidYtelseRepository) { + public VedtattYtelseInnhentingTjeneste( + VedtakYtelseRepository vedtakYtelseRepository, + InntektArbeidYtelseRepository inntektArbeidYtelseRepository) { this.vedtakYtelseRepository = vedtakYtelseRepository; this.inntektArbeidYtelseRepository = inntektArbeidYtelseRepository; } - void innhentFraYtelsesRegister(AktørId aktørId, Kobling kobling, InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder builder) { + void innhentFraYtelsesRegister( + AktørId aktørId, Kobling kobling, InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder builder) { IntervallEntitet opplysningsperiode = kobling.getOpplysningsperiode(); - List vedtatteYtelser = vedtakYtelseRepository.hentYtelserForIPeriode(aktørId, opplysningsperiode.getFomDato(), - opplysningsperiode.getTomDato()); + List vedtatteYtelser = vedtakYtelseRepository.hentYtelserForIPeriode( + aktørId, opplysningsperiode.getFomDato(), opplysningsperiode.getTomDato()); - var arbeidsforholdInformasjon = inntektArbeidYtelseRepository.hentArbeidsforholdInformasjonForBehandling(kobling.getKoblingReferanse()); + var arbeidsforholdInformasjon = + inntektArbeidYtelseRepository.hentArbeidsforholdInformasjonForBehandling(kobling.getKoblingReferanse()); var arbeidsforholdInformasjonBuilder = ArbeidsforholdInformasjonBuilder.builder(arbeidsforholdInformasjon); for (var vedtattYtelse : vedtatteYtelser) { - YtelseBuilder ytelseBuilder = builder.getYtelselseBuilderForType(vedtattYtelse.getKilde(), vedtattYtelse.getYtelseType(), - vedtattYtelse.getSaksnummer()); - ytelseBuilder.medPeriode(vedtattYtelse.getPeriode()) - .medStatus(vedtattYtelse.getStatus()) - .medVedtattTidspunkt(vedtattYtelse.getVedtattTidspunkt()); + YtelseBuilder ytelseBuilder = builder.getYtelselseBuilderForType( + vedtattYtelse.getKilde(), vedtattYtelse.getYtelseType(), vedtattYtelse.getSaksnummer()); + ytelseBuilder + .medPeriode(vedtattYtelse.getPeriode()) + .medStatus(vedtattYtelse.getStatus()) + .medVedtattTidspunkt(vedtattYtelse.getVedtattTidspunkt()); mapAnvisninger(vedtattYtelse, ytelseBuilder, arbeidsforholdInformasjonBuilder); builder.leggTilYtelse(ytelseBuilder); } - var inntektArbeidYtelseGrunnlag = inntektArbeidYtelseRepository.hentInntektArbeidYtelseGrunnlagForBehandling(kobling.getKoblingReferanse()); + var inntektArbeidYtelseGrunnlag = inntektArbeidYtelseRepository.hentInntektArbeidYtelseGrunnlagForBehandling( + kobling.getKoblingReferanse()); var nyttGrunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(inntektArbeidYtelseGrunnlag); nyttGrunnlagBuilder.medInformasjon(arbeidsforholdInformasjonBuilder.build()); inntektArbeidYtelseRepository.lagre(kobling.getKoblingReferanse(), nyttGrunnlagBuilder); } - - private void mapAnvisninger(VedtakYtelse vedtattYtelse, - YtelseBuilder ytelseBuilder, - ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder) { + private void mapAnvisninger( + VedtakYtelse vedtattYtelse, + YtelseBuilder ytelseBuilder, + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder) { vedtattYtelse.getYtelseAnvist().forEach(anvisning -> { YtelseAnvistBuilder anvistBuilder = ytelseBuilder.getAnvistBuilder(); - IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(anvisning.getAnvistFom(), anvisning.getAnvistTom()); - anvistBuilder.medAnvistPeriode(periode) - .medBeløp(anvisning.getBeløp().map(Beløp::getVerdi).orElse(null)) - .medDagsats(anvisning.getDagsats().map(Beløp::getVerdi).orElse(null)) - .medUtbetalingsgradProsent(anvisning.getUtbetalingsgradProsent().map(Stillingsprosent::getVerdi).orElse(null)); + IntervallEntitet periode = + utledPeriodeNårTomMuligFørFom(anvisning.getAnvistFom(), anvisning.getAnvistTom()); + anvistBuilder + .medAnvistPeriode(periode) + .medBeløp(anvisning.getBeløp().map(Beløp::getVerdi).orElse(null)) + .medDagsats(anvisning.getDagsats().map(Beløp::getVerdi).orElse(null)) + .medUtbetalingsgradProsent(anvisning + .getUtbetalingsgradProsent() + .map(Stillingsprosent::getVerdi) + .orElse(null)); if (anvisning.getAndeler() != null) { - anvisning.getAndeler().forEach(andel -> anvistBuilder.leggTilYtelseAnvistAndel(mapAndel(arbeidsforholdInformasjonBuilder, andel))); + anvisning + .getAndeler() + .forEach(andel -> anvistBuilder.leggTilYtelseAnvistAndel( + mapAndel(arbeidsforholdInformasjonBuilder, andel))); } ytelseBuilder.leggtilYtelseAnvist(anvistBuilder.build()); }); } - private YtelseAnvistAndel mapAndel(ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder, VedtakYtelseAndel andel) { + private YtelseAnvistAndel mapAndel( + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder, VedtakYtelseAndel andel) { var arbeidsgiver = mapArbeidsgiver(andel); return YtelseAnvistAndelBuilder.ny() - .medArbeidsgiver(arbeidsgiver) - .medArbeidsforholdRef(mapInternArbeidsforholdRef(arbeidsforholdInformasjonBuilder, andel, arbeidsgiver)) - .medInntektskategori(andel.getInntektskategori()) - .medRefusjonsgrad(andel.getRefusjonsgradProsent().getVerdi()) - .medUtbetalingsgrad(andel.getUtbetalingsgradProsent().getVerdi()) - .medDagsats(andel.getDagsats().getVerdi()) - .build(); + .medArbeidsgiver(arbeidsgiver) + .medArbeidsforholdRef(mapInternArbeidsforholdRef(arbeidsforholdInformasjonBuilder, andel, arbeidsgiver)) + .medInntektskategori(andel.getInntektskategori()) + .medRefusjonsgrad(andel.getRefusjonsgradProsent().getVerdi()) + .medUtbetalingsgrad(andel.getUtbetalingsgradProsent().getVerdi()) + .medDagsats(andel.getDagsats().getVerdi()) + .build(); } - private InternArbeidsforholdRef mapInternArbeidsforholdRef(ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder, - VedtakYtelseAndel andel, - Arbeidsgiver arbeidsgiver) { + private InternArbeidsforholdRef mapInternArbeidsforholdRef( + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjonBuilder, + VedtakYtelseAndel andel, + Arbeidsgiver arbeidsgiver) { if (andel.getArbeidsforholdId() != null) { - return arbeidsforholdInformasjonBuilder.finnEllerOpprett(arbeidsgiver, EksternArbeidsforholdRef.ref(andel.getArbeidsforholdId())); + return arbeidsforholdInformasjonBuilder.finnEllerOpprett( + arbeidsgiver, EksternArbeidsforholdRef.ref(andel.getArbeidsforholdId())); } return null; } private Arbeidsgiver mapArbeidsgiver(VedtakYtelseAndel andel) { return andel.getArbeidsgiver() - .map(a -> a.getOrgnr() != null ? Arbeidsgiver.virksomhet(a.getOrgnr()) : Arbeidsgiver.person(a.getAktørId())) - .orElse(null); + .map(a -> a.getOrgnr() != null + ? Arbeidsgiver.virksomhet(a.getOrgnr()) + : Arbeidsgiver.person(a.getAktørId())) + .orElse(null); } private IntervallEntitet utledPeriodeNårTomMuligFørFom(LocalDate fom, LocalDate tom) { @@ -119,6 +134,4 @@ private Arbeidsgiver mapArbeidsgiver(VedtakYtelseAndel andel) { } return IntervallEntitet.fraOgMedTilOgMed(fom, tom); } - - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/YtelseRegisterInnhenting.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/YtelseRegisterInnhenting.java index d480164a2..d6522b231 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/YtelseRegisterInnhenting.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/YtelseRegisterInnhenting.java @@ -3,7 +3,6 @@ import java.time.LocalDate; import java.util.List; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseAggregatBuilder; import no.nav.foreldrepenger.abakus.domene.iay.YtelseBuilder; @@ -21,29 +20,37 @@ public class YtelseRegisterInnhenting { private final InnhentingSamletTjeneste innhentingSamletTjeneste; private final VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste; - YtelseRegisterInnhenting(InnhentingSamletTjeneste innhentingSamletTjeneste, VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) { + YtelseRegisterInnhenting( + InnhentingSamletTjeneste innhentingSamletTjeneste, + VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) { this.innhentingSamletTjeneste = innhentingSamletTjeneste; this.vedtattYtelseInnhentingTjeneste = vedtattYtelseInnhentingTjeneste; } - void byggYtelser(Kobling behandling, - AktørId aktørId, - PersonIdent ident, - IntervallEntitet opplysningsPeriode, - InntektArbeidYtelseAggregatBuilder inntektArbeidYtelseAggregatBuilder) { + void byggYtelser( + Kobling behandling, + AktørId aktørId, + PersonIdent ident, + IntervallEntitet opplysningsPeriode, + InntektArbeidYtelseAggregatBuilder inntektArbeidYtelseAggregatBuilder) { - InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder = inntektArbeidYtelseAggregatBuilder.getAktørYtelseBuilder(aktørId); + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder = + inntektArbeidYtelseAggregatBuilder.getAktørYtelseBuilder(aktørId); aktørYtelseBuilder.tilbakestillYtelser(); vedtattYtelseInnhentingTjeneste.innhentFraYtelsesRegister(aktørId, behandling, aktørYtelseBuilder); - List alleGrunnlag = innhentingSamletTjeneste.innhentInfotrygdGrunnlag(ident, opplysningsPeriode); - alleGrunnlag.forEach(grunnlag -> InfotrygdgrunnlagYtelseMapper.oversettInfotrygdYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag)); + List alleGrunnlag = + innhentingSamletTjeneste.innhentInfotrygdGrunnlag(ident, opplysningsPeriode); + alleGrunnlag.forEach(grunnlag -> + InfotrygdgrunnlagYtelseMapper.oversettInfotrygdYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag)); - List ghosts = innhentingSamletTjeneste.innhentSpokelseGrunnlag(ident, opplysningsPeriode); + List ghosts = + innhentingSamletTjeneste.innhentSpokelseGrunnlag(ident, opplysningsPeriode); ghosts.forEach(grunnlag -> oversettSpokelseYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag)); - List arena = innhentingSamletTjeneste.hentDagpengerAAP(ident, opplysningsPeriode); + List arena = + innhentingSamletTjeneste.hentDagpengerAAP(ident, opplysningsPeriode); for (MeldekortUtbetalingsgrunnlagSak sak : arena) { oversettMeldekortUtbetalingsgrunnlagTilYtelse(aktørYtelseBuilder, sak); } @@ -51,56 +58,71 @@ void byggYtelser(Kobling behandling, inntektArbeidYtelseAggregatBuilder.leggTilAktørYtelse(aktørYtelseBuilder); } - private void oversettSpokelseYtelseGrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, - InfotrygdYtelseGrunnlag grunnlag) { - IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); + private void oversettSpokelseYtelseGrunnlagTilYtelse( + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, + InfotrygdYtelseGrunnlag grunnlag) { + IntervallEntitet periode = + utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); var saksnummer = new Saksnummer(grunnlag.getVedtaksreferanse()); - YtelseBuilder ytelseBuilder = aktørYtelseBuilder.getYtelselseBuilderForType(Fagsystem.VLSP, grunnlag.getYtelseType(), saksnummer) - .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) - .medPeriode(periode) - .medStatus(grunnlag.getYtelseStatus()); + YtelseBuilder ytelseBuilder = aktørYtelseBuilder + .getYtelselseBuilderForType(Fagsystem.VLSP, grunnlag.getYtelseType(), saksnummer) + .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) + .medPeriode(periode) + .medStatus(grunnlag.getYtelseStatus()); grunnlag.getUtbetaltePerioder().forEach(vedtak -> { - final IntervallEntitet intervall = utledPeriodeNårTomMuligFørFom(vedtak.getUtbetaltFom(), vedtak.getUtbetaltTom()); - ytelseBuilder.leggtilYtelseAnvist( - ytelseBuilder.getAnvistBuilder().medAnvistPeriode(intervall).medUtbetalingsgradProsent(vedtak.getUtbetalingsgrad()).build()); + final IntervallEntitet intervall = + utledPeriodeNårTomMuligFørFom(vedtak.getUtbetaltFom(), vedtak.getUtbetaltTom()); + ytelseBuilder.leggtilYtelseAnvist(ytelseBuilder + .getAnvistBuilder() + .medAnvistPeriode(intervall) + .medUtbetalingsgradProsent(vedtak.getUtbetalingsgrad()) + .build()); }); aktørYtelseBuilder.leggTilYtelse(ytelseBuilder); } - private void oversettMeldekortUtbetalingsgrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, - MeldekortUtbetalingsgrunnlagSak ytelse) { + private void oversettMeldekortUtbetalingsgrunnlagTilYtelse( + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, + MeldekortUtbetalingsgrunnlagSak ytelse) { Optional førsteMeldekortFom = finnFørsteMeldekortFom(ytelse); IntervallEntitet periode = utledMeldekortVedtaksPeriode(ytelse, førsteMeldekortFom); - YtelseBuilder ytelseBuilder = aktørYtelseBuilder.getYtelselseBuilderForType(ytelse.getKilde(), ytelse.getYtelseType(), ytelse.getSaksnummer(), - periode, førsteMeldekortFom); - ytelseBuilder.medPeriode(periode) - .medStatus(ytelse.getYtelseTilstand()) - .medVedtattTidspunkt(ytelse.getVedtattDato().atStartOfDay()) - .medYtelseGrunnlag(ytelseBuilder.getGrunnlagBuilder() - .medOpprinneligIdentdato(ytelse.getKravMottattDato()) - .medVedtaksDagsats(ytelse.getVedtaksDagsats()) - .build()); + YtelseBuilder ytelseBuilder = aktørYtelseBuilder.getYtelselseBuilderForType( + ytelse.getKilde(), ytelse.getYtelseType(), ytelse.getSaksnummer(), periode, førsteMeldekortFom); + ytelseBuilder + .medPeriode(periode) + .medStatus(ytelse.getYtelseTilstand()) + .medVedtattTidspunkt(ytelse.getVedtattDato().atStartOfDay()) + .medYtelseGrunnlag(ytelseBuilder + .getGrunnlagBuilder() + .medOpprinneligIdentdato(ytelse.getKravMottattDato()) + .medVedtaksDagsats(ytelse.getVedtaksDagsats()) + .build()); for (MeldekortUtbetalingsgrunnlagMeldekort meldekort : ytelse.getMeldekortene()) { - ytelseBuilder.leggtilYtelseAnvist(ytelseBuilder.getAnvistBuilder() - .medAnvistPeriode(utledPeriodeNårTomMuligFørFom(meldekort.getMeldekortFom(), meldekort.getMeldekortTom())) - .medBeløp(meldekort.getBeløp()) - .medDagsats(meldekort.getDagsats()) - .medUtbetalingsgradProsent(meldekort.getUtbetalingsgrad()) - .build()); + ytelseBuilder.leggtilYtelseAnvist(ytelseBuilder + .getAnvistBuilder() + .medAnvistPeriode( + utledPeriodeNårTomMuligFørFom(meldekort.getMeldekortFom(), meldekort.getMeldekortTom())) + .medBeløp(meldekort.getBeløp()) + .medDagsats(meldekort.getDagsats()) + .medUtbetalingsgradProsent(meldekort.getUtbetalingsgrad()) + .build()); } aktørYtelseBuilder.leggTilYtelse(ytelseBuilder); } - private IntervallEntitet utledMeldekortVedtaksPeriode(MeldekortUtbetalingsgrunnlagSak sak, Optional førsteMeldekortFom) { + private IntervallEntitet utledMeldekortVedtaksPeriode( + MeldekortUtbetalingsgrunnlagSak sak, Optional førsteMeldekortFom) { LocalDate fomFraSakMK = utledFomFraSakEllerMeldekortene(sak, førsteMeldekortFom); return utledPeriodeNårTomMuligFørFom(fomFraSakMK, sak.getVedtaksPeriodeTom()); } - private LocalDate utledFomFraSakEllerMeldekortene(MeldekortUtbetalingsgrunnlagSak sak, Optional førsteMeldekortFom) { + private LocalDate utledFomFraSakEllerMeldekortene( + MeldekortUtbetalingsgrunnlagSak sak, Optional førsteMeldekortFom) { if (sak.getVedtaksPeriodeFom() != null) { return sak.getVedtaksPeriodeFom(); } - return førsteMeldekortFom.orElseGet(() -> sak.getVedtattDato() != null ? sak.getVedtattDato() : sak.getKravMottattDato()); + return førsteMeldekortFom.orElseGet( + () -> sak.getVedtattDato() != null ? sak.getVedtattDato() : sak.getKravMottattDato()); } private IntervallEntitet utledPeriodeNårTomMuligFørFom(LocalDate fom, LocalDate tom) { @@ -114,7 +136,8 @@ private LocalDate utledFomFraSakEllerMeldekortene(MeldekortUtbetalingsgrunnlagSa } private Optional finnFørsteMeldekortFom(MeldekortUtbetalingsgrunnlagSak sak) { - return sak.getMeldekortene().stream().map(MeldekortUtbetalingsgrunnlagMeldekort::getMeldekortFom).min(LocalDate::compareTo); + return sak.getMeldekortene().stream() + .map(MeldekortUtbetalingsgrunnlagMeldekort::getMeldekortFom) + .min(LocalDate::compareTo); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsavtale.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsavtale.java index 3c430937a..95cd11457 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsavtale.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsavtale.java @@ -11,11 +11,12 @@ public class Arbeidsavtale { private LocalDate sisteLønnsendringsdato; private boolean erAnsettelsesPerioden; - private Arbeidsavtale(LocalDate arbeidsavtaleFom, - LocalDate arbeidsavtaleTom, - BigDecimal stillingsprosent, - LocalDate sisteLønnsendringsdato, - boolean erAnsettelsesPerioden) { + private Arbeidsavtale( + LocalDate arbeidsavtaleFom, + LocalDate arbeidsavtaleTom, + BigDecimal stillingsprosent, + LocalDate sisteLønnsendringsdato, + boolean erAnsettelsesPerioden) { this.arbeidsavtaleFom = arbeidsavtaleFom; this.arbeidsavtaleTom = arbeidsavtaleTom; this.stillingsprosent = stillingsprosent; @@ -52,19 +53,24 @@ public boolean equals(Object o) { return false; } Arbeidsavtale that = (Arbeidsavtale) o; - return erAnsettelsesPerioden == that.erAnsettelsesPerioden && Objects.equals(arbeidsavtaleFom, that.arbeidsavtaleFom) && Objects.equals( - arbeidsavtaleTom, that.arbeidsavtaleTom) && Objects.equals(stillingsprosent, that.stillingsprosent) && Objects.equals(sisteLønnsendringsdato, that.sisteLønnsendringsdato); + return erAnsettelsesPerioden == that.erAnsettelsesPerioden + && Objects.equals(arbeidsavtaleFom, that.arbeidsavtaleFom) + && Objects.equals(arbeidsavtaleTom, that.arbeidsavtaleTom) + && Objects.equals(stillingsprosent, that.stillingsprosent) + && Objects.equals(sisteLønnsendringsdato, that.sisteLønnsendringsdato); } @Override public int hashCode() { - return Objects.hash(arbeidsavtaleFom, arbeidsavtaleTom, stillingsprosent, sisteLønnsendringsdato, erAnsettelsesPerioden); + return Objects.hash( + arbeidsavtaleFom, arbeidsavtaleTom, stillingsprosent, sisteLønnsendringsdato, erAnsettelsesPerioden); } @Override public String toString() { - return "Arbeidsavtale{" + "arbeidsavtaleFom=" + arbeidsavtaleFom + ", arbeidsavtaleTom=" + arbeidsavtaleTom + ", stillingsprosent=" - + stillingsprosent + ", sisteLønnsendringsdato=" + sisteLønnsendringsdato + ", erAnsettelsesPerioden=" + erAnsettelsesPerioden + '}'; + return "Arbeidsavtale{" + "arbeidsavtaleFom=" + arbeidsavtaleFom + ", arbeidsavtaleTom=" + arbeidsavtaleTom + + ", stillingsprosent=" + stillingsprosent + ", sisteLønnsendringsdato=" + sisteLønnsendringsdato + + ", erAnsettelsesPerioden=" + erAnsettelsesPerioden + '}'; } public static class Builder { @@ -100,7 +106,12 @@ public Builder erAnsettelsesPerioden() { } public Arbeidsavtale build() { - return new Arbeidsavtale(arbeidsavtaleFom, arbeidsavtaleTom, stillingsprosent, sisteLønnsendringsdato, erAnsettelsesPerioden); + return new Arbeidsavtale( + arbeidsavtaleFom, + arbeidsavtaleTom, + stillingsprosent, + sisteLønnsendringsdato, + erAnsettelsesPerioden); } } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsforhold.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsforhold.java index 5ad535701..a581bad09 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsforhold.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Arbeidsforhold.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; - import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; public class Arbeidsforhold { @@ -16,13 +15,14 @@ public class Arbeidsforhold { private List permisjoner; private EksternArbeidsforholdRef arbeidsforholdId; - private Arbeidsforhold(Arbeidsgiver arbeidsgiver, - String type, - LocalDate arbeidFom, - LocalDate arbeidTom, - List arbeidsavtaler, - List permisjoner, - EksternArbeidsforholdRef arbeidsforholdId) { + private Arbeidsforhold( + Arbeidsgiver arbeidsgiver, + String type, + LocalDate arbeidFom, + LocalDate arbeidTom, + List arbeidsavtaler, + List permisjoner, + EksternArbeidsforholdRef arbeidsforholdId) { this.arbeidsgiver = arbeidsgiver; this.type = type; this.arbeidFom = arbeidFom; @@ -73,10 +73,14 @@ public boolean equals(Object o) { return false; } Arbeidsforhold that = (Arbeidsforhold) o; - return Objects.equals(arbeidsgiver, that.arbeidsgiver) && Objects.equals(type, that.type) && Objects.equals(arbeidFom, that.arbeidFom) - && Objects.equals(arbeidTom, that.arbeidTom) && erLikeArbeidsavtaler(arbeidsavtaler, that.arbeidsavtaler) && erLikePermisjoner( - permisjoner, that.permisjoner) && ((arbeidsgiver instanceof Organisasjon && Objects.equals(arbeidsforholdId, that.arbeidsforholdId)) - || arbeidsgiver instanceof Person); + return Objects.equals(arbeidsgiver, that.arbeidsgiver) + && Objects.equals(type, that.type) + && Objects.equals(arbeidFom, that.arbeidFom) + && Objects.equals(arbeidTom, that.arbeidTom) + && erLikeArbeidsavtaler(arbeidsavtaler, that.arbeidsavtaler) + && erLikePermisjoner(permisjoner, that.permisjoner) + && ((arbeidsgiver instanceof Organisasjon && Objects.equals(arbeidsforholdId, that.arbeidsforholdId)) + || arbeidsgiver instanceof Person); } private boolean erLikeArbeidsavtaler(List l1, List l2) { @@ -106,8 +110,9 @@ public int hashCode() { @Override public String toString() { - return "Arbeidsforhold{" + "arbeidsgiver=" + arbeidsgiver + ", type='" + type + '\'' + ", arbeidFom=" + arbeidFom + ", arbeidTom=" + arbeidTom - + ", arbeidsavtaler=" + arbeidsavtaler + ", permisjoner=" + permisjoner + ", arbeidsforholdId=" + arbeidsforholdId + '}'; + return "Arbeidsforhold{" + "arbeidsgiver=" + arbeidsgiver + ", type='" + type + '\'' + ", arbeidFom=" + + arbeidFom + ", arbeidTom=" + arbeidTom + ", arbeidsavtaler=" + arbeidsavtaler + ", permisjoner=" + + permisjoner + ", arbeidsforholdId=" + arbeidsforholdId + '}'; } public static class Builder { @@ -119,7 +124,6 @@ public static class Builder { private List permisjoner = new ArrayList<>(); private EksternArbeidsforholdRef arbeidsforholdId; - public Builder medArbeidsgiver(Arbeidsgiver arbeidsgiver) { this.arbeidsgiver = arbeidsgiver; return this; @@ -150,7 +154,6 @@ public Builder medArbeidsavtaler(List arbeidsavtaler) { return this; } - public Builder medAnsettelsesPeriode(Arbeidsavtale avtale) { this.arbeidsavtaler.add(avtale); return this; @@ -162,7 +165,8 @@ public Builder medPermisjon(List permisjoner) { } public Arbeidsforhold build() { - return new Arbeidsforhold(arbeidsgiver, type, arbeidFom, arbeidTom, arbeidsavtaler, permisjoner, arbeidsforholdId); + return new Arbeidsforhold( + arbeidsgiver, type, arbeidFom, arbeidTom, arbeidsavtaler, permisjoner, arbeidsforholdId); } } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdIdentifikator.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdIdentifikator.java index 926d689b4..f471d7a19 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdIdentifikator.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdIdentifikator.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold; import java.util.Objects; - import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; public class ArbeidsforholdIdentifikator { @@ -9,7 +8,8 @@ public class ArbeidsforholdIdentifikator { private EksternArbeidsforholdRef arbeidsforholdId; private String type; - public ArbeidsforholdIdentifikator(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdId, String type) { + public ArbeidsforholdIdentifikator( + Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdId, String type) { this.arbeidsgiver = arbeidsgiver; this.arbeidsforholdId = arbeidsforholdId; this.type = type; @@ -33,8 +33,8 @@ public boolean harArbeidsforholdRef() { @Override public String toString() { - return "ArbeidsforholdIdentifikator{" + "arbeidsgiver=" + arbeidsgiver + ", arbeidsforholdId=" + arbeidsforholdId + ", type='" + type + '\'' - + '}'; + return "ArbeidsforholdIdentifikator{" + "arbeidsgiver=" + arbeidsgiver + ", arbeidsforholdId=" + + arbeidsforholdId + ", type='" + type + '\'' + '}'; } @Override @@ -46,8 +46,9 @@ public boolean equals(Object o) { return false; } ArbeidsforholdIdentifikator that = (ArbeidsforholdIdentifikator) o; - return Objects.equals(arbeidsgiver, that.arbeidsgiver) && Objects.equals(arbeidsforholdId, that.arbeidsforholdId) && Objects.equals(type, - that.type); + return Objects.equals(arbeidsgiver, that.arbeidsgiver) + && Objects.equals(arbeidsforholdId, that.arbeidsforholdId) + && Objects.equals(type, that.type); } @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdTjeneste.java index 805172b3b..1e3f1f74b 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/ArbeidsforholdTjeneste.java @@ -1,17 +1,13 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest.AaregRestKlient; import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest.ArbeidsavtaleRS; @@ -23,6 +19,8 @@ import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class ArbeidsforholdTjeneste { @@ -39,13 +37,14 @@ public ArbeidsforholdTjeneste(AaregRestKlient aaregRestKlient) { this.aaregRestKlient = aaregRestKlient; } - public Map> finnArbeidsforholdForIdentIPerioden(PersonIdent ident, AktørId aktørId, IntervallEntitet interval) { + public Map> finnArbeidsforholdForIdentIPerioden( + PersonIdent ident, AktørId aktørId, IntervallEntitet interval) { // TODO: kall med aktørid når register har fikset ytelsesproblemer - List response = aaregRestKlient.finnArbeidsforholdForArbeidstaker(ident.getIdent(), interval.getFomDato(), - interval.getTomDato()); + List response = aaregRestKlient.finnArbeidsforholdForArbeidstaker( + ident.getIdent(), interval.getFomDato(), interval.getTomDato()); var mapArbeidsforhold = response.stream() - .map(arbeidsforhold -> mapArbeidsforholdRSTilDto(arbeidsforhold, interval)) - .collect(Collectors.groupingBy(Arbeidsforhold::getIdentifikator)); + .map(arbeidsforhold -> mapArbeidsforholdRSTilDto(arbeidsforhold, interval)) + .collect(Collectors.groupingBy(Arbeidsforhold::getIdentifikator)); valider(mapArbeidsforhold); @@ -53,9 +52,11 @@ public Map> finnArbeidsforhold } private void valider(Map> mapArbeidsforhold) { - var gruppert = mapArbeidsforhold.keySet().stream().collect(Collectors.groupingBy(r -> new Key(r.getArbeidsgiver(), r.getArbeidsforholdId()))); - var dups = gruppert.entrySet().stream().filter(e -> e.getValue().size() > 1) // duplikater - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + var gruppert = mapArbeidsforhold.keySet().stream() + .collect(Collectors.groupingBy(r -> new Key(r.getArbeidsgiver(), r.getArbeidsforholdId()))); + var dups = gruppert.entrySet().stream() + .filter(e -> e.getValue().size() > 1) // duplikater + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!dups.isEmpty()) { String msg = "Mottatt duplikater for arbeidsforhold fra AAreg: " + dups; LOG.warn(msg); @@ -63,15 +64,14 @@ private void valider(Map> mapA } } - public Map> finnArbeidsforholdFrilansForIdentIPerioden(PersonIdent ident, - AktørId aktørId, - IntervallEntitet interval) { + public Map> finnArbeidsforholdFrilansForIdentIPerioden( + PersonIdent ident, AktørId aktørId, IntervallEntitet interval) { // TODO: kall med aktørid når register har fikset ytelsesproblemer - List response = aaregRestKlient.finnArbeidsforholdForFrilanser(ident.getIdent(), interval.getFomDato(), - interval.getTomDato()); + List response = aaregRestKlient.finnArbeidsforholdForFrilanser( + ident.getIdent(), interval.getFomDato(), interval.getTomDato()); return response.stream() - .map(arbeidsforhold -> mapArbeidsforholdRSTilDto(arbeidsforhold, interval)) - .collect(Collectors.groupingBy(Arbeidsforhold::getIdentifikator)); + .map(arbeidsforhold -> mapArbeidsforholdRSTilDto(arbeidsforhold, interval)) + .collect(Collectors.groupingBy(Arbeidsforhold::getIdentifikator)); } private Arbeidsforhold mapArbeidsforholdRSTilDto(ArbeidsforholdRS arbeidsforhold, IntervallEntitet intervall) { @@ -81,32 +81,36 @@ private Arbeidsforhold mapArbeidsforholdRSTilDto(ArbeidsforholdRS arbeidsforhold builder.medArbeidFom(arbeidsforhold.getAnsettelsesperiode().periode().fom()); if (arbeidsforhold.getAnsettelsesperiode().periode().tom() != null) { - builder.medArbeidTom(arbeidsforhold.getAnsettelsesperiode().periode().tom()); + builder.medArbeidTom( + arbeidsforhold.getAnsettelsesperiode().periode().tom()); } - builder.medArbeidsavtaler(arbeidsforhold.getArbeidsavtaler() - .stream() - .map(aa -> byggArbeidsavtaleRS(aa, arbeidsforhold)) - .filter(av -> overlapperMedIntervall(av, intervall)) - .collect(Collectors.toList())); + builder.medArbeidsavtaler(arbeidsforhold.getArbeidsavtaler().stream() + .map(aa -> byggArbeidsavtaleRS(aa, arbeidsforhold)) + .filter(av -> overlapperMedIntervall(av, intervall)) + .collect(Collectors.toList())); builder.medAnsettelsesPeriode(byggAnsettelsesPeriodeRS(arbeidsforhold)); - builder.medPermisjon(arbeidsforhold.getPermisjonPermitteringer().stream().map(this::byggPermisjonRS).collect(Collectors.toList())); + builder.medPermisjon(arbeidsforhold.getPermisjonPermitteringer().stream() + .map(this::byggPermisjonRS) + .collect(Collectors.toList())); return builder.build(); } private void utledArbeidsgiverRS(ArbeidsforholdRS arbeidsforhold, Arbeidsforhold.Builder builder) { - if (OpplysningspliktigArbeidsgiverRS.Type.Person.equals(arbeidsforhold.getArbeidsgiver().type())) { + if (OpplysningspliktigArbeidsgiverRS.Type.Person.equals( + arbeidsforhold.getArbeidsgiver().type())) { AktørId arbeidsgiver = new AktørId(arbeidsforhold.getArbeidsgiver().aktoerId()); - Person person = new Person.Builder().medAktørId( - arbeidsgiver).build(); + Person person = new Person.Builder().medAktørId(arbeidsgiver).build(); builder.medArbeidsgiver(person); final var uuid = UUID.nameUUIDFromBytes(arbeidsforhold.getType().getBytes(StandardCharsets.UTF_8)); builder.medArbeidsforholdId(uuid.toString()); - } else if (OpplysningspliktigArbeidsgiverRS.Type.Organisasjon.equals(arbeidsforhold.getArbeidsgiver().type())) { - Organisasjon organisasjon = new Organisasjon.Builder().medOrgNummer( - arbeidsforhold.getArbeidsgiver().organisasjonsnummer()).build(); + } else if (OpplysningspliktigArbeidsgiverRS.Type.Organisasjon.equals( + arbeidsforhold.getArbeidsgiver().type())) { + Organisasjon organisasjon = new Organisasjon.Builder() + .medOrgNummer(arbeidsforhold.getArbeidsgiver().organisasjonsnummer()) + .build(); builder.medArbeidsgiver(organisasjon); builder.medArbeidsforholdId(arbeidsforhold.getArbeidsforholdId()); } @@ -115,9 +119,11 @@ private void utledArbeidsgiverRS(ArbeidsforholdRS arbeidsforhold, Arbeidsforhold private Arbeidsavtale byggAnsettelsesPeriodeRS(ArbeidsforholdRS arbeidsforhold) { Arbeidsavtale.Builder builder = new Arbeidsavtale.Builder(); - builder.medArbeidsavtaleFom(arbeidsforhold.getAnsettelsesperiode().periode().fom()); + builder.medArbeidsavtaleFom( + arbeidsforhold.getAnsettelsesperiode().periode().fom()); if (arbeidsforhold.getAnsettelsesperiode().periode().tom() != null) { - builder.medArbeidsavtaleTom(arbeidsforhold.getAnsettelsesperiode().periode().tom()); + builder.medArbeidsavtaleTom( + arbeidsforhold.getAnsettelsesperiode().periode().tom()); } builder.erAnsettelsesPerioden(); return builder.build(); @@ -125,8 +131,9 @@ private Arbeidsavtale byggAnsettelsesPeriodeRS(ArbeidsforholdRS arbeidsforhold) private Arbeidsavtale byggArbeidsavtaleRS(ArbeidsavtaleRS arbeidsavtale, ArbeidsforholdRS arbeidsforhold) { var stillingsprosent = Stillingsprosent.normaliserStillingsprosentArbeid(arbeidsavtale.stillingsprosent()); - Arbeidsavtale.Builder builder = new Arbeidsavtale.Builder().medStillingsprosent(stillingsprosent) - .medSisteLønnsendringsdato(arbeidsavtale.sistLoennsendring()); + Arbeidsavtale.Builder builder = new Arbeidsavtale.Builder() + .medStillingsprosent(stillingsprosent) + .medSisteLønnsendringsdato(arbeidsavtale.sistLoennsendring()); PeriodeRS ansettelsesPeriode = arbeidsforhold.getAnsettelsesperiode().periode(); LocalDate arbeidsavtaleFom = arbeidsavtale.gyldighetsperiode().fom(); @@ -134,16 +141,22 @@ private Arbeidsavtale byggArbeidsavtaleRS(ArbeidsavtaleRS arbeidsavtale, Arbeids builder.medArbeidsavtaleFom(arbeidsavtaleFom); builder.medArbeidsavtaleTom(arbeidsavtaleTom); - var ansettelseIntervall = ansettelsesPeriode.tom() != null ? IntervallEntitet.fraOgMedTilOgMed(ansettelsesPeriode.fom(), - ansettelsesPeriode.tom()) : IntervallEntitet.fraOgMed(ansettelsesPeriode.fom()); + var ansettelseIntervall = ansettelsesPeriode.tom() != null + ? IntervallEntitet.fraOgMedTilOgMed(ansettelsesPeriode.fom(), ansettelsesPeriode.tom()) + : IntervallEntitet.fraOgMed(ansettelsesPeriode.fom()); if (!ansettelseIntervall.inkluderer(arbeidsavtaleFom)) { - LOG.info("Arbeidsavtale fom={} ligger utenfor ansettelsesPeriode={}", arbeidsavtaleFom, ansettelseIntervall); + LOG.info( + "Arbeidsavtale fom={} ligger utenfor ansettelsesPeriode={}", arbeidsavtaleFom, ansettelseIntervall); } if (arbeidsavtaleTom != null && arbeidsavtaleTom.isBefore(arbeidsavtaleFom)) { - LOG.warn("Arbeidsavtale tom={} er før fom={} for orgnr={}, navArbeidsforholdId={}", arbeidsavtaleTom, arbeidsavtaleFom, - getIdentifikatorString(arbeidsforhold.getArbeidsgiver().organisasjonsnummer()), arbeidsforhold.getNavArbeidsforholdId()); + LOG.warn( + "Arbeidsavtale tom={} er før fom={} for orgnr={}, navArbeidsforholdId={}", + arbeidsavtaleTom, + arbeidsavtaleFom, + getIdentifikatorString(arbeidsforhold.getArbeidsgiver().organisasjonsnummer()), + arbeidsforhold.getNavArbeidsforholdId()); } return builder.build(); @@ -161,20 +174,20 @@ private String getIdentifikatorString(String arbeidsgiverIdentifikator) { } private Permisjon byggPermisjonRS(PermisjonPermitteringRS permisjonPermitteringRS) { - return new Permisjon.Builder().medPermisjonFom(permisjonPermitteringRS.periode().fom()) - .medPermisjonTom(permisjonPermitteringRS.periode().tom()) - .medPermisjonsprosent(permisjonPermitteringRS.prosent()) - .medPermisjonsÅrsak(permisjonPermitteringRS.type()) - .build(); + return new Permisjon.Builder() + .medPermisjonFom(permisjonPermitteringRS.periode().fom()) + .medPermisjonTom(permisjonPermitteringRS.periode().tom()) + .medPermisjonsprosent(permisjonPermitteringRS.prosent()) + .medPermisjonsÅrsak(permisjonPermitteringRS.type()) + .build(); } private boolean overlapperMedIntervall(Arbeidsavtale av, IntervallEntitet interval) { - final var interval1 = - av.getArbeidsavtaleTom() == null ? IntervallEntitet.fraOgMed(av.getArbeidsavtaleFom()) : IntervallEntitet.fraOgMedTilOgMed( - av.getArbeidsavtaleFom(), av.getArbeidsavtaleTom()); + final var interval1 = av.getArbeidsavtaleTom() == null + ? IntervallEntitet.fraOgMed(av.getArbeidsavtaleFom()) + : IntervallEntitet.fraOgMedTilOgMed(av.getArbeidsavtaleFom(), av.getArbeidsavtaleTom()); return interval.overlapper(interval1); } - record Key(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdId) { - } + record Key(Arbeidsgiver arbeidsgiver, EksternArbeidsforholdRef arbeidsforholdId) {} } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Organisasjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Organisasjon.java index 7a907b275..4694a63fa 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Organisasjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Organisasjon.java @@ -56,6 +56,5 @@ public Builder medOrgNummer(String orgNummer) { public Organisasjon build() { return new Organisasjon(orgNummer); } - } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Permisjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Permisjon.java index b7b9f4130..fd30ed41b 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Permisjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Permisjon.java @@ -11,7 +11,8 @@ public class Permisjon { private BigDecimal permisjonsprosent; private String permisjonsÅrsak; - private Permisjon(LocalDate permisjonFom, LocalDate permisjonTom, BigDecimal permisjonsprosent, String permisjonsÅrsak) { + private Permisjon( + LocalDate permisjonFom, LocalDate permisjonTom, BigDecimal permisjonsprosent, String permisjonsÅrsak) { this.permisjonFom = permisjonFom; this.permisjonTom = permisjonTom; this.permisjonsprosent = permisjonsprosent; @@ -43,8 +44,10 @@ public boolean equals(Object o) { return false; } Permisjon permisjon = (Permisjon) o; - return Objects.equals(permisjonFom, permisjon.permisjonFom) && Objects.equals(permisjonTom, permisjon.permisjonTom) && Objects.equals( - permisjonsprosent, permisjon.permisjonsprosent) && Objects.equals(permisjonsÅrsak, permisjon.permisjonsÅrsak); + return Objects.equals(permisjonFom, permisjon.permisjonFom) + && Objects.equals(permisjonTom, permisjon.permisjonTom) + && Objects.equals(permisjonsprosent, permisjon.permisjonsprosent) + && Objects.equals(permisjonsÅrsak, permisjon.permisjonsÅrsak); } @Override @@ -54,8 +57,8 @@ public int hashCode() { @Override public String toString() { - return "Permisjon{" + "permisjonFom=" + permisjonFom + ", permisjonTom=" + permisjonTom + ", permisjonsprosent=" + permisjonsprosent - + ", permisjonsÅrsak='" + permisjonsÅrsak + '\'' + '}'; + return "Permisjon{" + "permisjonFom=" + permisjonFom + ", permisjonTom=" + permisjonTom + ", permisjonsprosent=" + + permisjonsprosent + ", permisjonsÅrsak='" + permisjonsÅrsak + '\'' + '}'; } public static class Builder { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Person.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Person.java index 42aeb8049..1763f59d2 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Person.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/Person.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold; import java.util.Objects; - import no.nav.foreldrepenger.abakus.typer.AktørId; public class Person implements Arbeidsgiver { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AaregRestKlient.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AaregRestKlient.java index 0696f5796..398256431 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AaregRestKlient.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AaregRestKlient.java @@ -1,12 +1,11 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest; -import java.time.LocalDate; -import java.util.Arrays; -import java.util.List; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.ws.rs.core.UriBuilder; import jakarta.ws.rs.core.UriBuilderException; +import java.time.LocalDate; +import java.util.Arrays; +import java.util.List; import no.nav.vedtak.felles.integrasjon.rest.NavHeaders; import no.nav.vedtak.felles.integrasjon.rest.RestClient; import no.nav.vedtak.felles.integrasjon.rest.RestClientConfig; @@ -21,12 +20,14 @@ */ @ApplicationScoped -@RestClientConfig(tokenConfig = TokenFlow.ADAPTIVE, endpointProperty = "aareg.rs.url", - endpointDefault = "http://aareg-services-nais.arbeidsforhold/api/v1/arbeidstaker", - scopesProperty = "aareg.scopes", scopesDefault = "api://prod-fss.arbeidsforhold.aareg-services-nais/.default") +@RestClientConfig( + tokenConfig = TokenFlow.ADAPTIVE, + endpointProperty = "aareg.rs.url", + endpointDefault = "http://aareg-services-nais.arbeidsforhold/api/v1/arbeidstaker", + scopesProperty = "aareg.scopes", + scopesDefault = "api://prod-fss.arbeidsforhold.aareg-services-nais/.default") public class AaregRestKlient { - private final RestClient restClient; // Setter på consumer-token fra STS private final RestConfig restConfig; @@ -38,13 +39,13 @@ public AaregRestKlient() { public List finnArbeidsforholdForArbeidstaker(String ident, LocalDate qfom, LocalDate qtom) { try { var target = UriBuilder.fromUri(restConfig.endpoint()) - .path("arbeidsforhold") - .queryParam("ansettelsesperiodeFom", String.valueOf(qfom)) - .queryParam("ansettelsesperiodeTom", String.valueOf(qtom)) - .queryParam("regelverk", "A_ORDNINGEN") - .queryParam("historikk", "true") - .queryParam("sporingsinformasjon", "false") - .build(); + .path("arbeidsforhold") + .queryParam("ansettelsesperiodeFom", String.valueOf(qfom)) + .queryParam("ansettelsesperiodeTom", String.valueOf(qtom)) + .queryParam("regelverk", "A_ORDNINGEN") + .queryParam("historikk", "true") + .queryParam("sporingsinformasjon", "false") + .build(); var request = RestRequest.newGET(target, restConfig).header(NavHeaders.HEADER_NAV_PERSONIDENT, ident); var result = restClient.send(request, ArbeidsforholdRS[].class); return Arrays.asList(result); @@ -56,14 +57,14 @@ public List finnArbeidsforholdForArbeidstaker(String ident, Lo public List finnArbeidsforholdForFrilanser(String ident, LocalDate qfom, LocalDate qtom) { try { var target = UriBuilder.fromUri(restConfig.endpoint()) - .path("arbeidsforhold") - .queryParam("ansettelsesperiodeFom", String.valueOf(qfom)) - .queryParam("ansettelsesperiodeTom", String.valueOf(qtom)) - .queryParam("arbeidsforholdtype", "frilanserOppdragstakerHonorarPersonerMm") - .queryParam("regelverk", "A_ORDNINGEN") - .queryParam("historikk", "true") - .queryParam("sporingsinformasjon", "false") - .build(); + .path("arbeidsforhold") + .queryParam("ansettelsesperiodeFom", String.valueOf(qfom)) + .queryParam("ansettelsesperiodeTom", String.valueOf(qtom)) + .queryParam("arbeidsforholdtype", "frilanserOppdragstakerHonorarPersonerMm") + .queryParam("regelverk", "A_ORDNINGEN") + .queryParam("historikk", "true") + .queryParam("sporingsinformasjon", "false") + .build(); var request = RestRequest.newGET(target, restConfig).header(NavHeaders.HEADER_NAV_PERSONIDENT, ident); var result = restClient.send(request, ArbeidsforholdRS[].class); return Arrays.asList(result); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AnsettelsesperiodeRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AnsettelsesperiodeRS.java index 517361229..61bb9c464 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AnsettelsesperiodeRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/AnsettelsesperiodeRS.java @@ -1,5 +1,3 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest; -public record AnsettelsesperiodeRS(PeriodeRS periode) { - -} +public record AnsettelsesperiodeRS(PeriodeRS periode) {} diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsavtaleRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsavtaleRS.java index 0543d56a7..57ac6a2cc 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsavtaleRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsavtaleRS.java @@ -3,5 +3,4 @@ import java.math.BigDecimal; import java.time.LocalDate; -public record ArbeidsavtaleRS(BigDecimal stillingsprosent, LocalDate sistLoennsendring, PeriodeRS gyldighetsperiode) { -} +public record ArbeidsavtaleRS(BigDecimal stillingsprosent, LocalDate sistLoennsendring, PeriodeRS gyldighetsperiode) {} diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsforholdRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsforholdRS.java index 56ae42e2e..20948f789 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsforholdRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/ArbeidsforholdRS.java @@ -4,29 +4,34 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Arbeidsavtale; -import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Permisjon; - import java.util.List; @JsonIgnoreProperties(ignoreUnknown = true) @JsonFormat(shape = JsonFormat.Shape.OBJECT) -@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY) +@JsonAutoDetect( + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + fieldVisibility = JsonAutoDetect.Visibility.ANY) public class ArbeidsforholdRS { @JsonProperty("arbeidsforholdId") private String arbeidsforholdId; + @JsonProperty("navArbeidsforholdId") private Long navArbeidsforholdId; + @JsonProperty("arbeidsgiver") private OpplysningspliktigArbeidsgiverRS arbeidsgiver; + @JsonProperty("ansettelsesperiode") private AnsettelsesperiodeRS ansettelsesperiode; + @JsonProperty("arbeidsavtaler") private List arbeidsavtaler; + @JsonProperty("permisjonPermitteringer") private List permisjonPermitteringer; + @JsonProperty("type") private String type; // (kodeverk: Arbeidsforholdtyper) @@ -60,8 +65,10 @@ public String getType() { @Override public String toString() { - return "ArbeidsforholdRS{" + "arbeidsforholdId='" + arbeidsforholdId + '\'' + ", navArbeidsforholdId=" + navArbeidsforholdId - + ", arbeidsgiver=" + arbeidsgiver + ", ansettelsesperiode=" + ansettelsesperiode + ", arbeidsavtaler=" + arbeidsavtaler - + ", permisjonPermitteringer=" + permisjonPermitteringer + ", type='" + type + '\'' + '}'; + return "ArbeidsforholdRS{" + "arbeidsforholdId='" + arbeidsforholdId + '\'' + ", navArbeidsforholdId=" + + navArbeidsforholdId + + ", arbeidsgiver=" + arbeidsgiver + ", ansettelsesperiode=" + ansettelsesperiode + ", arbeidsavtaler=" + + arbeidsavtaler + + ", permisjonPermitteringer=" + permisjonPermitteringer + ", type='" + type + '\'' + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/OpplysningspliktigArbeidsgiverRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/OpplysningspliktigArbeidsgiverRS.java index 2232787ba..9f32c5773 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/OpplysningspliktigArbeidsgiverRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/OpplysningspliktigArbeidsgiverRS.java @@ -1,16 +1,12 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -public record OpplysningspliktigArbeidsgiverRS(Type type, String organisasjonsnummer, String aktoerId, String offentligIdent) { +public record OpplysningspliktigArbeidsgiverRS( + Type type, String organisasjonsnummer, String aktoerId, String offentligIdent) { @Override public String toString() { - return "OpplysningspliktigArbeidsgiverRS{" + "type=" + type + ", organisasjonsnummer='" + organisasjonsnummer + '\'' + ", aktoerId='" - + aktoerId + '\'' + ", offentligIdent='" + offentligIdent + '\'' + '}'; + return "OpplysningspliktigArbeidsgiverRS{" + "type=" + type + ", organisasjonsnummer='" + organisasjonsnummer + + '\'' + ", aktoerId='" + aktoerId + '\'' + ", offentligIdent='" + offentligIdent + '\'' + '}'; } public enum Type { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PeriodeRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PeriodeRS.java index cfb3bb94a..ea6016d5a 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PeriodeRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PeriodeRS.java @@ -2,13 +2,4 @@ import java.time.LocalDate; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -import org.hibernate.mapping.List; - -public record PeriodeRS(LocalDate fom, LocalDate tom) { - -} +public record PeriodeRS(LocalDate fom, LocalDate tom) {} diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PermisjonPermitteringRS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PermisjonPermitteringRS.java index 2641c0af3..fdefb6887 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PermisjonPermitteringRS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/rest/PermisjonPermitteringRS.java @@ -2,8 +2,4 @@ import java.math.BigDecimal; -import com.fasterxml.jackson.annotation.JsonProperty; - -public record PermisjonPermitteringRS(PeriodeRS periode, BigDecimal prosent, String type) { - -} +public record PermisjonPermitteringRS(PeriodeRS periode, BigDecimal prosent, String type) {} diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/VirksomhetTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/VirksomhetTjeneste.java index 804f5b34c..ce04d51da 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/VirksomhetTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/VirksomhetTjeneste.java @@ -1,18 +1,13 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.time.LocalDate; import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.abakus.iaygrunnlag.kodeverk.OrganisasjonType; import no.nav.foreldrepenger.abakus.domene.virksomhet.Virksomhet; import no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet.rest.OrganisasjonRestKlient; @@ -22,7 +17,8 @@ import no.nav.vedtak.felles.integrasjon.organisasjon.OrganisasjonEReg; import no.nav.vedtak.felles.integrasjon.organisasjon.OrganisasjonstypeEReg; import no.nav.vedtak.util.LRUCache; - +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class VirksomhetTjeneste { @@ -30,16 +26,17 @@ public class VirksomhetTjeneste { private static final Logger LOG = LoggerFactory.getLogger(VirksomhetTjeneste.class); private static final long CACHE_ELEMENT_LIVE_TIME_MS = TimeUnit.MILLISECONDS.convert(30, TimeUnit.MINUTES); - - private final Virksomhet KUNSTIG_VIRKSOMHET = new Virksomhet.Builder().medNavn("Kunstig virksomhet") - .medOrganisasjonstype(OrganisasjonType.KUNSTIG) - .medOrgnr(OrgNummer.KUNSTIG_ORG) - .medRegistrert(LocalDate.of(1978, 01, 01)) - .medOppstart(LocalDate.of(1978, 01, 01)) - .build(); + private final Virksomhet KUNSTIG_VIRKSOMHET = new Virksomhet.Builder() + .medNavn("Kunstig virksomhet") + .medOrganisasjonstype(OrganisasjonType.KUNSTIG) + .medOrgnr(OrgNummer.KUNSTIG_ORG) + .medRegistrert(LocalDate.of(1978, 01, 01)) + .medOppstart(LocalDate.of(1978, 01, 01)) + .build(); private LRUCache cacheEREG = new LRUCache<>(1000, CACHE_ELEMENT_LIVE_TIME_MS); - private LRUCache cacheJuridiskEREG = new LRUCache<>(100, CACHE_ELEMENT_LIVE_TIME_MS); + private LRUCache cacheJuridiskEREG = + new LRUCache<>(100, CACHE_ELEMENT_LIVE_TIME_MS); private OrganisasjonRestKlient eregRestKlient; @@ -72,13 +69,15 @@ public Virksomhet hentOrganisasjon(String orgNummer) { * @return true (når virksomheten er orgledd) */ public boolean sjekkOmOrganisasjonErOrgledd(String orgNummer) { - return OrganisasjonstypeEReg.ORGLEDD.equals(hentResponseOrganisasjon(orgNummer).type()); + return OrganisasjonstypeEReg.ORGLEDD.equals( + hentResponseOrganisasjon(orgNummer).type()); } /** - * Henter informasjon fra Enhetsregisteret hvis applikasjonen ikke kjenner til orgnr eller har data som er eldre enn 24 timer. - * Prøver og utlede faktisk virksomhet hvis oppgitt orgNummer refererer til et juridiskOrgnummer (gjelder 1 til 1 forhold) - * Vil lagre ned virksomheten med juridiskOrgNummer hvis det ikke er mulig og utlede faktisk orgNummer (gjelder 1 til mange forhold) + * Henter informasjon fra Enhetsregisteret hvis applikasjonen ikke kjenner til orgnr eller har data som er eldre enn + * 24 timer. Prøver og utlede faktisk virksomhet hvis oppgitt orgNummer refererer til et juridiskOrgnummer (gjelder + * 1 til 1 forhold) Vil lagre ned virksomheten med juridiskOrgNummer hvis det ikke er mulig og utlede faktisk + * orgNummer (gjelder 1 til mange forhold) * * @param orgNummer orgnummeret * @return relevant informasjon om virksomheten. @@ -87,9 +86,12 @@ public Virksomhet hentOrganisasjonMedHensynTilJuridisk(String orgNummer, LocalDa final Virksomhet virksomhet = hentOrganisasjon(orgNummer); if (OrganisasjonType.JURIDISK_ENHET.equals(virksomhet.getOrganisasjonstype())) { - Optional unikVirksomhetForJuridiskEnhet = hentUnikVirksomhetForJuridiskEnhet(orgNummer, hentedato); - LOG.info("ABAKUS EREG fant {} unik virksomhet for juridisk {}", unikVirksomhetForJuridiskEnhet.isPresent() ? "en" : "ikke", - getIdentifikatorString(orgNummer)); + Optional unikVirksomhetForJuridiskEnhet = + hentUnikVirksomhetForJuridiskEnhet(orgNummer, hentedato); + LOG.info( + "ABAKUS EREG fant {} unik virksomhet for juridisk {}", + unikVirksomhetForJuridiskEnhet.isPresent() ? "en" : "ikke", + getIdentifikatorString(orgNummer)); return unikVirksomhetForJuridiskEnhet.orElse(virksomhet); } if (OrganisasjonType.ORGLEDD.equals(virksomhet.getOrganisasjonstype())) { @@ -112,18 +114,22 @@ private String getIdentifikatorString(String arbeidsgiverIdentifikator) { private Optional hentUnikVirksomhetForJuridiskEnhet(String orgNummer, LocalDate hentedato) { var jenhet = hentResponseJuridisk(orgNummer); - List aktiveOrgnr = jenhet.getEksaktVirksomhetForDato(hentedato) - .stream() - .map(this::hentResponseOrganisasjon) - .filter(o -> o.getOpphørsdato() == null || hentedato.isBefore(o.getOpphørsdato())) - .collect(Collectors.toList()); + List aktiveOrgnr = jenhet.getEksaktVirksomhetForDato(hentedato).stream() + .map(this::hentResponseOrganisasjon) + .filter(o -> o.getOpphørsdato() == null || hentedato.isBefore(o.getOpphørsdato())) + .collect(Collectors.toList()); return aktiveOrgnr.size() == 1 ? Optional.of(mapVirksomhet(aktiveOrgnr.get(0))) : Optional.empty(); } private Virksomhet mapVirksomhet(OrganisasjonEReg org) { - var builder = new Virksomhet.Builder().medNavn(org.getNavn()).medRegistrert(org.getRegistreringsdato()).medOrgnr(org.organisasjonsnummer()); + var builder = new Virksomhet.Builder() + .medNavn(org.getNavn()) + .medRegistrert(org.getRegistreringsdato()) + .medOrgnr(org.organisasjonsnummer()); if (OrganisasjonstypeEReg.VIRKSOMHET.equals(org.type())) { - builder.medOrganisasjonstype(OrganisasjonType.VIRKSOMHET).medOppstart(org.getOppstartsdato()).medAvsluttet(org.getNedleggelsesdato()); + builder.medOrganisasjonstype(OrganisasjonType.VIRKSOMHET) + .medOppstart(org.getOppstartsdato()) + .medAvsluttet(org.getNedleggelsesdato()); } else if (OrganisasjonstypeEReg.JURIDISK_ENHET.equals(org.type())) { builder.medOrganisasjonstype(OrganisasjonType.JURIDISK_ENHET); } else if (OrganisasjonstypeEReg.ORGLEDD.equals(org.type())) { @@ -133,15 +139,16 @@ private Virksomhet mapVirksomhet(OrganisasjonEReg org) { } private OrganisasjonEReg hentResponseOrganisasjon(String orgnr) { - var response = Optional.ofNullable(cacheEREG.get(orgnr)).orElseGet(() -> eregRestKlient.hentOrganisasjon(orgnr)); + var response = + Optional.ofNullable(cacheEREG.get(orgnr)).orElseGet(() -> eregRestKlient.hentOrganisasjon(orgnr)); cacheEREG.put(orgnr, response); return response; } private JuridiskEnhetVirksomheter hentResponseJuridisk(String orgnr) { - var response = Optional.ofNullable(cacheJuridiskEREG.get(orgnr)).orElseGet(() -> eregRestKlient.hentOrganisasjonHistorikk(orgnr)); + var response = Optional.ofNullable(cacheJuridiskEREG.get(orgnr)) + .orElseGet(() -> eregRestKlient.hentOrganisasjonHistorikk(orgnr)); cacheJuridiskEREG.put(orgnr, response); return response; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/OrganisasjonRestKlient.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/OrganisasjonRestKlient.java index bbbcbcfcb..72a1d9171 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/OrganisasjonRestKlient.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/OrganisasjonRestKlient.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet.rest; import jakarta.enterprise.context.Dependent; - import no.nav.vedtak.felles.integrasjon.organisasjon.AbstractOrganisasjonKlient; import no.nav.vedtak.felles.integrasjon.rest.RestClientConfig; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; @@ -12,11 +11,13 @@ */ @Dependent -@RestClientConfig(tokenConfig = TokenFlow.NO_AUTH_NEEDED, endpointProperty = "organisasjon.rs.url", endpointDefault = "https://ereg-services.intern.nav.no/api/v2/organisasjon") +@RestClientConfig( + tokenConfig = TokenFlow.NO_AUTH_NEEDED, + endpointProperty = "organisasjon.rs.url", + endpointDefault = "https://ereg-services.intern.nav.no/api/v2/organisasjon") public class OrganisasjonRestKlient extends AbstractOrganisasjonKlient { public OrganisasjonRestKlient() { super(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/CallbackTask.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/CallbackTask.java index 76b9daca9..328ce410f 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/CallbackTask.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/CallbackTask.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.registerdata.callback; -import java.util.UUID; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import java.util.UUID; import no.nav.abakus.callback.registerdata.CallbackDto; import no.nav.abakus.callback.registerdata.ReferanseDto; import no.nav.foreldrepenger.abakus.iay.InntektArbeidYtelseTjeneste; @@ -24,11 +23,13 @@ public class CallbackTask implements ProsessTaskHandler { private KoblingTjeneste koblingTjeneste; private InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste; - CallbackTask() { - } + CallbackTask() {} @Inject - public CallbackTask(FpsakKlient fpsakKlient, KoblingTjeneste koblingTjeneste, InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste) { + public CallbackTask( + FpsakKlient fpsakKlient, + KoblingTjeneste koblingTjeneste, + InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste) { this.fpsakKlient = fpsakKlient; this.koblingTjeneste = koblingTjeneste; this.inntektArbeidYtelseTjeneste = inntektArbeidYtelseTjeneste; @@ -77,5 +78,4 @@ private void setInformasjonOmNyttGrunnlag(Kobling kobling, ProsessTaskData data, callbackDto.setOpprettetTidspunkt(data.getSistKjørt()); } } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/FpsakKlient.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/FpsakKlient.java index b6a773bfb..dae44b09a 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/FpsakKlient.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/callback/FpsakKlient.java @@ -1,13 +1,9 @@ package no.nav.foreldrepenger.abakus.registerdata.callback; -import java.net.URI; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.ws.rs.core.UriBuilder; import jakarta.ws.rs.core.UriBuilderException; +import java.net.URI; import no.nav.abakus.callback.registerdata.CallbackDto; import no.nav.vedtak.felles.integrasjon.rest.FpApplication; import no.nav.vedtak.felles.integrasjon.rest.RestClient; @@ -15,6 +11,8 @@ import no.nav.vedtak.felles.integrasjon.rest.RestConfig; import no.nav.vedtak.felles.integrasjon.rest.RestRequest; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped @RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, application = FpApplication.FPSAK) @@ -30,17 +28,18 @@ public class FpsakKlient { public FpsakKlient() { this.restClient = RestClient.client(); this.restConfig = RestConfig.forClient(this.getClass()); - this.endpointFpsak = UriBuilder.fromUri(restConfig.endpoint()).path(CALLBACK_PATH).build(); + this.endpointFpsak = + UriBuilder.fromUri(restConfig.endpoint()).path(CALLBACK_PATH).build(); } public void sendCallback(CallbackDto callbackDto) { try { LOG.info("Sender callback til fpsak."); - restClient.sendReturnOptional(RestRequest.newPOSTJson(callbackDto, endpointFpsak, restConfig), String.class); + restClient.sendReturnOptional( + RestRequest.newPOSTJson(callbackDto, endpointFpsak, restConfig), String.class); LOG.info("Callback sendt OK til fpsak."); } catch (UriBuilderException | IllegalArgumentException e) { throw new IllegalArgumentException("Ugyldig callback url ved callback etter registerinnhenting."); } } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapper.java index a88a028fe..7e493c3d0 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapper.java @@ -9,10 +9,6 @@ import java.util.List; import java.util.Objects; import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; @@ -24,26 +20,29 @@ import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.foreldrepenger.abakus.typer.OrganisasjonsNummerValidator; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class InfotrygdgrunnlagAnvistAndelMapper { private static final Logger LOG = LoggerFactory.getLogger(InfotrygdgrunnlagAnvistAndelMapper.class); - private InfotrygdgrunnlagAnvistAndelMapper() { - } + private InfotrygdgrunnlagAnvistAndelMapper() {} /** * Mapper utbetalinger fra infotrygd til anviste andeler + * *

* - * @param kategori Arbeidskategori fra infotrygd + * @param kategori Arbeidskategori fra infotrygd * @param arbeidsforhold - * @param utbetalinger Vedtak/anvisning for periode + * @param utbetalinger Vedtak/anvisning for periode * @return Liste med andeler */ - public static List oversettYtelseArbeidTilAnvisteAndeler(Arbeidskategori kategori, - List arbeidsforhold, - List utbetalinger) { + public static List oversettYtelseArbeidTilAnvisteAndeler( + Arbeidskategori kategori, + List arbeidsforhold, + List utbetalinger) { var inntektskategorier = splittArbeidskategoriTilInntektskategorier(kategori); if (inntektskategorier.isEmpty()) { LOG.info("Kunne ikke mappe inntektskategori fra infotrygdgrunnlag. Mapper ingen andeler for anvisning."); @@ -53,96 +52,102 @@ public static List oversettYtelseArbeidTilAnvisteAndeler(Arbe var andeler = new ArrayList(); // 1. Mapper først kategori som ikke er ARBEIDTAKER ved kombinasjon - andeler.addAll(finnIkkeArbeidstakerAndel(finnUtbetalingerUtenRefusjon(utbetalingerTilFordeling), arbeidsforhold, inntektskategorier)); + andeler.addAll(finnIkkeArbeidstakerAndel( + finnUtbetalingerUtenRefusjon(utbetalingerTilFordeling), arbeidsforhold, inntektskategorier)); if (inntektskategorier.contains(Inntektskategori.ARBEIDSTAKER)) { // Mapper alle med orgnr satt utbetalingerTilFordeling.stream() - .filter(Mellomregninger::erIkkeFordelt) - .filter(u -> !u.getErUtbetalingPåNødnummer()) - .map(Mellomregninger::getArbeidsgiver) - .filter(Objects::nonNull) - .map(Arbeidsgiver::getOrgnr) - .distinct() - .map(orgnr -> beregnFraAnvisning(orgnr, utbetalingerTilFordeling)) - .forEach(andeler::add); + .filter(Mellomregninger::erIkkeFordelt) + .filter(u -> !u.getErUtbetalingPåNødnummer()) + .map(Mellomregninger::getArbeidsgiver) + .filter(Objects::nonNull) + .map(Arbeidsgiver::getOrgnr) + .distinct() + .map(orgnr -> beregnFraAnvisning(orgnr, utbetalingerTilFordeling)) + .forEach(andeler::add); // Mapper andeler oppgitt på nødnummer (avsluttet arbeidsforhold) - andeler.addAll(finnYtelseRapportertPåNødnummer(finnUtbetalingerUtenRefusjon(utbetalingerTilFordeling), inntektskategorier)); + andeler.addAll(finnYtelseRapportertPåNødnummer( + finnUtbetalingerUtenRefusjon(utbetalingerTilFordeling), inntektskategorier)); // Mapper resterende - utbetalingerTilFordeling.stream().filter(Mellomregninger::erIkkeFordelt).forEach(u -> { - u.setErFordelt(true); - andeler.add(YtelseAnvistAndelBuilder.ny() - .medArbeidsgiver(u.getArbeidsgiver()) - .medUtbetalingsgrad(u.getUtbetalingsgrad().getVerdi()) - .medInntektskategori(Inntektskategori.ARBEIDSTAKER) - .medRefusjonsgrad(u.getErRefusjon() ? BigDecimal.valueOf(100) : BigDecimal.ZERO) - .medDagsats(u.getDagsats().getVerdi()) - .build()); - }); + utbetalingerTilFordeling.stream() + .filter(Mellomregninger::erIkkeFordelt) + .forEach(u -> { + u.setErFordelt(true); + andeler.add(YtelseAnvistAndelBuilder.ny() + .medArbeidsgiver(u.getArbeidsgiver()) + .medUtbetalingsgrad(u.getUtbetalingsgrad().getVerdi()) + .medInntektskategori(Inntektskategori.ARBEIDSTAKER) + .medRefusjonsgrad(u.getErRefusjon() ? BigDecimal.valueOf(100) : BigDecimal.ZERO) + .medDagsats(u.getDagsats().getVerdi()) + .build()); + }); } - var sorterteDagsatserOutput = andeler.stream() - .map(YtelseAnvistAndel::getDagsats) - .map(Beløp::getVerdi) - .map(BigDecimal::intValue) - .sorted(Comparator.naturalOrder()) - .toList(); + .map(YtelseAnvistAndel::getDagsats) + .map(Beløp::getVerdi) + .map(BigDecimal::intValue) + .sorted(Comparator.naturalOrder()) + .toList(); var sorterteDagsatserInput = utbetalinger.stream() - .map(InfotrygdYtelseAnvist::getDagsats) - .map(BigDecimal::intValue) - .sorted(Comparator.naturalOrder()) - .toList(); + .map(InfotrygdYtelseAnvist::getDagsats) + .map(BigDecimal::intValue) + .sorted(Comparator.naturalOrder()) + .toList(); if (!sorterteDagsatserOutput.equals(sorterteDagsatserInput)) { - LOG.info("Fant diff i fordeling fra infotrygd og mappet fordeling. " + "Input var " + utbetalinger + "" + "Output var " + andeler); + LOG.info("Fant diff i fordeling fra infotrygd og mappet fordeling. " + "Input var " + utbetalinger + "" + + "Output var " + andeler); } return andeler; - } private static List finnUtbetalingerUtenRefusjon(List utbetalingerTilFordeling) { return utbetalingerTilFordeling.stream().filter(m -> !m.getErRefusjon()).toList(); } - private static List finnIkkeArbeidstakerAndel(List utbetalinger, - List arbeidsforhold, - Set inntektskategorier) { - var ikkeArbeidstakerKategori = inntektskategorier.stream().filter(a -> !a.equals(Inntektskategori.ARBEIDSTAKER)).findFirst(); + private static List finnIkkeArbeidstakerAndel( + List utbetalinger, + List arbeidsforhold, + Set inntektskategorier) { + var ikkeArbeidstakerKategori = inntektskategorier.stream() + .filter(a -> !a.equals(Inntektskategori.ARBEIDSTAKER)) + .findFirst(); if (ikkeArbeidstakerKategori.isEmpty()) { return Collections.emptyList(); } var dagsatserFraGrunnlag = arbeidsforhold.stream() - .filter(a -> !OrganisasjonsNummerValidator.erGyldig(a.getOrgnr())) - .map(InfotrygdgrunnlagAnvistAndelMapper::mapTilDagsats) - .toList(); + .filter(a -> !OrganisasjonsNummerValidator.erGyldig(a.getOrgnr())) + .map(InfotrygdgrunnlagAnvistAndelMapper::mapTilDagsats) + .toList(); var utbetalingerUtenOrgnr = utbetalinger.stream() - .filter(arb -> arb.getArbeidsgiver() == null) - .filter( - u -> !inntektskategorier.contains(Inntektskategori.ARBEIDSTAKER) || utbetalinger.size() <= 1 || harKorresponderendeDagsatsIGrunnlag( - dagsatserFraGrunnlag, u)) - .filter(Mellomregninger::erIkkeFordelt) - .toList(); - + .filter(arb -> arb.getArbeidsgiver() == null) + .filter(u -> !inntektskategorier.contains(Inntektskategori.ARBEIDSTAKER) + || utbetalinger.size() <= 1 + || harKorresponderendeDagsatsIGrunnlag(dagsatserFraGrunnlag, u)) + .filter(Mellomregninger::erIkkeFordelt) + .toList(); utbetalingerUtenOrgnr.forEach(u -> u.setErFordelt(true)); return utbetalingerUtenOrgnr.stream() - .map(u -> YtelseAnvistAndelBuilder.ny() - .medUtbetalingsgrad(u.getUtbetalingsgrad().getVerdi()) - .medInntektskategori(ikkeArbeidstakerKategori.get()) - .medRefusjonsgrad(BigDecimal.ZERO) - .medDagsats(u.getDagsats().getVerdi()) - .build()) - .toList(); + .map(u -> YtelseAnvistAndelBuilder.ny() + .medUtbetalingsgrad(u.getUtbetalingsgrad().getVerdi()) + .medInntektskategori(ikkeArbeidstakerKategori.get()) + .medRefusjonsgrad(BigDecimal.ZERO) + .medDagsats(u.getDagsats().getVerdi()) + .build()) + .toList(); } - private static boolean harKorresponderendeDagsatsIGrunnlag(List dagsatserFraGrunnlag, Mellomregninger u) { + private static boolean harKorresponderendeDagsatsIGrunnlag( + List dagsatserFraGrunnlag, Mellomregninger u) { return dagsatserFraGrunnlag.stream().anyMatch(d -> harDagsatsMedDiffMindreEnnTo(u, d)); } @@ -155,37 +160,41 @@ private static BigDecimal diff(Mellomregninger u, BigDecimal d) { } /** - * Nødnummer brukes i infotrygd til å legge betalinger som skal gå direkte til bruker for et arbeidsforhold som det ikke er søkt refusjon for - *

+ * Nødnummer brukes i infotrygd til å legge betalinger som skal gå direkte til bruker for et arbeidsforhold som det + * ikke er søkt refusjon for + * *

- * Dette brukes i situasjoner der det er kombinasjon med andre statuser. * - * @param anvisninger Infotrygdandeler + *

Dette brukes i situasjoner der det er kombinasjon med andre statuser. + * + * @param anvisninger Infotrygdandeler * @param inntektskategorier Inntektskategorier på grunnlaget * @return Ytelseandel fra nødnummer dersom den finnes */ - private static List finnYtelseRapportertPåNødnummer(List anvisninger, - Set inntektskategorier) { + private static List finnYtelseRapportertPåNødnummer( + List anvisninger, Set inntektskategorier) { var anvisningerPåNødnummer = anvisninger.stream() - .filter(Mellomregninger::getErUtbetalingPåNødnummer) - .filter(Mellomregninger::erIkkeFordelt) - .toList(); + .filter(Mellomregninger::getErUtbetalingPåNødnummer) + .filter(Mellomregninger::erIkkeFordelt) + .toList(); if (anvisningerPåNødnummer.size() > 0) { var erArbeidstaker = inntektskategorier.stream().anyMatch(i -> i.equals(Inntektskategori.ARBEIDSTAKER)); - var inntektskategori = erArbeidstaker ? Inntektskategori.ARBEIDSTAKER : inntektskategorier.stream() - .filter(i -> !i.equals(Inntektskategori.ARBEIDSTAKER)) - .findFirst() - .orElse(Inntektskategori.ARBEIDSTAKER); + var inntektskategori = erArbeidstaker + ? Inntektskategori.ARBEIDSTAKER + : inntektskategorier.stream() + .filter(i -> !i.equals(Inntektskategori.ARBEIDSTAKER)) + .findFirst() + .orElse(Inntektskategori.ARBEIDSTAKER); anvisningerPåNødnummer.forEach(u -> u.setErFordelt(true)); return anvisningerPåNødnummer.stream() - .map(a -> YtelseAnvistAndelBuilder.ny() - .medInntektskategori(inntektskategori) - .medDagsats(a.getDagsats().getVerdi()) - .medRefusjonsgrad(BigDecimal.ZERO) - .medUtbetalingsgrad(a.getUtbetalingsgrad().getVerdi()) - .build()) - .toList(); + .map(a -> YtelseAnvistAndelBuilder.ny() + .medInntektskategori(inntektskategori) + .medDagsats(a.getDagsats().getVerdi()) + .medRefusjonsgrad(BigDecimal.ZERO) + .medUtbetalingsgrad(a.getUtbetalingsgrad().getVerdi()) + .build()) + .toList(); } return Collections.emptyList(); @@ -193,40 +202,41 @@ private static BigDecimal diff(Mellomregninger u, BigDecimal d) { private static YtelseAnvistAndel beregnFraAnvisning(OrgNummer orgnummer, List anvisninger) { var anvisningerForOrgnr = anvisninger.stream() - .filter(a -> a.getArbeidsgiver() != null && a.getArbeidsgiver().getOrgnr().getId().equals(orgnummer.getId())) - .toList(); + .filter(a -> a.getArbeidsgiver() != null + && a.getArbeidsgiver().getOrgnr().getId().equals(orgnummer.getId())) + .toList(); var refusjon = anvisningerForOrgnr.stream() - .filter(Mellomregninger::getErRefusjon) - .map(Mellomregninger::getDagsats) - .map(Beløp::getVerdi) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); + .filter(Mellomregninger::getErRefusjon) + .map(Mellomregninger::getDagsats) + .map(Beløp::getVerdi) + .reduce(BigDecimal::add) + .orElse(BigDecimal.ZERO); var direkteUtbetaling = anvisningerForOrgnr.stream() - .filter(a -> !a.getErRefusjon()) - .map(Mellomregninger::getDagsats) - .map(Beløp::getVerdi) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); + .filter(a -> !a.getErRefusjon()) + .map(Mellomregninger::getDagsats) + .map(Beløp::getVerdi) + .reduce(BigDecimal::add) + .orElse(BigDecimal.ZERO); var total = refusjon.add(direkteUtbetaling); var refusjonsgrad = refusjon.divide(total, 10, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); var utbetalingsgrad = finnUtbetalingsgrad(anvisningerForOrgnr); anvisningerForOrgnr.forEach(a -> a.setErFordelt(true)); return YtelseAnvistAndelBuilder.ny() - .medDagsats(total) - .medInntektskategori(Inntektskategori.ARBEIDSTAKER) - .medArbeidsgiver(Arbeidsgiver.virksomhet(orgnummer)) - .medRefusjonsgrad(refusjonsgrad) - .medUtbetalingsgrad(utbetalingsgrad) - .build(); + .medDagsats(total) + .medInntektskategori(Inntektskategori.ARBEIDSTAKER) + .medArbeidsgiver(Arbeidsgiver.virksomhet(orgnummer)) + .medRefusjonsgrad(refusjonsgrad) + .medUtbetalingsgrad(utbetalingsgrad) + .build(); } private static BigDecimal finnUtbetalingsgrad(List anvisninger) { // Antar at disse anvisningene har samme utbetalingsgrad, velger tilfeldig return anvisninger.stream() - .map(Mellomregninger::getUtbetalingsgrad) - .map(Stillingsprosent::getVerdi) - .findFirst() - .orElse(BigDecimal.valueOf(100)); + .map(Mellomregninger::getUtbetalingsgrad) + .map(Stillingsprosent::getVerdi) + .findFirst() + .orElse(BigDecimal.valueOf(100)); } /** @@ -240,17 +250,20 @@ private static Set splittArbeidskategoriTilInntektskategorier( case FISKER -> Set.of(Inntektskategori.FISKER); case ARBEIDSTAKER -> Set.of(Inntektskategori.ARBEIDSTAKER); case SELVSTENDIG_NÆRINGSDRIVENDE -> Set.of(Inntektskategori.SELVSTENDIG_NÆRINGSDRIVENDE); - case KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE -> - Set.of(Inntektskategori.ARBEIDSTAKER, Inntektskategori.SELVSTENDIG_NÆRINGSDRIVENDE); + case KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE -> Set.of( + Inntektskategori.ARBEIDSTAKER, Inntektskategori.SELVSTENDIG_NÆRINGSDRIVENDE); case SJØMANN -> Set.of(Inntektskategori.SJØMANN); case JORDBRUKER -> Set.of(Inntektskategori.JORDBRUKER); case DAGPENGER -> Set.of(Inntektskategori.DAGPENGER); case INAKTIV -> Set.of(Inntektskategori.ARBEIDSTAKER_UTEN_FERIEPENGER); - case KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER -> Set.of(Inntektskategori.ARBEIDSTAKER, Inntektskategori.JORDBRUKER); + case KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER -> Set.of( + Inntektskategori.ARBEIDSTAKER, Inntektskategori.JORDBRUKER); case KOMBINASJON_ARBEIDSTAKER_OG_FISKER -> Set.of(Inntektskategori.ARBEIDSTAKER, Inntektskategori.FISKER); case FRILANSER -> Set.of(Inntektskategori.FRILANSER); - case KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER -> Set.of(Inntektskategori.ARBEIDSTAKER, Inntektskategori.FRILANSER); - case KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER -> Set.of(Inntektskategori.ARBEIDSTAKER, Inntektskategori.DAGPENGER); + case KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER -> Set.of( + Inntektskategori.ARBEIDSTAKER, Inntektskategori.FRILANSER); + case KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER -> Set.of( + Inntektskategori.ARBEIDSTAKER, Inntektskategori.DAGPENGER); case DAGMAMMA -> Set.of(Inntektskategori.DAGMAMMA); default -> Set.of(); }; @@ -258,20 +271,34 @@ private static Set splittArbeidskategoriTilInntektskategorier( private static List mapTilMellomregninger(List utbetalinger) { return utbetalinger.stream() - .map(u -> new Mellomregninger( - OrganisasjonsNummerValidator.erGyldig(u.getOrgnr()) ? Arbeidsgiver.virksomhet(new OrgNummer(u.getOrgnr())) : null, - new Beløp(u.getDagsats()), Stillingsprosent.utbetalingsgrad(u.getUtbetalingsgrad()), u.getErRefusjon() != null && u.getErRefusjon(), false, - u.getOrgnr() != null && Arrays.stream(Nødnummer.values()).anyMatch(n -> n.getOrgnummer().equals(u.getOrgnr())))) - .toList(); + .map(u -> new Mellomregninger( + OrganisasjonsNummerValidator.erGyldig(u.getOrgnr()) + ? Arbeidsgiver.virksomhet(new OrgNummer(u.getOrgnr())) + : null, + new Beløp(u.getDagsats()), + Stillingsprosent.utbetalingsgrad(u.getUtbetalingsgrad()), + u.getErRefusjon() != null && u.getErRefusjon(), + false, + u.getOrgnr() != null + && Arrays.stream(Nødnummer.values()) + .anyMatch(n -> n.getOrgnummer().equals(u.getOrgnr())))) + .toList(); } private static BigDecimal mapTilDagsats(InfotrygdYtelseArbeid arbeid) { return switch (arbeid.getInntektperiode()) { - case FASTSATT25PAVVIK, ÅRLIG -> arbeid.getInntekt().divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); - case MÅNEDLIG -> arbeid.getInntekt().multiply(BigDecimal.valueOf(12)).divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); + case FASTSATT25PAVVIK, ÅRLIG -> arbeid.getInntekt() + .divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); + case MÅNEDLIG -> arbeid.getInntekt() + .multiply(BigDecimal.valueOf(12)) + .divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); case DAGLIG -> arbeid.getInntekt(); - case UKENTLIG -> arbeid.getInntekt().multiply(BigDecimal.valueOf(52)).divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); - case BIUKENTLIG -> arbeid.getInntekt().multiply(BigDecimal.valueOf(26)).divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); + case UKENTLIG -> arbeid.getInntekt() + .multiply(BigDecimal.valueOf(52)) + .divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); + case BIUKENTLIG -> arbeid.getInntekt() + .multiply(BigDecimal.valueOf(26)) + .divide(BigDecimal.valueOf(260), 10, RoundingMode.HALF_UP); default -> throw new IllegalArgumentException("Ugyldig InntektPeriodeType" + arbeid.getInntektperiode()); }; } @@ -284,13 +311,13 @@ public static class Mellomregninger { private final boolean erUtbetalingPåNødnummer; private boolean erFordelt; - - public Mellomregninger(Arbeidsgiver arbeidsgiver, - Beløp dagsats, - Stillingsprosent utbetalingsgrad, - boolean erRefusjon, - boolean erFordelt, - boolean erUtbetalingPåNødnummer) { + public Mellomregninger( + Arbeidsgiver arbeidsgiver, + Beløp dagsats, + Stillingsprosent utbetalingsgrad, + boolean erRefusjon, + boolean erFordelt, + boolean erUtbetalingPåNødnummer) { this.arbeidsgiver = arbeidsgiver; this.dagsats = dagsats; this.utbetalingsgrad = utbetalingsgrad; @@ -329,10 +356,9 @@ public void setErFordelt(boolean erFordelt) { @Override public String toString() { - return "Mellomregninger{" + "arbeidsgiver=" + arbeidsgiver + ", dagsats=" + dagsats + ", utbetalingsgrad=" + utbetalingsgrad - + ", erRefusjon=" + erRefusjon + ", erFordelt=" + erFordelt + ", erUtbetalingPåNødnummer=" + erUtbetalingPåNødnummer + '}'; + return "Mellomregninger{" + "arbeidsgiver=" + arbeidsgiver + ", dagsats=" + dagsats + ", utbetalingsgrad=" + + utbetalingsgrad + ", erRefusjon=" + erRefusjon + ", erFordelt=" + erFordelt + + ", erUtbetalingPåNødnummer=" + erUtbetalingPåNødnummer + '}'; } } - - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapper.java index 18993390f..0fdf743d5 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapper.java @@ -6,7 +6,6 @@ import java.util.Comparator; import java.util.List; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseAggregatBuilder; @@ -26,88 +25,107 @@ public class InfotrygdgrunnlagYtelseMapper { - private InfotrygdgrunnlagYtelseMapper() { - } + private InfotrygdgrunnlagYtelseMapper() {} - public static void oversettInfotrygdYtelseGrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, - InfotrygdYtelseGrunnlag grunnlag) { - IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); - var tidligsteAnvist = grunnlag.getUtbetaltePerioder().stream().map(InfotrygdYtelseAnvist::getUtbetaltFom).min(Comparator.naturalOrder()); - YtelseBuilder ytelseBuilder = aktørYtelseBuilder.getYtelselseBuilderForType(Fagsystem.INFOTRYGD, grunnlag.getYtelseType(), periode, tidligsteAnvist) - .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) - .medStatus(grunnlag.getYtelseStatus()); - var segmenter = grunnlag.getUtbetaltePerioder().stream().map(v -> { - var p = utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom()); - return new LocalDateSegment<>(p.getFomDato(), p.getTomDato(), List.of(v)); - }).toList(); + public static void oversettInfotrygdYtelseGrunnlagTilYtelse( + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, + InfotrygdYtelseGrunnlag grunnlag) { + IntervallEntitet periode = + utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); + var tidligsteAnvist = grunnlag.getUtbetaltePerioder().stream() + .map(InfotrygdYtelseAnvist::getUtbetaltFom) + .min(Comparator.naturalOrder()); + YtelseBuilder ytelseBuilder = aktørYtelseBuilder + .getYtelselseBuilderForType(Fagsystem.INFOTRYGD, grunnlag.getYtelseType(), periode, tidligsteAnvist) + .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) + .medStatus(grunnlag.getYtelseStatus()); + var segmenter = grunnlag.getUtbetaltePerioder().stream() + .map(v -> { + var p = utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom()); + return new LocalDateSegment<>(p.getFomDato(), p.getTomDato(), List.of(v)); + }) + .toList(); var utbetaltTidslinje = new LocalDateTimeline<>(segmenter, slåSammenAndelslisterKombinator()); utbetaltTidslinje.toSegments().forEach(segment -> { var anvistBuilder = ytelseBuilder.getAnvistBuilder(); if (skalMappeInfotrygdandeler(grunnlag)) { - InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(grunnlag.getKategori(), grunnlag.getArbeidsforhold(), - segment.getValue()).forEach(anvistBuilder::leggTilYtelseAnvistAndel); + InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + grunnlag.getKategori(), grunnlag.getArbeidsforhold(), segment.getValue()) + .forEach(anvistBuilder::leggTilYtelseAnvistAndel); } - var utbetaltPeriode = IntervallEntitet.fra(segment.getLocalDateInterval().getFomDato(), segment.getLocalDateInterval().getTomDato()); - ytelseBuilder.leggtilYtelseAnvist( - anvistBuilder.medAnvistPeriode(utbetaltPeriode).medUtbetalingsgradProsent(finnUtbetalingsgrad(segment.getValue())).build()); + var utbetaltPeriode = IntervallEntitet.fra( + segment.getLocalDateInterval().getFomDato(), + segment.getLocalDateInterval().getTomDato()); + ytelseBuilder.leggtilYtelseAnvist(anvistBuilder + .medAnvistPeriode(utbetaltPeriode) + .medUtbetalingsgradProsent(finnUtbetalingsgrad(segment.getValue())) + .build()); }); ytelseBuilder.medYtelseGrunnlag(oversettYtelseArbeid(grunnlag, ytelseBuilder.getGrunnlagBuilder())); aktørYtelseBuilder.leggTilYtelse(ytelseBuilder); } public static Ytelse oversettInfotrygdYtelseGrunnlagTilYtelse(InfotrygdYtelseGrunnlag grunnlag) { - IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); - var tidligsteAnvist = grunnlag.getUtbetaltePerioder().stream().map(InfotrygdYtelseAnvist::getUtbetaltFom).min(Comparator.naturalOrder()); + IntervallEntitet periode = + utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom()); + var tidligsteAnvist = grunnlag.getUtbetaltePerioder().stream() + .map(InfotrygdYtelseAnvist::getUtbetaltFom) + .min(Comparator.naturalOrder()); YtelseBuilder ytelseBuilder = InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder.oppdatere(Optional.empty()) - .getYtelselseBuilderForType(Fagsystem.INFOTRYGD, grunnlag.getYtelseType(), periode, tidligsteAnvist) - .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) - .medStatus(grunnlag.getYtelseStatus()); - var unikePerioder = grunnlag.getUtbetaltePerioder() - .stream() - .map(v -> utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom())) - .distinct() - .sorted() - .toList(); - unikePerioder.forEach(intervall -> { - var overlappendeUtbetalinger = grunnlag.getUtbetaltePerioder() - .stream() - .filter(v -> utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom()).overlapper(intervall)) + .getYtelselseBuilderForType(Fagsystem.INFOTRYGD, grunnlag.getYtelseType(), periode, tidligsteAnvist) + .medVedtattTidspunkt(grunnlag.getVedtattTidspunkt()) + .medStatus(grunnlag.getYtelseStatus()); + var unikePerioder = grunnlag.getUtbetaltePerioder().stream() + .map(v -> utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom())) + .distinct() + .sorted() .toList(); + unikePerioder.forEach(intervall -> { + var overlappendeUtbetalinger = grunnlag.getUtbetaltePerioder().stream() + .filter(v -> utledPeriodeNårTomMuligFørFom(v.getUtbetaltFom(), v.getUtbetaltTom()) + .overlapper(intervall)) + .toList(); var anvistBuilder = ytelseBuilder.getAnvistBuilder(); if (skalMappeInfotrygdandeler(grunnlag)) { - InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(grunnlag.getKategori(), grunnlag.getArbeidsforhold(), - overlappendeUtbetalinger).forEach(anvistBuilder::leggTilYtelseAnvistAndel); + InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + grunnlag.getKategori(), grunnlag.getArbeidsforhold(), overlappendeUtbetalinger) + .forEach(anvistBuilder::leggTilYtelseAnvistAndel); } - ytelseBuilder.leggtilYtelseAnvist( - anvistBuilder.medAnvistPeriode(intervall).medUtbetalingsgradProsent(finnUtbetalingsgrad(overlappendeUtbetalinger)).build()); + ytelseBuilder.leggtilYtelseAnvist(anvistBuilder + .medAnvistPeriode(intervall) + .medUtbetalingsgradProsent(finnUtbetalingsgrad(overlappendeUtbetalinger)) + .build()); }); ytelseBuilder.medYtelseGrunnlag(oversettYtelseArbeid(grunnlag, ytelseBuilder.getGrunnlagBuilder())); return ytelseBuilder.build(); } - /** - * For å kunne mappe utbetalinger fra infotrygd er vi avhengig av å få data som på korrekt måte kan brukes i automatisk saksbehandling. - * Etter et omfattende arbeid på dette området vinteren 2022 er det konkludert med at enkelte tilfeller må ekskluderes - * fordi datakvaliteten ikke er god nok til å kunne brukes til automatisk saksbehandling. - * Disse tilfellene er: - * - Vedtak der det mangler dagsats - * - Vedtak som er basert på beregningsgrunnlag uten arbeidskategori + * For å kunne mappe utbetalinger fra infotrygd er vi avhengig av å få data som på korrekt måte kan brukes i + * automatisk saksbehandling. Etter et omfattende arbeid på dette området vinteren 2022 er det konkludert med at + * enkelte tilfeller må ekskluderes fordi datakvaliteten ikke er god nok til å kunne brukes til automatisk + * saksbehandling. Disse tilfellene er: - Vedtak der det mangler dagsats - Vedtak som er basert på + * beregningsgrunnlag uten arbeidskategori * * @param grunnlag Beregningsgrunnlag fra infotrygd * @return Verdi som sier som vi skal mappe inn andeler fra grunnlaget */ private static boolean skalMappeInfotrygdandeler(InfotrygdYtelseGrunnlag grunnlag) { - var harDagsatsIListeMedUtbetalinger = grunnlag.getUtbetaltePerioder().stream().allMatch(p -> p.getDagsats() != null); + var harDagsatsIListeMedUtbetalinger = + grunnlag.getUtbetaltePerioder().stream().allMatch(p -> p.getDagsats() != null); return !grunnlag.getKategori().equals(Arbeidskategori.UGYLDIG) && harDagsatsIListeMedUtbetalinger; } private static BigDecimal finnUtbetalingsgrad(List anvisninger) { // Antar at disse anvisningene har samme utbetalingsgrad, velger tilfeldig - return anvisninger.stream().map(InfotrygdYtelseAnvist::getUtbetalingsgrad).findFirst().orElse(BigDecimal.valueOf(100)); + return anvisninger.stream() + .map(InfotrygdYtelseAnvist::getUtbetalingsgrad) + .findFirst() + .orElse(BigDecimal.valueOf(100)); } - private static YtelseGrunnlag oversettYtelseArbeid(InfotrygdYtelseGrunnlag grunnlag, YtelseGrunnlagBuilder grunnlagBuilder) { + private static YtelseGrunnlag oversettYtelseArbeid( + InfotrygdYtelseGrunnlag grunnlag, YtelseGrunnlagBuilder grunnlagBuilder) { grunnlagBuilder.medDekningsgradProsent(grunnlag.getDekningsgrad()); grunnlagBuilder.medGraderingProsent(grunnlag.getGradering()); grunnlagBuilder.medOpprinneligIdentdato(grunnlag.getOpprinneligIdentdato()); @@ -115,7 +133,10 @@ private static YtelseGrunnlag oversettYtelseArbeid(InfotrygdYtelseGrunnlag grunn grunnlagBuilder.tilbakestillStørrelse(); grunnlag.getArbeidsforhold().forEach(arbeid -> { final YtelseStørrelseBuilder ysBuilder = grunnlagBuilder.getStørrelseBuilder(); - ysBuilder.medBeløp(arbeid.getInntekt()).medHyppighet(arbeid.getInntektperiode()).medErRefusjon(arbeid.getRefusjon()); + ysBuilder + .medBeløp(arbeid.getInntekt()) + .medHyppighet(arbeid.getInntektperiode()) + .medErRefusjon(arbeid.getRefusjon()); if (OrganisasjonsNummerValidator.erGyldig(arbeid.getOrgnr())) { ysBuilder.medVirksomhet(new OrgNummer(arbeid.getOrgnr())); } @@ -135,8 +156,9 @@ private static YtelseGrunnlag oversettYtelseArbeid(InfotrygdYtelseGrunnlag grunn return IntervallEntitet.fraOgMedTilOgMed(fom, tom); } - - private static LocalDateSegmentCombinator, List, List> slåSammenAndelslisterKombinator() { + private static LocalDateSegmentCombinator< + List, List, List> + slåSammenAndelslisterKombinator() { return (i, lhs, rhs) -> { if (lhs == null) { return rhs; @@ -147,8 +169,6 @@ private static YtelseGrunnlag oversettYtelseArbeid(InfotrygdYtelseGrunnlag grunn result.addAll(lhs.getValue()); result.addAll(rhs.getValue()); return new LocalDateSegment<>(i, result); - }; } - } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/N\303\270dnummer.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/N\303\270dnummer.java" index 93ff5bf75..7b89d798a 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/N\303\270dnummer.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/N\303\270dnummer.java" @@ -1,10 +1,7 @@ package no.nav.foreldrepenger.abakus.registerdata.infotrygd; -/** - * Nødnummer for infotrygd. Brukt i saker med delvis refusjon. Kun til sjekk mot orgnummer. - */ +/** Nødnummer for infotrygd. Brukt i saker med delvis refusjon. Kun til sjekk mot orgnummer. */ public enum Nødnummer { - NØDNUMMER_FOR_TRYGDEETATEN("973626108"), NØDNUMMER_FOR_TRYGDEETATEN_2("973626116"), NØDNUMMER_FOR_TRYGDEETATEN_3("971278420"), diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/FinnInntektRequest.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/FinnInntektRequest.java index 761075779..b751e2809 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/FinnInntektRequest.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/FinnInntektRequest.java @@ -45,8 +45,10 @@ public boolean equals(Object obj) { return false; } FinnInntektRequest other = (FinnInntektRequest) obj; - return Objects.equals(this.fnr, other.fnr) && Objects.equals(this.aktørId, other.aktørId) && Objects.equals(this.fom, other.fom) - && Objects.equals(this.tom, other.tom); + return Objects.equals(this.fnr, other.fnr) + && Objects.equals(this.aktørId, other.aktørId) + && Objects.equals(this.fom, other.fom) + && Objects.equals(this.tom, other.tom); } @Override @@ -58,8 +60,7 @@ public static final class FinnInntektRequestBuilder { private FinnInntektRequest kladd; private boolean gyldigTilstand; - private FinnInntektRequestBuilder() { - } + private FinnInntektRequestBuilder() {} public FinnInntektRequestBuilder medFnr(String fnr) { if (kladd.aktørId != null) { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektTjeneste.java index 7c104da53..e63f2bf02 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektTjeneste.java @@ -1,16 +1,12 @@ package no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten; +import jakarta.enterprise.context.ApplicationScoped; import java.time.YearMonth; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.enterprise.context.ApplicationScoped; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.tjenester.aordningen.inntektsinformasjon.Aktoer; import no.nav.tjenester.aordningen.inntektsinformasjon.ArbeidsInntektIdent; @@ -29,16 +25,22 @@ import no.nav.vedtak.felles.integrasjon.rest.RestConfig; import no.nav.vedtak.felles.integrasjon.rest.RestRequest; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped -@RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, endpointProperty = "hentinntektlistebolk.url", endpointDefault = "https://app.adeo.no/inntektskomponenten-ws/rs/api/v1/hentinntektlistebolk", - scopesProperty = "hentinntektlistebolk.scopes", scopesDefault = "api://prod-fss.team-inntekt.inntektskomponenten/.default") +@RestClientConfig( + tokenConfig = TokenFlow.AZUREAD_CC, + endpointProperty = "hentinntektlistebolk.url", + endpointDefault = "https://app.adeo.no/inntektskomponenten-ws/rs/api/v1/hentinntektlistebolk", + scopesProperty = "hentinntektlistebolk.scopes", + scopesDefault = "api://prod-fss.team-inntekt.inntektskomponenten/.default") public class InntektTjeneste { // Dato for eldste request til inntk - det er av og til noen ES saker som spør lenger tilbake i tid private static final YearMonth INNTK_TIDLIGSTE_DATO = YearMonth.of(2015, 7); - private static final Set SKAL_PERIODISERE_INNTEKTSKILDE = Set.of(InntektskildeType.INNTEKT_SAMMENLIGNING, - InntektskildeType.INNTEKT_BEREGNING); + private static final Set SKAL_PERIODISERE_INNTEKTSKILDE = + Set.of(InntektskildeType.INNTEKT_SAMMENLIGNING, InntektskildeType.INNTEKT_BEREGNING); private static final Logger LOG = LoggerFactory.getLogger(InntektTjeneste.class); @@ -53,14 +55,18 @@ public InntektTjeneste() { public InntektTjeneste(RestClient restClient) { this.restClient = restClient; this.restConfig = RestConfig.forClient(this.getClass()); - this.kildeTilFilter = Map.of(InntektskildeType.INNTEKT_OPPTJENING, InntektsFilter.OPPTJENINGSGRUNNLAG, InntektskildeType.INNTEKT_BEREGNING, - InntektsFilter.BEREGNINGSGRUNNLAG, InntektskildeType.INNTEKT_SAMMENLIGNING, InntektsFilter.SAMMENLIGNINGSGRUNNLAG); + this.kildeTilFilter = Map.of( + InntektskildeType.INNTEKT_OPPTJENING, + InntektsFilter.OPPTJENINGSGRUNNLAG, + InntektskildeType.INNTEKT_BEREGNING, + InntektsFilter.BEREGNINGSGRUNNLAG, + InntektskildeType.INNTEKT_SAMMENLIGNING, + InntektsFilter.SAMMENLIGNINGSGRUNNLAG); } public InntektsInformasjon finnInntekt(FinnInntektRequest finnInntektRequest, InntektskildeType kilde) { HentInntektListeBolkResponse response = finnInntektRaw(finnInntektRequest, kilde); return oversettResponse(response, kilde); - } public HentInntektListeBolkResponse finnInntektRaw(FinnInntektRequest finnInntektRequest, InntektskildeType kilde) { @@ -70,8 +76,10 @@ public HentInntektListeBolkResponse finnInntektRaw(FinnInntektRequest finnInntek try { response = restClient.send(request, HentInntektListeBolkResponse.class); } catch (RuntimeException e) { - throw new IntegrasjonException("FP-824246", - "Feil ved kall til inntektstjenesten. Meld til #team_registre og #produksjonshendelser hvis dette skjer over lengre tidsperiode.", e); + throw new IntegrasjonException( + "FP-824246", + "Feil ved kall til inntektstjenesten. Meld til #team_registre og #produksjonshendelser hvis dette skjer over lengre tidsperiode.", + e); } return response; } @@ -90,8 +98,14 @@ private RestRequest lagRequest(FinnInntektRequest finnInntektRequest, Inntektski request.setAinntektsfilter(filter.getKode()); request.setFormaal(filter.getFormål().getKode()); } - request.setMaanedFom(finnInntektRequest.getFom().isAfter(INNTK_TIDLIGSTE_DATO) ? finnInntektRequest.getFom() : INNTK_TIDLIGSTE_DATO); - request.setMaanedTom(finnInntektRequest.getTom().isAfter(INNTK_TIDLIGSTE_DATO) ? finnInntektRequest.getTom() : INNTK_TIDLIGSTE_DATO); + request.setMaanedFom( + finnInntektRequest.getFom().isAfter(INNTK_TIDLIGSTE_DATO) + ? finnInntektRequest.getFom() + : INNTK_TIDLIGSTE_DATO); + request.setMaanedTom( + finnInntektRequest.getTom().isAfter(INNTK_TIDLIGSTE_DATO) + ? finnInntektRequest.getTom() + : INNTK_TIDLIGSTE_DATO); return RestRequest.newPOSTJson(request, restConfig.endpoint(), restConfig); } @@ -101,9 +115,13 @@ private InntektsFilter getFilter(InntektskildeType kilde) { } private InntektsInformasjon oversettResponse(HentInntektListeBolkResponse response, InntektskildeType kilde) { - if (response.getSikkerhetsavvikListe() != null && !response.getSikkerhetsavvikListe().isEmpty()) { - throw new IntegrasjonException("FP-535194", - String.format("Fikk følgende sikkerhetsavvik ved kall til inntektstjenesten: %s.", byggSikkerhetsavvikString(response))); + if (response.getSikkerhetsavvikListe() != null + && !response.getSikkerhetsavvikListe().isEmpty()) { + throw new IntegrasjonException( + "FP-535194", + String.format( + "Fikk følgende sikkerhetsavvik ved kall til inntektstjenesten: %s.", + byggSikkerhetsavvikString(response))); } List månedsinntekter = new ArrayList<>(); @@ -121,21 +139,25 @@ private InntektsInformasjon oversettResponse(HentInntektListeBolkResponse respon return new InntektsInformasjon(månedsinntekter, kilde); } - private void oversettInntekter(List månedsinntekter, - ArbeidsInntektMaaned arbeidsInntektMaaned, - InntektskildeType kilde) { + private void oversettInntekter( + List månedsinntekter, ArbeidsInntektMaaned arbeidsInntektMaaned, InntektskildeType kilde) { var arbeidsInntektInformasjon = arbeidsInntektMaaned.getArbeidsInntektInformasjon(); if (arbeidsInntektInformasjon != null && arbeidsInntektInformasjon.getInntektListe() != null) { for (var inntekt : arbeidsInntektInformasjon.getInntektListe()) { var brukYM = inntekt.getUtbetaltIMaaned(); var tilleggsinformasjon = inntekt.getTilleggsinformasjon(); - if (erYtelseFraOffentlig(inntekt) && erEtterbetaling(tilleggsinformasjon) && skalPeriodisereInntektsKilde(kilde)) { + if (erYtelseFraOffentlig(inntekt) + && erEtterbetaling(tilleggsinformasjon) + && skalPeriodisereInntektsKilde(kilde)) { brukYM = YearMonth.from( - ((Etterbetalingsperiode) tilleggsinformasjon.getTilleggsinformasjonDetaljer()).getEtterbetalingsperiodeFom().plusDays(1)); + ((Etterbetalingsperiode) tilleggsinformasjon.getTilleggsinformasjonDetaljer()) + .getEtterbetalingsperiodeFom() + .plusDays(1)); } - var månedsinntekt = new Månedsinntekt.Builder().medBeløp(inntekt.getBeloep()) - .medSkatteOgAvgiftsregelType(inntekt.getSkatteOgAvgiftsregel()); + var månedsinntekt = new Månedsinntekt.Builder() + .medBeløp(inntekt.getBeloep()) + .medSkatteOgAvgiftsregelType(inntekt.getSkatteOgAvgiftsregel()); if (brukYM != null) { månedsinntekt.medMåned(brukYM); @@ -152,8 +174,9 @@ private boolean skalPeriodisereInntektsKilde(InntektskildeType kilde) { } private boolean erEtterbetaling(Tilleggsinformasjon tilleggsinformasjon) { - return tilleggsinformasjon != null && TilleggsinformasjonDetaljerType.ETTERBETALINGSPERIODE.equals( - tilleggsinformasjon.getTilleggsinformasjonDetaljer().getDetaljerType()); + return tilleggsinformasjon != null + && TilleggsinformasjonDetaljerType.ETTERBETALINGSPERIODE.equals( + tilleggsinformasjon.getTilleggsinformasjonDetaljer().getDetaljerType()); } private void utledOgSettUtbetalerOgYtelse(Inntekt inntekt, Månedsinntekt.Builder månedsinntekt) { @@ -165,12 +188,16 @@ private void utledOgSettUtbetalerOgYtelse(Inntekt inntekt, Månedsinntekt.Builde månedsinntekt.medYtelse(true).medNæringsinntektKode(inntekt.getBeskrivelse()); } else if (erLønn(inntekt)) { månedsinntekt.medYtelse(false); - månedsinntekt.medArbeidsgiver(inntekt.getVirksomhet().getIdentifikator()); // OK med NPE hvis inntekt.getArbeidsgiver() er null + månedsinntekt.medArbeidsgiver( + inntekt.getVirksomhet().getIdentifikator()); // OK med NPE hvis inntekt.getArbeidsgiver() er null månedsinntekt.medArbeidsforholdRef(inntekt.getArbeidsforholdREF()); månedsinntekt.medLønnsbeskrivelseKode(inntekt.getBeskrivelse()); } else { - throw new TekniskException("FP-711674", String.format("Kunne ikke mappe svar fra Inntektskomponenten: virksomhet=%s, inntektType=%s", - inntekt.getVirksomhet().getIdentifikator(), inntekt.getInntektType())); + throw new TekniskException( + "FP-711674", + String.format( + "Kunne ikke mappe svar fra Inntektskomponenten: virksomhet=%s, inntektType=%s", + inntekt.getVirksomhet().getIdentifikator(), inntekt.getInntektType())); } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsFilter.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsFilter.java index 85d7e4b71..3386998c2 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsFilter.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsFilter.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten; public enum InntektsFilter { - OPPTJENINGSGRUNNLAG("PensjonsgivendeA-Inntekt", InntektsFormål.FORMAAL_PGI), BEREGNINGSGRUNNLAG("8-28", InntektsFormål.FORMAAL_FORELDREPENGER), SAMMENLIGNINGSGRUNNLAG("8-30", InntektsFormål.FORMAAL_FORELDREPENGER); diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsForm\303\245l.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsForm\303\245l.java" index 44f3b5550..a84ceda82 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsForm\303\245l.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsForm\303\245l.java" @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten; public enum InntektsFormål { - FORMAAL_FORELDREPENGER("Foreldrepenger"), FORMAAL_PGI("PensjonsgivendeA-inntekt"); diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsInformasjon.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsInformasjon.java index 0a094ec00..69d09066c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsInformasjon.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/InntektsInformasjon.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.Månedsinntekt.YtelseNøkkel; @@ -35,13 +34,14 @@ public InntektsInformasjon(List månedsinntekter, InntektskildeT public List getYtelsesTrygdEllerPensjonInntektSummert() { Map> ytelseNøkkel = månedsinntekter.stream() - .filter(Månedsinntekt::isYtelse) - .collect(Collectors.groupingBy(Månedsinntekt::getNøkkel)); + .filter(Månedsinntekt::isYtelse) + .collect(Collectors.groupingBy(Månedsinntekt::getNøkkel)); List summert = new ArrayList<>(); for (Map.Entry> entry : ytelseNøkkel.entrySet()) { - BigDecimal sum = entry.getValue().stream().map(Månedsinntekt::getBeløp).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum = + entry.getValue().stream().map(Månedsinntekt::getBeløp).reduce(BigDecimal.ZERO, BigDecimal::add); Månedsinntekt.Builder builder = new Månedsinntekt.Builder(); YtelseNøkkel nøkkel = entry.getKey(); builder.medBeløp(sum); @@ -58,5 +58,4 @@ public InntektsInformasjon(List månedsinntekter, InntektskildeT public InntektskildeType getKilde() { return kilde; } - } diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/M\303\245nedsinntekt.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/M\303\245nedsinntekt.java" index 98d95acc5..f95eb36c8 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/M\303\245nedsinntekt.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/M\303\245nedsinntekt.java" @@ -17,7 +17,12 @@ public class Månedsinntekt { private String lønnsbeskrivelseKode; private boolean ytelse; - private Månedsinntekt(BigDecimal beløp, YearMonth måned, String arbeidsgiver, String arbeidsforholdRef, String skatteOgAvgiftsregelType) { + private Månedsinntekt( + BigDecimal beløp, + YearMonth måned, + String arbeidsgiver, + String arbeidsforholdRef, + String skatteOgAvgiftsregelType) { this.beløp = beløp; this.måned = måned; this.arbeidsgiver = arbeidsgiver; @@ -102,7 +107,6 @@ public Builder medArbeidsgiver(String arbeidsgiver) { return this; } - public Builder medPensjonEllerTrygdKode(String kode) { this.pensjonKode = kode; return this; @@ -134,7 +138,8 @@ public Builder medSkatteOgAvgiftsregelType(String skatteOgAvgiftsregelType) { } public Månedsinntekt build() { - final Månedsinntekt månedsinntekt = new Månedsinntekt(beløp, måned, utbetaler, arbeidsforholdRef, skatteOgAvgiftsregelType); + final Månedsinntekt månedsinntekt = + new Månedsinntekt(beløp, måned, utbetaler, arbeidsforholdRef, skatteOgAvgiftsregelType); månedsinntekt.ytelse = ytelse; månedsinntekt.pensjonKode = pensjonKode; månedsinntekt.ytelseKode = ytelseKode; @@ -182,8 +187,10 @@ public boolean equals(Object o) { return false; } YtelseNøkkel nøkkel = (YtelseNøkkel) o; - return Objects.equals(måned, nøkkel.måned) && Objects.equals(ytelseKode, nøkkel.ytelseKode) && Objects.equals(pensjonKode, - nøkkel.pensjonKode) && Objects.equals(næringsinntektKode, nøkkel.næringsinntektKode); + return Objects.equals(måned, nøkkel.måned) + && Objects.equals(ytelseKode, nøkkel.ytelseKode) + && Objects.equals(pensjonKode, nøkkel.pensjonKode) + && Objects.equals(næringsinntektKode, nøkkel.næringsinntektKode); } @Override diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjeneste.java index 2a57ad179..563ee5341 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjeneste.java @@ -2,6 +2,8 @@ import static java.time.temporal.ChronoUnit.YEARS; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.math.BigDecimal; import java.time.LocalDate; import java.time.Month; @@ -13,9 +15,6 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.PgiFolketrygdenResponse; @@ -23,7 +22,6 @@ import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.SigrunRestClient; import no.nav.foreldrepenger.abakus.typer.PersonIdent; - @ApplicationScoped public class SigrunTjeneste { private static final MonthDay TIDLIGSTE_SJEKK_FJOR = MonthDay.of(Month.MAY, 1); @@ -32,7 +30,7 @@ public class SigrunTjeneste { private SigrunRestClient sigrunConsumer; SigrunTjeneste() { - //CDI + // CDI } @Inject @@ -40,21 +38,24 @@ public SigrunTjeneste(SigrunRestClient sigrunConsumer) { this.sigrunConsumer = sigrunConsumer; } - - public Map> hentPensjonsgivende(PersonIdent fnr, IntervallEntitet opplysningsperiodeSkattegrunnlag) { + public Map> hentPensjonsgivende( + PersonIdent fnr, IntervallEntitet opplysningsperiodeSkattegrunnlag) { var svarene = pensjonsgivendeInntektForFolketrygden(fnr.getIdent(), opplysningsperiodeSkattegrunnlag); return SigrunPgiFolketrygdenMapper.mapFraPgiResponseTilIntern(svarene).entrySet().stream() - .filter(e -> !e.getValue().isEmpty()) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + .filter(e -> !e.getValue().isEmpty()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } - private List pensjonsgivendeInntektForFolketrygden(String fnr, IntervallEntitet opplysningsperiode) { + private List pensjonsgivendeInntektForFolketrygden( + String fnr, IntervallEntitet opplysningsperiode) { var senesteDato = utledSeneste(opplysningsperiode); List svarene = new ArrayList<>(); var svarSenesteÅr = svarForSenesteÅr(fnr, Year.from(senesteDato)); svarSenesteÅr.ifPresent(svarene::add); utledTidligereÅr(opplysningsperiode, senesteDato, svarSenesteÅr.isPresent()) - .forEach(år -> sigrunConsumer.hentPensjonsgivendeInntektForFolketrygden(fnr, år).ifPresent(svarene::add)); + .forEach(år -> sigrunConsumer + .hentPensjonsgivendeInntektForFolketrygden(fnr, år) + .ifPresent(svarene::add)); return svarene; } @@ -68,7 +69,8 @@ private LocalDate utledSeneste(IntervallEntitet opplysningsperiode) { public Optional svarForSenesteÅr(String fnr, Year senesteÅr) { // Venter ikke svar før i fjor og ikke før etter TIDLIGSTE_SJEKK_FJOR var ifjor = Year.now().minusYears(1); - if (senesteÅr.isAfter(ifjor) || (ifjor.equals(senesteÅr) && MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR))) { + if (senesteÅr.isAfter(ifjor) + || (ifjor.equals(senesteÅr) && MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR))) { return Optional.empty(); } try { @@ -78,10 +80,12 @@ private LocalDate utledSeneste(IntervallEntitet opplysningsperiode) { } } - private List utledTidligereÅr(IntervallEntitet opplysningsperiode, LocalDate senesteDato, boolean harDataSenesteÅr) { + private List utledTidligereÅr( + IntervallEntitet opplysningsperiode, LocalDate senesteDato, boolean harDataSenesteÅr) { var senesteÅr = Year.from(senesteDato); long periodeLengde = opplysningsperiode != null ? periodeLengde(opplysningsperiode, senesteDato) : 2L; - var tidligsteÅr = opplysningsperiode != null ? Year.from(opplysningsperiode.getFomDato()) : senesteÅr.minusYears(2); + var tidligsteÅr = + opplysningsperiode != null ? Year.from(opplysningsperiode.getFomDato()) : senesteÅr.minusYears(2); var fraTidligsteÅr = harDataSenesteÅr || periodeLengde > 2L ? tidligsteÅr : tidligsteÅr.minusYears(1); if (fraTidligsteÅr.isBefore(FØRSTE_PGI)) { fraTidligsteÅr = FØRSTE_PGI; @@ -98,5 +102,4 @@ private long periodeLengde(IntervallEntitet opplysningsperiode, LocalDate senest var lengde = YEARS.between(opplysningsperiode.getFomDato(), senesteDato); return lengde >= 2 ? lengde : 2; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/PgiFolketrygdenResponse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/PgiFolketrygdenResponse.java index b117dc358..61d0e0b1e 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/PgiFolketrygdenResponse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/PgiFolketrygdenResponse.java @@ -4,13 +4,20 @@ import java.util.List; import java.util.Optional; -public record PgiFolketrygdenResponse(String norskPersonidentifikator, Integer inntektsaar, List pensjonsgivendeInntekt) { - public record Pgi(Skatteordning skatteordning, LocalDate datoForFastsetting, Long pensjonsgivendeInntektAvLoennsinntekt, - Long pensjonsgivendeInntektAvLoennsinntektBarePensjonsdel, Long pensjonsgivendeInntektAvNaeringsinntekt, - Long pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage) {} +public record PgiFolketrygdenResponse( + String norskPersonidentifikator, Integer inntektsaar, List pensjonsgivendeInntekt) { + public record Pgi( + Skatteordning skatteordning, + LocalDate datoForFastsetting, + Long pensjonsgivendeInntektAvLoennsinntekt, + Long pensjonsgivendeInntektAvLoennsinntektBarePensjonsdel, + Long pensjonsgivendeInntektAvNaeringsinntekt, + Long pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage) {} public enum Skatteordning { - FASTLAND, SVALBARD, KILDESKATT_PAA_LOENN + FASTLAND, + SVALBARD, + KILDESKATT_PAA_LOENN } public List safePensjonsgivendeInntekt() { @@ -19,6 +26,7 @@ public List safePensjonsgivendeInntekt() { @Override public String toString() { - return "PgiFolketrygdenResponse{" + "inntektsaar=" + inntektsaar + ", pensjonsgivendeInntekt=" + pensjonsgivendeInntekt + '}'; + return "PgiFolketrygdenResponse{" + "inntektsaar=" + inntektsaar + ", pensjonsgivendeInntekt=" + + pensjonsgivendeInntekt + '}'; } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/SigrunPgiFolketrygdenMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/SigrunPgiFolketrygdenMapper.java index f020da567..e25e855e4 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/SigrunPgiFolketrygdenMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/klient/SigrunPgiFolketrygdenMapper.java @@ -8,23 +8,22 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; public final class SigrunPgiFolketrygdenMapper { - public static Map> mapFraPgiResponseTilIntern(List response) { + public static Map> mapFraPgiResponseTilIntern( + List response) { Map> resultat = new LinkedHashMap<>(); - response.stream() - .collect(Collectors.groupingBy(PgiFolketrygdenResponse::inntektsaar)) - .values().stream() - .map(SigrunPgiFolketrygdenMapper::mapPgiFolketrygden) - .forEach(resultat::putAll); + response.stream().collect(Collectors.groupingBy(PgiFolketrygdenResponse::inntektsaar)).values().stream() + .map(SigrunPgiFolketrygdenMapper::mapPgiFolketrygden) + .forEach(resultat::putAll); return resultat; } - private static Map> mapPgiFolketrygden(List response) { + private static Map> mapPgiFolketrygden( + List response) { if (response == null || response.isEmpty()) { return Map.of(); } @@ -32,13 +31,24 @@ private static Map> mapPgiFo for (var responselement : response) { for (var pgi : responselement.safePensjonsgivendeInntekt()) { leggTilHvisVerdi(pgi.pensjonsgivendeInntektAvLoennsinntekt(), InntektspostType.LØNN, inntektBeløp); - leggTilHvisVerdi(pgi.pensjonsgivendeInntektAvLoennsinntektBarePensjonsdel(), InntektspostType.LØNN, inntektBeløp); - leggTilHvisVerdi(pgi.pensjonsgivendeInntektAvNaeringsinntekt(), InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE, inntektBeløp); - leggTilHvisVerdi(pgi.pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage(), InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE, inntektBeløp); + leggTilHvisVerdi( + pgi.pensjonsgivendeInntektAvLoennsinntektBarePensjonsdel(), + InntektspostType.LØNN, + inntektBeløp); + leggTilHvisVerdi( + pgi.pensjonsgivendeInntektAvNaeringsinntekt(), + InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE, + inntektBeløp); + leggTilHvisVerdi( + pgi.pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage(), + InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE, + inntektBeløp); } } var inntektBeløpMap = inntektBeløp.stream() - .collect(Collectors.groupingBy(InntektBeløp::inntektspostType, Collectors.reducing(BigDecimal.ZERO, InntektBeløp::beløp, BigDecimal::add))); + .collect(Collectors.groupingBy( + InntektBeløp::inntektspostType, + Collectors.reducing(BigDecimal.ZERO, InntektBeløp::beløp, BigDecimal::add))); var år = Year.of(response.get(0).inntektsaar()); var førsteDagIÅret = LocalDate.now().with(år).withDayOfYear(1); var sisteDagIÅret = LocalDate.now().with(år).withDayOfYear(år.length()); @@ -52,6 +62,5 @@ private static void leggTilHvisVerdi(Long verdi, InntektspostType type, List hentPensjonsgivendeInntektForFolketrygden(String fnr, Year år) { if (år.isBefore(FØRSTE_PGI)) { return Optional.empty(); } var request = RestRequest.newGET(restConfig.endpoint(), restConfig) - .header(NavHeaders.HEADER_NAV_PERSONIDENT, fnr) - .header(RETTIGHETSPAKKE, FORELDREPENGER) - .header(INNTEKTSAAR, år.toString()); + .header(NavHeaders.HEADER_NAV_PERSONIDENT, fnr) + .header(RETTIGHETSPAKKE, FORELDREPENGER) + .header(INNTEKTSAAR, år.toString()); HttpResponse response = client.sendReturnUnhandled(request); return handleResponse(response).map(r -> DefaultJsonMapper.fromJson(r, PgiFolketrygdenResponse.class)); @@ -68,8 +69,10 @@ private static Optional handleResponse(HttpResponse response) { if (status == HttpURLConnection.HTTP_UNAUTHORIZED) { LOG.info("Sigrun unauth"); } - throw new IntegrasjonException("F-016912", String.format("Server svarte med feilkode http-kode '%s' og response var '%s'", status, response.body())); + throw new IntegrasjonException( + "F-016912", + String.format( + "Server svarte med feilkode http-kode '%s' og response var '%s'", status, response.body())); } } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/InnhentRegisterdataTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/InnhentRegisterdataTjeneste.java index a03771f2e..e034f6360 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/InnhentRegisterdataTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/InnhentRegisterdataTjeneste.java @@ -2,16 +2,13 @@ import static no.nav.foreldrepenger.abakus.registerdata.callback.CallbackTask.EKSISTERENDE_GRUNNLAG_REF; +import com.fasterxml.jackson.core.JsonProcessingException; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import com.fasterxml.jackson.core.JsonProcessingException; - import no.nav.abakus.iaygrunnlag.JsonObjectMapper; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -46,17 +43,29 @@ public class InnhentRegisterdataTjeneste { } @Inject - public InnhentRegisterdataTjeneste(InntektArbeidYtelseTjeneste iayTjeneste, KoblingTjeneste koblingTjeneste, ProsessTaskTjeneste taskTjeneste) { + public InnhentRegisterdataTjeneste( + InntektArbeidYtelseTjeneste iayTjeneste, + KoblingTjeneste koblingTjeneste, + ProsessTaskTjeneste taskTjeneste) { this.iayTjeneste = iayTjeneste; this.koblingTjeneste = koblingTjeneste; this.taskTjeneste = taskTjeneste; } private static Map initMapping() { - return Map.of(RegisterdataType.ARBEIDSFORHOLD, RegisterdataElement.ARBEIDSFORHOLD, RegisterdataType.YTELSE, RegisterdataElement.YTELSE, - RegisterdataType.LIGNET_NÆRING, RegisterdataElement.LIGNET_NÆRING, RegisterdataType.INNTEKT_PENSJONSGIVENDE, - RegisterdataElement.INNTEKT_PENSJONSGIVENDE, RegisterdataType.INNTEKT_BEREGNINGSGRUNNLAG, RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, - RegisterdataType.INNTEKT_SAMMENLIGNINGSGRUNNLAG, RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG); + return Map.of( + RegisterdataType.ARBEIDSFORHOLD, + RegisterdataElement.ARBEIDSFORHOLD, + RegisterdataType.YTELSE, + RegisterdataElement.YTELSE, + RegisterdataType.LIGNET_NÆRING, + RegisterdataElement.LIGNET_NÆRING, + RegisterdataType.INNTEKT_PENSJONSGIVENDE, + RegisterdataElement.INNTEKT_PENSJONSGIVENDE, + RegisterdataType.INNTEKT_BEREGNINGSGRUNNLAG, + RegisterdataElement.INNTEKT_BEREGNINGSGRUNNLAG, + RegisterdataType.INNTEKT_SAMMENLIGNINGSGRUNNLAG, + RegisterdataElement.INNTEKT_SAMMENLIGNINGSGRUNNLAG); } public static Set hentUtInformasjonsElementer(InnhentRegisterdataRequest dto) { @@ -90,7 +99,8 @@ private Kobling oppdaterKobling(InnhentRegisterdataRequest dto) { // Oppdater kobling med perioder mapPeriodeTilIntervall(dto.getOpplysningsperiode()).ifPresent(kobling::setOpplysningsperiode); - mapPeriodeTilIntervall(dto.getOpplysningsperiodeSkattegrunnlag()).ifPresent(kobling::setOpplysningsperiodeSkattegrunnlag); + mapPeriodeTilIntervall(dto.getOpplysningsperiodeSkattegrunnlag()) + .ifPresent(kobling::setOpplysningsperiodeSkattegrunnlag); mapPeriodeTilIntervall(dto.getOpptjeningsperiode()).ifPresent(kobling::setOpptjeningsperiode); // Diff & log endringer @@ -101,7 +111,8 @@ private Kobling oppdaterKobling(InnhentRegisterdataRequest dto) { } private Optional mapPeriodeTilIntervall(Periode periode) { - return Optional.ofNullable(periode == null ? null : IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); + return Optional.ofNullable( + periode == null ? null : IntervallEntitet.fraOgMedTilOgMed(periode.getFom(), periode.getTom())); } public String triggAsyncInnhent(InnhentRegisterdataRequest dto) { @@ -121,8 +132,9 @@ public String triggAsyncInnhent(InnhentRegisterdataRequest dto) { callbackTask.setProperty(TaskConstants.KOBLING_ID, kobling.getId().toString()); Optional eksisterendeGrunnlagRef = hentSisteReferanseFor(kobling.getKoblingReferanse()); - eksisterendeGrunnlagRef.map(GrunnlagReferanse::getReferanse) - .ifPresent(ref -> callbackTask.setProperty(EKSISTERENDE_GRUNNLAG_REF, ref.toString())); + eksisterendeGrunnlagRef + .map(GrunnlagReferanse::getReferanse) + .ifPresent(ref -> callbackTask.setProperty(EKSISTERENDE_GRUNNLAG_REF, ref.toString())); taskGruppe.addNesteSekvensiell(innhentingTask); taskGruppe.addNesteSekvensiell(callbackTask); @@ -139,8 +151,8 @@ public Optional hentSisteReferanseFor(KoblingReferanse koblin if (kobling.isEmpty()) { return Optional.empty(); } - Optional grunnlag = iayTjeneste.hentGrunnlagFor(kobling.get().getKoblingReferanse()); + Optional grunnlag = + iayTjeneste.hentGrunnlagFor(kobling.get().getKoblingReferanse()); return grunnlag.map(InntektArbeidYtelseGrunnlag::getGrunnlagReferanse); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/RegisterdataRestTjeneste.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/RegisterdataRestTjeneste.java index 4a22d34a8..0573be1a3 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/RegisterdataRestTjeneste.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/RegisterdataRestTjeneste.java @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.registerdata.tjeneste; -import java.net.HttpURLConnection; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; @@ -12,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -28,6 +22,10 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import java.net.HttpURLConnection; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.FnrPersonident; import no.nav.abakus.iaygrunnlag.Periode; @@ -59,8 +57,7 @@ public class RegisterdataRestTjeneste { private KoblingTjeneste koblingTjeneste; - public RegisterdataRestTjeneste() { - } // CDI ctor + public RegisterdataRestTjeneste() {} // CDI ctor @Inject public RegisterdataRestTjeneste(InnhentRegisterdataTjeneste innhentTjeneste, KoblingTjeneste koblingTjeneste) { @@ -74,7 +71,8 @@ public RegisterdataRestTjeneste(InnhentRegisterdataTjeneste innhentTjeneste, Kob @Operation(description = "Trigger registerinnhenting for en gitt id", tags = "registerinnhenting") @BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.APPLIKASJON) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) - public Response innhentOgLagreRegisterdataAsync(@Parameter(name = "innhent") @Valid InnhentRegisterdataAbacDto dto) { + public Response innhentOgLagreRegisterdataAsync( + @Parameter(name = "innhent") @Valid InnhentRegisterdataAbacDto dto) { Response response; if (!YtelseType.abakusYtelser().contains(dto.getYtelseType())) { return Response.status(HttpURLConnection.HTTP_BAD_REQUEST).build(); @@ -92,8 +90,11 @@ public Response innhentOgLagreRegisterdataAsync(@Parameter(name = "innhent") @Va @POST @Path("/innhent/status") @Consumes(MediaType.APPLICATION_JSON) - @Operation(description = "Sjekker innhentingFerdig på async innhenting og gir siste referanseid på grunnlaget når tasken er ferdig. " - + "Hvis ikke innhentingFerdig", tags = "registerinnhenting") + @Operation( + description = + "Sjekker innhentingFerdig på async innhenting og gir siste referanseid på grunnlaget når tasken er ferdig. " + + "Hvis ikke innhentingFerdig", + tags = "registerinnhenting") @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.APPLIKASJON) @SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"}) public Response innhentAsyncStatus(@Parameter(name = "status") @Valid SjekkStatusAbacDto dto) { @@ -103,7 +104,8 @@ public Response innhentAsyncStatus(@Parameter(name = "status") @Valid SjekkStatu if (innhentTjeneste.innhentingFerdig(dto.getTaskReferanse())) { Optional grunnlagReferanse = innhentTjeneste.hentSisteReferanseFor(koblingRef); if (grunnlagReferanse.isPresent()) { - response = Response.ok(new UuidDto(grunnlagReferanse.get().toString())).build(); + response = Response.ok(new UuidDto(grunnlagReferanse.get().toString())) + .build(); } else { response = Response.noContent().build(); } @@ -116,25 +118,31 @@ public Response innhentAsyncStatus(@Parameter(name = "status") @Valid SjekkStatu private void setupLogMdcFraKoblingReferanse(KoblingReferanse koblingReferanse) { var kobling = koblingTjeneste.hentFor(koblingReferanse); kobling.filter(k -> k.getSaksnummer() != null) - .ifPresent(k -> LoggUtil.setupLogMdc(k.getYtelseType(), kobling.get().getSaksnummer().getVerdi(), - koblingReferanse.getReferanse())); // legger til saksnummer i MDC + .ifPresent(k -> LoggUtil.setupLogMdc( + k.getYtelseType(), + kobling.get().getSaksnummer().getVerdi(), + koblingReferanse.getReferanse())); // legger til saksnummer i MDC } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) - @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public static class InnhentRegisterdataAbacDto extends InnhentRegisterdataRequest implements AbacDto { @JsonCreator - public InnhentRegisterdataAbacDto(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, - @JsonProperty(value = "ytelseType", required = true) @Valid @NotNull YtelseType ytelseType, - @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "elementer", required = true) @NotNull @Valid Set elementer) { + public InnhentRegisterdataAbacDto( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, + @JsonProperty(value = "ytelseType", required = true) @Valid @NotNull YtelseType ytelseType, + @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "elementer", required = true) @NotNull @Valid Set elementer) { super(saksnummer, referanse, ytelseType, opplysningsperiode, aktør, elementer); } @@ -157,20 +165,24 @@ private void leggTil(AbacDataAttributter abac, PersonIdent person) { } } } - } - /** - * Json bean med Abac. - */ + /** Json bean med Abac. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) - @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public static class SjekkStatusAbacDto extends SjekkStatusRequest implements AbacDto { @JsonCreator - public SjekkStatusAbacDto(@JsonProperty(value = "referanse", required = true) @Valid @NotNull UuidDto referanse, - @JsonProperty(value = "taskReferanse", required = true) @NotNull @Pattern(regexp = "\\d+") String taskReferanse) { + public SjekkStatusAbacDto( + @JsonProperty(value = "referanse", required = true) @Valid @NotNull UuidDto referanse, + @JsonProperty(value = "taskReferanse", required = true) @NotNull @Pattern(regexp = "\\d+") + String taskReferanse) { super(referanse, taskReferanse); } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/dto/TaskResponsDto.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/dto/TaskResponsDto.java index 513c2e3da..fa179fc60 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/dto/TaskResponsDto.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/dto/TaskResponsDto.java @@ -1,18 +1,22 @@ package no.nav.foreldrepenger.abakus.registerdata.tjeneste.dto; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public class TaskResponsDto { @JsonProperty(value = "taskGruppe", required = true) diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/FpwsproxyKlient.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/FpwsproxyKlient.java index f165397d3..0fbf32a35 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/FpwsproxyKlient.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/FpwsproxyKlient.java @@ -1,17 +1,12 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.arena; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriBuilderException; import java.net.URI; import java.time.LocalDate; import java.util.Arrays; import java.util.List; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.ws.rs.core.UriBuilder; -import jakarta.ws.rs.core.UriBuilderException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.request.ArenaRequestDto; import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.MeldekortUtbetalingsgrunnlagSakDto; @@ -21,6 +16,8 @@ import no.nav.vedtak.felles.integrasjon.rest.RestConfig; import no.nav.vedtak.felles.integrasjon.rest.RestRequest; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped @RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, application = FpApplication.FPWSPROXY) @@ -35,7 +32,8 @@ public class FpwsproxyKlient { public FpwsproxyKlient() { this.restClient = RestClient.client(); this.restConfig = RestConfig.forClient(this.getClass()); - this.endpointHentDagpengerAAP = UriBuilder.fromUri(restConfig.endpoint()).path("/arena").build(); + this.endpointHentDagpengerAAP = + UriBuilder.fromUri(restConfig.endpoint()).path("/arena").build(); } public List hentDagpengerAAP(PersonIdent ident, LocalDate fom, LocalDate tom) { @@ -45,10 +43,11 @@ public List hentDagpengerAAP(PersonIdent ident, var request = RestRequest.newPOSTJson(body, endpointHentDagpengerAAP, restConfig); var result = restClient.send(request, MeldekortUtbetalingsgrunnlagSakDto[].class); LOG.info("Dagpenger/AAP hentet OK"); - return Arrays.stream(result).map(MedlemskortUtbetalingsgrunnlagSakMapper::tilDomeneModell).toList(); + return Arrays.stream(result) + .map(MedlemskortUtbetalingsgrunnlagSakMapper::tilDomeneModell) + .toList(); } catch (UriBuilderException | IllegalArgumentException e) { throw new IllegalArgumentException("Utviklerfeil syntax-exception for hentDagpengerAAP"); } } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapper.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapper.java index 053dd928a..3b5f35ac8 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapper.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapper.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.arena; import java.util.List; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -18,23 +17,30 @@ private MedlemskortUtbetalingsgrunnlagSakMapper() { // Statisk implementasjon } - public static MeldekortUtbetalingsgrunnlagSak tilDomeneModell(MeldekortUtbetalingsgrunnlagSakDto meldekortUtbetalingsgrunnlagSakDto) { + public static MeldekortUtbetalingsgrunnlagSak tilDomeneModell( + MeldekortUtbetalingsgrunnlagSakDto meldekortUtbetalingsgrunnlagSakDto) { return MeldekortUtbetalingsgrunnlagSak.MeldekortSakBuilder.ny() - .leggTilMeldekort(tilMeldekort(meldekortUtbetalingsgrunnlagSakDto.meldekortene())) - .medType(tilType(meldekortUtbetalingsgrunnlagSakDto.type())) - .medTilstand(tilTilstand(meldekortUtbetalingsgrunnlagSakDto.tilstand())) - .medKilde(tilKilde(meldekortUtbetalingsgrunnlagSakDto.kilde())) - .medSaksnummer( - meldekortUtbetalingsgrunnlagSakDto.saksnummer() != null ? new Saksnummer(meldekortUtbetalingsgrunnlagSakDto.saksnummer()) : null) - .medSakStatus(meldekortUtbetalingsgrunnlagSakDto.sakStatus()) - .medVedtakStatus(meldekortUtbetalingsgrunnlagSakDto.vedtakStatus()) - .medKravMottattDato(meldekortUtbetalingsgrunnlagSakDto.kravMottattDato()) - .medVedtattDato(meldekortUtbetalingsgrunnlagSakDto.vedtattDato()) - .medVedtaksPeriodeFom(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeFom()) - .medVedtaksPeriodeTom(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeTom()) - .medVedtaksDagsats( - meldekortUtbetalingsgrunnlagSakDto.vedtaksDagsats() != null ? meldekortUtbetalingsgrunnlagSakDto.vedtaksDagsats().verdi() : null) - .build(); + .leggTilMeldekort(tilMeldekort(meldekortUtbetalingsgrunnlagSakDto.meldekortene())) + .medType(tilType(meldekortUtbetalingsgrunnlagSakDto.type())) + .medTilstand(tilTilstand(meldekortUtbetalingsgrunnlagSakDto.tilstand())) + .medKilde(tilKilde(meldekortUtbetalingsgrunnlagSakDto.kilde())) + .medSaksnummer( + meldekortUtbetalingsgrunnlagSakDto.saksnummer() != null + ? new Saksnummer(meldekortUtbetalingsgrunnlagSakDto.saksnummer()) + : null) + .medSakStatus(meldekortUtbetalingsgrunnlagSakDto.sakStatus()) + .medVedtakStatus(meldekortUtbetalingsgrunnlagSakDto.vedtakStatus()) + .medKravMottattDato(meldekortUtbetalingsgrunnlagSakDto.kravMottattDato()) + .medVedtattDato(meldekortUtbetalingsgrunnlagSakDto.vedtattDato()) + .medVedtaksPeriodeFom(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeFom()) + .medVedtaksPeriodeTom(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeTom()) + .medVedtaksDagsats( + meldekortUtbetalingsgrunnlagSakDto.vedtaksDagsats() != null + ? meldekortUtbetalingsgrunnlagSakDto + .vedtaksDagsats() + .verdi() + : null) + .build(); } static Fagsystem tilKilde(FagsystemDto kilde) { @@ -91,17 +97,21 @@ static YtelseType tilType(YtelseTypeDto type) { }; } - private static List tilMeldekort(List meldekortene) { - return meldekortene.stream().map(MedlemskortUtbetalingsgrunnlagSakMapper::tilMeldekortDomene).toList(); + private static List tilMeldekort( + List meldekortene) { + return meldekortene.stream() + .map(MedlemskortUtbetalingsgrunnlagSakMapper::tilMeldekortDomene) + .toList(); } - private static MeldekortUtbetalingsgrunnlagMeldekort tilMeldekortDomene(MeldekortUtbetalingsgrunnlagMeldekortDto meldekortUtbetalingsgrunnlagMeldekortDto) { + private static MeldekortUtbetalingsgrunnlagMeldekort tilMeldekortDomene( + MeldekortUtbetalingsgrunnlagMeldekortDto meldekortUtbetalingsgrunnlagMeldekortDto) { return MeldekortUtbetalingsgrunnlagMeldekort.MeldekortMeldekortBuilder.ny() - .medMeldekortFom(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortFom()) - .medMeldekortTom(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortTom()) - .medDagsats(meldekortUtbetalingsgrunnlagMeldekortDto.dagsats()) - .medBeløp(meldekortUtbetalingsgrunnlagMeldekortDto.beløp()) - .medUtbetalingsgrad(meldekortUtbetalingsgrunnlagMeldekortDto.utbetalingsgrad()) - .build(); + .medMeldekortFom(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortFom()) + .medMeldekortTom(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortTom()) + .medDagsats(meldekortUtbetalingsgrunnlagMeldekortDto.dagsats()) + .medBeløp(meldekortUtbetalingsgrunnlagMeldekortDto.beløp()) + .medUtbetalingsgrad(meldekortUtbetalingsgrunnlagMeldekortDto.utbetalingsgrad()) + .build(); } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagMeldekort.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagMeldekort.java index 09d8d2637..24d0c4e98 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagMeldekort.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagMeldekort.java @@ -12,8 +12,7 @@ public class MeldekortUtbetalingsgrunnlagMeldekort { private BigDecimal beløp; private BigDecimal utbetalingsgrad; - private MeldekortUtbetalingsgrunnlagMeldekort() { - } + private MeldekortUtbetalingsgrunnlagMeldekort() {} public LocalDate getMeldekortFom() { return meldekortFom; @@ -44,8 +43,11 @@ public boolean equals(Object o) { return false; } MeldekortUtbetalingsgrunnlagMeldekort that = (MeldekortUtbetalingsgrunnlagMeldekort) o; - return Objects.equals(meldekortFom, that.meldekortFom) && Objects.equals(meldekortTom, that.meldekortTom) && Objects.equals(dagsats, - that.dagsats) && Objects.equals(beløp, that.beløp) && Objects.equals(utbetalingsgrad, that.utbetalingsgrad); + return Objects.equals(meldekortFom, that.meldekortFom) + && Objects.equals(meldekortTom, that.meldekortTom) + && Objects.equals(dagsats, that.dagsats) + && Objects.equals(beløp, that.beløp) + && Objects.equals(utbetalingsgrad, that.utbetalingsgrad); } @Override @@ -55,8 +57,9 @@ public int hashCode() { @Override public String toString() { - return "MeldekortUtbetalingsgrunnlagMeldekort{" + "meldekortFom=" + meldekortFom + ", meldekortTom=" + meldekortTom + ", dagsats=" + dagsats - + ", beløp=" + beløp + ", utbetalingsgrad=" + utbetalingsgrad + '}'; + return "MeldekortUtbetalingsgrunnlagMeldekort{" + "meldekortFom=" + meldekortFom + ", meldekortTom=" + + meldekortTom + ", dagsats=" + dagsats + ", beløp=" + beløp + ", utbetalingsgrad=" + utbetalingsgrad + + '}'; } public static class MeldekortMeldekortBuilder { @@ -98,6 +101,5 @@ public MeldekortMeldekortBuilder medUtbetalingsgrad(BigDecimal utbetalingsgrad) public MeldekortUtbetalingsgrunnlagMeldekort build() { return this.meldekort; } - } } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSak.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSak.java index 2c100ceac..cb652c88e 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSak.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSak.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -27,8 +26,7 @@ public class MeldekortUtbetalingsgrunnlagSak { private LocalDate vedtaksPeriodeTom; private Beløp vedtaksDagsats; - private MeldekortUtbetalingsgrunnlagSak() { - } + private MeldekortUtbetalingsgrunnlagSak() {} public YtelseType getYtelseType() { return type; @@ -87,14 +85,22 @@ public boolean equals(Object o) { return false; } MeldekortUtbetalingsgrunnlagSak that = (MeldekortUtbetalingsgrunnlagSak) o; - return erLikeMeldekort(meldekortene, that.meldekortene) && type == that.type && tilstand == that.tilstand && kilde == that.kilde - && Objects.equals(saksnummer, that.saksnummer) && Objects.equals(sakStatus, that.sakStatus) && Objects.equals(vedtakStatus, - that.vedtakStatus) && Objects.equals(kravMottattDato, that.kravMottattDato) && Objects.equals(vedtattDato, that.vedtattDato) - && Objects.equals(vedtaksPeriodeFom, that.vedtaksPeriodeFom) && Objects.equals(vedtaksPeriodeTom, that.vedtaksPeriodeTom) - && Objects.equals(vedtaksDagsats, that.vedtaksDagsats); - } - - private boolean erLikeMeldekort(List l1, List l2) { + return erLikeMeldekort(meldekortene, that.meldekortene) + && type == that.type + && tilstand == that.tilstand + && kilde == that.kilde + && Objects.equals(saksnummer, that.saksnummer) + && Objects.equals(sakStatus, that.sakStatus) + && Objects.equals(vedtakStatus, that.vedtakStatus) + && Objects.equals(kravMottattDato, that.kravMottattDato) + && Objects.equals(vedtattDato, that.vedtattDato) + && Objects.equals(vedtaksPeriodeFom, that.vedtaksPeriodeFom) + && Objects.equals(vedtaksPeriodeTom, that.vedtaksPeriodeTom) + && Objects.equals(vedtaksDagsats, that.vedtaksDagsats); + } + + private boolean erLikeMeldekort( + List l1, List l2) { if (l1 == null && l2 == null) { return true; } @@ -106,16 +112,30 @@ private boolean erLikeMeldekort(List l1, @Override public int hashCode() { - return Objects.hash(meldekortene, type, tilstand, kilde, saksnummer, sakStatus, vedtakStatus, kravMottattDato, vedtattDato, vedtaksPeriodeFom, - vedtaksPeriodeTom, vedtaksDagsats); + return Objects.hash( + meldekortene, + type, + tilstand, + kilde, + saksnummer, + sakStatus, + vedtakStatus, + kravMottattDato, + vedtattDato, + vedtaksPeriodeFom, + vedtaksPeriodeTom, + vedtaksDagsats); } @Override public String toString() { - return "MeldekortUtbetalingsgrunnlagSak{" + "meldekortene=" + meldekortene + ", type=" + type + ", tilstand=" + tilstand + ", kilde=" + kilde - + ", saksnummer=" + saksnummer + ", sakStatus='" + sakStatus + '\'' + ", vedtakStatus='" + vedtakStatus + '\'' + ", kravMottattDato=" - + kravMottattDato + ", vedtattDato=" + vedtattDato + ", vedtaksPeriodeFom=" + vedtaksPeriodeFom + ", vedtaksPeriodeTom=" - + vedtaksPeriodeTom + ", vedtaksDagsats=" + vedtaksDagsats + '}'; + return "MeldekortUtbetalingsgrunnlagSak{" + "meldekortene=" + meldekortene + ", type=" + type + ", tilstand=" + + tilstand + ", kilde=" + kilde + + ", saksnummer=" + saksnummer + ", sakStatus='" + sakStatus + '\'' + ", vedtakStatus='" + vedtakStatus + + '\'' + ", kravMottattDato=" + + kravMottattDato + ", vedtattDato=" + vedtattDato + ", vedtaksPeriodeFom=" + vedtaksPeriodeFom + + ", vedtaksPeriodeTom=" + + vedtaksPeriodeTom + ", vedtaksDagsats=" + vedtaksDagsats + '}'; } public static class MeldekortSakBuilder { @@ -195,10 +215,8 @@ public MeldekortSakBuilder leggTilMeldekort(List STØNADSKAT1_TIL_YTELSETYPE = Map.ofEntries( - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.UKJENT, YtelseType.UDEFINERT), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.FA, YtelseType.FORELDREPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.SP, YtelseType.SYKEPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.BS, YtelseType.OMSORGSPENGER)); - - private static final Map STØNADSKAT2_TIL_YTELSETYPE = Map.ofEntries( - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.UKJENT, YtelseType.UDEFINERT), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.AP, YtelseType.FORELDREPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FP, YtelseType.FORELDREPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FU, YtelseType.FORELDREPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FØ, YtelseType.FORELDREPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.SV, YtelseType.SVANGERSKAPSPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.SP, YtelseType.SYKEPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.OM, YtelseType.OMSORGSPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.OP, YtelseType.OPPLÆRINGSPENGER), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PP, YtelseType.PLEIEPENGER_NÆRSTÅENDE), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PB, YtelseType.PLEIEPENGER_SYKT_BARN), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PI, YtelseType.PLEIEPENGER_SYKT_BARN), - Map.entry(no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PN, YtelseType.PLEIEPENGER_SYKT_BARN)); - - private static final List SPOKELSE_TIMEOUTS = List.of(Duration.ofMillis(100), Duration.ofMillis(250), Duration.ofMillis(500), - Duration.ofMillis(2500), Duration.ofMillis(12), Duration.ofSeconds(60)); + private static final Map + STØNADSKAT1_TIL_YTELSETYPE = Map.ofEntries( + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.UKJENT, + YtelseType.UDEFINERT), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.FA, + YtelseType.FORELDREPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.SP, + YtelseType.SYKEPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.TemaKode.BS, + YtelseType.OMSORGSPENGER)); + + private static final Map< + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode, YtelseType> + STØNADSKAT2_TIL_YTELSETYPE = Map.ofEntries( + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.UKJENT, + YtelseType.UDEFINERT), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.AP, + YtelseType.FORELDREPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FP, + YtelseType.FORELDREPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FU, + YtelseType.FORELDREPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.FØ, + YtelseType.FORELDREPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.SV, + YtelseType.SVANGERSKAPSPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.SP, + YtelseType.SYKEPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.OM, + YtelseType.OMSORGSPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.OP, + YtelseType.OPPLÆRINGSPENGER), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PP, + YtelseType.PLEIEPENGER_NÆRSTÅENDE), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PB, + YtelseType.PLEIEPENGER_SYKT_BARN), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PI, + YtelseType.PLEIEPENGER_SYKT_BARN), + Map.entry( + no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.BehandlingstemaKode.PN, + YtelseType.PLEIEPENGER_SYKT_BARN)); + + private static final List SPOKELSE_TIMEOUTS = List.of( + Duration.ofMillis(100), + Duration.ofMillis(250), + Duration.ofMillis(500), + Duration.ofMillis(2500), + Duration.ofMillis(12), + Duration.ofSeconds(60)); private InfotrygdGrunnlagAggregator infotrygdGrunnlag; private Spøkelse spøkelse; @@ -84,30 +124,39 @@ public InnhentingInfotrygdTjeneste(InfotrygdGrunnlagAggregator infotrygdGrunnlag public List getInfotrygdYtelser(PersonIdent ident, IntervallEntitet periode) { LocalDate innhentFom = periode.getFomDato(); - List rest = infotrygdGrunnlag.hentAggregertGrunnlag(ident.getIdent(), innhentFom, periode.getTomDato()); + List rest = + infotrygdGrunnlag.hentAggregertGrunnlag(ident.getIdent(), innhentFom, periode.getTomDato()); return mapTilInfotrygdYtelseGrunnlag(rest, innhentFom); } public List getInfotrygdYtelserFailSoft(PersonIdent ident, IntervallEntitet periode) { LocalDate innhentFom = periode.getFomDato(); - List rest = infotrygdGrunnlag.hentAggregertGrunnlagFailSoft(ident.getIdent(), innhentFom, periode.getTomDato()); + List rest = + infotrygdGrunnlag.hentAggregertGrunnlagFailSoft(ident.getIdent(), innhentFom, periode.getTomDato()); return mapTilInfotrygdYtelseGrunnlag(rest, innhentFom); } - public static List mapTilInfotrygdYtelseGrunnlag(List rest, LocalDate innhentFom) { + public static List mapTilInfotrygdYtelseGrunnlag( + List rest, LocalDate innhentFom) { var mappedGrunnlag = rest.stream() - .filter(g -> !YtelseType.UDEFINERT.equals(TemaReverse.reverseMap(g.tema().kode().name(), LOG))) - .map(g -> restTilInfotrygdYtelseGrunnlag(g, innhentFom)) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + .filter(g -> !YtelseType.UDEFINERT.equals( + TemaReverse.reverseMap(g.tema().kode().name(), LOG))) + .map(g -> restTilInfotrygdYtelseGrunnlag(g, innhentFom)) + .filter(Objects::nonNull) + .collect(Collectors.toList()); return mappedGrunnlag; } private static InfotrygdYtelseGrunnlag restTilInfotrygdYtelseGrunnlag(Grunnlag grunnlag, LocalDate innhentFom) { - if (grunnlag.iverksatt() == null || grunnlag.identdato() == null || !grunnlag.iverksatt().equals(grunnlag.identdato())) { - LOG.info("Infotrygd ny mapper avvik iverksatt {} vs identdato {}", grunnlag.iverksatt(), grunnlag.identdato()); + if (grunnlag.iverksatt() == null + || grunnlag.identdato() == null + || !grunnlag.iverksatt().equals(grunnlag.identdato())) { + LOG.info( + "Infotrygd ny mapper avvik iverksatt {} vs identdato {}", + grunnlag.iverksatt(), + grunnlag.identdato()); } LocalDate brukIdentdato = grunnlag.identdato() != null ? grunnlag.identdato() : grunnlag.iverksatt(); if (brukIdentdato == null) { @@ -115,43 +164,54 @@ private static InfotrygdYtelseGrunnlag restTilInfotrygdYtelseGrunnlag(Grunnlag g } Periode fraSaksdata = utledPeriode(grunnlag.iverksatt(), grunnlag.opphørFom(), grunnlag.registrert()); if (grunnlag.opphørFom() != null) { - LOG.info("Infotrygdgrunnlag: OpphørFom: {}, Iverksatt: {}, Registrert: {}, Periode: {}", grunnlag.opphørFom(), grunnlag.iverksatt(), - grunnlag.registrert(), grunnlag.periode() == null ? "IKKE SATT" : grunnlag.periode()); - + LOG.info( + "Infotrygdgrunnlag: OpphørFom: {}, Iverksatt: {}, Registrert: {}, Periode: {}", + grunnlag.opphørFom(), + grunnlag.iverksatt(), + grunnlag.registrert(), + grunnlag.periode() == null ? "IKKE SATT" : grunnlag.periode()); } Periode brukPeriode = grunnlag.periode() != null ? grunnlag.periode() : fraSaksdata; - Integer dekningsgrad = grunnlag.dekningsgrad() != null ? grunnlag.dekningsgrad().prosent() : null; - Arbeidskategori arbeidskategori = - grunnlag.kategori() == null ? Arbeidskategori.UGYLDIG : ArbeidskategoriReverse.reverseMap(grunnlag.kategori().kode().getKode(), LOG); + Integer dekningsgrad = + grunnlag.dekningsgrad() != null ? grunnlag.dekningsgrad().prosent() : null; + Arbeidskategori arbeidskategori = grunnlag.kategori() == null + ? Arbeidskategori.UGYLDIG + : ArbeidskategoriReverse.reverseMap(grunnlag.kategori().kode().getKode(), LOG); YtelseStatus brukStatus = mapYtelseStatus(grunnlag); // Ignorer gamle vedtak - if (brukPeriode.tom().isBefore(innhentFom) && grunnlag.vedtak() - .stream() - .map(Vedtak::periode) - .map(Periode::tom) - .noneMatch(innhentFom::isBefore)) { + if (brukPeriode.tom().isBefore(innhentFom) + && grunnlag.vedtak().stream() + .map(Vedtak::periode) + .map(Periode::tom) + .noneMatch(innhentFom::isBefore)) { return null; } var grunnlagBuilder = InfotrygdYtelseGrunnlag.getBuilder() - .medYtelseType(bestemYtelseType(grunnlag)) - .medYtelseStatus(brukStatus) - .medVedtattTidspunkt(brukIdentdato.atStartOfDay()) - .medVedtaksPeriodeFom(brukPeriode.fom()) - .medVedtaksPeriodeTom(brukPeriode.tom()) - .medArbeidskategori(arbeidskategori) - .medDekningsgrad(dekningsgrad) - .medGradering(grunnlag.gradering()) - .medFødselsdatoBarn(grunnlag.fødselsdatoBarn()) - .medOpprinneligIdentdato(grunnlag.opprinneligIdentdato()); - - grunnlag.arbeidsforhold().stream().map(InnhentingInfotrygdTjeneste::arbeidsforholdTilInfotrygdYtelseArbeid).forEach(grunnlagBuilder::leggTilArbeidsforhold); - - grunnlag.vedtak() - .stream() - .map(v -> new InfotrygdYtelseAnvist(v.periode().fom(), v.periode().tom(), new BigDecimal(v.utbetalingsgrad()), v.arbeidsgiverOrgnr(), - v.erRefusjon(), v.dagsats() != null ? BigDecimal.valueOf(v.dagsats()) : null)) - .forEach(grunnlagBuilder::leggTillAnvistPerioder); + .medYtelseType(bestemYtelseType(grunnlag)) + .medYtelseStatus(brukStatus) + .medVedtattTidspunkt(brukIdentdato.atStartOfDay()) + .medVedtaksPeriodeFom(brukPeriode.fom()) + .medVedtaksPeriodeTom(brukPeriode.tom()) + .medArbeidskategori(arbeidskategori) + .medDekningsgrad(dekningsgrad) + .medGradering(grunnlag.gradering()) + .medFødselsdatoBarn(grunnlag.fødselsdatoBarn()) + .medOpprinneligIdentdato(grunnlag.opprinneligIdentdato()); + + grunnlag.arbeidsforhold().stream() + .map(InnhentingInfotrygdTjeneste::arbeidsforholdTilInfotrygdYtelseArbeid) + .forEach(grunnlagBuilder::leggTilArbeidsforhold); + + grunnlag.vedtak().stream() + .map(v -> new InfotrygdYtelseAnvist( + v.periode().fom(), + v.periode().tom(), + new BigDecimal(v.utbetalingsgrad()), + v.arbeidsgiverOrgnr(), + v.erRefusjon(), + v.dagsats() != null ? BigDecimal.valueOf(v.dagsats()) : null)) + .forEach(grunnlagBuilder::leggTillAnvistPerioder); return grunnlagBuilder.build(); } @@ -170,12 +230,19 @@ private static YtelseStatus mapYtelseStatus(Grunnlag grunnlag) { } private static InfotrygdYtelseArbeid arbeidsforholdTilInfotrygdYtelseArbeid(Arbeidsforhold arbeidsforhold) { - InntektPeriodeType inntektPeriode = - arbeidsforhold.inntektsperiode() == null ? InntektPeriodeType.UDEFINERT : InntektPeriodeReverse.reverseMap( - arbeidsforhold.inntektsperiode().kode().name(), LOG); + InntektPeriodeType inntektPeriode = arbeidsforhold.inntektsperiode() == null + ? InntektPeriodeType.UDEFINERT + : InntektPeriodeReverse.reverseMap( + arbeidsforhold.inntektsperiode().kode().name(), LOG); BigDecimal inntekt = arbeidsforhold.inntekt() != null ? new BigDecimal(arbeidsforhold.inntekt()) : null; - return new InfotrygdYtelseArbeid(Optional.ofNullable(arbeidsforhold.orgnr()).map(Orgnummer::orgnr).orElse(null), inntekt, inntektPeriode, arbeidsforhold.refusjon(), - arbeidsforhold.refusjonTom()); + return new InfotrygdYtelseArbeid( + Optional.ofNullable(arbeidsforhold.orgnr()) + .map(Orgnummer::orgnr) + .orElse(null), + inntekt, + inntektPeriode, + arbeidsforhold.refusjon(), + arbeidsforhold.refusjonTom()); } private static Periode utledPeriode(LocalDate iverksatt, LocalDate opphoerFomDato, LocalDate registrert) { @@ -203,15 +270,17 @@ private static LocalDate localDateMinus1Virkedag(LocalDate opphoerFomDato) { } private static YtelseType bestemYtelseType(Grunnlag grunnlag) { - YtelseType kategori2 = - grunnlag.behandlingstema() == null ? YtelseType.UDEFINERT : STØNADSKAT2_TIL_YTELSETYPE.getOrDefault(grunnlag.behandlingstema().kode(), - YtelseType.UDEFINERT); + YtelseType kategori2 = grunnlag.behandlingstema() == null + ? YtelseType.UDEFINERT + : STØNADSKAT2_TIL_YTELSETYPE.getOrDefault( + grunnlag.behandlingstema().kode(), YtelseType.UDEFINERT); if (!YtelseType.UDEFINERT.equals(kategori2)) { return kategori2; } LOG.info("Infotrygd ukjent stønadskategori 2"); - YtelseType kategori1 = - grunnlag.tema() == null ? YtelseType.UDEFINERT : STØNADSKAT1_TIL_YTELSETYPE.getOrDefault(grunnlag.tema().kode(), YtelseType.UDEFINERT); + YtelseType kategori1 = grunnlag.tema() == null + ? YtelseType.UDEFINERT + : STØNADSKAT1_TIL_YTELSETYPE.getOrDefault(grunnlag.tema().kode(), YtelseType.UDEFINERT); if (!YtelseType.UDEFINERT.equals(kategori1)) { return kategori1; } @@ -227,7 +296,11 @@ private static YtelseType bestemYtelseType(Grunnlag grunnlag) { var før = System.nanoTime(); var vedtak = spøkelse.hentGrunnlag(ident.getIdent(), fom, timeout); var etter = System.nanoTime(); - LOG.info("Spøkelse antall {} timeout {} svartid {}", vedtak.size(), timeout, (etter - før) / 1000000); // Log millis + LOG.info( + "Spøkelse antall {} timeout {} svartid {}", + vedtak.size(), + timeout, + (etter - før) / 1000000); // Log millis return mapSpøkelseTilInfotrygdYtelseGrunnlag(vedtak); } catch (Exception e) { if (!it.hasNext()) { @@ -239,20 +312,21 @@ private static YtelseType bestemYtelseType(Grunnlag grunnlag) { } private List mapSpøkelseTilInfotrygdYtelseGrunnlag(List rest) { - return rest.stream().map(this::spokelseTilInfotrygdYtelseGrunnlag).filter(Objects::nonNull).collect(Collectors.toList()); + return rest.stream() + .map(this::spokelseTilInfotrygdYtelseGrunnlag) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } private InfotrygdYtelseGrunnlag spokelseTilInfotrygdYtelseGrunnlag(SykepengeVedtak grunnlag) { - LocalDate min = grunnlag.utbetalingerNonNull() - .stream() - .map(SykepengeVedtak.SykepengeUtbetaling::fom) - .min(Comparator.naturalOrder()) - .orElse(null); - LocalDate max = grunnlag.utbetalingerNonNull() - .stream() - .map(SykepengeVedtak.SykepengeUtbetaling::tom) - .max(Comparator.naturalOrder()) - .orElse(null); + LocalDate min = grunnlag.utbetalingerNonNull().stream() + .map(SykepengeVedtak.SykepengeUtbetaling::fom) + .min(Comparator.naturalOrder()) + .orElse(null); + LocalDate max = grunnlag.utbetalingerNonNull().stream() + .map(SykepengeVedtak.SykepengeUtbetaling::tom) + .max(Comparator.naturalOrder()) + .orElse(null); if (min == null) { return null; } @@ -260,19 +334,18 @@ private InfotrygdYtelseGrunnlag spokelseTilInfotrygdYtelseGrunnlag(SykepengeVedt Periode brukPeriode = new Periode(min, max == null ? min : max); var grunnlagBuilder = InfotrygdYtelseGrunnlag.getBuilder() - .medYtelseType(YtelseType.SYKEPENGER) - .medYtelseStatus(YtelseStatus.AVSLUTTET) - .medVedtaksreferanse(grunnlag.vedtaksreferanse().trim()) - .medVedtattTidspunkt(grunnlag.vedtattTidspunkt() != null ? grunnlag.vedtattTidspunkt() : LocalDateTime.now()) - .medVedtaksPeriodeFom(brukPeriode.fom()) - .medVedtaksPeriodeTom(brukPeriode.tom()); - - grunnlag.utbetalingerNonNull() - .stream() - .map(v -> new InfotrygdYtelseAnvist(v.fom(), v.tom(), v.gradScale2(), null, null, null)) - .forEach(grunnlagBuilder::leggTillAnvistPerioder); + .medYtelseType(YtelseType.SYKEPENGER) + .medYtelseStatus(YtelseStatus.AVSLUTTET) + .medVedtaksreferanse(grunnlag.vedtaksreferanse().trim()) + .medVedtattTidspunkt( + grunnlag.vedtattTidspunkt() != null ? grunnlag.vedtattTidspunkt() : LocalDateTime.now()) + .medVedtaksPeriodeFom(brukPeriode.fom()) + .medVedtaksPeriodeTom(brukPeriode.tom()); + + grunnlag.utbetalingerNonNull().stream() + .map(v -> new InfotrygdYtelseAnvist(v.fom(), v.tom(), v.gradScale2(), null, null, null)) + .forEach(grunnlagBuilder::leggTillAnvistPerioder); return grunnlagBuilder.build(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseAnvist.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseAnvist.java index ccb0f4cf3..69ee1649f 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseAnvist.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseAnvist.java @@ -13,12 +13,13 @@ public class InfotrygdYtelseAnvist { private Boolean erRefusjon; private BigDecimal dagsats; - public InfotrygdYtelseAnvist(LocalDate utbetaltFom, - LocalDate utbetaltTom, - BigDecimal utbetalingsgrad, - String orgnr, - Boolean erRefusjon, - BigDecimal dagsats) { + public InfotrygdYtelseAnvist( + LocalDate utbetaltFom, + LocalDate utbetaltTom, + BigDecimal utbetalingsgrad, + String orgnr, + Boolean erRefusjon, + BigDecimal dagsats) { this.utbetaltFom = utbetaltFom; this.utbetaltTom = utbetaltTom; this.utbetalingsgrad = utbetalingsgrad; @@ -27,7 +28,6 @@ public InfotrygdYtelseAnvist(LocalDate utbetaltFom, this.dagsats = dagsats; } - public LocalDate getUtbetaltFom() { return utbetaltFom; } @@ -61,9 +61,12 @@ public boolean equals(Object o) { return false; } InfotrygdYtelseAnvist that = (InfotrygdYtelseAnvist) o; - return Objects.equals(utbetaltFom, that.utbetaltFom) && Objects.equals(utbetaltTom, that.utbetaltTom) && Objects.equals(utbetalingsgrad, - that.utbetalingsgrad) && Objects.equals(orgnr, that.orgnr) && Objects.equals(erRefusjon, that.erRefusjon) && Objects.equals(dagsats, - that.dagsats); + return Objects.equals(utbetaltFom, that.utbetaltFom) + && Objects.equals(utbetaltTom, that.utbetaltTom) + && Objects.equals(utbetalingsgrad, that.utbetalingsgrad) + && Objects.equals(orgnr, that.orgnr) + && Objects.equals(erRefusjon, that.erRefusjon) + && Objects.equals(dagsats, that.dagsats); } @Override @@ -73,10 +76,9 @@ public int hashCode() { @Override public String toString() { - return "InfotrygdYtelseAnvist{" + "utbetaltFom=" + utbetaltFom + ", utbetaltTom=" + utbetaltTom + ", utbetalingsgrad=" + utbetalingsgrad - + ", orgnr=" + getOrgnrString() + ", erRefusjon=" + erRefusjon + ", dagsats=" + dagsats + - - '}'; + return "InfotrygdYtelseAnvist{" + "utbetaltFom=" + utbetaltFom + ", utbetaltTom=" + utbetaltTom + + ", utbetalingsgrad=" + utbetalingsgrad + + ", orgnr=" + getOrgnrString() + ", erRefusjon=" + erRefusjon + ", dagsats=" + dagsats + '}'; } private String getOrgnrString() { @@ -89,5 +91,4 @@ private String getOrgnrString() { } return "*".repeat(length - 4) + orgnr.substring(length - 4); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseArbeid.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseArbeid.java index 948049dcb..be0868650 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseArbeid.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseArbeid.java @@ -4,7 +4,6 @@ import java.time.LocalDate; import java.util.Objects; import java.util.Optional; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; public class InfotrygdYtelseArbeid { @@ -15,7 +14,12 @@ public class InfotrygdYtelseArbeid { private Boolean refusjon; private LocalDate refusjonTom; - public InfotrygdYtelseArbeid(String orgnr, BigDecimal inntekt, InntektPeriodeType inntektperiode, Boolean refusjon, LocalDate refusjonTom) { + public InfotrygdYtelseArbeid( + String orgnr, + BigDecimal inntekt, + InntektPeriodeType inntektperiode, + Boolean refusjon, + LocalDate refusjonTom) { this.orgnr = orgnr; this.inntekt = inntekt; this.inntektperiode = inntektperiode; @@ -59,9 +63,11 @@ public boolean equals(Object o) { return false; } InfotrygdYtelseArbeid that = (InfotrygdYtelseArbeid) o; - return Objects.equals(orgnr, that.orgnr) && Objects.equals(inntekt, that.inntekt) && Objects.equals(inntektperiode, that.inntektperiode) - && Objects.equals(refusjon, that.refusjon) && Objects.equals(refusjonTom, that.refusjonTom); - + return Objects.equals(orgnr, that.orgnr) + && Objects.equals(inntekt, that.inntekt) + && Objects.equals(inntektperiode, that.inntektperiode) + && Objects.equals(refusjon, that.refusjon) + && Objects.equals(refusjonTom, that.refusjonTom); } @Override @@ -71,8 +77,8 @@ public int hashCode() { @Override public String toString() { - return "InfotrygdYtelseArbeid{" + "orgnr='" + getOrgnrString() + '\'' + ", inntekt=" + inntekt + ", inntektperiode=" + inntektperiode - + ", refusjon=" + refusjon + ", refusjon=" + refusjonTom + '}'; + return "InfotrygdYtelseArbeid{" + "orgnr='" + getOrgnrString() + '\'' + ", inntekt=" + inntekt + + ", inntektperiode=" + inntektperiode + ", refusjon=" + refusjon + ", refusjon=" + refusjonTom + '}'; } private String getOrgnrString() { @@ -86,6 +92,3 @@ private String getOrgnrString() { return "*".repeat(length - 4) + orgnr.substring(length - 4); } } - - - diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseGrunnlag.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseGrunnlag.java index 4757f91ff..be200d414 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseGrunnlag.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/dto/InfotrygdYtelseGrunnlag.java @@ -6,7 +6,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -28,8 +27,7 @@ public class InfotrygdYtelseGrunnlag { private LocalDate fødselsdatoBarn; private LocalDate opprinneligIdentdato; - public InfotrygdYtelseGrunnlag() { - } + public InfotrygdYtelseGrunnlag() {} public static Builder getBuilder() { return new Builder(); @@ -96,27 +94,47 @@ public boolean equals(Object o) { return false; } InfotrygdYtelseGrunnlag that = (InfotrygdYtelseGrunnlag) o; - return Objects.equals(vedtattTidspunkt, that.vedtattTidspunkt) && Objects.equals(ytelseType, that.ytelseType) - && Objects.equals(ytelseStatus, that.ytelseStatus) && Objects.equals(utbetaltePerioder, - that.utbetaltePerioder) && Objects.equals(vedtaksPeriodeFom, that.vedtaksPeriodeFom) && Objects.equals(vedtaksPeriodeTom, - that.vedtaksPeriodeTom) && Objects.equals(kategori, that.kategori) && Objects.equals(arbeidsforhold, that.arbeidsforhold) - && Objects.equals(dekningsgrad, that.dekningsgrad) && Objects.equals(gradering, that.gradering) && Objects.equals(fødselsdatoBarn, - that.fødselsdatoBarn) && Objects.equals(opprinneligIdentdato, that.opprinneligIdentdato); + return Objects.equals(vedtattTidspunkt, that.vedtattTidspunkt) + && Objects.equals(ytelseType, that.ytelseType) + && Objects.equals(ytelseStatus, that.ytelseStatus) + && Objects.equals(utbetaltePerioder, that.utbetaltePerioder) + && Objects.equals(vedtaksPeriodeFom, that.vedtaksPeriodeFom) + && Objects.equals(vedtaksPeriodeTom, that.vedtaksPeriodeTom) + && Objects.equals(kategori, that.kategori) + && Objects.equals(arbeidsforhold, that.arbeidsforhold) + && Objects.equals(dekningsgrad, that.dekningsgrad) + && Objects.equals(gradering, that.gradering) + && Objects.equals(fødselsdatoBarn, that.fødselsdatoBarn) + && Objects.equals(opprinneligIdentdato, that.opprinneligIdentdato); } @Override public int hashCode() { - return Objects.hash(vedtattTidspunkt, ytelseType, ytelseStatus, utbetaltePerioder, vedtaksPeriodeFom, vedtaksPeriodeTom, - kategori, arbeidsforhold, dekningsgrad, gradering, fødselsdatoBarn, opprinneligIdentdato); + return Objects.hash( + vedtattTidspunkt, + ytelseType, + ytelseStatus, + utbetaltePerioder, + vedtaksPeriodeFom, + vedtaksPeriodeTom, + kategori, + arbeidsforhold, + dekningsgrad, + gradering, + fødselsdatoBarn, + opprinneligIdentdato); } @Override public String toString() { - return "InfotrygdYtelseGrunnlag{" + "identdato=" + vedtattTidspunkt + ", ytelseType=" + ytelseType + - ", ytelseStatus=" + ytelseStatus + ", utbetaltePerioder=" + utbetaltePerioder + ", vedtaksPeriodeFom=" - + vedtaksPeriodeFom + ", vedtaksPeriodeTom=" + vedtaksPeriodeTom + ", kategori=" + kategori + ", arbeidsforhold=" + arbeidsforhold - + ", dekningsgrad=" + dekningsgrad + ", gradering=" + gradering + ", fødselsdatoBarn=" + fødselsdatoBarn + ", opprinneligIdentdato=" - + opprinneligIdentdato + '}'; + return "InfotrygdYtelseGrunnlag{" + "identdato=" + vedtattTidspunkt + ", ytelseType=" + ytelseType + + ", ytelseStatus=" + + ytelseStatus + ", utbetaltePerioder=" + utbetaltePerioder + ", vedtaksPeriodeFom=" + + vedtaksPeriodeFom + ", vedtaksPeriodeTom=" + vedtaksPeriodeTom + ", kategori=" + kategori + + ", arbeidsforhold=" + arbeidsforhold + + ", dekningsgrad=" + dekningsgrad + ", gradering=" + gradering + ", fødselsdatoBarn=" + fødselsdatoBarn + + ", opprinneligIdentdato=" + + opprinneligIdentdato + '}'; } public static class Builder { @@ -183,7 +201,6 @@ public Builder medGradering(Integer gradering) { return this; } - public Builder medGradering(BigDecimal gradering) { grunnlag.gradering = gradering; return this; diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/ArbeidskategoriReverse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/ArbeidskategoriReverse.java index 63a40aa09..17f8155d6 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/ArbeidskategoriReverse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/ArbeidskategoriReverse.java @@ -1,28 +1,42 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.kodemaps; import java.util.Map; - -import org.slf4j.Logger; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; +import org.slf4j.Logger; public class ArbeidskategoriReverse { - private static final Map ARBEIDSKATEGORI_MAP = Map.ofEntries(Map.entry("00", Arbeidskategori.FISKER), - Map.entry("01", Arbeidskategori.ARBEIDSTAKER), Map.entry("02", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), - Map.entry("03", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE), Map.entry("04", Arbeidskategori.SJØMANN), - Map.entry("05", Arbeidskategori.JORDBRUKER), Map.entry("06", Arbeidskategori.DAGPENGER), Map.entry("07", Arbeidskategori.INAKTIV), - Map.entry("08", Arbeidskategori.ARBEIDSTAKER), Map.entry("09", Arbeidskategori.ARBEIDSTAKER), Map.entry("10", Arbeidskategori.SJØMANN), - Map.entry("11", Arbeidskategori.SJØMANN), Map.entry("12", Arbeidskategori.ARBEIDSTAKER), - Map.entry("13", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER), Map.entry("14", Arbeidskategori.UGYLDIG), - Map.entry("15", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), Map.entry("16", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), - Map.entry("17", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FISKER), Map.entry("18", Arbeidskategori.UGYLDIG), - Map.entry("19", Arbeidskategori.FRILANSER), Map.entry("20", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER), - Map.entry("21", Arbeidskategori.ARBEIDSTAKER), Map.entry("22", Arbeidskategori.SJØMANN), - Map.entry("23", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER), Map.entry("24", Arbeidskategori.FRILANSER), - Map.entry("25", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER), Map.entry("26", Arbeidskategori.DAGMAMMA), - Map.entry("27", Arbeidskategori.ARBEIDSTAKER), Map.entry("30", Arbeidskategori.UGYLDIG), Map.entry("99", Arbeidskategori.UGYLDIG)); - + private static final Map ARBEIDSKATEGORI_MAP = Map.ofEntries( + Map.entry("00", Arbeidskategori.FISKER), + Map.entry("01", Arbeidskategori.ARBEIDSTAKER), + Map.entry("02", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), + Map.entry("03", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE), + Map.entry("04", Arbeidskategori.SJØMANN), + Map.entry("05", Arbeidskategori.JORDBRUKER), + Map.entry("06", Arbeidskategori.DAGPENGER), + Map.entry("07", Arbeidskategori.INAKTIV), + Map.entry("08", Arbeidskategori.ARBEIDSTAKER), + Map.entry("09", Arbeidskategori.ARBEIDSTAKER), + Map.entry("10", Arbeidskategori.SJØMANN), + Map.entry("11", Arbeidskategori.SJØMANN), + Map.entry("12", Arbeidskategori.ARBEIDSTAKER), + Map.entry("13", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER), + Map.entry("14", Arbeidskategori.UGYLDIG), + Map.entry("15", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), + Map.entry("16", Arbeidskategori.SELVSTENDIG_NÆRINGSDRIVENDE), + Map.entry("17", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FISKER), + Map.entry("18", Arbeidskategori.UGYLDIG), + Map.entry("19", Arbeidskategori.FRILANSER), + Map.entry("20", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER), + Map.entry("21", Arbeidskategori.ARBEIDSTAKER), + Map.entry("22", Arbeidskategori.SJØMANN), + Map.entry("23", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER), + Map.entry("24", Arbeidskategori.FRILANSER), + Map.entry("25", Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER), + Map.entry("26", Arbeidskategori.DAGMAMMA), + Map.entry("27", Arbeidskategori.ARBEIDSTAKER), + Map.entry("30", Arbeidskategori.UGYLDIG), + Map.entry("99", Arbeidskategori.UGYLDIG)); public static Arbeidskategori reverseMap(String kode, Logger logger) { if (ARBEIDSKATEGORI_MAP.get(kode) == null) { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/InntektPeriodeReverse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/InntektPeriodeReverse.java index 25146fa6f..456ea3186 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/InntektPeriodeReverse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/InntektPeriodeReverse.java @@ -1,10 +1,8 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.kodemaps; import java.util.Map; - -import org.slf4j.Logger; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; +import org.slf4j.Logger; public class InntektPeriodeReverse { @@ -16,10 +14,21 @@ public class InntektPeriodeReverse { private static final String FASTSATT25PAVVIK_KILDE = "X"; private static final String PREMIEGRUNNLAG_KILDE = "Y"; - private static final Map INNTEKT_PERIODE_TYPE_MAP = Map.of(DAGLIG_KILDE, InntektPeriodeType.DAGLIG, UKENTLIG_KILDE, - InntektPeriodeType.UKENTLIG, BIUKENTLIG_KILDE, InntektPeriodeType.BIUKENTLIG, MÅNEDLIG_KILDE, InntektPeriodeType.MÅNEDLIG, ÅRLIG_KILDE, - InntektPeriodeType.ÅRLIG, FASTSATT25PAVVIK_KILDE, InntektPeriodeType.FASTSATT25PAVVIK, PREMIEGRUNNLAG_KILDE, - InntektPeriodeType.PREMIEGRUNNLAG); + private static final Map INNTEKT_PERIODE_TYPE_MAP = Map.of( + DAGLIG_KILDE, + InntektPeriodeType.DAGLIG, + UKENTLIG_KILDE, + InntektPeriodeType.UKENTLIG, + BIUKENTLIG_KILDE, + InntektPeriodeType.BIUKENTLIG, + MÅNEDLIG_KILDE, + InntektPeriodeType.MÅNEDLIG, + ÅRLIG_KILDE, + InntektPeriodeType.ÅRLIG, + FASTSATT25PAVVIK_KILDE, + InntektPeriodeType.FASTSATT25PAVVIK, + PREMIEGRUNNLAG_KILDE, + InntektPeriodeType.PREMIEGRUNNLAG); public static InntektPeriodeType reverseMap(String kode, Logger logger) { if (INNTEKT_PERIODE_TYPE_MAP.get(kode) == null) { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatus.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatus.java index 550a09877..66f6e9fb5 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatus.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatus.java @@ -36,5 +36,4 @@ public enum RelatertYtelseStatus { public String getKode() { return kode; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatusReverse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatusReverse.java index 0551fbfee..6b05dd90c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatusReverse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/RelatertYtelseStatusReverse.java @@ -1,27 +1,25 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.kodemaps; +import java.util.Map; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; - import org.slf4j.Logger; -import java.util.Map; - public class RelatertYtelseStatusReverse { - private static final Map YTELSE_STATUS_MAP = Map.ofEntries( - Map.entry(RelatertYtelseStatus.AVSLUTTET_IT.getKode(), YtelseStatus.AVSLUTTET), - Map.entry(RelatertYtelseStatus.LØPENDE_VEDTAK.getKode(), YtelseStatus.LØPENDE), - Map.entry(RelatertYtelseStatus.IKKE_STARTET.getKode(), YtelseStatus.UNDER_BEHANDLING), - Map.entry(RelatertYtelseStatus.AVSLU.getKode(), YtelseStatus.AVSLUTTET), Map.entry("INAKT", YtelseStatus.AVSLUTTET), // Sak, ingen vedtak - Map.entry(RelatertYtelseStatus.IVERK.getKode(), YtelseStatus.LØPENDE), - // Resterende koder Arena - Map.entry("AKTIV", YtelseStatus.UNDER_BEHANDLING), // Sak, ingen vedtak - Map.entry(RelatertYtelseStatus.GODKJ.getKode(), YtelseStatus.UNDER_BEHANDLING), - Map.entry(RelatertYtelseStatus.INNST.getKode(), YtelseStatus.UNDER_BEHANDLING), - Map.entry(RelatertYtelseStatus.MOTAT.getKode(), YtelseStatus.UNDER_BEHANDLING), - Map.entry(RelatertYtelseStatus.OPPRE.getKode(), YtelseStatus.UNDER_BEHANDLING), - Map.entry(RelatertYtelseStatus.REGIS.getKode(), YtelseStatus.UNDER_BEHANDLING)); + Map.entry(RelatertYtelseStatus.AVSLUTTET_IT.getKode(), YtelseStatus.AVSLUTTET), + Map.entry(RelatertYtelseStatus.LØPENDE_VEDTAK.getKode(), YtelseStatus.LØPENDE), + Map.entry(RelatertYtelseStatus.IKKE_STARTET.getKode(), YtelseStatus.UNDER_BEHANDLING), + Map.entry(RelatertYtelseStatus.AVSLU.getKode(), YtelseStatus.AVSLUTTET), + Map.entry("INAKT", YtelseStatus.AVSLUTTET), // Sak, ingen vedtak + Map.entry(RelatertYtelseStatus.IVERK.getKode(), YtelseStatus.LØPENDE), + // Resterende koder Arena + Map.entry("AKTIV", YtelseStatus.UNDER_BEHANDLING), // Sak, ingen vedtak + Map.entry(RelatertYtelseStatus.GODKJ.getKode(), YtelseStatus.UNDER_BEHANDLING), + Map.entry(RelatertYtelseStatus.INNST.getKode(), YtelseStatus.UNDER_BEHANDLING), + Map.entry(RelatertYtelseStatus.MOTAT.getKode(), YtelseStatus.UNDER_BEHANDLING), + Map.entry(RelatertYtelseStatus.OPPRE.getKode(), YtelseStatus.UNDER_BEHANDLING), + Map.entry(RelatertYtelseStatus.REGIS.getKode(), YtelseStatus.UNDER_BEHANDLING)); public static YtelseStatus reverseMap(String kode, Logger logger) { if (YTELSE_STATUS_MAP.get(kode) == null) { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/TemaReverse.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/TemaReverse.java index b1070f1a7..3156525f0 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/TemaReverse.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/kodemaps/TemaReverse.java @@ -1,16 +1,15 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.kodemaps; import java.util.Map; - -import org.slf4j.Logger; - import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; +import org.slf4j.Logger; public class TemaReverse { - private static final Map TEMA_MAP = Map.ofEntries(Map.entry("FA", YtelseType.FORELDREPENGER), - Map.entry("BS", YtelseType.OMSORGSPENGER), Map.entry("SP", YtelseType.SYKEPENGER)); - + private static final Map TEMA_MAP = Map.ofEntries( + Map.entry("FA", YtelseType.FORELDREPENGER), + Map.entry("BS", YtelseType.OMSORGSPENGER), + Map.entry("SP", YtelseType.SYKEPENGER)); public static YtelseType reverseMap(String kode, Logger logger) { if (TEMA_MAP.get(kode) == null) { diff --git "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/Sp\303\270kelseKlient.java" "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/Sp\303\270kelseKlient.java" index 8e1a411ca..13f90d03a 100644 --- "a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/Sp\303\270kelseKlient.java" +++ "b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/Sp\303\270kelseKlient.java" @@ -1,13 +1,17 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.rest; import jakarta.enterprise.context.Dependent; - import no.nav.vedtak.felles.integrasjon.rest.RestClientConfig; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; import no.nav.vedtak.felles.integrasjon.spokelse.AbstractSpøkelseKlient; @Dependent -@RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, endpointProperty = "spokelse.grunnlag.url", endpointDefault = "https://spokelse.intern.nav.no/grunnlag", scopesProperty = "spokelse.grunnlag.scopes", scopesDefault = "api://prod-gcp.tbd.spokelse/.default") +@RestClientConfig( + tokenConfig = TokenFlow.AZUREAD_CC, + endpointProperty = "spokelse.grunnlag.url", + endpointDefault = "https://spokelse.intern.nav.no/grunnlag", + scopesProperty = "spokelse.grunnlag.scopes", + scopesDefault = "api://prod-gcp.tbd.spokelse/.default") public class SpøkelseKlient extends AbstractSpøkelseKlient { public SpøkelseKlient() { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/felles/InfotrygdGrunnlagAggregator.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/felles/InfotrygdGrunnlagAggregator.java index 0eeeed75d..0bb6d7681 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/felles/InfotrygdGrunnlagAggregator.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/felles/InfotrygdGrunnlagAggregator.java @@ -2,13 +2,12 @@ import static java.util.stream.Collectors.toList; -import java.time.LocalDate; -import java.util.List; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.inject.Any; import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; +import java.time.LocalDate; +import java.util.List; import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest; import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.InfotrygdGrunnlag; import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag; @@ -19,8 +18,7 @@ public class InfotrygdGrunnlagAggregator { private List tjenester; - InfotrygdGrunnlagAggregator() { - } + InfotrygdGrunnlagAggregator() {} @Inject public InfotrygdGrunnlagAggregator(@Any Instance tjenester) { @@ -29,17 +27,22 @@ public InfotrygdGrunnlagAggregator(@Any Instance tjenester) { public List hentAggregertGrunnlag(String fnr, LocalDate fom, LocalDate tom) { var request = new GrunnlagRequest(fnr, Tid.fomEllerMin(fom), Tid.tomEllerMax(tom)); - return tjenester.stream().map(t -> t.hentGrunnlag(request)).flatMap(List::stream).collect(toList()); + return tjenester.stream() + .map(t -> t.hentGrunnlag(request)) + .flatMap(List::stream) + .collect(toList()); } public List hentAggregertGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom) { var request = new GrunnlagRequest(fnr, Tid.fomEllerMin(fom), Tid.tomEllerMax(tom)); - return tjenester.stream().map(t -> t.hentGrunnlagFailSoft(request)).flatMap(List::stream).collect(toList()); + return tjenester.stream() + .map(t -> t.hentGrunnlagFailSoft(request)) + .flatMap(List::stream) + .collect(toList()); } @Override public String toString() { return getClass().getSimpleName() + "[tjenester=" + tjenester + "]"; } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/InfotrygdPSGrunnlag.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/InfotrygdPSGrunnlag.java index b5a16dc28..d627cc8e9 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/InfotrygdPSGrunnlag.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/InfotrygdPSGrunnlag.java @@ -7,13 +7,15 @@ @PS @Dependent -@RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, endpointProperty = "fpabakus.it.ps.grunnlag.url", - endpointDefault = "http://k9-infotrygd-grunnlag-paaroerende-sykdom.k9saksbehandling/paaroerendeSykdom/grunnlag", - scopesProperty = "fpabakus.it.ps.scopes", scopesDefault = "api://prod-fss.k9saksbehandling.k9-infotrygd-grunnlag-paaroerende-sykdom/.default") +@RestClientConfig( + tokenConfig = TokenFlow.AZUREAD_CC, + endpointProperty = "fpabakus.it.ps.grunnlag.url", + endpointDefault = "http://k9-infotrygd-grunnlag-paaroerende-sykdom.k9saksbehandling/paaroerendeSykdom/grunnlag", + scopesProperty = "fpabakus.it.ps.scopes", + scopesDefault = "api://prod-fss.k9saksbehandling.k9-infotrygd-grunnlag-paaroerende-sykdom/.default") public class InfotrygdPSGrunnlag extends AbstractInfotrygdGrunnlag { public InfotrygdPSGrunnlag() { super(); } - } diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/PS.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/PS.java index f9f809732..df4eae778 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/PS.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/ps/PS.java @@ -1,15 +1,12 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.rest.ps; +import jakarta.inject.Qualifier; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import jakarta.inject.Qualifier; - @Qualifier @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.TYPE}) -public @interface PS { - -} +public @interface PS {} diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/InfotrygdSPGrunnlag.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/InfotrygdSPGrunnlag.java index 2c244da87..dfae11e08 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/InfotrygdSPGrunnlag.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/InfotrygdSPGrunnlag.java @@ -7,9 +7,12 @@ @SP @Dependent -@RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, endpointProperty = "fpabakus.it.sp.grunnlag.url", - endpointDefault = "http://fp-infotrygd-sykepenger/grunnlag", - scopesProperty = "fpabakus.it.sp.scopes", scopesDefault = "api://prod-fss.teamforeldrepenger.fp-infotrygd-sykepenger/.default") +@RestClientConfig( + tokenConfig = TokenFlow.AZUREAD_CC, + endpointProperty = "fpabakus.it.sp.grunnlag.url", + endpointDefault = "http://fp-infotrygd-sykepenger/grunnlag", + scopesProperty = "fpabakus.it.sp.scopes", + scopesDefault = "api://prod-fss.teamforeldrepenger.fp-infotrygd-sykepenger/.default") public class InfotrygdSPGrunnlag extends AbstractInfotrygdGrunnlag { public InfotrygdSPGrunnlag() { diff --git a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/SP.java b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/SP.java index 084037fba..5065c5c3c 100644 --- a/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/SP.java +++ b/domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/infotrygd/rest/sp/SP.java @@ -1,15 +1,12 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.rest.sp; +import jakarta.inject.Qualifier; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import jakarta.inject.Qualifier; - @Qualifier @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.TYPE}) -public @interface SP { - -} +public @interface SP {} diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/DiffSjekkTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/DiffSjekkTest.java index 16f38d528..b93df383d 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/DiffSjekkTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/DiffSjekkTest.java @@ -2,12 +2,11 @@ import static org.assertj.core.api.Assertions.assertThat; -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; import no.nav.foreldrepenger.abakus.domene.iay.diff.TraverseEntityGraphFactory; import no.nav.foreldrepenger.abakus.domene.iay.søknad.OppgittOpptjeningBuilder.EgenNæringBuilder; import no.nav.foreldrepenger.abakus.felles.diff.DiffEntity; +import org.junit.jupiter.api.Test; class DiffSjekkTest { @@ -22,7 +21,6 @@ void skal_diffe_entitet_med_landkode() throws Exception { assertThat(differ.areDifferent(objDNK, objNOR)).isTrue(); assertThat(differ.areDifferent(objDNK, objDNK)).isFalse(); - } @Test @@ -36,6 +34,5 @@ void skal_diffe_landkode() throws Exception { assertThat(differ.areDifferent(objDNK, objNOR)).isTrue(); assertThat(differ.areDifferent(objDNK, objDNK)).isFalse(); - } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilderTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilderTest.java index 522d77558..fba52f1eb 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilderTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseGrunnlagBuilderTest.java @@ -6,12 +6,10 @@ import java.util.EnumSet; import java.util.Set; import java.util.UUID; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.request.Dataset; import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon; import no.nav.foreldrepenger.abakus.domene.iay.søknad.OppgittOpptjeningBuilder; +import org.junit.jupiter.api.Test; class InntektArbeidYtelseGrunnlagBuilderTest { @@ -30,9 +28,15 @@ void kopier_deler_test() { assertThat(gr.getSaksbehandletVersjon()).isPresent(); assertThat(gr.getInntektsmeldinger()).isPresent(); - var nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, - EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.OVERSTYRT_OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, - Dataset.OVERSTYRT)).build(); + var nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler( + gr, + EnumSet.of( + Dataset.OPPGITT_OPPTJENING, + Dataset.OVERSTYRT_OPPGITT_OPPTJENING, + Dataset.INNTEKTSMELDING, + Dataset.REGISTER, + Dataset.OVERSTYRT)) + .build(); assertThat(nyttGrunnlag.getOppgittOpptjening()).isPresent(); assertThat(nyttGrunnlag.getOverstyrtOppgittOpptjening()).isPresent(); @@ -40,8 +44,9 @@ void kopier_deler_test() { assertThat(nyttGrunnlag.getSaksbehandletVersjon()).isPresent(); assertThat(nyttGrunnlag.getInntektsmeldinger()).isPresent(); - nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, EnumSet.of(Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT)) - .build(); + nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler( + gr, EnumSet.of(Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT)) + .build(); assertThat(nyttGrunnlag.getOppgittOpptjening()).isNotPresent(); assertThat(nyttGrunnlag.getOverstyrtOppgittOpptjening()).isNotPresent(); @@ -49,7 +54,9 @@ void kopier_deler_test() { assertThat(nyttGrunnlag.getSaksbehandletVersjon()).isPresent(); assertThat(nyttGrunnlag.getInntektsmeldinger()).isPresent(); - nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, EnumSet.of(Dataset.REGISTER, Dataset.OVERSTYRT)).build(); + nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler( + gr, EnumSet.of(Dataset.REGISTER, Dataset.OVERSTYRT)) + .build(); assertThat(nyttGrunnlag.getOppgittOpptjening()).isNotPresent(); assertThat(nyttGrunnlag.getOverstyrtOppgittOpptjening()).isNotPresent(); @@ -57,7 +64,8 @@ void kopier_deler_test() { assertThat(nyttGrunnlag.getSaksbehandletVersjon()).isPresent(); assertThat(nyttGrunnlag.getInntektsmeldinger()).isNotPresent(); - nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, EnumSet.of(Dataset.REGISTER)).build(); + nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, EnumSet.of(Dataset.REGISTER)) + .build(); assertThat(nyttGrunnlag.getOppgittOpptjening()).isNotPresent(); assertThat(nyttGrunnlag.getOverstyrtOppgittOpptjening()).isNotPresent(); @@ -65,7 +73,8 @@ void kopier_deler_test() { assertThat(nyttGrunnlag.getSaksbehandletVersjon()).isNotPresent(); assertThat(nyttGrunnlag.getInntektsmeldinger()).isNotPresent(); - nyttGrunnlag = InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, Set.of()).build(); + nyttGrunnlag = + InntektArbeidYtelseGrunnlagBuilder.kopierDeler(gr, Set.of()).build(); assertThat(nyttGrunnlag.getOppgittOpptjening()).isNotPresent(); assertThat(nyttGrunnlag.getOverstyrtOppgittOpptjening()).isNotPresent(); diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepositoryTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepositoryTest.java index 0a79de002..1afe26edf 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepositoryTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepositoryTest.java @@ -12,12 +12,6 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @@ -41,6 +35,10 @@ import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.vedtak.felles.testutilities.cdi.CdiAwareExtension; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; @ExtendWith(CdiAwareExtension.class) class InntektArbeidYtelseRepositoryTest { @@ -59,30 +57,40 @@ public void setup() { @Test void skal_svare_om_er_siste() { - var ko = new Kobling(YtelseType.OMSORGSPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), - new AktørId("1231231231223")); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.OMSORGSPENGER, + new Saksnummer("12341234"), + new KoblingReferanse(UUID.randomUUID()), + new AktørId("1231231231223")); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var builder = OppgittOpptjeningBuilder.ny(); - builder.leggTilAnnenAktivitet(new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER)); + builder.leggTilAnnenAktivitet( + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER)); var grunnlagReferanse = repository.lagre(ko.getKoblingReferanse(), builder); - assertThat(repository.erGrunnlagAktivt(grunnlagReferanse.getReferanse())).isTrue(); + assertThat(repository.erGrunnlagAktivt(grunnlagReferanse.getReferanse())) + .isTrue(); var inntektsmeldingBuilder = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medBeløp(BigDecimal.TEN) - .medJournalpostId("123123123") - .medMottattDato(LocalDate.now()) - .medInnsendingstidspunkt(LocalDateTime.now()); - - var nyGrunnlagReferanse = repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), - List.of(inntektsmeldingBuilder.build())); - - assertThat(repository.erGrunnlagAktivt(grunnlagReferanse.getReferanse())).isFalse(); - assertThat(repository.erGrunnlagAktivt(nyGrunnlagReferanse.getReferanse())).isTrue(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medBeløp(BigDecimal.TEN) + .medJournalpostId("123123123") + .medMottattDato(LocalDate.now()) + .medInnsendingstidspunkt(LocalDateTime.now()); + + var nyGrunnlagReferanse = repository.lagre( + ko.getKoblingReferanse(), + ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), + List.of(inntektsmeldingBuilder.build())); + + assertThat(repository.erGrunnlagAktivt(grunnlagReferanse.getReferanse())) + .isFalse(); + assertThat(repository.erGrunnlagAktivt(nyGrunnlagReferanse.getReferanse())) + .isTrue(); } @Test @@ -90,8 +98,10 @@ void skal_oppdatere_sigrun() { var aktør = new AktørId("1231231231223"); var periodeFom = LocalDate.of(2020, 1, 1); var periodeTom = LocalDate.of(2020, 12, 31); - var ko = new Kobling(YtelseType.FORELDREPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), aktør); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.FORELDREPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), aktør); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.nytt(); @@ -100,10 +110,13 @@ void skal_oppdatere_sigrun() { var aib = gb.getAktørInntektBuilder(aktør); var ib = aib.getInntektBuilder(InntektskildeType.SIGRUN, null); var ipb = ib.getInntektspostBuilder() - .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) - .medBeløp(BigDecimal.TEN) - .medPeriode(periodeFom, periodeTom); - var ipba = ib.getInntektspostBuilder().medInntektspostType(InntektspostType.LØNN).medBeløp(BigDecimal.TEN).medPeriode(periodeFom, periodeTom); + .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); + var ipba = ib.getInntektspostBuilder() + .medInntektspostType(InntektspostType.LØNN) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); ib.leggTilInntektspost(ipb); ib.leggTilInntektspost(ipba); aib.leggTilInntekt(ib); @@ -113,19 +126,19 @@ void skal_oppdatere_sigrun() { repository.lagre(ko.getKoblingReferanse(), grunnlagBuilder); var grunnlagBuilder2 = InntektArbeidYtelseGrunnlagBuilder.oppdatere( - repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse())); + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse())); var gb2 = grunnlagBuilder2.getRegisterBuilder(); var aib2 = gb2.getAktørInntektBuilder(aktør); var ib2 = aib2.getInntektBuilder(InntektskildeType.SIGRUN, null); ib2.tilbakestillInntektsposterForPerioder(Set.of(IntervallEntitet.fraOgMedTilOgMed(periodeFom, periodeTom))); var ipb2 = ib2.getInntektspostBuilder() - .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) - .medBeløp(BigDecimal.ONE) - .medPeriode(periodeFom, periodeTom); + .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) + .medBeløp(BigDecimal.ONE) + .medPeriode(periodeFom, periodeTom); var ipba2 = ib.getInntektspostBuilder() - .medInntektspostType(InntektspostType.LØNN) - .medBeløp(BigDecimal.TEN) - .medPeriode(periodeFom, periodeTom); + .medInntektspostType(InntektspostType.LØNN) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); ib2.leggTilInntektspost(ipba2); ib2.leggTilInntektspost(ipb2); @@ -135,14 +148,19 @@ void skal_oppdatere_sigrun() { repository.lagre(ko.getKoblingReferanse(), grunnlagBuilder2); - var g3 = repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()).orElseThrow(); + var g3 = repository + .hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()) + .orElseThrow(); - var aktørInntekt = g3.getRegisterVersjon().flatMap(a -> a.getAktørInntekt().stream().filter(ai -> ai.getAktørId().equals(aktør)).findFirst()); - List inntekter = aktørInntekt.stream().flatMap(ai -> ai.getInntekt().stream()).toList(); + var aktørInntekt = g3.getRegisterVersjon().flatMap(a -> a.getAktørInntekt().stream() + .filter(ai -> ai.getAktørId().equals(aktør)) + .findFirst()); + List inntekter = + aktørInntekt.stream().flatMap(ai -> ai.getInntekt().stream()).toList(); List inntektsposter = inntekter.stream() - .flatMap( - i -> i.getAlleInntektsposter().stream().filter(ip -> ip.getInntektspostType().equals(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) - .toList(); + .flatMap(i -> i.getAlleInntektsposter().stream() + .filter(ip -> ip.getInntektspostType().equals(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) + .toList(); assertThat(inntektsposter).hasSize(1); assertThat(inntektsposter.get(0).getBeløp()).isEqualTo(new Beløp(BigDecimal.ONE)); @@ -151,8 +169,10 @@ void skal_oppdatere_sigrun() { @Test void skal_beholde_data_som_ikke_kommer_fra_sigrun() { var aktør = new AktørId("1231231231223"); - var ko = new Kobling(YtelseType.FORELDREPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), aktør); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.FORELDREPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), aktør); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.nytt(); @@ -160,11 +180,17 @@ void skal_beholde_data_som_ikke_kommer_fra_sigrun() { var aib = gb.getAktørInntektBuilder(aktør); var ib = aib.getInntektBuilder(InntektskildeType.SIGRUN, null); - for (int y = -1; y<3; y++) { + for (int y = -1; y < 3; y++) { var periodeFom = LocalDate.of(2020 + y, 1, 1); var periodeTom = periodeFom.plusYears(1).minusDays(1); - var ipb = ib.getInntektspostBuilder().medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE).medBeløp(BigDecimal.TEN).medPeriode(periodeFom, periodeTom); - var ipba = ib.getInntektspostBuilder().medInntektspostType(InntektspostType.LØNN).medBeløp(BigDecimal.TEN).medPeriode(periodeFom, periodeTom); + var ipb = ib.getInntektspostBuilder() + .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); + var ipba = ib.getInntektspostBuilder() + .medInntektspostType(InntektspostType.LØNN) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); ib.leggTilInntektspost(ipb); ib.leggTilInntektspost(ipba); } @@ -175,22 +201,28 @@ void skal_beholde_data_som_ikke_kommer_fra_sigrun() { repository.lagre(ko.getKoblingReferanse(), grunnlagBuilder); var perioderFraSigrun = new HashSet(); - for (int y = 0; y<3; y++) { + for (int y = 0; y < 3; y++) { var periodeFom = LocalDate.of(2020 + y, 1, 1); var periodeTom = periodeFom.plusYears(1).minusDays(1); perioderFraSigrun.add(IntervallEntitet.fraOgMedTilOgMed(periodeFom, periodeTom)); } var grunnlagBuilder2 = InntektArbeidYtelseGrunnlagBuilder.oppdatere( - repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse())); + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse())); var gb2 = grunnlagBuilder2.getRegisterBuilder(); var aib2 = gb2.getAktørInntektBuilder(aktør); var ib2 = aib2.getInntektBuilder(InntektskildeType.SIGRUN, null); ib2.tilbakestillInntektsposterForPerioder(perioderFraSigrun); - for (int y = 0; y<3; y++) { + for (int y = 0; y < 3; y++) { var periodeFom = LocalDate.of(2020 + y, 1, 1); var periodeTom = periodeFom.plusYears(1).minusDays(1); - var ipb = ib.getInntektspostBuilder().medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE).medBeløp(BigDecimal.ONE).medPeriode(periodeFom, periodeTom); - var ipba = ib.getInntektspostBuilder().medInntektspostType(InntektspostType.LØNN).medBeløp(BigDecimal.TEN).medPeriode(periodeFom, periodeTom); + var ipb = ib.getInntektspostBuilder() + .medInntektspostType(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) + .medBeløp(BigDecimal.ONE) + .medPeriode(periodeFom, periodeTom); + var ipba = ib.getInntektspostBuilder() + .medInntektspostType(InntektspostType.LØNN) + .medBeløp(BigDecimal.TEN) + .medPeriode(periodeFom, periodeTom); ib2.leggTilInntektspost(ipba); ib2.leggTilInntektspost(ipb); } @@ -201,63 +233,85 @@ void skal_beholde_data_som_ikke_kommer_fra_sigrun() { repository.lagre(ko.getKoblingReferanse(), grunnlagBuilder2); - var g3 = repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()).orElseThrow(); + var g3 = repository + .hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()) + .orElseThrow(); - var aktørInntekt = g3.getRegisterVersjon().flatMap(a -> a.getAktørInntekt().stream().filter(ai -> ai.getAktørId().equals(aktør)).findFirst()); - List inntekter = aktørInntekt.stream().flatMap(ai -> ai.getInntekt().stream()).toList(); + var aktørInntekt = g3.getRegisterVersjon().flatMap(a -> a.getAktørInntekt().stream() + .filter(ai -> ai.getAktørId().equals(aktør)) + .findFirst()); + List inntekter = + aktørInntekt.stream().flatMap(ai -> ai.getInntekt().stream()).toList(); List inntektsposter = inntekter.stream() - .flatMap( - i -> i.getAlleInntektsposter().stream().filter(ip -> ip.getInntektspostType().equals(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) - .toList(); + .flatMap(i -> i.getAlleInntektsposter().stream() + .filter(ip -> ip.getInntektspostType().equals(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) + .toList(); assertThat(inntektsposter).hasSize(4); - assertThat(inntektsposter.stream().map(Inntektspost::getBeløp).map(Beløp::getVerdi).reduce(BigDecimal.ZERO, BigDecimal::add)).isEqualTo(new BigDecimal(13)); + assertThat(inntektsposter.stream() + .map(Inntektspost::getBeløp) + .map(Beløp::getVerdi) + .reduce(BigDecimal.ZERO, BigDecimal::add)) + .isEqualTo(new BigDecimal(13)); } @Test void skal_kunne_lagre_overstyring_av_oppgitt_opptjening() { - var ko = new Kobling(YtelseType.OMSORGSPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), - new AktørId("1231231231223")); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.OMSORGSPENGER, + new Saksnummer("12341234"), + new KoblingReferanse(UUID.randomUUID()), + new AktørId("1231231231223")); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var builder = OppgittOpptjeningBuilder.ny(); - builder.leggTilAnnenAktivitet(new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER)); + builder.leggTilAnnenAktivitet( + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER)); repository.lagreOverstyring(ko.getKoblingReferanse(), builder); - Optional inntektArbeidYtelseGrunnlag = repository.hentInntektArbeidYtelseGrunnlagForBehandling( - ko.getKoblingReferanse()); + Optional inntektArbeidYtelseGrunnlag = + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()); assertThat(inntektArbeidYtelseGrunnlag).isPresent(); - assertThat(inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening()).isPresent(); + assertThat(inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening()) + .isPresent(); } @Test void skal_kunne_lagre_både_vanlig_og_overstyring_av_oppgitt_opptjening() { - var ko = new Kobling(YtelseType.OMSORGSPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), - new AktørId("1231231231223")); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.OMSORGSPENGER, + new Saksnummer("12341234"), + new KoblingReferanse(UUID.randomUUID()), + new AktørId("1231231231223")); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var vanlig = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet annenAktivitet = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.ETTERLØNN_SLUTTPAKKE); + OppgittAnnenAktivitet annenAktivitet = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.ETTERLØNN_SLUTTPAKKE); vanlig.leggTilAnnenAktivitet(annenAktivitet); var overstyring = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet overstrytAnnenAktivitet = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), - ArbeidType.VENTELØNN_VARTPENGER); + OppgittAnnenAktivitet overstrytAnnenAktivitet = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER); overstyring.leggTilAnnenAktivitet(overstrytAnnenAktivitet); repository.lagre(ko.getKoblingReferanse(), vanlig); repository.lagreOverstyring(ko.getKoblingReferanse(), overstyring); - Optional inntektArbeidYtelseGrunnlag = repository.hentInntektArbeidYtelseGrunnlagForBehandling( - ko.getKoblingReferanse()); + Optional inntektArbeidYtelseGrunnlag = + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()); assertThat(inntektArbeidYtelseGrunnlag).isPresent(); - Optional overstyrtOppgittOpptjening = inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening(); - Optional oppgittOpptjening = inntektArbeidYtelseGrunnlag.get().getOppgittOpptjening(); + Optional overstyrtOppgittOpptjening = + inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening(); + Optional oppgittOpptjening = + inntektArbeidYtelseGrunnlag.get().getOppgittOpptjening(); assertThat(overstyrtOppgittOpptjening).isPresent(); assertThat(oppgittOpptjening).isPresent(); assertThat(overstyrtOppgittOpptjening.get().getAnnenAktivitet()).containsExactly(overstrytAnnenAktivitet); @@ -266,18 +320,23 @@ void skal_kunne_lagre_overstyring_av_oppgitt_opptjening() { @Test void skal_kunne_hente_oppgitt_opptjening() { - var ko = new Kobling(YtelseType.OMSORGSPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), - new AktørId("1231231231223")); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.OMSORGSPENGER, + new Saksnummer("12341234"), + new KoblingReferanse(UUID.randomUUID()), + new AktørId("1231231231223")); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var vanlig = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet annenAktivitet = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.ETTERLØNN_SLUTTPAKKE); + OppgittAnnenAktivitet annenAktivitet = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.ETTERLØNN_SLUTTPAKKE); vanlig.leggTilAnnenAktivitet(annenAktivitet); var overstyring = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet overstrytAnnenAktivitet = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), - ArbeidType.VENTELØNN_VARTPENGER); + OppgittAnnenAktivitet overstrytAnnenAktivitet = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER); overstyring.leggTilAnnenAktivitet(overstrytAnnenAktivitet); repository.lagre(ko.getKoblingReferanse(), vanlig); @@ -292,36 +351,42 @@ void skal_kunne_hente_oppgitt_opptjening() { @Test void skal_kunne_lagre_overstyring_av_oppgitt_opptjening_flere_ganger() { - var ko = new Kobling(YtelseType.OMSORGSPENGER, new Saksnummer("12341234"), new KoblingReferanse(UUID.randomUUID()), - new AktørId("1231231231223")); - ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); + var ko = new Kobling( + YtelseType.OMSORGSPENGER, + new Saksnummer("12341234"), + new KoblingReferanse(UUID.randomUUID()), + new AktørId("1231231231223")); + ko.setOpplysningsperiode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(2), LocalDate.now())); koblingRepository.lagre(ko); var overstyring1 = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet annenAktivitetoverstyring1 = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), - ArbeidType.ETTERLØNN_SLUTTPAKKE); + OppgittAnnenAktivitet annenAktivitetoverstyring1 = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.ETTERLØNN_SLUTTPAKKE); overstyring1.leggTilAnnenAktivitet(annenAktivitetoverstyring1); repository.lagreOverstyring(ko.getKoblingReferanse(), overstyring1); - Optional inntektArbeidYtelseGrunnlag = repository.hentInntektArbeidYtelseGrunnlagForBehandling( - ko.getKoblingReferanse()); + Optional inntektArbeidYtelseGrunnlag = + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()); assertThat(inntektArbeidYtelseGrunnlag).isPresent(); - Optional overstyrtOppgittOpptjening = inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening(); + Optional overstyrtOppgittOpptjening = + inntektArbeidYtelseGrunnlag.get().getOverstyrtOppgittOpptjening(); assertThat(overstyrtOppgittOpptjening).isPresent(); assertThat(overstyrtOppgittOpptjening.get().getAnnenAktivitet()).containsExactly(annenAktivitetoverstyring1); var overstyring2 = OppgittOpptjeningBuilder.ny(); - OppgittAnnenAktivitet annenAktivitetoverstyring2 = new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), - ArbeidType.VENTELØNN_VARTPENGER); + OppgittAnnenAktivitet annenAktivitetoverstyring2 = + new OppgittAnnenAktivitet(IntervallEntitet.fraOgMed(LocalDate.now()), ArbeidType.VENTELØNN_VARTPENGER); overstyring2.leggTilAnnenAktivitet(annenAktivitetoverstyring2); repository.lagreOverstyring(ko.getKoblingReferanse(), overstyring2); - Optional inntektArbeidYtelseGrunnlag2 = repository.hentInntektArbeidYtelseGrunnlagForBehandling( - ko.getKoblingReferanse()); + Optional inntektArbeidYtelseGrunnlag2 = + repository.hentInntektArbeidYtelseGrunnlagForBehandling(ko.getKoblingReferanse()); assertThat(inntektArbeidYtelseGrunnlag2).isPresent(); - Optional overstyrtOppgittOpptjening2 = inntektArbeidYtelseGrunnlag2.get().getOverstyrtOppgittOpptjening(); + Optional overstyrtOppgittOpptjening2 = + inntektArbeidYtelseGrunnlag2.get().getOverstyrtOppgittOpptjening(); assertThat(overstyrtOppgittOpptjening2).isPresent(); assertThat(overstyrtOppgittOpptjening2.get().getAnnenAktivitet()).containsExactly(annenAktivitetoverstyring2); } @@ -338,72 +403,76 @@ void skal_kunne_lagre_overstyring_av_oppgitt_opptjening_flere_ganger() { koblingRepository.lagre(ko); var inntektsmelding1 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medJournalpostId("1") - .medInnsendingstidspunkt(now.minusDays(10)) - .medBeløp(BigDecimal.TEN) - .medKanalreferanse("AR123") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.TEN) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medJournalpostId("1") + .medInnsendingstidspunkt(now.minusDays(10)) + .medBeløp(BigDecimal.TEN) + .medKanalreferanse("AR123") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.TEN) + .build(); var inntektsmelding2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("2") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR124") - .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("2") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR124") + .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding3 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("3") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR125") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("3") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR125") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding4 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(10)) - .medJournalpostId("4") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR126") - .leggTil(new Fravær(idag, idag.plusDays(5), null)) - .medRefusjon(BigDecimal.ONE) - .build(); - - repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), - List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); - - var grunnlag = repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, false); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(10)) + .medJournalpostId("4") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR126") + .leggTil(new Fravær(idag, idag.plusDays(5), null)) + .medRefusjon(BigDecimal.ONE) + .build(); + + repository.lagre( + ko.getKoblingReferanse(), + ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), + List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); + + var grunnlag = + repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, false); assertThat(grunnlag).hasSize(4); var inntektsmeldings = grunnlag.stream() - .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) - .filter(Optional::isPresent) - .map(Optional::get) - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .flatMap(Collection::stream) - .collect(Collectors.toList()); + .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) + .filter(Optional::isPresent) + .map(Optional::get) + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .flatMap(Collection::stream) + .collect(Collectors.toList()); assertThat(inntektsmeldings).hasSize(4); var aktivtGrunnlag = repository.hentInntektArbeidYtelseForBehandling(koblingReferanse); assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent(); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(1); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).contains(inntektsmelding4); - + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .hasSize(1); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .contains(inntektsmelding4); } @Test @@ -418,72 +487,76 @@ void skal_kun_hente_aktivt_grunnlag() { koblingRepository.lagre(ko); var inntektsmelding1 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medJournalpostId("1") - .medInnsendingstidspunkt(now.minusDays(10)) - .medBeløp(BigDecimal.TEN) - .medKanalreferanse("AR123") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.TEN) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medJournalpostId("1") + .medInnsendingstidspunkt(now.minusDays(10)) + .medBeløp(BigDecimal.TEN) + .medKanalreferanse("AR123") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.TEN) + .build(); var inntektsmelding2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("2") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR124") - .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("2") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR124") + .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding3 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("3") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR125") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("3") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR125") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding4 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(10)) - .medJournalpostId("4") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR126") - .leggTil(new Fravær(idag, idag.plusDays(5), null)) - .medRefusjon(BigDecimal.ONE) - .build(); - - repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), - List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); - - var grunnlag = repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, true); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(10)) + .medJournalpostId("4") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR126") + .leggTil(new Fravær(idag, idag.plusDays(5), null)) + .medRefusjon(BigDecimal.ONE) + .build(); + + repository.lagre( + ko.getKoblingReferanse(), + ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), + List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); + + var grunnlag = + repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, true); assertThat(grunnlag).hasSize(1); var inntektsmeldings = grunnlag.stream() - .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) - .filter(Optional::isPresent) - .map(Optional::get) - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .flatMap(Collection::stream) - .collect(Collectors.toList()); + .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) + .filter(Optional::isPresent) + .map(Optional::get) + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .flatMap(Collection::stream) + .collect(Collectors.toList()); assertThat(inntektsmeldings).hasSize(1); var aktivtGrunnlag = repository.hentInntektArbeidYtelseForBehandling(koblingReferanse); assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent(); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(1); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).contains(inntektsmelding4); - + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .hasSize(1); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .contains(inntektsmelding4); } @Test @@ -498,68 +571,73 @@ void skal_kun_hente_aktivt_grunnlag() { koblingRepository.lagre(ko); var inntektsmelding1 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medJournalpostId("1") - .medInnsendingstidspunkt(now.minusDays(10)) - .medBeløp(BigDecimal.TEN) - .medKanalreferanse("AR123") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.TEN) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medJournalpostId("1") + .medInnsendingstidspunkt(now.minusDays(10)) + .medBeløp(BigDecimal.TEN) + .medKanalreferanse("AR123") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.TEN) + .build(); var inntektsmelding2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("2") - .medBeløp(BigDecimal.ONE) - .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("2") + .medBeløp(BigDecimal.ONE) + .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding3 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("3") - .medBeløp(BigDecimal.ONE) - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("3") + .medBeløp(BigDecimal.ONE) + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding4 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(10)) - .medJournalpostId("4") - .medBeløp(BigDecimal.ONE) - .leggTil(new Fravær(idag, idag.plusDays(5), null)) - .medRefusjon(BigDecimal.ONE) - .build(); - - repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), - List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); - - var grunnlag = repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, false); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("000000000"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(10)) + .medJournalpostId("4") + .medBeløp(BigDecimal.ONE) + .leggTil(new Fravær(idag, idag.plusDays(5), null)) + .medRefusjon(BigDecimal.ONE) + .build(); + + repository.lagre( + ko.getKoblingReferanse(), + ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), + List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3, inntektsmelding4, inntektsmelding1)); + + var grunnlag = + repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.OMSORGSPENGER, false); assertThat(grunnlag).hasSize(4); var inntektsmeldings = grunnlag.stream() - .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) - .filter(Optional::isPresent) - .map(Optional::get) - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .flatMap(Collection::stream) - .collect(Collectors.toList()); + .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) + .filter(Optional::isPresent) + .map(Optional::get) + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .flatMap(Collection::stream) + .collect(Collectors.toList()); assertThat(inntektsmeldings).hasSize(4); var aktivtGrunnlag = repository.hentInntektArbeidYtelseForBehandling(koblingReferanse); assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent(); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(1); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).contains(inntektsmelding3); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .hasSize(1); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .contains(inntektsmelding3); } @Test @@ -574,64 +652,71 @@ void skal_kun_hente_aktivt_grunnlag() { koblingRepository.lagre(ko); var inntektsmelding1 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("889640782"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medJournalpostId("1") - .medInnsendingstidspunkt(now.minusDays(10)) - .medBeløp(BigDecimal.TEN) - .medKanalreferanse("AR123") - .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.TEN) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("889640782"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medJournalpostId("1") + .medInnsendingstidspunkt(now.minusDays(10)) + .medBeløp(BigDecimal.TEN) + .medKanalreferanse("AR123") + .leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.TEN) + .build(); var inntektsmelding2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now.minusDays(9)) - .medJournalpostId("2") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR124") - .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now.minusDays(9)) + .medJournalpostId("2") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR124") + .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var inntektsmelding3 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822"))) - .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) - .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) - .medInnsendingstidspunkt(now) - .medKildesystem("NAV_NO") - .medJournalpostId("3") - .medBeløp(BigDecimal.ONE) - .medKanalreferanse("AR122") - .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) - .medRefusjon(BigDecimal.ONE) - .build(); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822"))) + .medArbeidsforholdId(InternArbeidsforholdRef.nullRef()) + .medArbeidsforholdId(EksternArbeidsforholdRef.nullRef()) + .medInnsendingstidspunkt(now) + .medKildesystem("NAV_NO") + .medJournalpostId("3") + .medBeløp(BigDecimal.ONE) + .medKanalreferanse("AR122") + .leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null)) + .medRefusjon(BigDecimal.ONE) + .build(); var b = "AR122".compareTo("AR124") > 0; - repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), - List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3)); + repository.lagre( + ko.getKoblingReferanse(), + ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()), + List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3)); - var grunnlag = repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.FORELDREPENGER, true); + var grunnlag = + repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.FORELDREPENGER, true); assertThat(grunnlag).hasSize(1); var inntektsmeldings = grunnlag.stream() - .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) - .filter(Optional::isPresent) - .map(Optional::get) - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .flatMap(Collection::stream) - .collect(Collectors.toList()); + .map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) + .filter(Optional::isPresent) + .map(Optional::get) + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .flatMap(Collection::stream) + .collect(Collectors.toList()); assertThat(inntektsmeldings).hasSize(2); var aktivtGrunnlag = repository.hentInntektArbeidYtelseForBehandling(koblingReferanse); assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent(); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(2); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream().anyMatch(i-> i.getKanalreferanse().equals(inntektsmelding1.getKanalreferanse()))).isTrue(); - assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream().anyMatch(i-> i.getKanalreferanse().equals(inntektsmelding3.getKanalreferanse()))).isTrue(); - + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()) + .hasSize(2); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream() + .anyMatch(i -> i.getKanalreferanse().equals(inntektsmelding1.getKanalreferanse()))) + .isTrue(); + assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream() + .anyMatch(i -> i.getKanalreferanse().equals(inntektsmelding3.getKanalreferanse()))) + .isTrue(); } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektArbeidYtelseTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektArbeidYtelseTjenesteTest.java index 588cc0b20..ba8330c01 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektArbeidYtelseTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektArbeidYtelseTjenesteTest.java @@ -3,19 +3,13 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; +import jakarta.persistence.EntityManager; import java.time.LocalDateTime; import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.UUID; - -import jakarta.persistence.EntityManager; - -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; - import no.nav.abakus.iaygrunnlag.request.Dataset; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlagBuilder; @@ -31,6 +25,9 @@ import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.OrgNummer; +import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; class InntektArbeidYtelseTjenesteTest { @@ -50,21 +47,31 @@ void skal_kopiere_iay_grunnlag() { iaygBuilder.setInntektsmeldinger(new InntektsmeldingAggregat(List.of(gammel, nå))); var iayr = Mockito.spy(new InntektArbeidYtelseRepository(Mockito.mock(EntityManager.class))); - Mockito.doNothing().when(iayr).lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); + Mockito.doNothing() + .when(iayr) + .lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); - Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())).when(iayr).hentInntektArbeidYtelseGrunnlagForBehandling(any()); + Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())) + .when(iayr) + .hentInntektArbeidYtelseGrunnlagForBehandling(any()); Mockito.doReturn(Map.of(gammel, nyArbeidsforholdInformasjon(), ny, nyArbeidsforholdInformasjon())) - .when(iayr) - .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); + .when(iayr) + .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); // Act var iayt = new InntektArbeidYtelseTjeneste(iayr); - iayt.kopierGrunnlagFraEksisterendeBehandling(null, null, null, new KoblingReferanse(UUID.randomUUID()), - new KoblingReferanse(UUID.randomUUID()), - EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), false); + iayt.kopierGrunnlagFraEksisterendeBehandling( + null, + null, + null, + new KoblingReferanse(UUID.randomUUID()), + new KoblingReferanse(UUID.randomUUID()), + EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), + false); // Assert - ArgumentCaptor iaygBuilderCaptor = ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); + ArgumentCaptor iaygBuilderCaptor = + ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); Mockito.verify(iayr).lagre(any(KoblingReferanse.class), iaygBuilderCaptor.capture()); var lagret = iaygBuilderCaptor.getValue(); var nyIay = lagret.build(); // denne skal aldri ha vært kalt siden vi stubbet ut @@ -73,7 +80,7 @@ void skal_kopiere_iay_grunnlag() { var sisteInntektsmeldinger = nyIay.getInntektsmeldinger().get().getInntektsmeldinger(); assertThat(sisteInntektsmeldinger).hasSize(1); var sisteIms = sisteInntektsmeldinger.get(0); - //Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver + // Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver assertThat(sisteIms.getInnsendingstidspunkt()).isEqualTo(ny.getInnsendingstidspunkt()); } @@ -90,21 +97,31 @@ void skal_kopiere_iay_grunnlag_og_beholde_opprinnelige_inntektsmeldinger() { iaygBuilder.setInntektsmeldinger(new InntektsmeldingAggregat(List.of(gammel, nå))); var iayr = Mockito.spy(new InntektArbeidYtelseRepository(Mockito.mock(EntityManager.class))); - Mockito.doNothing().when(iayr).lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); + Mockito.doNothing() + .when(iayr) + .lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); - Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())).when(iayr).hentInntektArbeidYtelseGrunnlagForBehandling(any()); + Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())) + .when(iayr) + .hentInntektArbeidYtelseGrunnlagForBehandling(any()); Mockito.doReturn(Map.of(gammel, nyArbeidsforholdInformasjon(), ny, nyArbeidsforholdInformasjon())) - .when(iayr) - .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); + .when(iayr) + .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); // Act var iayt = new InntektArbeidYtelseTjeneste(iayr); - iayt.kopierGrunnlagFraEksisterendeBehandling(null, null, null, new KoblingReferanse(UUID.randomUUID()), - new KoblingReferanse(UUID.randomUUID()), - EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), true); + iayt.kopierGrunnlagFraEksisterendeBehandling( + null, + null, + null, + new KoblingReferanse(UUID.randomUUID()), + new KoblingReferanse(UUID.randomUUID()), + EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), + true); // Assert - ArgumentCaptor iaygBuilderCaptor = ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); + ArgumentCaptor iaygBuilderCaptor = + ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); Mockito.verify(iayr).lagre(any(KoblingReferanse.class), iaygBuilderCaptor.capture()); var lagret = iaygBuilderCaptor.getValue(); var nyIay = lagret.build(); // denne skal aldri ha vært kalt siden vi stubbet ut @@ -113,9 +130,15 @@ void skal_kopiere_iay_grunnlag_og_beholde_opprinnelige_inntektsmeldinger() { var sisteInntektsmeldinger = nyIay.getInntektsmeldinger().get().getInntektsmeldinger(); assertThat(sisteInntektsmeldinger).hasSize(2); - //Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver - assertThat(sisteInntektsmeldinger.stream().map(Inntektsmelding::getJournalpostId).anyMatch(journalpostId -> "1".equals(journalpostId.getVerdi()))).isTrue(); - assertThat(sisteInntektsmeldinger.stream().map(Inntektsmelding::getJournalpostId).anyMatch(journalpostId -> "3".equals(journalpostId.getVerdi()))).isTrue(); + // Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver + assertThat(sisteInntektsmeldinger.stream() + .map(Inntektsmelding::getJournalpostId) + .anyMatch(journalpostId -> "1".equals(journalpostId.getVerdi()))) + .isTrue(); + assertThat(sisteInntektsmeldinger.stream() + .map(Inntektsmelding::getJournalpostId) + .anyMatch(journalpostId -> "3".equals(journalpostId.getVerdi()))) + .isTrue(); } @Test @@ -131,21 +154,31 @@ void skal_kopiere_inntektsmelding_og_ekstern_ref_hvis_finnes_paa_ny() { iaygBuilder.setInntektsmeldinger(new InntektsmeldingAggregat(List.of(gammel, nå))); var iayr = Mockito.spy(new InntektArbeidYtelseRepository(Mockito.mock(EntityManager.class))); - Mockito.doNothing().when(iayr).lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); + Mockito.doNothing() + .when(iayr) + .lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); - Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())).when(iayr).hentInntektArbeidYtelseGrunnlagForBehandling(any()); + Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())) + .when(iayr) + .hentInntektArbeidYtelseGrunnlagForBehandling(any()); Mockito.doReturn(Map.of(gammel, nyArbeidsforholdInformasjon(), ny, nyArbeidsforholdInformasjonMedReferanse())) - .when(iayr) - .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); + .when(iayr) + .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); // Act var iayt = new InntektArbeidYtelseTjeneste(iayr); - iayt.kopierGrunnlagFraEksisterendeBehandling(null, null, null, new KoblingReferanse(UUID.randomUUID()), - new KoblingReferanse(UUID.randomUUID()), - EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), false); + iayt.kopierGrunnlagFraEksisterendeBehandling( + null, + null, + null, + new KoblingReferanse(UUID.randomUUID()), + new KoblingReferanse(UUID.randomUUID()), + EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), + false); // Assert - ArgumentCaptor iaygBuilderCaptor = ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); + ArgumentCaptor iaygBuilderCaptor = + ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); Mockito.verify(iayr).lagre(any(KoblingReferanse.class), iaygBuilderCaptor.capture()); var lagret = iaygBuilderCaptor.getValue(); var nyIay = lagret.build(); // denne skal aldri ha vært kalt siden vi stubbet ut @@ -155,7 +188,7 @@ void skal_kopiere_inntektsmelding_og_ekstern_ref_hvis_finnes_paa_ny() { assertThat(sisteInntektsmeldinger).hasSize(1); var sisteIms = sisteInntektsmeldinger.get(0); nyIay.getArbeidsforholdInformasjon(); - //Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver + // Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver assertThat(sisteIms.getInnsendingstidspunkt()).isEqualTo(ny.getInnsendingstidspunkt()); } @@ -172,21 +205,31 @@ void skal_kopiere_inntektsmelding_og_ekstern_ref_hvis_finnes_fra_for() { iaygBuilder.setInntektsmeldinger(new InntektsmeldingAggregat(List.of(gammel, nå))); var iayr = Mockito.spy(new InntektArbeidYtelseRepository(Mockito.mock(EntityManager.class))); - Mockito.doNothing().when(iayr).lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); + Mockito.doNothing() + .when(iayr) + .lagre(any(KoblingReferanse.class), any(InntektArbeidYtelseGrunnlagBuilder.class)); - Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())).when(iayr).hentInntektArbeidYtelseGrunnlagForBehandling(any()); + Mockito.doAnswer(i -> Optional.of(iaygBuilder.build())) + .when(iayr) + .hentInntektArbeidYtelseGrunnlagForBehandling(any()); Mockito.doReturn(Map.of(gammel, nyArbeidsforholdInformasjonMedReferanse(), ny, nyArbeidsforholdInformasjon())) - .when(iayr) - .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); + .when(iayr) + .hentArbeidsforholdInfoInntektsmeldingerMapFor(any(), any(), any()); // Act var iayt = new InntektArbeidYtelseTjeneste(iayr); - iayt.kopierGrunnlagFraEksisterendeBehandling(null, null, null, new KoblingReferanse(UUID.randomUUID()), - new KoblingReferanse(UUID.randomUUID()), - EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), false); + iayt.kopierGrunnlagFraEksisterendeBehandling( + null, + null, + null, + new KoblingReferanse(UUID.randomUUID()), + new KoblingReferanse(UUID.randomUUID()), + EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.INNTEKTSMELDING, Dataset.REGISTER, Dataset.OVERSTYRT), + false); // Assert - ArgumentCaptor iaygBuilderCaptor = ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); + ArgumentCaptor iaygBuilderCaptor = + ArgumentCaptor.forClass(InntektArbeidYtelseGrunnlagBuilder.class); Mockito.verify(iayr).lagre(any(KoblingReferanse.class), iaygBuilderCaptor.capture()); var lagret = iaygBuilderCaptor.getValue(); var nyIay = lagret.build(); // denne skal aldri ha vært kalt siden vi stubbet ut @@ -195,32 +238,32 @@ void skal_kopiere_inntektsmelding_og_ekstern_ref_hvis_finnes_fra_for() { var sisteInntektsmeldinger = nyIay.getInntektsmeldinger().get().getInntektsmeldinger(); assertThat(sisteInntektsmeldinger).hasSize(1); var sisteIms = sisteInntektsmeldinger.get(0); - //Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver + // Assert skal kun ha siste inntektsmelding siden alle 3 hadde samme arbeidsgiver assertThat(sisteIms.getInnsendingstidspunkt()).isEqualTo(ny.getInnsendingstidspunkt()); } private Inntektsmelding nyInntektsmeldingMedReferanse(LocalDateTime innsendingstidspunkt, String journalpostId) { return InntektsmeldingBuilder.builder() - .medInnsendingstidspunkt(innsendingstidspunkt) - .medJournalpostId(journalpostId) - .medArbeidsgiver(arbeidsgiver) - .medArbeidsforholdId(internRef) - .build(); + .medInnsendingstidspunkt(innsendingstidspunkt) + .medJournalpostId(journalpostId) + .medArbeidsgiver(arbeidsgiver) + .medArbeidsforholdId(internRef) + .build(); } - private Inntektsmelding nyInntektsmelding(LocalDateTime innsendingstidspunkt, String journalpostId) { return InntektsmeldingBuilder.builder() - .medInnsendingstidspunkt(innsendingstidspunkt) - .medJournalpostId(journalpostId) - .medArbeidsgiver(arbeidsgiver) - .build(); + .medInnsendingstidspunkt(innsendingstidspunkt) + .medJournalpostId(journalpostId) + .medArbeidsgiver(arbeidsgiver) + .build(); } private ArbeidsforholdInformasjon nyArbeidsforholdInformasjonMedReferanse() { var builder = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); - builder.leggTilNyReferanse(new ArbeidsforholdReferanse(arbeidsgiver, internRef, EksternArbeidsforholdRef.ref("gammelt_referanse"))); + builder.leggTilNyReferanse(new ArbeidsforholdReferanse( + arbeidsgiver, internRef, EksternArbeidsforholdRef.ref("gammelt_referanse"))); return builder.build(); } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjenesteTest.java index 9ea56d2b3..b3068532a 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/InntektsmeldingerRestTjenesteTest.java @@ -7,11 +7,6 @@ import java.util.List; import java.util.Optional; import java.util.UUID; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; import no.nav.abakus.iaygrunnlag.JournalpostId; @@ -34,7 +29,9 @@ import no.nav.foreldrepenger.abakus.kobling.KoblingTjeneste; import no.nav.foreldrepenger.abakus.kobling.repository.KoblingRepository; import no.nav.foreldrepenger.abakus.kobling.repository.LåsRepository; - +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class InntektsmeldingerRestTjenesteTest { @@ -44,8 +41,10 @@ class InntektsmeldingerRestTjenesteTest { public static JpaExtension repositoryRule = new JpaExtension(); private final KoblingRepository repository = new KoblingRepository(repositoryRule.getEntityManager()); - private final KoblingTjeneste koblingTjeneste = new KoblingTjeneste(repository, new LåsRepository(repositoryRule.getEntityManager())); - private final InntektArbeidYtelseRepository iayRepository = new InntektArbeidYtelseRepository(repositoryRule.getEntityManager()); + private final KoblingTjeneste koblingTjeneste = + new KoblingTjeneste(repository, new LåsRepository(repositoryRule.getEntityManager())); + private final InntektArbeidYtelseRepository iayRepository = + new InntektArbeidYtelseRepository(repositoryRule.getEntityManager()); private InntektsmeldingerTjeneste imTjenesten; private InntektsmeldingerRestTjeneste tjeneste; @@ -53,33 +52,43 @@ class InntektsmeldingerRestTjenesteTest { @BeforeEach public void setUp() throws Exception { imTjenesten = new InntektsmeldingerTjeneste(iayRepository); - tjeneste = new InntektsmeldingerRestTjeneste(imTjenesten, koblingTjeneste, new InntektArbeidYtelseTjeneste(iayRepository)); + tjeneste = new InntektsmeldingerRestTjeneste( + imTjenesten, koblingTjeneste, new InntektArbeidYtelseTjeneste(iayRepository)); } @Test void skal_lagre_kobling_og_inntektsmelding() { - InntektsmeldingerDto im = new InntektsmeldingerDto().medInntektsmeldinger(List.of( - new InntektsmeldingDto(new Organisasjon("999999999"), new JournalpostId(UUID.randomUUID().toString()), LocalDateTime.now(), - LocalDate.now()).medStartDatoPermisjon(LocalDate.now()) - .medInntektBeløp(1) - .medInnsendingsårsak(InntektsmeldingInnsendingsårsakType.NY) - .medArbeidsforholdRef(new ArbeidsforholdRefDto(UUID.randomUUID().toString(), "ALTINN-01", Fagsystem.AAREGISTERET)) - .medKanalreferanse("KANAL") - .medKildesystem("Altinn"))); - InntektsmeldingerMottattRequest request = new InntektsmeldingerMottattRequest(SAKSNUMMER, UUID.randomUUID(), - new AktørIdPersonident("1234123412341"), YtelseType.FORELDREPENGER, im); + InntektsmeldingerDto im = new InntektsmeldingerDto() + .medInntektsmeldinger(List.of(new InntektsmeldingDto( + new Organisasjon("999999999"), + new JournalpostId(UUID.randomUUID().toString()), + LocalDateTime.now(), + LocalDate.now()) + .medStartDatoPermisjon(LocalDate.now()) + .medInntektBeløp(1) + .medInnsendingsårsak(InntektsmeldingInnsendingsårsakType.NY) + .medArbeidsforholdRef(new ArbeidsforholdRefDto( + UUID.randomUUID().toString(), "ALTINN-01", Fagsystem.AAREGISTERET)) + .medKanalreferanse("KANAL") + .medKildesystem("Altinn"))); + InntektsmeldingerMottattRequest request = new InntektsmeldingerMottattRequest( + SAKSNUMMER, UUID.randomUUID(), new AktørIdPersonident("1234123412341"), YtelseType.FORELDREPENGER, im); UuidDto uuidDto = tjeneste.lagreInntektsmeldinger(request); assertThat(uuidDto).isNotNull(); - Optional grunnlagOpt = iayRepository.hentInntektArbeidYtelseForReferanse( - new GrunnlagReferanse(uuidDto.getReferanse())); + Optional grunnlagOpt = + iayRepository.hentInntektArbeidYtelseForReferanse(new GrunnlagReferanse(uuidDto.getReferanse())); assertThat(grunnlagOpt).isPresent(); - assertThat(grunnlagOpt.flatMap(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) - .map(InntektsmeldingAggregat::getInntektsmeldinger)).hasValueSatisfying(imer -> assertThat(imer).hasSize(1)); - assertThat(grunnlagOpt.flatMap(InntektArbeidYtelseGrunnlag::getArbeidsforholdInformasjon) - .map(ArbeidsforholdInformasjon::getArbeidsforholdReferanser)).hasValueSatisfying(imer -> assertThat(imer).hasSize(1)); + assertThat(grunnlagOpt + .flatMap(InntektArbeidYtelseGrunnlag::getInntektsmeldinger) + .map(InntektsmeldingAggregat::getInntektsmeldinger)) + .hasValueSatisfying(imer -> assertThat(imer).hasSize(1)); + assertThat(grunnlagOpt + .flatMap(InntektArbeidYtelseGrunnlag::getArbeidsforholdInformasjon) + .map(ArbeidsforholdInformasjon::getArbeidsforholdReferanser)) + .hasValueSatisfying(imer -> assertThat(imer).hasSize(1)); } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/arbeidsforhold/ArbeidsforholdDtoTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/arbeidsforhold/ArbeidsforholdDtoTjenesteTest.java index 9f4066e9f..5d52d9421 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/arbeidsforhold/ArbeidsforholdDtoTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/arbeidsforhold/ArbeidsforholdDtoTjenesteTest.java @@ -8,17 +8,9 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Optional; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; import no.nav.foreldrepenger.abakus.aktor.AktørTjeneste; @@ -35,22 +27,28 @@ import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.vedtak.konfig.Tid; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) class ArbeidsforholdDtoTjenesteTest { @Mock private ArbeidsforholdTjeneste arbeidsforholdTjeneste; + @Mock private AktørTjeneste aktørConsumer; + private ArbeidsforholdDtoTjeneste arbeidsforholdDtoTjeneste; private static final LocalDate FRA_DATO = LocalDate.now().minusWeeks(2); private static final LocalDate TIL_DATO = LocalDate.now().plusWeeks(2); - -@BeforeEach -void setUp() { - arbeidsforholdDtoTjeneste = new ArbeidsforholdDtoTjeneste(arbeidsforholdTjeneste, aktørConsumer); -} + @BeforeEach + void setUp() { + arbeidsforholdDtoTjeneste = new ArbeidsforholdDtoTjeneste(arbeidsforholdTjeneste, aktørConsumer); + } @Test void mapArbeidsforholdMedPermisjoner() { @@ -62,47 +60,57 @@ void mapArbeidsforholdMedPermisjoner() { var orgnr = new OrgNummer(KUNSTIG_ORG); var arbeidsgiver = new Organisasjon(orgnr.getId()); - var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator(arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); + var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator( + arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); var arbeidsavtalerTilMap = List.of( - lagArbeidsavtale(FRA_DATO, FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(30)), - lagArbeidsavtale(FRA_DATO.plusWeeks(2), null, BigDecimal.valueOf(70)) - ); + lagArbeidsavtale(FRA_DATO, FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(30)), + lagArbeidsavtale(FRA_DATO.plusWeeks(2), null, BigDecimal.valueOf(70))); var permisjonerTilMap = List.of( - lagPermisjon(FRA_DATO, FRA_DATO.plusWeeks(1), BigDecimal.ZERO), - lagPermisjon(FRA_DATO.plusWeeks(2), Tid.TIDENES_ENDE, BigDecimal.valueOf(20)) - ); + lagPermisjon(FRA_DATO, FRA_DATO.plusWeeks(1), BigDecimal.ZERO), + lagPermisjon(FRA_DATO.plusWeeks(2), Tid.TIDENES_ENDE, BigDecimal.valueOf(20))); var arbeidsforhold = List.of(lagArbeidsforhold(arbeidsgiver, arbeidsavtalerTilMap, permisjonerTilMap)); when(aktørConsumer.hentIdentForAktør(any())).thenReturn(Optional.of(personIdent)); - when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall )).thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); + when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall)) + .thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); var arbeidsforholdDto = arbeidsforholdDtoTjeneste.mapArbForholdOgPermisjoner(aktørId, FRA_DATO, TIL_DATO); assertThat(arbeidsforholdDto).hasSize(1); assertThat(arbeidsforholdDto.getFirst().getType()).isEqualTo(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD); - assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()).isEqualTo(eksternRef.getReferanse()); + assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()) + .isEqualTo(eksternRef.getReferanse()); assertThat(arbeidsforholdDto.getFirst().getArbeidsgiver().getIdent()).isEqualTo(KUNSTIG_ORG); assertThat(arbeidsforholdDto.getFirst().getArbeidsavtaler()).hasSize(2); var arbeidsavtaler = arbeidsforholdDto.getFirst().getArbeidsavtaler(); - assertThat(arbeidsavtaler.getFirst().periode().getFom()).isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleFom()); - assertThat(arbeidsavtaler.getFirst().periode().getTom()).isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); - assertThat(arbeidsavtaler.getFirst().stillingsprosent()).isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); - assertThat(arbeidsavtaler.get(1).periode().getFom()).isEqualTo(arbeidsavtalerTilMap.get(1).getArbeidsavtaleFom()); + assertThat(arbeidsavtaler.getFirst().periode().getFom()) + .isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleFom()); + assertThat(arbeidsavtaler.getFirst().periode().getTom()) + .isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); + assertThat(arbeidsavtaler.getFirst().stillingsprosent()) + .isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); + assertThat(arbeidsavtaler.get(1).periode().getFom()) + .isEqualTo(arbeidsavtalerTilMap.get(1).getArbeidsavtaleFom()); assertThat(arbeidsavtaler.get(1).periode().getTom()).isEqualTo(TIL_DATO); - assertThat(arbeidsavtaler.get(1).stillingsprosent()).isEqualByComparingTo(arbeidsavtalerTilMap.get(1).getStillingsprosent()); + assertThat(arbeidsavtaler.get(1).stillingsprosent()) + .isEqualByComparingTo(arbeidsavtalerTilMap.get(1).getStillingsprosent()); var permisjoner = arbeidsforholdDto.getFirst().getPermisjoner(); - assertThat(permisjoner.getFirst().getPeriode().getFom()).isEqualTo(permisjonerTilMap.getFirst().getPermisjonFom()); - assertThat(permisjoner.getFirst().getPeriode().getTom()).isEqualTo(permisjonerTilMap.getFirst().getPermisjonTom()); - assertThat(permisjoner.getFirst().getProsentsats()).isEqualByComparingTo(permisjonerTilMap.getFirst().getPermisjonsprosent()); + assertThat(permisjoner.getFirst().getPeriode().getFom()) + .isEqualTo(permisjonerTilMap.getFirst().getPermisjonFom()); + assertThat(permisjoner.getFirst().getPeriode().getTom()) + .isEqualTo(permisjonerTilMap.getFirst().getPermisjonTom()); + assertThat(permisjoner.getFirst().getProsentsats()) + .isEqualByComparingTo(permisjonerTilMap.getFirst().getPermisjonsprosent()); assertThat(permisjoner.getFirst().getType()).isEqualTo(PermisjonsbeskrivelseType.PERMISJON_MED_FORELDREPENGER); - assertThat(permisjoner.get(1).getPeriode().getFom()).isEqualTo(permisjonerTilMap.get(1).getPermisjonFom()); + assertThat(permisjoner.get(1).getPeriode().getFom()) + .isEqualTo(permisjonerTilMap.get(1).getPermisjonFom()); assertThat(permisjoner.get(1).getPeriode().getTom()).isEqualTo(TIL_DATO); - assertThat(permisjoner.get(1).getProsentsats()).isEqualByComparingTo(permisjonerTilMap.get(1).getPermisjonsprosent()); + assertThat(permisjoner.get(1).getProsentsats()) + .isEqualByComparingTo(permisjonerTilMap.get(1).getPermisjonsprosent()); assertThat(permisjoner.get(1).getType()).isEqualTo(PermisjonsbeskrivelseType.PERMISJON_MED_FORELDREPENGER); - } @Test @@ -115,43 +123,49 @@ void mapArbeidsforholdMedOverlappendePermisjoner() { var orgnr = new OrgNummer(KUNSTIG_ORG); var arbeidsgiver = new Organisasjon(orgnr.getId()); - var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator(arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); + var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator( + arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); var arbeidsavtalerTilMap = List.of( - lagArbeidsavtale(FRA_DATO, FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(30)), - lagArbeidsavtale(FRA_DATO.plusWeeks(2), null, BigDecimal.valueOf(70)) - ); + lagArbeidsavtale(FRA_DATO, FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(30)), + lagArbeidsavtale(FRA_DATO.plusWeeks(2), null, BigDecimal.valueOf(70))); var permisjonerTilMap = List.of( - lagPermisjon(FRA_DATO, FRA_DATO.plusWeeks(1), BigDecimal.ZERO), - lagPermisjon(FRA_DATO.plusDays(1), FRA_DATO.plusDays(5), BigDecimal.valueOf(100)), - lagPermisjon(FRA_DATO.plusWeeks(2), Tid.TIDENES_ENDE, BigDecimal.valueOf(20)) - ); + lagPermisjon(FRA_DATO, FRA_DATO.plusWeeks(1), BigDecimal.ZERO), + lagPermisjon(FRA_DATO.plusDays(1), FRA_DATO.plusDays(5), BigDecimal.valueOf(100)), + lagPermisjon(FRA_DATO.plusWeeks(2), Tid.TIDENES_ENDE, BigDecimal.valueOf(20))); var arbeidsforhold = List.of(lagArbeidsforhold(arbeidsgiver, arbeidsavtalerTilMap, permisjonerTilMap)); when(aktørConsumer.hentIdentForAktør(any())).thenReturn(Optional.of(personIdent)); - when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall )).thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); + when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall)) + .thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); var arbeidsforholdDto = arbeidsforholdDtoTjeneste.mapArbForholdOgPermisjoner(aktørId, FRA_DATO, TIL_DATO); assertThat(arbeidsforholdDto).hasSize(1); assertThat(arbeidsforholdDto.getFirst().getType()).isEqualTo(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD); - assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()).isEqualTo(eksternRef.getReferanse()); + assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()) + .isEqualTo(eksternRef.getReferanse()); assertThat(arbeidsforholdDto.getFirst().getArbeidsgiver().getIdent()).isEqualTo(KUNSTIG_ORG); assertThat(arbeidsforholdDto.getFirst().getArbeidsavtaler()).hasSize(2); var arbeidsavtaler = arbeidsforholdDto.getFirst().getArbeidsavtaler(); - assertThat(arbeidsavtaler.getFirst().periode().getFom()).isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleFom()); - assertThat(arbeidsavtaler.getFirst().periode().getTom()).isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); - assertThat(arbeidsavtaler.getFirst().stillingsprosent()).isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); - assertThat(arbeidsavtaler.get(1).periode().getFom()).isEqualTo(arbeidsavtalerTilMap.get(1).getArbeidsavtaleFom()); + assertThat(arbeidsavtaler.getFirst().periode().getFom()) + .isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleFom()); + assertThat(arbeidsavtaler.getFirst().periode().getTom()) + .isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); + assertThat(arbeidsavtaler.getFirst().stillingsprosent()) + .isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); + assertThat(arbeidsavtaler.get(1).periode().getFom()) + .isEqualTo(arbeidsavtalerTilMap.get(1).getArbeidsavtaleFom()); assertThat(arbeidsavtaler.get(1).periode().getTom()).isEqualTo(TIL_DATO); - assertThat(arbeidsavtaler.get(1).stillingsprosent()).isEqualByComparingTo(arbeidsavtalerTilMap.get(1).getStillingsprosent()); + assertThat(arbeidsavtaler.get(1).stillingsprosent()) + .isEqualByComparingTo(arbeidsavtalerTilMap.get(1).getStillingsprosent()); var permisjoner = arbeidsforholdDto.getFirst().getPermisjoner(); assertThat(permisjoner).hasSize(5); - assertThat(permisjoner.getFirst().getPeriode().getFom()).isEqualTo(permisjonerTilMap.getFirst().getPermisjonFom()); + assertThat(permisjoner.getFirst().getPeriode().getFom()) + .isEqualTo(permisjonerTilMap.getFirst().getPermisjonFom()); assertThat(permisjoner.get(4).getPeriode().getTom()).isEqualTo(TIL_DATO); - } @Test @@ -164,57 +178,62 @@ void mapArbeidsforholdUtenPermisjoner() { var orgnr = new OrgNummer(KUNSTIG_ORG); var arbeidsgiver = new Organisasjon(orgnr.getId()); - var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator(arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); + var arbeidsgiverIdentifikator = new ArbeidsforholdIdentifikator( + arbeidsgiver, eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()); var arbeidsavtalerTilMap = List.of( - lagArbeidsavtale(FRA_DATO.minusWeeks(1), FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(100)) - ); + lagArbeidsavtale(FRA_DATO.minusWeeks(1), FRA_DATO.plusWeeks(2).minusDays(1), BigDecimal.valueOf(100))); var arbeidsforhold = List.of(lagArbeidsforhold(arbeidsgiver, arbeidsavtalerTilMap, Collections.emptyList())); when(aktørConsumer.hentIdentForAktør(any())).thenReturn(Optional.of(personIdent)); - when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall)).thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); + when(arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(personIdent, aktørId, intervall)) + .thenReturn(Map.of(arbeidsgiverIdentifikator, arbeidsforhold)); var arbeidsforholdDto = arbeidsforholdDtoTjeneste.mapArbForholdOgPermisjoner(aktørId, FRA_DATO, TIL_DATO); assertThat(arbeidsforholdDto).hasSize(1); assertThat(arbeidsforholdDto.getFirst().getType()).isEqualTo(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD); - assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()).isEqualTo(eksternRef.getReferanse()); + assertThat(arbeidsforholdDto.getFirst().getArbeidsforholdId().getEksternReferanse()) + .isEqualTo(eksternRef.getReferanse()); assertThat(arbeidsforholdDto.getFirst().getArbeidsgiver().getIdent()).isEqualTo(KUNSTIG_ORG); assertThat(arbeidsforholdDto.getFirst().getArbeidsavtaler()).hasSize(1); var arbeidsavtaler = arbeidsforholdDto.getFirst().getArbeidsavtaler(); assertThat(arbeidsavtaler.getFirst().periode().getFom()).isEqualTo(FRA_DATO); - assertThat(arbeidsavtaler.getFirst().periode().getTom()).isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); - assertThat(arbeidsavtaler.getFirst().stillingsprosent()).isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); + assertThat(arbeidsavtaler.getFirst().periode().getTom()) + .isEqualTo(arbeidsavtalerTilMap.getFirst().getArbeidsavtaleTom()); + assertThat(arbeidsavtaler.getFirst().stillingsprosent()) + .isEqualByComparingTo(arbeidsavtalerTilMap.getFirst().getStillingsprosent()); assertThat(arbeidsforholdDto.getFirst().getPermisjoner()).isEmpty(); } private Permisjon lagPermisjon(LocalDate fraDato, LocalDate tilDato, BigDecimal permisjonProsent) { return new Permisjon.Builder() - .medPermisjonsÅrsak(PermisjonsbeskrivelseType.PERMISJON_MED_FORELDREPENGER.getOffisiellKode()) - .medPermisjonFom(fraDato) - .medPermisjonTom(tilDato) - .medPermisjonsprosent(permisjonProsent) - .build(); + .medPermisjonsÅrsak(PermisjonsbeskrivelseType.PERMISJON_MED_FORELDREPENGER.getOffisiellKode()) + .medPermisjonFom(fraDato) + .medPermisjonTom(tilDato) + .medPermisjonsprosent(permisjonProsent) + .build(); } private Arbeidsavtale lagArbeidsavtale(LocalDate fraDato, LocalDate tilDato, BigDecimal stillingsprosent) { return new Arbeidsavtale.Builder() - .medArbeidsavtaleFom(fraDato) - .medArbeidsavtaleTom(tilDato) - .medStillingsprosent(stillingsprosent) - .build(); + .medArbeidsavtaleFom(fraDato) + .medArbeidsavtaleTom(tilDato) + .medStillingsprosent(stillingsprosent) + .build(); } - private Arbeidsforhold lagArbeidsforhold(Arbeidsgiver arbeidsgiver, List arbeidsavtaler, List permisjoner) { + private Arbeidsforhold lagArbeidsforhold( + Arbeidsgiver arbeidsgiver, List arbeidsavtaler, List permisjoner) { return new Arbeidsforhold.Builder() - .medArbeidFom(FRA_DATO) - .medArbeidTom(TIL_DATO) - .medType(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()) - .medArbeidsgiver(arbeidsgiver) - .medArbeidsavtaler(arbeidsavtaler) - .medPermisjon(permisjoner) - .build(); + .medArbeidFom(FRA_DATO) + .medArbeidTom(TIL_DATO) + .medType(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getOffisiellKode()) + .medArbeidsgiver(arbeidsgiver) + .medArbeidsavtaler(arbeidsavtaler) + .medPermisjon(permisjoner) + .build(); } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldingerTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldingerTest.java index 96e931e02..fea635bbb 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldingerTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/dto/iay/MapInntektsmeldingerTest.java @@ -10,10 +10,6 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.abakus.iaygrunnlag.inntektsmelding.v1.InntektsmeldingerDto; import no.nav.abakus.iaygrunnlag.inntektsmelding.v1.RefusjonskravDatoerDto; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; @@ -39,6 +35,8 @@ import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.foreldrepenger.abakus.typer.Saksnummer; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class MapInntektsmeldingerTest { @@ -49,8 +47,10 @@ class MapInntektsmeldingerTest { public static JpaExtension jpaExtension = new JpaExtension(); private final KoblingRepository repository = new KoblingRepository(jpaExtension.getEntityManager()); - private final KoblingTjeneste koblingTjeneste = new KoblingTjeneste(repository, new LåsRepository(jpaExtension.getEntityManager())); - private final InntektArbeidYtelseRepository iayRepository = new InntektArbeidYtelseRepository(jpaExtension.getEntityManager()); + private final KoblingTjeneste koblingTjeneste = + new KoblingTjeneste(repository, new LåsRepository(jpaExtension.getEntityManager())); + private final InntektArbeidYtelseRepository iayRepository = + new InntektArbeidYtelseRepository(jpaExtension.getEntityManager()); private final InntektArbeidYtelseTjeneste iayTjeneste = new InntektArbeidYtelseTjeneste(iayRepository); @Test @@ -66,19 +66,20 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater() { koblingTjeneste.lagre(kobling1); koblingTjeneste.lagre(kobling2); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("910909088"))) - .medBeløp(BigDecimal.TEN) - .medInnsendingstidspunkt(LocalDateTime.now()) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); - ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("910909088"))) + .medBeløp(BigDecimal.TEN) + .medInnsendingstidspunkt(LocalDateTime.now()) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); + ArbeidsforholdInformasjonBuilder arbeidsforholdInformasjon = + ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); iayRepository.lagre(koblingReferanse, arbeidsforholdInformasjon, List.of(im)); iayRepository.lagre(koblingReferanse2, arbeidsforholdInformasjon, List.of(im)); // Act - Map alleIm = iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, - foreldrepenger); + Map alleIm = + iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, foreldrepenger); InntektsmeldingerDto inntektsmeldingerDto = MapInntektsmeldinger.mapUnikeInntektsmeldingerFraGrunnlag(alleIm); // Assert @@ -86,7 +87,8 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater() { } @Test - void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_versjoner_av_arbeidsforholdInformasjon() { + void + skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_versjoner_av_arbeidsforholdInformasjon() { // Arrange Saksnummer saksnummer = new Saksnummer(SAKSNUMMER); KoblingReferanse koblingReferanse = new KoblingReferanse(UUID.randomUUID()); @@ -98,36 +100,38 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_vers Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); InternArbeidsforholdRef ref = InternArbeidsforholdRef.ref(internArbeidsforholdRef); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medArbeidsforholdId(ref) - .medBeløp(BigDecimal.TEN) - .medInnsendingstidspunkt(LocalDateTime.now()) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medArbeidsforholdId(ref) + .medBeløp(BigDecimal.TEN) + .medInnsendingstidspunkt(LocalDateTime.now()) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); EksternArbeidsforholdRef eksternRef = EksternArbeidsforholdRef.ref("EksternRef"); - ArbeidsforholdInformasjonBuilder arbeidsforholdInfo1 = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); + ArbeidsforholdInformasjonBuilder arbeidsforholdInfo1 = + ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); arbeidsforholdInfo1.leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref, eksternRef)); iayRepository.lagre(koblingReferanse, arbeidsforholdInfo1, List.of(im)); - ArbeidsforholdInformasjonBuilder arbeidsforholdInfo2 = ArbeidsforholdInformasjonBuilder.builder(Optional.of(arbeidsforholdInfo1.build())) - .leggTil(ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) - .medArbeidsforholdRef(ref) - .medArbeidsgiver(virksomhet) - .medHandling(ArbeidsforholdHandlingType.BASERT_PÅ_INNTEKTSMELDING)); + ArbeidsforholdInformasjonBuilder arbeidsforholdInfo2 = ArbeidsforholdInformasjonBuilder.builder( + Optional.of(arbeidsforholdInfo1.build())) + .leggTil(ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) + .medArbeidsforholdRef(ref) + .medArbeidsgiver(virksomhet) + .medHandling(ArbeidsforholdHandlingType.BASERT_PÅ_INNTEKTSMELDING)); InntektArbeidYtelseGrunnlagBuilder grBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere( - iayRepository.hentInntektArbeidYtelseForBehandling(koblingReferanse)).medInformasjon(arbeidsforholdInfo2.build()); + iayRepository.hentInntektArbeidYtelseForBehandling(koblingReferanse)) + .medInformasjon(arbeidsforholdInfo2.build()); iayRepository.lagre(koblingReferanse, grBuilder); // Act - Map alleIm = iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, - foreldrepenger); + Map alleIm = + iayTjeneste.hentArbeidsforholdinfoInntektsmeldingerMapFor(aktørId, saksnummer, foreldrepenger); InntektsmeldingerDto inntektsmeldingerDto = MapInntektsmeldinger.mapUnikeInntektsmeldingerFraGrunnlag(alleIm); // Assert assertThat(inntektsmeldingerDto.getInntektsmeldinger().size()).isEqualTo(1); } - @Test void skal_mappe_en_inntektsmelding_til_første_refusjonsdato_og_første_innsendelsesdato() { // Arrange @@ -141,32 +145,41 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_vers LocalDate startPermisjon = LocalDate.now().minusDays(10); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, foreldrepenger); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, foreldrepenger).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = koblingTjeneste + .hentSisteFor(aktørId, saksnummer, foreldrepenger) + .orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(1); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getArbeidsgiver().getIdent()).isEqualTo(virksomhet.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()).isEqualTo(startPermisjon); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt.toLocalDate()); + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(0) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()) + .isEqualTo(startPermisjon); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt.toLocalDate()); } @Test - void skal_mappe_en_inntektsmelding_til_første_refusjonsdato_og_første_innsendelsesdato_når_startdato_permisjon_er_null() { + void + skal_mappe_en_inntektsmelding_til_første_refusjonsdato_og_første_innsendelsesdato_når_startdato_permisjon_er_null() { // Arrange Saksnummer saksnummer = new Saksnummer(SAKSNUMMER); KoblingReferanse koblingReferanse = new KoblingReferanse(UUID.randomUUID()); @@ -177,27 +190,34 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_vers LocalDateTime innsendingstidspunkt = LocalDateTime.now(); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = + koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(1); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getArbeidsgiver().getIdent()).isEqualTo(virksomhet.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()).isNull(); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt.toLocalDate()); + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(0) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()) + .isNull(); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt.toLocalDate()); } @Test @@ -212,31 +232,32 @@ void skal_hente_alle_inntektsmeldinger_for_fagsak_uten_duplikater_med_flere_vers LocalDate startPermisjon = LocalDate.now().minusDays(10); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); Inntektsmelding im2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.ZERO) - .medRefusjon(BigDecimal.ZERO) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt.plusDays(10)) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id2") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.ZERO) + .medRefusjon(BigDecimal.ZERO) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt.plusDays(10)) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id2") + .build(); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im)); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im2)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = + koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(0); @@ -254,39 +275,45 @@ void skal_mappe_til_refusjonskravdatoer_for_flere_inntektsmeldinger_med_refusjon LocalDate startPermisjon = LocalDate.now().minusDays(10); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); Inntektsmelding im2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.ZERO) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt.plusDays(10)) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id2") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.ZERO) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt.plusDays(10)) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id2") + .build(); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im)); iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im2)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = + koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(1); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getArbeidsgiver().getIdent()).isEqualTo(virksomhet.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()).isEqualTo(startPermisjon); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt.toLocalDate()); - + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(0) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()) + .isEqualTo(startPermisjon); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt.toLocalDate()); } @Test @@ -302,44 +329,57 @@ void skal_mappe_til_refusjonskravdatoer_for_flere_arbeidsgivere_med_refusjonskra Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); Arbeidsgiver virksomhet2 = Arbeidsgiver.virksomhet(new OrgNummer("995428563")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); LocalDateTime innsendingstidspunkt2 = innsendingstidspunkt.plusDays(10); Inntektsmelding im2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet2) - .medBeløp(BigDecimal.ZERO) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt2) - .medMottattDato(innsendingstidspunkt2.toLocalDate()) - .medJournalpostId("journalpost_id2") - .build(); - iayRepository.lagre(koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im, im2)); + .medArbeidsgiver(virksomhet2) + .medBeløp(BigDecimal.ZERO) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt2) + .medMottattDato(innsendingstidspunkt2.toLocalDate()) + .medJournalpostId("journalpost_id2") + .build(); + iayRepository.lagre( + koblingReferanse, ArbeidsforholdInformasjonBuilder.builder(Optional.empty()), List.of(im, im2)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = + koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(2); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getArbeidsgiver().getIdent()).isEqualTo(virksomhet2.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()).isEqualTo(startPermisjon); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt2.toLocalDate()); - - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(1).getArbeidsgiver().getIdent()).isEqualTo(virksomhet.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(1).getFørsteDagMedRefusjonskrav()).isEqualTo(startPermisjon); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(1).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt.toLocalDate()); - + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(0) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet2.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()) + .isEqualTo(startPermisjon); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt2.toLocalDate()); + + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(1) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(1).getFørsteDagMedRefusjonskrav()) + .isEqualTo(startPermisjon); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(1).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt.toLocalDate()); } @Test @@ -354,44 +394,51 @@ void skal_mappe_til_refusjonskravdatoer_for_flere_arbeidsforhold_med_refusjonskr LocalDate startPermisjon = LocalDate.now().minusDays(10); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(new OrgNummer("910909088")); ArbeidsforholdInformasjonBuilder builder = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); - InternArbeidsforholdRef ref1 = builder.finnEllerOpprett(virksomhet, EksternArbeidsforholdRef.ref("rgjg98jj3j43")); + InternArbeidsforholdRef ref1 = + builder.finnEllerOpprett(virksomhet, EksternArbeidsforholdRef.ref("rgjg98jj3j43")); Inntektsmelding im = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medArbeidsforholdId(ref1) - .medBeløp(BigDecimal.TEN) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt) - .medMottattDato(LocalDate.now()) - .medJournalpostId("journalpost_id") - .build(); + .medArbeidsgiver(virksomhet) + .medArbeidsforholdId(ref1) + .medBeløp(BigDecimal.TEN) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt) + .medMottattDato(LocalDate.now()) + .medJournalpostId("journalpost_id") + .build(); LocalDateTime innsendingstidspunkt2 = innsendingstidspunkt.plusDays(10); - InternArbeidsforholdRef ref2 = builder.finnEllerOpprett(virksomhet, EksternArbeidsforholdRef.ref("28r9283yr92")); + InternArbeidsforholdRef ref2 = + builder.finnEllerOpprett(virksomhet, EksternArbeidsforholdRef.ref("28r9283yr92")); Inntektsmelding im2 = InntektsmeldingBuilder.builder() - .medArbeidsgiver(virksomhet) - .medArbeidsforholdId(ref2) - .medBeløp(BigDecimal.ZERO) - .medRefusjon(BigDecimal.TEN) - .medStartDatoPermisjon(startPermisjon) - .medInnsendingstidspunkt(innsendingstidspunkt2) - .medMottattDato(innsendingstidspunkt2.toLocalDate()) - .medJournalpostId("journalpost_id2") - .build(); + .medArbeidsgiver(virksomhet) + .medArbeidsforholdId(ref2) + .medBeløp(BigDecimal.ZERO) + .medRefusjon(BigDecimal.TEN) + .medStartDatoPermisjon(startPermisjon) + .medInnsendingstidspunkt(innsendingstidspunkt2) + .medMottattDato(innsendingstidspunkt2.toLocalDate()) + .medJournalpostId("journalpost_id2") + .build(); iayRepository.lagre(koblingReferanse, builder, List.of(im, im2)); // Act Set alleIm = iayTjeneste.hentAlleInntektsmeldingerFor(aktørId, saksnummer, ytelseType); - Kobling nyesteKobling = koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); - RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer(alleIm, - iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); + Kobling nyesteKobling = + koblingTjeneste.hentSisteFor(aktørId, saksnummer, ytelseType).orElseThrow(); + RefusjonskravDatoerDto refusjonskravDatoerDto = MapInntektsmeldinger.mapRefusjonskravdatoer( + alleIm, iayTjeneste.hentAggregat(nyesteKobling.getKoblingReferanse())); // Assert assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().size()).isEqualTo(1); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getArbeidsgiver().getIdent()).isEqualTo(virksomhet.getIdentifikator()); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()).isEqualTo(startPermisjon); - assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()).isEqualTo( - innsendingstidspunkt.toLocalDate()); - + assertThat(refusjonskravDatoerDto + .getRefusjonskravDatoer() + .get(0) + .getArbeidsgiver() + .getIdent()) + .isEqualTo(virksomhet.getIdentifikator()); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteDagMedRefusjonskrav()) + .isEqualTo(startPermisjon); + assertThat(refusjonskravDatoerDto.getRefusjonskravDatoer().get(0).getFørsteInnsendingAvRefusjonskrav()) + .isEqualTo(innsendingstidspunkt.toLocalDate()); } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/migrering/DatoTidkonverteringTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/migrering/DatoTidkonverteringTest.java index 0fa29ca2d..ccb493f9d 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/migrering/DatoTidkonverteringTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/iay/tjeneste/migrering/DatoTidkonverteringTest.java @@ -7,10 +7,8 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.ZonedDateTime; - import org.junit.jupiter.api.Test; - class DatoTidkonverteringTest { private static final LocalDate VINTERDAG = LocalDate.of(2019, 02, 17); @@ -31,13 +29,10 @@ void skal_konvertere_localdatetime_til_zulu_og_tilbake() throws Exception { var zulu1 = zulu0.atZoneSameInstant(ZoneId.of("UTC")).toOffsetDateTime(); System.out.println(zulu1); - // zulu til localdatetime var ts1_1 = zulu1.atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime(); System.out.println(ts1_1); assertThat(ts1).isEqualTo(ts1_1); - } - } diff --git "a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjenesteTest.java" "b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjenesteTest.java" index 9bf40f7f5..637476456 100644 --- "a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjenesteTest.java" +++ "b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ByggL\303\270nnsinntektInntektTjenesteTest.java" @@ -7,9 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.abakus.iaygrunnlag.kodeverk.LønnsinntektBeskrivelse; @@ -19,6 +16,7 @@ import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.InntektsInformasjon; import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.Månedsinntekt; import no.nav.foreldrepenger.abakus.typer.OrgNummer; +import org.junit.jupiter.api.Test; class ByggLønnsinntektInntektTjenesteTest { @@ -27,20 +25,22 @@ class ByggLønnsinntektInntektTjenesteTest { @Test void skal_mappe_svalbarinntekt() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - var svalbardinntekt = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) - .build(); - var inntektsInformasjon = new InntektsInformasjon(List.of(svalbardinntekt), InntektskildeType.INNTEKT_BEREGNING); + var svalbardinntekt = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) + .build(); + var inntektsInformasjon = + new InntektsInformasjon(List.of(svalbardinntekt), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -56,33 +56,35 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.TEN)).isEqualTo(0); } - @Test void skal_prioritere_NETTOLØNN_FOR_SJØFOLK() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - var svalbardinntekt = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) - .build(); - - var særskiltFradrag = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK.getOffisiellKode()) - .build(); - - var inntektsInformasjon = new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); + var svalbardinntekt = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) + .build(); + + var særskiltFradrag = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK.getOffisiellKode()) + .build(); + + var inntektsInformasjon = + new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -94,36 +96,41 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.UDEFINERT); - assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))).isEqualTo(0); + assertThat(inntektspost.getSkatteOgAvgiftsregelType()) + .isEqualTo(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))) + .isEqualTo(0); } @Test void skal_prioritere_SÆRSKILT_FRADRAG_FOR_SJØFOLK() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - var svalbardinntekt = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) - .build(); - - var særskiltFradrag = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK.getOffisiellKode()) - .build(); - - var inntektsInformasjon = new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); + var svalbardinntekt = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SVALBARD.getOffisiellKode()) + .build(); + + var særskiltFradrag = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK.getOffisiellKode()) + .build(); + + var inntektsInformasjon = + new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -135,36 +142,41 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.UDEFINERT); - assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))).isEqualTo(0); + assertThat(inntektspost.getSkatteOgAvgiftsregelType()) + .isEqualTo(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))) + .isEqualTo(0); } @Test void skal_prioritere_SÆRSKILT_FRADRAG_FOR_SJØFOLK_foran_NETTOLØNN_FOR_SJØFOLK() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - var svalbardinntekt = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK.getOffisiellKode()) - .build(); - - var særskiltFradrag = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK.getOffisiellKode()) - .build(); - - var inntektsInformasjon = new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); + var svalbardinntekt = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN_FOR_SJØFOLK.getOffisiellKode()) + .build(); + + var særskiltFradrag = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK.getOffisiellKode()) + .build(); + + var inntektsInformasjon = + new InntektsInformasjon(List.of(svalbardinntekt, særskiltFradrag), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -176,32 +188,34 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.UDEFINERT); - assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))).isEqualTo(0); + assertThat(inntektspost.getSkatteOgAvgiftsregelType()) + .isEqualTo(SkatteOgAvgiftsregelType.SÆRSKILT_FRADRAG_FOR_SJØFOLK); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))) + .isEqualTo(0); } - @Test void skal_mappe_omsorgsstønad() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - - var omsorgsstønad = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medLønnsbeskrivelseKode(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) - .build(); + var omsorgsstønad = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medLønnsbeskrivelseKode( + LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) + .build(); var inntektsInformasjon = new InntektsInformasjon(List.of(omsorgsstønad), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -213,41 +227,45 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.NETTOLØNN); - assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(10))).isEqualTo(0); + assertThat(inntektspost.getLønnsinntektBeskrivelse()) + .isEqualTo(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(10))) + .isEqualTo(0); } @Test void skal_mappe_omsorgsstønad_ved_fleire_beskrivelser() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - - var omsorgsstønad = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medLønnsbeskrivelseKode(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()) - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) - .build(); - - var ukjentLønn = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medLønnsbeskrivelseKode("enUkjentKode") - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) - .build(); - - - var inntektsInformasjon = new InntektsInformasjon(List.of(omsorgsstønad, ukjentLønn), InntektskildeType.INNTEKT_BEREGNING); + var omsorgsstønad = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medLønnsbeskrivelseKode( + LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE.getOffisiellKode()) + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) + .build(); + + var ukjentLønn = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medLønnsbeskrivelseKode("enUkjentKode") + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) + .build(); + + var inntektsInformasjon = + new InntektsInformasjon(List.of(omsorgsstønad, ukjentLønn), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -259,32 +277,33 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.NETTOLØNN); - assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))).isEqualTo(0); + assertThat(inntektspost.getLønnsinntektBeskrivelse()) + .isEqualTo(LønnsinntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(20))) + .isEqualTo(0); } - @Test void skal_mappe_ukjent_lønnsbeskrivelse_til_udefinert() { var månedsinntektBuilder = new Månedsinntekt.Builder(); - - var ukjentLønn = månedsinntektBuilder.medBeløp(BigDecimal.TEN) - .medMåned(YearMonth.now()) - .medArbeidsgiver(ORGNR) - .medArbeidsforholdRef(null) - .medLønnsbeskrivelseKode(null) - .medLønnsbeskrivelseKode("enUkjentKode") - .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) - .build(); + var ukjentLønn = månedsinntektBuilder + .medBeløp(BigDecimal.TEN) + .medMåned(YearMonth.now()) + .medArbeidsgiver(ORGNR) + .medArbeidsforholdRef(null) + .medLønnsbeskrivelseKode(null) + .medLønnsbeskrivelseKode("enUkjentKode") + .medSkatteOgAvgiftsregelType(SkatteOgAvgiftsregelType.NETTOLØNN.getOffisiellKode()) + .build(); var inntektsInformasjon = new InntektsInformasjon(List.of(ukjentLønn), InntektskildeType.INNTEKT_BEREGNING); var arbeidsgivereLookup = Map.of(ORGNR, Arbeidsgiver.virksomhet(new OrgNummer(ORGNR))); // Act var aktørInntektBuilder = InntektArbeidYtelseAggregatBuilder.AktørInntektBuilder.oppdatere(Optional.empty()); - ByggLønnsinntektInntektTjeneste.mapLønnsinntekter(inntektsInformasjon, aktørInntektBuilder, - arbeidsgivereLookup); + ByggLønnsinntektInntektTjeneste.mapLønnsinntekter( + inntektsInformasjon, aktørInntektBuilder, arbeidsgivereLookup); // Assert var inntekter = aktørInntektBuilder.build().getInntekt(); @@ -297,8 +316,7 @@ void skal_mappe_svalbarinntekt() { assertThat(inntektspost.getInntektspostType()).isEqualTo(InntektspostType.LØNN); assertThat(inntektspost.getSkatteOgAvgiftsregelType()).isEqualTo(SkatteOgAvgiftsregelType.NETTOLØNN); assertThat(inntektspost.getLønnsinntektBeskrivelse()).isEqualTo(LønnsinntektBeskrivelse.UDEFINERT); - assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(10))).isEqualTo(0); + assertThat(inntektspost.getBeløp().getVerdi().compareTo(BigDecimal.valueOf(10))) + .isEqualTo(0); } - - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforholdTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforholdTest.java index 24f8d05e1..5331ce03e 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforholdTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/FjernOverstyringerForBortfalteArbeidsforholdTest.java @@ -1,14 +1,10 @@ package no.nav.foreldrepenger.abakus.registerdata; - import static no.nav.foreldrepenger.abakus.registerdata.FjernOverstyringerForBortfalteArbeidsforhold.fjern; import static org.assertj.core.api.Assertions.assertThat; import java.util.Optional; import java.util.Set; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidsforholdHandlingType; import no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver; @@ -23,6 +19,7 @@ import no.nav.foreldrepenger.abakus.typer.EksternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef; import no.nav.foreldrepenger.abakus.typer.OrgNummer; +import org.junit.jupiter.api.Test; class FjernOverstyringerForBortfalteArbeidsforholdTest { @@ -33,19 +30,23 @@ void skal_fjerne_overstyringer_for_arbeidsforhold() { EksternArbeidsforholdRef eksternRef2 = EksternArbeidsforholdRef.ref("eksternRef2"); OrgNummer orgnr = new OrgNummer("910909088"); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(orgnr); - Set innhentetArbeidsforhold = Set.of( - new ArbeidsforholdIdentifikator(new Organisasjon(orgnr.getId()), eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getKode())); + Set innhentetArbeidsforhold = Set.of(new ArbeidsforholdIdentifikator( + new Organisasjon(orgnr.getId()), eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getKode())); InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.nytt(); ArbeidsforholdInformasjonBuilder builder = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); InternArbeidsforholdRef ref = InternArbeidsforholdRef.nyRef(); - ArbeidsforholdOverstyringBuilder overstyringBuilder = ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) - .medArbeidsgiver(virksomhet) - .medArbeidsforholdRef(ref); + ArbeidsforholdOverstyringBuilder overstyringBuilder = ArbeidsforholdOverstyringBuilder.oppdatere( + Optional.empty()) + .medArbeidsgiver(virksomhet) + .medArbeidsforholdRef(ref); InternArbeidsforholdRef ref2 = InternArbeidsforholdRef.nyRef(); - ArbeidsforholdOverstyringBuilder overstyringBuilder2 = ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) - .medArbeidsgiver(virksomhet) - .medArbeidsforholdRef(ref2); - builder.leggTil(overstyringBuilder).leggTil(overstyringBuilder2).leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref, eksternRef)); + ArbeidsforholdOverstyringBuilder overstyringBuilder2 = ArbeidsforholdOverstyringBuilder.oppdatere( + Optional.empty()) + .medArbeidsgiver(virksomhet) + .medArbeidsforholdRef(ref2); + builder.leggTil(overstyringBuilder) + .leggTil(overstyringBuilder2) + .leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref, eksternRef)); builder.leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref2, eksternRef2)); grunnlagBuilder.medInformasjon(builder.build()); @@ -55,30 +56,34 @@ void skal_fjerne_overstyringer_for_arbeidsforhold() { // Assert ArbeidsforholdInformasjon nyInformasjon = informasjonBuilder.build(); assertThat(nyInformasjon.getOverstyringer()).hasSize(1); - ArbeidsforholdOverstyring gjenværendeOverstyring = nyInformasjon.getOverstyringer().iterator().next(); + ArbeidsforholdOverstyring gjenværendeOverstyring = + nyInformasjon.getOverstyringer().iterator().next(); assertThat(gjenværendeOverstyring.getArbeidsgiver().getOrgnr()).isEqualByComparingTo(orgnr); assertThat(gjenværendeOverstyring.getArbeidsforholdRef()).isEqualTo(ref); } - @Test void skal_ikke_fjerne_overstyringer_for_fiktive_arbeidsforhold() { // Arrange EksternArbeidsforholdRef eksternRef = EksternArbeidsforholdRef.ref("eksternRef"); OrgNummer orgnr = new OrgNummer("910909088"); Arbeidsgiver virksomhet = Arbeidsgiver.virksomhet(orgnr); - Set innhentetArbeidsforhold = Set.of( - new ArbeidsforholdIdentifikator(new Organisasjon(orgnr.getId()), eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getKode())); + Set innhentetArbeidsforhold = Set.of(new ArbeidsforholdIdentifikator( + new Organisasjon(orgnr.getId()), eksternRef, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD.getKode())); InntektArbeidYtelseGrunnlagBuilder grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.nytt(); ArbeidsforholdInformasjonBuilder builder = ArbeidsforholdInformasjonBuilder.builder(Optional.empty()); InternArbeidsforholdRef ref = InternArbeidsforholdRef.nyRef(); - ArbeidsforholdOverstyringBuilder overstyringBuilder = ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) - .medArbeidsgiver(virksomhet) - .medArbeidsforholdRef(ref); - ArbeidsforholdOverstyringBuilder overstyringBuilder2 = ArbeidsforholdOverstyringBuilder.oppdatere(Optional.empty()) - .medHandling(ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER) - .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer(OrgNummer.KUNSTIG_ORG))); - builder.leggTil(overstyringBuilder).leggTil(overstyringBuilder2).leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref, eksternRef)); + ArbeidsforholdOverstyringBuilder overstyringBuilder = ArbeidsforholdOverstyringBuilder.oppdatere( + Optional.empty()) + .medArbeidsgiver(virksomhet) + .medArbeidsforholdRef(ref); + ArbeidsforholdOverstyringBuilder overstyringBuilder2 = ArbeidsforholdOverstyringBuilder.oppdatere( + Optional.empty()) + .medHandling(ArbeidsforholdHandlingType.LAGT_TIL_AV_SAKSBEHANDLER) + .medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer(OrgNummer.KUNSTIG_ORG))); + builder.leggTil(overstyringBuilder) + .leggTil(overstyringBuilder2) + .leggTilNyReferanse(new ArbeidsforholdReferanse(virksomhet, ref, eksternRef)); grunnlagBuilder.medInformasjon(builder.build()); // Act diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjenesteTest.java index b329473e8..f90d313c4 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjenesteTest.java @@ -10,10 +10,6 @@ import java.time.YearMonth; import java.util.Set; import java.util.UUID; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.lonnskomp.domene.LønnskompensasjonAnvist; import no.nav.foreldrepenger.abakus.lonnskomp.domene.LønnskompensasjonRepository; @@ -21,10 +17,11 @@ import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.OrgNummer; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; class InnhentingSamletTjenesteTest { - private LønnskompensasjonRepository repository = mock(LønnskompensasjonRepository.class); private InnhentingSamletTjeneste samletTjeneste; @@ -46,21 +43,27 @@ void skal_telle_riktig_dager_og_fordele() { lk.setBeløp(new Beløp(new BigDecimal(30000L))); lk.setPeriode(IntervallEntitet.fraOgMedTilOgMed(fom, tom)); lk.leggTilAnvistPeriode(LønnskompensasjonAnvist.LønnskompensasjonAnvistBuilder.ny() - .medBeløp(new BigDecimal(16000)) - .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed(YearMonth.from(fom).atDay(1), YearMonth.from(fom).atEndOfMonth())) - .build()); + .medBeløp(new BigDecimal(16000)) + .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed( + YearMonth.from(fom).atDay(1), YearMonth.from(fom).atEndOfMonth())) + .build()); lk.leggTilAnvistPeriode(LønnskompensasjonAnvist.LønnskompensasjonAnvistBuilder.ny() - .medBeløp(new BigDecimal(14000)) - .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed(YearMonth.from(tom).atDay(1), YearMonth.from(tom).atEndOfMonth())) - .build()); + .medBeløp(new BigDecimal(14000)) + .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed( + YearMonth.from(tom).atDay(1), YearMonth.from(tom).atEndOfMonth())) + .build()); when(repository.hentLønnskompensasjonForIPeriode(any(), any(), any())).thenReturn(Set.of(lk)); // Act - var mi = samletTjeneste.getLønnskompensasjon(lk.getAktørId(), - IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(17), LocalDate.now())); + var mi = samletTjeneste.getLønnskompensasjon( + lk.getAktørId(), + IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(17), LocalDate.now())); assertThat(mi.size()).isEqualTo(2); - assertThat(mi.stream().filter(i -> i.getMåned().equals(YearMonth.from(tom))).findAny().orElse(null).getBeløp()).isEqualTo( - new BigDecimal(14000)); + assertThat(mi.stream() + .filter(i -> i.getMåned().equals(YearMonth.from(tom))) + .findAny() + .orElse(null) + .getBeløp()) + .isEqualTo(new BigDecimal(14000)); } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/RegisterdataTaskTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/RegisterdataTaskTest.java index 984ebceae..b5d72fab6 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/RegisterdataTaskTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/RegisterdataTaskTest.java @@ -5,15 +5,13 @@ import java.io.IOException; import java.time.LocalDate; import java.util.UUID; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.JsonObjectMapper; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.request.InnhentRegisterdataRequest; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; +import org.junit.jupiter.api.Test; class RegisterdataTaskTest { @@ -21,8 +19,12 @@ class RegisterdataTaskTest { private static final LocalDate PERIODE_BASE = LocalDate.of(2022, 8, 11); - private static final InnhentRegisterdataRequest REQUEST = new InnhentRegisterdataRequest("saksnummer", UUID.fromString(INPUT_UUID), - YtelseType.FORELDREPENGER, new Periode(PERIODE_BASE.minusYears(2), PERIODE_BASE.plusYears(1)), new AktørIdPersonident("0000000000000")); + private static final InnhentRegisterdataRequest REQUEST = new InnhentRegisterdataRequest( + "saksnummer", + UUID.fromString(INPUT_UUID), + YtelseType.FORELDREPENGER, + new Periode(PERIODE_BASE.minusYears(2), PERIODE_BASE.plusYears(1)), + new AktørIdPersonident("0000000000000")); @Test void roundtrip_payload() throws IOException { @@ -31,7 +33,8 @@ void roundtrip_payload() throws IOException { var innhentingTask = ProsessTaskData.forProsessTask(RegisterdataInnhentingTask.class); innhentingTask.setPayload(JsonObjectMapper.getMapper().writeValueAsString(REQUEST)); - var roundtripped = JsonObjectMapper.getMapper().readValue(innhentingTask.getPayloadAsString(), InnhentRegisterdataRequest.class); + var roundtripped = JsonObjectMapper.getMapper() + .readValue(innhentingTask.getPayloadAsString(), InnhentRegisterdataRequest.class); assertThat(roundtripped.getSaksnummer()).isEqualTo(REQUEST.getSaksnummer()); assertThat(roundtripped.getOpplysningsperiode()).isEqualTo(REQUEST.getOpplysningsperiode()); @@ -40,6 +43,4 @@ void roundtrip_payload() throws IOException { assertThat(roundtripped.getYtelseType()).isEqualTo(REQUEST.getYtelseType()); assertThat(roundtripped.getElementer()).containsAll(REQUEST.getElementer()); } - - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjenesteTest.java index 53380e54a..b327faf86 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/VedtattYtelseInnhentingTjenesteTest.java @@ -10,10 +10,6 @@ import java.util.Collection; import java.util.List; import java.util.Optional; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -32,6 +28,8 @@ import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseBuilder; import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository; import no.nav.foreldrepenger.abakus.vedtak.domene.YtelseAnvistBuilder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; class VedtattYtelseInnhentingTjenesteTest { @@ -43,52 +41,56 @@ class VedtattYtelseInnhentingTjenesteTest { @BeforeEach public void before() { - vedtattYtelseInnhentingTjeneste = new VedtattYtelseInnhentingTjeneste(vedtakYtelseRepository, inntektArbeidYtelseRepository); + vedtattYtelseInnhentingTjeneste = + new VedtattYtelseInnhentingTjeneste(vedtakYtelseRepository, inntektArbeidYtelseRepository); } @Test void skal_mappe_vedtatt_ytelse() throws Exception { // Arrange VedtakYtelse vy = VedtakYtelseBuilder.oppdatere(Optional.empty()) - .medPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(4), LocalDate.now().minusMonths(2))) - .medAktør(AktørId.dummy()) - .medStatus(YtelseStatus.AVSLUTTET) - .medSaksnummer(new Saksnummer("123")) - .medKilde(Fagsystem.FPSAK) - .medYtelseType(YtelseType.ENGANGSTØNAD) - .leggTil(getYtelseAnvist()) - .build(); + .medPeriode(IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now().minusMonths(4), LocalDate.now().minusMonths(2))) + .medAktør(AktørId.dummy()) + .medStatus(YtelseStatus.AVSLUTTET) + .medSaksnummer(new Saksnummer("123")) + .medKilde(Fagsystem.FPSAK) + .medYtelseType(YtelseType.ENGANGSTØNAD) + .leggTil(getYtelseAnvist()) + .build(); Kobling k = new Kobling(); k.setOpplysningsperiode(IntervallEntitet.fraOgMed(LocalDate.now().minusMonths(17))); when(vedtakYtelseRepository.hentYtelserForIPeriode(any(), any(), any())).thenReturn(List.of(vy)); - when(inntektArbeidYtelseRepository.hentInntektArbeidYtelseGrunnlagForBehandling(any())).thenReturn(Optional.empty()); - InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder builder = InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder.oppdatere( - Optional.empty()); + when(inntektArbeidYtelseRepository.hentInntektArbeidYtelseGrunnlagForBehandling(any())) + .thenReturn(Optional.empty()); + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder builder = + InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder.oppdatere(Optional.empty()); // Act vedtattYtelseInnhentingTjeneste.innhentFraYtelsesRegister(AktørId.dummy(), k, builder); assertThat(builder.build().getAlleYtelser()).isNotEmpty(); - assertThat(builder.build().getAlleYtelser().stream().map(Ytelse::getYtelseAnvist).flatMap(Collection::stream).count()).isEqualTo(1); - assertThat(builder.build() - .getAlleYtelser() - .stream() - .map(Ytelse::getYtelseAnvist) - .flatMap(Collection::stream) - .map(YtelseAnvist::getYtelseAnvistAndeler) - .count()).isEqualTo(1); - + assertThat(builder.build().getAlleYtelser().stream() + .map(Ytelse::getYtelseAnvist) + .flatMap(Collection::stream) + .count()) + .isEqualTo(1); + assertThat(builder.build().getAlleYtelser().stream() + .map(Ytelse::getYtelseAnvist) + .flatMap(Collection::stream) + .map(YtelseAnvist::getYtelseAnvistAndeler) + .count()) + .isEqualTo(1); } private YtelseAnvistBuilder getYtelseAnvist() { return YtelseAnvistBuilder.ny() - .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(4), LocalDate.now().minusMonths(2))) - .leggTilFordeling(VedtakYtelseAndelBuilder.ny() - .medArbeidsforholdId("aiowjd332423") - .medArbeidsgiver(Arbeidsgiver.virksomhet("910909088")) - .medDagsats(BigDecimal.TEN) - .medInntektskategori(Inntektskategori.ARBEIDSTAKER) - .medRefusjonsgrad(BigDecimal.ZERO) - .medUtbetalingsgrad(BigDecimal.TEN)); + .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now().minusMonths(4), LocalDate.now().minusMonths(2))) + .leggTilFordeling(VedtakYtelseAndelBuilder.ny() + .medArbeidsforholdId("aiowjd332423") + .medArbeidsgiver(Arbeidsgiver.virksomhet("910909088")) + .medDagsats(BigDecimal.TEN) + .medInntektskategori(Inntektskategori.ARBEIDSTAKER) + .medRefusjonsgrad(BigDecimal.ZERO) + .medUtbetalingsgrad(BigDecimal.TEN)); } - - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/impl/ArbeidsforholdTjenesteMedRestTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/impl/ArbeidsforholdTjenesteMedRestTest.java index 0d5ca058f..8380f8f39 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/impl/ArbeidsforholdTjenesteMedRestTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsforhold/impl/ArbeidsforholdTjenesteMedRestTest.java @@ -5,18 +5,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; -import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; import java.util.Map; - -import no.nav.foreldrepenger.abakus.typer.AktørId; - -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.databind.ObjectMapper; - import no.nav.abakus.iaygrunnlag.JsonObjectMapper; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Arbeidsavtale; @@ -26,7 +19,9 @@ import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.Organisasjon; import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest.AaregRestKlient; import no.nav.foreldrepenger.abakus.registerdata.arbeidsforhold.rest.ArbeidsforholdRS; +import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.PersonIdent; +import org.junit.jupiter.api.Test; class ArbeidsforholdTjenesteMedRestTest { @@ -34,7 +29,8 @@ class ArbeidsforholdTjenesteMedRestTest { private static final PersonIdent FNR = new PersonIdent("12312312312"); private static final AktørId AKTØR_ID = new AktørId("1231231231223"); private static final LocalDate FOM = LocalDate.now().minusYears(1L); - private static final String json = """ + private static final String json = + """ { "arbeidsforholdId": "990983666", "navArbeidsforholdId": "1234565", @@ -80,15 +76,20 @@ void mapping_organisasjon() throws IOException { void skal_kalle_consumer_og_oversette_response() throws Exception { // Arrange AaregRestKlient aaregRestKlient = mock(AaregRestKlient.class); - when(aaregRestKlient.finnArbeidsforholdForArbeidstaker(any(), any(), any())).thenReturn(List.of(fromJson(json, ArbeidsforholdRS.class))); + when(aaregRestKlient.finnArbeidsforholdForArbeidstaker(any(), any(), any())) + .thenReturn(List.of(fromJson(json, ArbeidsforholdRS.class))); ArbeidsforholdTjeneste arbeidsforholdTjeneste = new ArbeidsforholdTjeneste(aaregRestKlient); // Act - Map> arbeidsforhold = arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden(FNR, AKTØR_ID, - IntervallEntitet.fraOgMedTilOgMed(FOM, LocalDate.now())); + Map> arbeidsforhold = + arbeidsforholdTjeneste.finnArbeidsforholdForIdentIPerioden( + FNR, AKTØR_ID, IntervallEntitet.fraOgMedTilOgMed(FOM, LocalDate.now())); // Assert - assertThat(((Organisasjon) arbeidsforhold.values().iterator().next().get(0).getArbeidsgiver()).getOrgNummer()).isEqualTo(ORGNR); + assertThat(((Organisasjon) + arbeidsforhold.values().iterator().next().get(0).getArbeidsgiver()) + .getOrgNummer()) + .isEqualTo(ORGNR); assertAktivitetsavtaler(arbeidsforhold.values().iterator().next().get(0).getArbeidsavtaler()); } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/EregRestTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/EregRestTest.java index 5b73ff522..79a7b5c71 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/EregRestTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/arbeidsgiver/virksomhet/rest/EregRestTest.java @@ -2,17 +2,14 @@ import static org.assertj.core.api.Assertions.assertThat; +import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.time.LocalDate; - -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.databind.ObjectMapper; - import no.nav.abakus.iaygrunnlag.JsonObjectMapper; import no.nav.vedtak.felles.integrasjon.organisasjon.JuridiskEnhetVirksomheter; import no.nav.vedtak.felles.integrasjon.organisasjon.OrganisasjonEReg; import no.nav.vedtak.felles.integrasjon.organisasjon.OrganisasjonstypeEReg; +import org.junit.jupiter.api.Test; class EregRestTest { @@ -25,7 +22,8 @@ private static T fromJson(String json, Class clazz) throws IOException { @Test void mapping_dto_til_grunnlag_til_dto() throws IOException { // Arrange - String json = """ + String json = + """ { "organisasjonsnummer":"999999999", "type":"Virksomhet", @@ -47,7 +45,8 @@ void mapping_dto_til_grunnlag_til_dto() throws IOException { @Test void mapping_jurdisk_enhet() throws IOException { // Arrange - String json = """ + String json = + """ { "organisasjonsnummer": "999999999", "type": "JuridiskEnhet", diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapperTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapperTest.java index e5061e203..7d4492f8b 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapperTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagAnvistAndelMapperTest.java @@ -6,15 +6,13 @@ import java.time.LocalDate; import java.util.ArrayList; import java.util.List; - -import org.assertj.core.data.Offset; -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseAnvist; import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseArbeid; +import org.assertj.core.data.Offset; +import org.junit.jupiter.api.Test; class InfotrygdgrunnlagAnvistAndelMapperTest { @@ -35,22 +33,30 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger() { var dagsatsDagpenger = BigDecimal.valueOf(1994); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); - List arbeidsforhold = List.of(new InfotrygdYtelseArbeid(null, 1994, InntektPeriodeType.DAGLIG, null)); + List arbeidsforhold = + List.of(new InfotrygdYtelseArbeid(null, 1994, InntektPeriodeType.DAGLIG, null)); // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, arbeidsforhold, - infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, arbeidsforhold, infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); - var arbeidstakerAndel = anvisninger.stream().filter(a -> a.getArbeidsgiver().isPresent()).findFirst().get(); + var arbeidstakerAndel = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isPresent()) + .findFirst() + .get(); assertThat(arbeidstakerAndel.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeidstakerAndel.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)).isEqualTo(0); + assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)) + .isEqualTo(0); assertThat(arbeidstakerAndel.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeidstakerAndel.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - var dagpengeAndel = anvisninger.stream().filter(a -> a.getArbeidsgiver().isEmpty()).findFirst().get(); + var dagpengeAndel = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isEmpty()) + .findFirst() + .get(); assertThat(dagpengeAndel.getInntektskategori()).isEqualTo(Inntektskategori.DAGPENGER); assertThat(dagpengeAndel.getRefusjonsgradProsent().getVerdi()).isEqualTo(BigDecimal.ZERO); assertThat(dagpengeAndel.getDagsats().getVerdi()).isEqualTo(dagsatsDagpenger); @@ -74,22 +80,30 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger_med_dif var dagsatsDagpenger = BigDecimal.valueOf(1994); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); - List arbeidsforhold = List.of(new InfotrygdYtelseArbeid(null, 1995, InntektPeriodeType.DAGLIG, null)); + List arbeidsforhold = + List.of(new InfotrygdYtelseArbeid(null, 1995, InntektPeriodeType.DAGLIG, null)); // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, arbeidsforhold, - infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, arbeidsforhold, infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); - var arbeidstakerAndel = anvisninger.stream().filter(a -> a.getArbeidsgiver().isPresent()).findFirst().get(); + var arbeidstakerAndel = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isPresent()) + .findFirst() + .get(); assertThat(arbeidstakerAndel.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeidstakerAndel.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)).isEqualTo(0); + assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)) + .isEqualTo(0); assertThat(arbeidstakerAndel.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeidstakerAndel.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - var dagpengeAndel = anvisninger.stream().filter(a -> a.getArbeidsgiver().isEmpty()).findFirst().get(); + var dagpengeAndel = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isEmpty()) + .findFirst() + .get(); assertThat(dagpengeAndel.getInntektskategori()).isEqualTo(Inntektskategori.DAGPENGER); assertThat(dagpengeAndel.getRefusjonsgradProsent().getVerdi()).isEqualTo(BigDecimal.ZERO); assertThat(dagpengeAndel.getDagsats().getVerdi()).isEqualTo(dagsatsDagpenger); @@ -97,7 +111,8 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger_med_dif } @Test - void skal_kun_mappe_grunnlag_til_arbeidstaker_for_kombinasjon_arbeid_og_dagpenger_ved_diff_på_to_kroner_for_dagpenger() { + void + skal_kun_mappe_grunnlag_til_arbeidstaker_for_kombinasjon_arbeid_og_dagpenger_ved_diff_på_to_kroner_for_dagpenger() { // Arrange var fom = LocalDate.now().minusDays(3); var tom = LocalDate.now(); @@ -113,22 +128,30 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger_med_dif var dagsatsDagpenger = BigDecimal.valueOf(1994); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); - List arbeidsforhold = List.of(new InfotrygdYtelseArbeid(null, 1996, InntektPeriodeType.DAGLIG, null)); + List arbeidsforhold = + List.of(new InfotrygdYtelseArbeid(null, 1996, InntektPeriodeType.DAGLIG, null)); // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, arbeidsforhold, - infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, arbeidsforhold, infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); - var arbeidstakerAndel = anvisninger.stream().filter(a -> a.getArbeidsgiver().isPresent()).findFirst().get(); + var arbeidstakerAndel = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isPresent()) + .findFirst() + .get(); assertThat(arbeidstakerAndel.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeidstakerAndel.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)).isEqualTo(0); + assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)) + .isEqualTo(0); assertThat(arbeidstakerAndel.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeidstakerAndel.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - var arbeidstakerAndel2 = anvisninger.stream().filter(a -> a.getArbeidsgiver().isEmpty()).findFirst().get(); + var arbeidstakerAndel2 = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isEmpty()) + .findFirst() + .get(); assertThat(arbeidstakerAndel2.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); assertThat(arbeidstakerAndel2.getRefusjonsgradProsent().getVerdi()).isEqualTo(BigDecimal.ZERO); assertThat(arbeidstakerAndel2.getDagsats().getVerdi()).isEqualTo(dagsatsDagpenger); @@ -151,31 +174,39 @@ void skal_mappe_grunnlag_til_arbeidstaker_for_kombinasjon_arbeid_og_dagpenger_fo var dagsatsDagpenger = BigDecimal.valueOf(1994); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); - List arbeidsforhold = List.of(new InfotrygdYtelseArbeid(null, 1994, InntektPeriodeType.DAGLIG, null)); + List arbeidsforhold = + List.of(new InfotrygdYtelseArbeid(null, 1994, InntektPeriodeType.DAGLIG, null)); // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, arbeidsforhold, - infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, arbeidsforhold, infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); - var arbeidstakerAndel = anvisninger.stream().filter(a -> a.getInntektskategori().equals(Inntektskategori.ARBEIDSTAKER)).findFirst().get(); + var arbeidstakerAndel = anvisninger.stream() + .filter(a -> a.getInntektskategori().equals(Inntektskategori.ARBEIDSTAKER)) + .findFirst() + .get(); assertThat(arbeidstakerAndel.getArbeidsgiver()).isEmpty(); assertThat(arbeidstakerAndel.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)).isEqualTo(0); + assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)) + .isEqualTo(0); assertThat(arbeidstakerAndel.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeidstakerAndel.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - var dagpenger = anvisninger.stream().filter(a -> a.getArbeidsgiver().isEmpty()).findFirst().get(); + var dagpenger = anvisninger.stream() + .filter(a -> a.getArbeidsgiver().isEmpty()) + .findFirst() + .get(); assertThat(dagpenger.getInntektskategori()).isEqualTo(Inntektskategori.DAGPENGER); assertThat(dagpenger.getRefusjonsgradProsent().getVerdi()).isEqualTo(BigDecimal.ZERO); assertThat(dagpenger.getDagsats().getVerdi()).isEqualTo(dagsatsDagpenger); assertThat(dagpenger.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); } - @Test - void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og_har_referanse_i_anvisninger_fra_infotrygd() { + void + skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og_har_referanse_i_anvisninger_fra_infotrygd() { // Arrange var fom = LocalDate.now().minusDays(3); var tom = LocalDate.now(); @@ -187,22 +218,23 @@ void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og var dagsatsArbeid = BigDecimal.valueOf(791); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr, false, dagsatsArbeid)); - // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, List.of(), infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, List.of(), infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(1); var arbeid1 = anvisninger.stream() - .filter(a -> a.getArbeidsgiver().isPresent() && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) - .findFirst() - .get(); + .filter(a -> a.getArbeidsgiver().isPresent() + && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) + .findFirst() + .get(); assertThat(arbeid1.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeid1.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid1.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeid1.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - } @Test @@ -221,34 +253,37 @@ void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_begge_har_referans var dagsatsArbeid2 = BigDecimal.valueOf(213); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr2, false, dagsatsArbeid2)); - // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, List.of(), infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, List.of(), infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); var arbeid1 = anvisninger.stream() - .filter(a -> a.getArbeidsgiver().isPresent() && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) - .findFirst() - .get(); + .filter(a -> a.getArbeidsgiver().isPresent() + && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) + .findFirst() + .get(); assertThat(arbeid1.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeid1.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid1.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeid1.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); var arbeid2 = anvisninger.stream() - .filter(a -> a.getArbeidsgiver().isPresent() && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr2)) - .findFirst() - .get(); + .filter(a -> a.getArbeidsgiver().isPresent() + && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr2)) + .findFirst() + .get(); assertThat(arbeid2.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr2); assertThat(arbeid2.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid2.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid2.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid2.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid2); assertThat(arbeid2.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); } - @Test void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_med_refusjon_med_referanse_i_anvisning_fra_infotrygd() { // Arrange @@ -266,26 +301,26 @@ void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_med_refusjon_med_refer var dagsatsArbeid2 = BigDecimal.valueOf(462); infotrygdutbetalinger.add(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, true, dagsatsArbeid2)); - // Act - var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler(arbeidskategori, List.of(), infotrygdutbetalinger); + var anvisninger = InfotrygdgrunnlagAnvistAndelMapper.oversettYtelseArbeidTilAnvisteAndeler( + arbeidskategori, List.of(), infotrygdutbetalinger); // Assert assertThat(anvisninger.size()).isEqualTo(2); var arbeid1 = anvisninger.get(0); assertThat(arbeid1.getArbeidsgiver()).isEmpty(); assertThat(arbeid1.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.valueOf(100), Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.valueOf(100), Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid1.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeid1.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); var arbeid2 = anvisninger.get(1); assertThat(arbeid2.getArbeidsgiver()).isEmpty(); assertThat(arbeid2.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid2.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.valueOf(100), Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid2.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.valueOf(100), Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid2.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid2); assertThat(arbeid2.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); } - - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapperTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapperTest.java index 9e3ca6f48..144091316 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapperTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/infotrygd/InfotrygdgrunnlagYtelseMapperTest.java @@ -6,10 +6,6 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Optional; - -import org.assertj.core.data.Offset; -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; @@ -18,6 +14,8 @@ import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseAnvist; import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseArbeid; import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseGrunnlag; +import org.assertj.core.data.Offset; +import org.junit.jupiter.api.Test; class InfotrygdgrunnlagYtelseMapperTest { @@ -28,20 +26,24 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger() { var tom = LocalDate.now(); var utbetalingsgrad = BigDecimal.valueOf(100); var builder = InfotrygdYtelseGrunnlag.getBuilder() - .medGradering(utbetalingsgrad) - .medYtelseType(YtelseType.PLEIEPENGER_SYKT_BARN) - .medArbeidskategori(Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER) - .medVedtaksPeriodeFom(fom) - .medVedtaksPeriodeTom(tom) - .medVedtattTidspunkt(LocalDateTime.now()); + .medGradering(utbetalingsgrad) + .medYtelseType(YtelseType.PLEIEPENGER_SYKT_BARN) + .medArbeidskategori(Arbeidskategori.KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER) + .medVedtaksPeriodeFom(fom) + .medVedtaksPeriodeTom(tom) + .medVedtattTidspunkt(LocalDateTime.now()); var orgnr = "973093681"; - builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid(orgnr, BigDecimal.valueOf(10000), InntektPeriodeType.MÅNEDLIG, false, null)); + builder.leggTilArbeidsforhold( + new InfotrygdYtelseArbeid(orgnr, BigDecimal.valueOf(10000), InntektPeriodeType.MÅNEDLIG, false, null)); var dagsatsArbeid = BigDecimal.valueOf(462); - builder.leggTillAnvistPerioder(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr, false, dagsatsArbeid)); + builder.leggTillAnvistPerioder( + new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr, false, dagsatsArbeid)); - builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid(null, BigDecimal.valueOf(1994), InntektPeriodeType.DAGLIG, false, null)); + builder.leggTilArbeidsforhold( + new InfotrygdYtelseArbeid(null, BigDecimal.valueOf(1994), InntektPeriodeType.DAGLIG, false, null)); var dagsatsDagpenger = BigDecimal.valueOf(1994); - builder.leggTillAnvistPerioder(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); + builder.leggTillAnvistPerioder( + new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, null, false, dagsatsDagpenger)); InfotrygdYtelseGrunnlag grunnlag = builder.build(); var aktørYtelseBuilder = InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder.oppdatere(Optional.empty()); @@ -59,14 +61,21 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger() { assertThat(ytelseAnvist.getAnvistTOM()).isEqualTo(tom); assertThat(ytelseAnvist.getYtelseAnvistAndeler().size()).isEqualTo(2); - var arbeidstakerAndel = ytelseAnvist.getYtelseAnvistAndeler().stream().filter(a -> a.getArbeidsgiver().isPresent()).findFirst().get(); + var arbeidstakerAndel = ytelseAnvist.getYtelseAnvistAndeler().stream() + .filter(a -> a.getArbeidsgiver().isPresent()) + .findFirst() + .get(); assertThat(arbeidstakerAndel.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeidstakerAndel.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)).isEqualTo(0); + assertThat(arbeidstakerAndel.getRefusjonsgradProsent().getVerdi().compareTo(BigDecimal.ZERO)) + .isEqualTo(0); assertThat(arbeidstakerAndel.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeidstakerAndel.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - var dagpengeAndel = ytelseAnvist.getYtelseAnvistAndeler().stream().filter(a -> a.getArbeidsgiver().isEmpty()).findFirst().get(); + var dagpengeAndel = ytelseAnvist.getYtelseAnvistAndeler().stream() + .filter(a -> a.getArbeidsgiver().isEmpty()) + .findFirst() + .get(); assertThat(dagpengeAndel.getInntektskategori()).isEqualTo(Inntektskategori.DAGPENGER); assertThat(dagpengeAndel.getRefusjonsgradProsent().getVerdi()).isEqualTo(BigDecimal.ZERO); assertThat(dagpengeAndel.getDagsats().getVerdi()).isEqualTo(dagsatsDagpenger); @@ -74,25 +83,29 @@ void skal_mappe_grunnlag_til_dagsats_for_kombinasjon_arbeid_og_dagpenger() { } @Test - void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og_har_referanse_i_anvisninger_fra_infotrygd() { + void + skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og_har_referanse_i_anvisninger_fra_infotrygd() { // Arrange var fom = LocalDate.now().minusDays(3); var tom = LocalDate.now(); var utbetalingsgrad = BigDecimal.valueOf(100); var builder = InfotrygdYtelseGrunnlag.getBuilder() - .medGradering(utbetalingsgrad) - .medYtelseType(YtelseType.PLEIEPENGER_SYKT_BARN) - .medArbeidskategori(Arbeidskategori.ARBEIDSTAKER) - .medVedtaksPeriodeFom(fom) - .medVedtaksPeriodeTom(tom) - .medVedtattTidspunkt(LocalDateTime.now()); + .medGradering(utbetalingsgrad) + .medYtelseType(YtelseType.PLEIEPENGER_SYKT_BARN) + .medArbeidskategori(Arbeidskategori.ARBEIDSTAKER) + .medVedtaksPeriodeFom(fom) + .medVedtaksPeriodeTom(tom) + .medVedtattTidspunkt(LocalDateTime.now()); var orgnr = "973093681"; var orgnr2 = "910909088"; - builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid(orgnr, BigDecimal.valueOf(15000.00), InntektPeriodeType.MÅNEDLIG, false, null)); - builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid(orgnr2, BigDecimal.valueOf(495.00), InntektPeriodeType.UKENTLIG, false, null)); + builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid( + orgnr, BigDecimal.valueOf(15000.00), InntektPeriodeType.MÅNEDLIG, false, null)); + builder.leggTilArbeidsforhold(new InfotrygdYtelseArbeid( + orgnr2, BigDecimal.valueOf(495.00), InntektPeriodeType.UKENTLIG, false, null)); var dagsatsArbeid = BigDecimal.valueOf(791); - builder.leggTillAnvistPerioder(new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr, false, dagsatsArbeid)); + builder.leggTillAnvistPerioder( + new InfotrygdYtelseAnvist(fom, tom, utbetalingsgrad, orgnr, false, dagsatsArbeid)); InfotrygdYtelseGrunnlag grunnlag = builder.build(); var aktørYtelseBuilder = InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder.oppdatere(Optional.empty()); @@ -110,17 +123,16 @@ void skal_mappe_grunnlag_til_dagsats_for_to_arbeidstakere_der_den_ene_tar_alt_og assertThat(ytelseAnvist.getAnvistTOM()).isEqualTo(tom); assertThat(ytelseAnvist.getYtelseAnvistAndeler().size()).isEqualTo(1); - var arbeid1 = ytelseAnvist.getYtelseAnvistAndeler() - .stream() - .filter(a -> a.getArbeidsgiver().isPresent() && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) - .findFirst() - .get(); + var arbeid1 = ytelseAnvist.getYtelseAnvistAndeler().stream() + .filter(a -> a.getArbeidsgiver().isPresent() + && a.getArbeidsgiver().get().getOrgnr().getId().equals(orgnr)) + .findFirst() + .get(); assertThat(arbeid1.getArbeidsgiver().get().getIdentifikator()).isEqualTo(orgnr); assertThat(arbeid1.getInntektskategori()).isEqualTo(Inntektskategori.ARBEIDSTAKER); - assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()).isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); + assertThat(arbeid1.getRefusjonsgradProsent().getVerdi()) + .isCloseTo(BigDecimal.ZERO, Offset.offset(BigDecimal.valueOf(0.000001))); assertThat(arbeid1.getDagsats().getVerdi()).isEqualTo(dagsatsArbeid); assertThat(arbeid1.getUtbetalingsgradProsent().getVerdi()).isEqualTo(utbetalingsgrad); - } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/impl/InntektTjenesteImplTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/impl/InntektTjenesteImplTest.java index 1d72b1fd3..9947b3c33 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/impl/InntektTjenesteImplTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/komponenten/impl/InntektTjenesteImplTest.java @@ -1,6 +1,5 @@ package no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.impl; - import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; import static org.mockito.ArgumentMatchers.any; @@ -16,13 +15,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.FinnInntektRequest; import no.nav.foreldrepenger.abakus.registerdata.inntekt.komponenten.InntektTjeneste; @@ -39,6 +31,11 @@ import no.nav.tjenester.aordningen.inntektsinformasjon.response.HentInntektListeBolkResponse; import no.nav.vedtak.exception.VLException; import no.nav.vedtak.felles.integrasjon.rest.RestClient; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) class InntektTjenesteImplTest { @@ -51,6 +48,7 @@ class InntektTjenesteImplTest { @Mock private RestClient restKlient; + private InntektTjeneste inntektTjeneste; @BeforeEach @@ -72,8 +70,12 @@ void skal_kalle_consumer_og_oversette_response() throws Exception { // Tre måneder siden ArbeidsInntektInformasjon arbeidsInntektInformasjonMnd1 = new ArbeidsInntektInformasjon(); - arbeidsInntektInformasjonMnd1.setInntektListe(Collections.singletonList( - opprettInntekt(new BigDecimal(50), GJELDENDE_MÅNED.minusMonths(3), null, SYKEPENGER, InntektType.YTELSE_FRA_OFFENTLIGE))); + arbeidsInntektInformasjonMnd1.setInntektListe(Collections.singletonList(opprettInntekt( + new BigDecimal(50), + GJELDENDE_MÅNED.minusMonths(3), + null, + SYKEPENGER, + InntektType.YTELSE_FRA_OFFENTLIGE))); ArbeidsInntektMaaned arbeidsInntektMaaned1 = new ArbeidsInntektMaaned(); arbeidsInntektMaaned1.setArbeidsInntektInformasjon(arbeidsInntektInformasjonMnd1); response.getArbeidsInntektIdentListe().get(0).getArbeidsInntektMaaned().add(arbeidsInntektMaaned1); @@ -81,34 +83,50 @@ void skal_kalle_consumer_og_oversette_response() throws Exception { // To måneder siden ArbeidsInntektInformasjon arbeidsInntektInformasjonMnd2 = new ArbeidsInntektInformasjon(); arbeidsInntektInformasjonMnd2.setInntektListe(new ArrayList<>()); - arbeidsInntektInformasjonMnd2.getInntektListe() - .add(opprettInntekt(new BigDecimal(100), GJELDENDE_MÅNED.minusMonths(2), null, SYKEPENGER, InntektType.YTELSE_FRA_OFFENTLIGE)); - arbeidsInntektInformasjonMnd2.getInntektListe() - .add(opprettInntekt(new BigDecimal(200), GJELDENDE_MÅNED.minusMonths(2), arbeidsplassen, null, InntektType.LOENNSINNTEKT)); + arbeidsInntektInformasjonMnd2 + .getInntektListe() + .add(opprettInntekt( + new BigDecimal(100), + GJELDENDE_MÅNED.minusMonths(2), + null, + SYKEPENGER, + InntektType.YTELSE_FRA_OFFENTLIGE)); + arbeidsInntektInformasjonMnd2 + .getInntektListe() + .add(opprettInntekt( + new BigDecimal(200), + GJELDENDE_MÅNED.minusMonths(2), + arbeidsplassen, + null, + InntektType.LOENNSINNTEKT)); ArbeidsInntektMaaned arbeidsInntektMaaned2 = new ArbeidsInntektMaaned(); arbeidsInntektMaaned2.setArbeidsInntektInformasjon(arbeidsInntektInformasjonMnd2); response.getArbeidsInntektIdentListe().get(0).getArbeidsInntektMaaned().add(arbeidsInntektMaaned2); // En måned siden ArbeidsInntektInformasjon arbeidsInntektInformasjonMnd3 = new ArbeidsInntektInformasjon(); - arbeidsInntektInformasjonMnd3.setInntektListe(Collections.singletonList( - opprettInntekt(new BigDecimal(400), GJELDENDE_MÅNED.minusMonths(1), arbeidsplassen, null, InntektType.LOENNSINNTEKT))); + arbeidsInntektInformasjonMnd3.setInntektListe(Collections.singletonList(opprettInntekt( + new BigDecimal(400), GJELDENDE_MÅNED.minusMonths(1), arbeidsplassen, null, InntektType.LOENNSINNTEKT))); ArbeidsInntektMaaned arbeidsInntektMaaned3 = new ArbeidsInntektMaaned(); arbeidsInntektMaaned3.setArbeidsInntektInformasjon(arbeidsInntektInformasjonMnd3); response.getArbeidsInntektIdentListe().get(0).getArbeidsInntektMaaned().add(arbeidsInntektMaaned3); // Denne måneden ArbeidsInntektInformasjon arbeidsInntektInformasjonMnd4 = new ArbeidsInntektInformasjon(); - arbeidsInntektInformasjonMnd4.setInntektListe( - Collections.singletonList(opprettInntekt(new BigDecimal(405), GJELDENDE_MÅNED, arbeidsplassen, null, InntektType.LOENNSINNTEKT))); + arbeidsInntektInformasjonMnd4.setInntektListe(Collections.singletonList( + opprettInntekt(new BigDecimal(405), GJELDENDE_MÅNED, arbeidsplassen, null, InntektType.LOENNSINNTEKT))); ArbeidsInntektMaaned arbeidsInntektMaaned4 = new ArbeidsInntektMaaned(); arbeidsInntektMaaned4.setArbeidsInntektInformasjon(arbeidsInntektInformasjonMnd4); response.getArbeidsInntektIdentListe().get(0).getArbeidsInntektMaaned().add(arbeidsInntektMaaned4); - FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder(GJELDENDE_MÅNED.minusMonths(3), GJELDENDE_MÅNED).medFnr(FNR).build(); + FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder( + GJELDENDE_MÅNED.minusMonths(3), GJELDENDE_MÅNED) + .medFnr(FNR) + .build(); // Act - InntektsInformasjon inntektsInformasjon = inntektTjeneste.finnInntekt(finnInntektRequest, InntektskildeType.INNTEKT_OPPTJENING); + InntektsInformasjon inntektsInformasjon = + inntektTjeneste.finnInntekt(finnInntektRequest, InntektskildeType.INNTEKT_OPPTJENING); // Assert verify(restKlient, times(1)).send(any(), eq(HentInntektListeBolkResponse.class)); @@ -137,10 +155,14 @@ void skal_avkorte_periode_gi_tom_response() throws Exception { arbeidsplassen.setIdentifikator(ORGNR); YearMonth tidligst = YearMonth.from(LocalDate.parse("2015-07-01", DateTimeFormatter.ISO_LOCAL_DATE)); - FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder(tidligst.minusMonths(3), tidligst.plusMonths(3)).medFnr(FNR).build(); + FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder( + tidligst.minusMonths(3), tidligst.plusMonths(3)) + .medFnr(FNR) + .build(); // Act - final InntektsInformasjon inntektsInformasjon = inntektTjeneste.finnInntekt(finnInntektRequest, InntektskildeType.INNTEKT_OPPTJENING); + final InntektsInformasjon inntektsInformasjon = + inntektTjeneste.finnInntekt(finnInntektRequest, InntektskildeType.INNTEKT_OPPTJENING); // Assert verify(restKlient, times(1)).send(any(), eq(HentInntektListeBolkResponse.class)); @@ -161,7 +183,10 @@ void skal_oppdage_sikkerhetsavvik_i_response_og_kaste_exception() throws Excepti response.getSikkerhetsavvikListe().add(sikkerhetsavvik2); when(restKlient.send(any(), any())).thenReturn(response); - FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder(GJELDENDE_MÅNED.minusMonths(3), GJELDENDE_MÅNED).medFnr(FNR).build(); + FinnInntektRequest finnInntektRequest = FinnInntektRequest.builder( + GJELDENDE_MÅNED.minusMonths(3), GJELDENDE_MÅNED) + .medFnr(FNR) + .build(); try { // Act @@ -183,7 +208,8 @@ private HentInntektListeBolkResponse opprettResponse() { return response; } - private Inntekt opprettInntekt(BigDecimal beløp, YearMonth måned, Aktoer virksomhet, String beskrivelse, InntektType inntektType) { + private Inntekt opprettInntekt( + BigDecimal beløp, YearMonth måned, Aktoer virksomhet, String beskrivelse, InntektType inntektType) { var inntekt = new Inntekt(); inntekt.setInntektType(inntektType); inntekt.setBeloep(beløp); @@ -192,5 +218,4 @@ private Inntekt opprettInntekt(BigDecimal beløp, YearMonth måned, Aktoer virks inntekt.setBeskrivelse(beskrivelse); return inntekt; } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/PgiFolketrygdenResponseTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/PgiFolketrygdenResponseTest.java index 4fc85af00..35f60ca47 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/PgiFolketrygdenResponseTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/PgiFolketrygdenResponseTest.java @@ -1,23 +1,22 @@ package no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun; - import static org.assertj.core.api.Assertions.assertThat; import java.math.BigDecimal; import java.util.List; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.PgiFolketrygdenResponse; import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.SigrunPgiFolketrygdenMapper; import no.nav.vedtak.mapper.json.DefaultJsonMapper; +import org.junit.jupiter.api.Test; class PgiFolketrygdenResponseTest { // Offisielt https://skatteetaten.github.io/api-dokumentasjon/api/pgi_folketrygden?tab=Eksempler - // Erstattet FASTLAND / "pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage": 85000 med null for testformål - private static final String SKATT_EKSEMPEL = """ + // Erstattet FASTLAND / "pensjonsgivendeInntektAvNaeringsinntektFraFiskeFangstEllerFamiliebarnehage": 85000 med null + // for testformål + private static final String SKATT_EKSEMPEL = + """ { "norskPersonidentifikator": "02116049964", "inntektsaar": 2019, @@ -49,13 +48,17 @@ class PgiFolketrygdenResponseTest { var intern = SigrunPgiFolketrygdenMapper.mapFraPgiResponseTilIntern(List.of(respons)); assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) - .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(2680000))); + .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(2680000))); assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.LØNN))) - .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(1190379))); - assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE))).isEmpty(); + .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(1190379))); + assertThat(intern.values().stream() + .findFirst() + .map(m -> m.get(InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE))) + .isEmpty(); } - private static final String VTP_RESPONSE = """ + private static final String VTP_RESPONSE = + """ { "norskPersonidentifikator": "24909099443", "inntektsaar": 2019, @@ -76,9 +79,12 @@ class PgiFolketrygdenResponseTest { var intern = SigrunPgiFolketrygdenMapper.mapFraPgiResponseTilIntern(List.of(responseStub)); assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE))) - .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(200000))); - assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.LØNN))).isEmpty(); - assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE))).isEmpty(); + .hasValueSatisfying(v -> assertThat(v).isEqualByComparingTo(BigDecimal.valueOf(200000))); + assertThat(intern.values().stream().findFirst().map(m -> m.get(InntektspostType.LØNN))) + .isEmpty(); + assertThat(intern.values().stream() + .findFirst() + .map(m -> m.get(InntektspostType.NÆRING_FISKE_FANGST_FAMBARNEHAGE))) + .isEmpty(); } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjenesteTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjenesteTest.java index e35b91997..eba15812a 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjenesteTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjenesteTest.java @@ -9,15 +9,13 @@ import java.time.Year; import java.util.List; import java.util.Optional; - -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; - import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.PgiFolketrygdenResponse; import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.klient.SigrunRestClient; import no.nav.foreldrepenger.abakus.typer.PersonIdent; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; class SigrunTjenesteTest { @@ -26,41 +24,42 @@ class SigrunTjenesteTest { private static final MonthDay TIDLIGSTE_SJEKK_FJOR = MonthDay.of(Month.MAY, 1); - private static final Year IFJOR = MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR) ? - Year.now().minusYears(2) : Year.now().minusYears(1); + private static final Year IFJOR = MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR) + ? Year.now().minusYears(2) + : Year.now().minusYears(1); private static final SigrunRestClient CONSUMER = Mockito.mock(SigrunRestClient.class); private static final SigrunTjeneste TJENESTE = new SigrunTjeneste(CONSUMER); - @Test void skal_hente_og_mappe_om_data_fra_sigrun() { Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR)) - .thenReturn(lagResponsFor(IFJOR)); + .thenReturn(lagResponsFor(IFJOR)); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(1))) - .thenReturn(lagResponsFor(IFJOR.minusYears(1))); + .thenReturn(lagResponsFor(IFJOR.minusYears(1))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(2))) - .thenReturn(lagResponsUtenInntektFor(IFJOR.minusYears(2))); + .thenReturn(lagResponsUtenInntektFor(IFJOR.minusYears(2))); var inntekter = TJENESTE.hentPensjonsgivende(PERSONIDENT, null); assertThat(inntekter.keySet()).hasSize(3); - assertThat(inntekter.get(intervallFor(IFJOR)).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(2))).get(InntektspostType.LØNN)).isZero(); + assertThat(inntekter.get(intervallFor(IFJOR)).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))) + .isZero(); + assertThat(inntekter.get(intervallFor(IFJOR.minusYears(2))).get(InntektspostType.LØNN)) + .isZero(); } @Test void skal_hente_data_for_forifjor_når_skatteoppgjoer_mangler_for_ifjor() { Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR)) - .thenReturn(Optional.empty()); + .thenReturn(Optional.empty()); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(1))) - .thenReturn(lagResponsFor(IFJOR.minusYears(1))); + .thenReturn(lagResponsFor(IFJOR.minusYears(1))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(2))) - .thenReturn(lagResponsMedNæringFor(IFJOR.minusYears(2))); + .thenReturn(lagResponsMedNæringFor(IFJOR.minusYears(2))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(3))) - .thenReturn(lagResponsFor(IFJOR.minusYears(3))); - + .thenReturn(lagResponsFor(IFJOR.minusYears(3))); var inntekter = TJENESTE.hentPensjonsgivende(PERSONIDENT, null); if (MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR)) { @@ -69,94 +68,148 @@ void skal_hente_og_mappe_om_data_fra_sigrun() { assertThat(inntekter.keySet()).hasSize(3); } assertThat(inntekter.get(intervallFor(IFJOR))).isNull(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(1))).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(2))).get(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE).compareTo(new BigDecimal(500L))).isZero(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(2))).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(1))) + .get(InntektspostType.LØNN) + .compareTo(new BigDecimal(1000L))) + .isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(2))) + .get(InntektspostType.SELVSTENDIG_NÆRINGSDRIVENDE) + .compareTo(new BigDecimal(500L))) + .isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(2))) + .get(InntektspostType.LØNN) + .compareTo(new BigDecimal(1000L))) + .isZero(); } @Test void skal_hente_og_mappe_om_data_fra_sigrun_opplysiningsperiode() { Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR)) - .thenReturn(lagResponsFor(IFJOR)); + .thenReturn(lagResponsFor(IFJOR)); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(1))) - .thenReturn(lagResponsFor(IFJOR.minusYears(1))); + .thenReturn(lagResponsFor(IFJOR.minusYears(1))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(2))) - .thenReturn(lagResponsFor(IFJOR.minusYears(2))); - var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed(intervallFor(IFJOR.minusYears(2)).getFomDato(), intervallFor(IFJOR).getTomDato()); + .thenReturn(lagResponsFor(IFJOR.minusYears(2))); + var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed( + intervallFor(IFJOR.minusYears(2)).getFomDato(), + intervallFor(IFJOR).getTomDato()); var inntekter = TJENESTE.hentPensjonsgivende(PERSONIDENT, opplysningsperiode); assertThat(inntekter.keySet()).hasSize(3); - assertThat(inntekter.get(intervallFor(IFJOR)).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(2))).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); + assertThat(inntekter.get(intervallFor(IFJOR)).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))) + .isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(2))) + .get(InntektspostType.LØNN) + .compareTo(new BigDecimal(1000L))) + .isZero(); } @Test void skal_hente_data_for_forifjor_når_skatteoppgjoer_mangler_for_ifjor_opplysiningsperiode() { Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR)) - .thenReturn(Optional.empty()); + .thenReturn(Optional.empty()); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(1))) - .thenReturn(lagResponsFor(IFJOR.minusYears(1))); + .thenReturn(lagResponsFor(IFJOR.minusYears(1))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(2))) - .thenReturn(lagResponsFor(IFJOR.minusYears(2))); + .thenReturn(lagResponsFor(IFJOR.minusYears(2))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(3))) - .thenReturn(lagResponsFor(IFJOR.minusYears(3))); - var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed(intervallFor(IFJOR.minusYears(2)).getFomDato(), intervallFor(IFJOR).getTomDato()); + .thenReturn(lagResponsFor(IFJOR.minusYears(3))); + var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed( + intervallFor(IFJOR.minusYears(2)).getFomDato(), + intervallFor(IFJOR).getTomDato()); var inntekter = TJENESTE.hentPensjonsgivende(PERSONIDENT, opplysningsperiode); assertThat(inntekter.keySet()).hasSize(3); assertThat(inntekter.get(intervallFor(IFJOR))).isNull(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(3))).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(3))) + .get(InntektspostType.LØNN) + .compareTo(new BigDecimal(1000L))) + .isZero(); } @Test void skal_hente_data_for_inntil_tre_år_når_skatteoppgjoer_mangler_for_ifjor_opplysiningsperiode() { Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR)) - .thenReturn(Optional.empty()); + .thenReturn(Optional.empty()); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(1))) - .thenReturn(lagResponsFor(IFJOR.minusYears(1))); + .thenReturn(lagResponsFor(IFJOR.minusYears(1))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(2))) - .thenReturn(lagResponsFor(IFJOR.minusYears(2))); + .thenReturn(lagResponsFor(IFJOR.minusYears(2))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(3))) - .thenReturn(lagResponsFor(IFJOR.minusYears(3))); + .thenReturn(lagResponsFor(IFJOR.minusYears(3))); Mockito.when(CONSUMER.hentPensjonsgivendeInntektForFolketrygden(FNR, IFJOR.minusYears(4))) - .thenReturn(lagResponsFor(IFJOR.minusYears(4))); - var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed(intervallFor(IFJOR.minusYears(4)).getFomDato(), intervallFor(IFJOR).getTomDato()); + .thenReturn(lagResponsFor(IFJOR.minusYears(4))); + var opplysningsperiode = IntervallEntitet.fraOgMedTilOgMed( + intervallFor(IFJOR.minusYears(4)).getFomDato(), + intervallFor(IFJOR).getTomDato()); var inntekter = TJENESTE.hentPensjonsgivende(PERSONIDENT, opplysningsperiode); assertThat(inntekter.keySet()).hasSize(4); assertThat(inntekter.get(intervallFor(IFJOR))).isNull(); - assertThat(inntekter.get(intervallFor(IFJOR.minusYears(3))).get(InntektspostType.LØNN).compareTo(new BigDecimal(1000L))).isZero(); + assertThat(inntekter + .get(intervallFor(IFJOR.minusYears(3))) + .get(InntektspostType.LØNN) + .compareTo(new BigDecimal(1000L))) + .isZero(); assertThat(inntekter.get(intervallFor(IFJOR.minusYears(5)))).isNull(); } private Optional lagResponsFor(Year år) { - var inntekt = new PgiFolketrygdenResponse.Pgi(PgiFolketrygdenResponse.Skatteordning.FASTLAND, - LocalDate.of(år.plusYears(1).getValue(), 6,1), 1000L , - null, null, null); + var inntekt = new PgiFolketrygdenResponse.Pgi( + PgiFolketrygdenResponse.Skatteordning.FASTLAND, + LocalDate.of(år.plusYears(1).getValue(), 6, 1), + 1000L, + null, + null, + null); return Optional.of(new PgiFolketrygdenResponse(PERSONIDENT.getIdent(), år.getValue(), List.of(inntekt))); } private Optional lagResponsMedNæringFor(Year år) { - var inntektF = new PgiFolketrygdenResponse.Pgi(PgiFolketrygdenResponse.Skatteordning.FASTLAND, - LocalDate.of(år.plusYears(1).getValue(), 6,1), 500L , - null, null, null); - var inntektS = new PgiFolketrygdenResponse.Pgi(PgiFolketrygdenResponse.Skatteordning.SVALBARD, - LocalDate.of(år.plusYears(1).getValue(), 6,1), null , - null, 500L, null); - var inntektK = new PgiFolketrygdenResponse.Pgi(PgiFolketrygdenResponse.Skatteordning.KILDESKATT_PAA_LOENN, - LocalDate.of(år.plusYears(1).getValue(), 6,1), 500L , - null, null, null); - return Optional.of(new PgiFolketrygdenResponse(PERSONIDENT.getIdent(), år.getValue(), List.of(inntektF, inntektS, inntektK))); + var inntektF = new PgiFolketrygdenResponse.Pgi( + PgiFolketrygdenResponse.Skatteordning.FASTLAND, + LocalDate.of(år.plusYears(1).getValue(), 6, 1), + 500L, + null, + null, + null); + var inntektS = new PgiFolketrygdenResponse.Pgi( + PgiFolketrygdenResponse.Skatteordning.SVALBARD, + LocalDate.of(år.plusYears(1).getValue(), 6, 1), + null, + null, + 500L, + null); + var inntektK = new PgiFolketrygdenResponse.Pgi( + PgiFolketrygdenResponse.Skatteordning.KILDESKATT_PAA_LOENN, + LocalDate.of(år.plusYears(1).getValue(), 6, 1), + 500L, + null, + null, + null); + return Optional.of(new PgiFolketrygdenResponse( + PERSONIDENT.getIdent(), år.getValue(), List.of(inntektF, inntektS, inntektK))); } private Optional lagResponsUtenInntektFor(Year år) { - var inntekt = new PgiFolketrygdenResponse.Pgi(PgiFolketrygdenResponse.Skatteordning.FASTLAND, - LocalDate.of(år.plusYears(1).getValue(), 6,1), 0L , - null, null, null); + var inntekt = new PgiFolketrygdenResponse.Pgi( + PgiFolketrygdenResponse.Skatteordning.FASTLAND, + LocalDate.of(år.plusYears(1).getValue(), 6, 1), + 0L, + null, + null, + null); return Optional.of(new PgiFolketrygdenResponse(PERSONIDENT.getIdent(), år.getValue(), List.of(inntekt))); } private IntervallEntitet intervallFor(Year år) { - return IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().with(år).withDayOfYear(1), LocalDate.now().with(år).withDayOfYear(år.length())); + return IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now().with(år).withDayOfYear(1), + LocalDate.now().with(år).withDayOfYear(år.length())); } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/InfotrygdTjenesteImplTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/InfotrygdTjenesteImplTest.java index fc6fc5d57..acf162829 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/InfotrygdTjenesteImplTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/InfotrygdTjenesteImplTest.java @@ -1,19 +1,16 @@ package no.nav.foreldrepenger.abakus.registerdata.ytelse; - import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDate; - +import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; +import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.InnhentingInfotrygdTjeneste; +import no.nav.foreldrepenger.abakus.typer.PersonIdent; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; -import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.InnhentingInfotrygdTjeneste; -import no.nav.foreldrepenger.abakus.typer.PersonIdent; - @ExtendWith(MockitoExtension.class) class InfotrygdTjenesteImplTest { private static final String FNR = "01234567890"; @@ -28,5 +25,4 @@ void skal_kalle_consumer_og_oversette_response() throws Exception { var response = samletTjeneste.getInfotrygdYtelser(PersonIdent.fra(FNR), IntervallEntitet.fraOgMed(KONFIG_FOM)); assertThat(response).isEmpty(); } - } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapperTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapperTest.java index 5dfaa4429..e94342561 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapperTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MedlemskortUtbetalingsgrunnlagSakMapperTest.java @@ -15,25 +15,36 @@ void testMappingKonsistens() { var meldekortUtbetalingsgrunnlagSakDto = getMeldekortUtbetalingsgrunnlagSakDto(); var domeneobjekt = MedlemskortUtbetalingsgrunnlagSakMapper.tilDomeneModell(meldekortUtbetalingsgrunnlagSakDto); - assertThat(meldekortUtbetalingsgrunnlagSakDto.meldekortene()).hasSameSizeAs(domeneobjekt.getMeldekortene()).hasSize(1); - var meldekortUtbetalingsgrunnlagMeldekortDto = meldekortUtbetalingsgrunnlagSakDto.meldekortene().get(0); + assertThat(meldekortUtbetalingsgrunnlagSakDto.meldekortene()) + .hasSameSizeAs(domeneobjekt.getMeldekortene()) + .hasSize(1); + var meldekortUtbetalingsgrunnlagMeldekortDto = + meldekortUtbetalingsgrunnlagSakDto.meldekortene().get(0); var meldekortDomene = domeneobjekt.getMeldekortene().get(0); - assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortFom()).isEqualTo(meldekortDomene.getMeldekortFom()); - assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortTom()).isEqualTo(meldekortDomene.getMeldekortTom()); + assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortFom()) + .isEqualTo(meldekortDomene.getMeldekortFom()); + assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.meldekortTom()) + .isEqualTo(meldekortDomene.getMeldekortTom()); assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.dagsats()).isEqualTo(meldekortDomene.getDagsats()); assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.beløp()).isEqualTo(meldekortDomene.getBeløp()); - assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.utbetalingsgrad()).isEqualTo(meldekortDomene.getUtbetalingsgrad()); + assertThat(meldekortUtbetalingsgrunnlagMeldekortDto.utbetalingsgrad()) + .isEqualTo(meldekortDomene.getUtbetalingsgrad()); assertThat(tilType(meldekortUtbetalingsgrunnlagSakDto.type())).isEqualTo(domeneobjekt.getYtelseType()); - assertThat(tilTilstand(meldekortUtbetalingsgrunnlagSakDto.tilstand())).isEqualTo(domeneobjekt.getYtelseTilstand()); + assertThat(tilTilstand(meldekortUtbetalingsgrunnlagSakDto.tilstand())) + .isEqualTo(domeneobjekt.getYtelseTilstand()); assertThat(tilKilde(meldekortUtbetalingsgrunnlagSakDto.kilde())).isEqualTo(domeneobjekt.getKilde()); - assertThat(meldekortUtbetalingsgrunnlagSakDto.saksnummer()).isEqualTo(domeneobjekt.getSaksnummer().getVerdi()); + assertThat(meldekortUtbetalingsgrunnlagSakDto.saksnummer()) + .isEqualTo(domeneobjekt.getSaksnummer().getVerdi()); assertThat(meldekortUtbetalingsgrunnlagSakDto.sakStatus()).isEqualTo(domeneobjekt.getSakStatus()); assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtakStatus()).isEqualTo(domeneobjekt.getVedtakStatus()); assertThat(meldekortUtbetalingsgrunnlagSakDto.kravMottattDato()).isEqualTo(domeneobjekt.getKravMottattDato()); assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtattDato()).isEqualTo(domeneobjekt.getVedtattDato()); - assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeFom()).isEqualTo(domeneobjekt.getVedtaksPeriodeFom()); - assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeTom()).isEqualTo(domeneobjekt.getVedtaksPeriodeTom()); - assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksDagsats().verdi()).isEqualTo(domeneobjekt.getVedtaksDagsats().getVerdi()); + assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeFom()) + .isEqualTo(domeneobjekt.getVedtaksPeriodeFom()); + assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksPeriodeTom()) + .isEqualTo(domeneobjekt.getVedtaksPeriodeTom()); + assertThat(meldekortUtbetalingsgrunnlagSakDto.vedtaksDagsats().verdi()) + .isEqualTo(domeneobjekt.getVedtaksDagsats().getVerdi()); } } diff --git a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSakDtoSeraliseringOgDeseraliseringTest.java b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSakDtoSeraliseringOgDeseraliseringTest.java index 5e9fa5413..e8634cb86 100644 --- a/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSakDtoSeraliseringOgDeseraliseringTest.java +++ b/domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/registerdata/ytelse/arena/MeldekortUtbetalingsgrunnlagSakDtoSeraliseringOgDeseraliseringTest.java @@ -5,9 +5,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; - -import org.junit.jupiter.api.Test; - import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.BeløpDto; import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.FagsystemDto; import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.MeldekortUtbetalingsgrunnlagMeldekortDto; @@ -15,10 +12,9 @@ import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.YtelseStatusDto; import no.nav.foreldrepenger.kontrakter.fpwsproxy.arena.respons.YtelseTypeDto; import no.nav.vedtak.mapper.json.DefaultJsonMapper; +import org.junit.jupiter.api.Test; -/** - * Konsistens test for å verifiser at seralisering og deseralisering av DTO ikke endrer seg og fungere som forventet - */ +/** Konsistens test for å verifiser at seralisering og deseralisering av DTO ikke endrer seg og fungere som forventet */ class MeldekortUtbetalingsgrunnlagSakDtoSeraliseringOgDeseraliseringTest { private static String hardkodetSeralisertStreng() { @@ -49,28 +45,30 @@ private static String hardkodetSeralisertStreng() { } static MeldekortUtbetalingsgrunnlagSakDto getMeldekortUtbetalingsgrunnlagSakDto() { - return new MeldekortUtbetalingsgrunnlagSakDto.Builder().kilde(FagsystemDto.ARENA) - .kravMottattDato(LocalDate.of(2022, 8, 24)) - .meldekortene(List.of(getMeldekortUtbetalingsgrunnlagMeldekortDto())) - .sakStatus("AKTIV") - .saksnummer("1234567890") - .tilstand(YtelseStatusDto.LOP) - .type(YtelseTypeDto.DAG) - .vedtakStatus("IVERK") - .vedtaksDagsats(new BeløpDto(BigDecimal.valueOf(809.0))) - .vedtaksPeriodeFom(LocalDate.of(2022, 12, 27)) - .vedtaksPeriodeTom(LocalDate.of(2023, 1, 6)) - .vedtattDato(LocalDate.of(2022, 8, 24)) - .build(); + return new MeldekortUtbetalingsgrunnlagSakDto.Builder() + .kilde(FagsystemDto.ARENA) + .kravMottattDato(LocalDate.of(2022, 8, 24)) + .meldekortene(List.of(getMeldekortUtbetalingsgrunnlagMeldekortDto())) + .sakStatus("AKTIV") + .saksnummer("1234567890") + .tilstand(YtelseStatusDto.LOP) + .type(YtelseTypeDto.DAG) + .vedtakStatus("IVERK") + .vedtaksDagsats(new BeløpDto(BigDecimal.valueOf(809.0))) + .vedtaksPeriodeFom(LocalDate.of(2022, 12, 27)) + .vedtaksPeriodeTom(LocalDate.of(2023, 1, 6)) + .vedtattDato(LocalDate.of(2022, 8, 24)) + .build(); } private static MeldekortUtbetalingsgrunnlagMeldekortDto getMeldekortUtbetalingsgrunnlagMeldekortDto() { - return new MeldekortUtbetalingsgrunnlagMeldekortDto.Builder().beløp(BigDecimal.TEN) - .dagsats(BigDecimal.ONE) - .meldekortFom(LocalDate.of(2022, 8, 24)) - .meldekortTom(LocalDate.of(2022, 8, 29)) - .utbetalingsgrad(BigDecimal.valueOf(100)) - .build(); + return new MeldekortUtbetalingsgrunnlagMeldekortDto.Builder() + .beløp(BigDecimal.TEN) + .dagsats(BigDecimal.ONE) + .meldekortFom(LocalDate.of(2022, 8, 24)) + .meldekortTom(LocalDate.of(2022, 8, 29)) + .utbetalingsgrad(BigDecimal.valueOf(100)) + .build(); } @Test @@ -84,6 +82,7 @@ private static MeldekortUtbetalingsgrunnlagMeldekortDto getMeldekortUtbetalingsg void konsistenstestForÅSjekkeAtSeraliseringFungereUavhengigAvDeseralisering() { var meldekortUtbetalingsgrunnlagSakDto = getMeldekortUtbetalingsgrunnlagSakDto(); var seralized = DefaultJsonMapper.toJson(meldekortUtbetalingsgrunnlagSakDto); - assertThat(seralized).isEqualToIgnoringWhitespace(hardkodetSeralisertStreng().replaceAll("[\n\r ]", "")); + assertThat(seralized) + .isEqualToIgnoringWhitespace(hardkodetSeralisertStreng().replaceAll("[\n\r ]", "")); } } diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-1.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-1.json index a92074309..e0c4c40a4 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-1.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-1.json @@ -6,290 +6,255 @@ }, "grunnlagTidspunkt": "2019-01-25T11:43:05.364Z", "grunnlagReferanse": "8abb7315-1516-0abc-e053-2880340a57a0", - "koblingReferanse": "88487f4b-f9e7-2133-e053-2880340a6560", "registerGrunnlag": { - "opprettetTidspunkt": "2019-01-25T11:43:05.328Z", - "eksternReferanse": "8a6bc441-4801-1f94-e053-2880340a2b28", - "arbeid": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000045441852" + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000045441852" + }, + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975294935" - }, - "arbeidsforholdId": { - "abakusReferanse": "6168be56-14fd-4715-b465-8840478cef3e", - "eksternReferanse": "0001-0001-20130801", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2017-07-01", - "tom": "2017-12-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2017-07-01" - }, - { - "periode": { - "fom": "2013-08-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2018-07-01", - "tom": "2018-11-30" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2018-05-01" - }, - { - "periode": { - "fom": "2018-12-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2019-01-01" - }, - { - "periode": { - "fom": "2018-01-01", - "tom": "2018-06-30" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2017-07-01" - } - ], - "permisjoner": [ - { - "periode": { - "fom": "2015-11-07", - "tom": "2016-07-15" - }, - "type": null, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-02-07", - "tom": "2019-12-31" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2015-10-12", - "tom": "2016-07-08" - }, - "type": null, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2017-02-08", - "tom": "2017-10-16" - }, - "type": null, - "prosentsats": 100.00 - } - ] + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 14720, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "AAP" + }, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" } - ] - } - ], - "inntekter": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000045441852" + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975294935" }, - "utbetalinger": [ - { - "arbeidsgiver": null, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 14720.00, - "ytelseType": { - "kodeverk": "YTELSE_FRA_OFFENTLIGE", - "kode": "AAP" - } - } - ] + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975294935" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-11-01", - "tom": "2017-11-30" - }, - "beløp": 47445.50 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-12-01", - "tom": "2017-12-31" - }, - "beløp": 45945.50 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-01-01", - "tom": "2018-01-31" - }, - "beløp": 45945.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-02-01", - "tom": "2018-02-28" - }, - "beløp": 8482.18 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 58869.01 - } - ] + "beløp": 47445.5, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" } - ] - } - ], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000045441852" - }, - "ytelser": [ - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "FPSAK" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "ES" - }, - "periode": { - "fom": "2018-09-21", - "tom": "2018-09-21" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "UBEH" - }, - "saksnummer": "136528384", - "anvisninger": [] + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "INFOTRYGD" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "FP" - }, - "periode": { - "fom": "2017-12-26", - "tom": "2018-01-03" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "AVSLU" - }, - "anvisninger": [] + "beløp": 45945.5, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" } - ] - } - ] - }, - "arbeidsforholdInformasjon": { - "referanser": [ - { + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 45945.25, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 8482.18, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 58869.01, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "975294935" }, "arbeidsforholdId": { "abakusReferanse": "6168be56-14fd-4715-b465-8840478cef3e", - "eksternReferanse": "0001-0001-20130801", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20130801" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-07-01" + }, + "stillingsprosent": 100 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2013-08-01" + }, + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-11-30", + "fom": "2018-07-01" + }, + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2019-01-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-12-01" + }, + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "2018-06-30", + "fom": "2018-01-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ { + "prosentsats": 100, + "type": null, + "periode": { + "tom": "2016-07-15", + "fom": "2015-11-07" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2019-12-31", + "fom": "2018-02-07" + } + }, { + "prosentsats": 100, + "type": null, + "periode": { + "tom": "2016-07-08", + "fom": "2015-10-12" + } + }, { + "prosentsats": 100, + "type": null, + "periode": { + "tom": "2017-10-16", + "fom": "2017-02-08" } + } ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000045441852" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000045441852" + }, + "ytelser": [ { + "saksnummer": "136528384", + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "ES" + }, + "anvisninger": [ ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "FPSAK" + }, + "periode": { + "tom": "2018-09-21", + "fom": "2018-09-21" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "UBEH" + } + }, { + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "FP" + }, + "anvisninger": [ ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2018-01-03", + "fom": "2017-12-26" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" } + } ] + } ], + "opprettetTidspunkt": "2019-01-25T11:43:05.328Z", + "eksternReferanse": "8a6bc441-4801-1f94-e053-2880340a2b28" + }, + "koblingReferanse": "88487f4b-f9e7-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975294935" + }, + "arbeidsforholdId": { + "abakusReferanse": "6168be56-14fd-4715-b465-8840478cef3e", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20130801" } - ], - "overstyringer": [] + } ], + "overstyringer": [ ] } }, - "aktiv": true, "opplysningsperiode": { - "fom": "2017-11-18", - "tom": "2019-05-18" - } -} + "tom": "2019-05-18", + "fom": "2017-11-18" + }, + "aktiv": true +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-2.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-2.json index edc922dba..4e1a63163 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-2.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-2.json @@ -1,211 +1,192 @@ { "data": { + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "mottattDato": "2019-02-11", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-01-14T10:01:25Z", + "refusjonsBeløpPerMnd": 47810, + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973155067" + }, + "erNærRelasjon": false, + "utsettelsePerioder": [ ], + "inntektBeløp": 47810, + "startdatoPermisjon": "2019-03-09", + "refusjonOpphører": "9999-12-31", + "journalpostId": "444951911", + "innsendingsårsak": { + "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", + "kode": "NY" + } + } ] + }, "person": { "identType": "AKTØRID", "ident": "1000029934619" }, "grunnlagTidspunkt": "2019-02-11T07:42:52.63Z", "grunnlagReferanse": "8abb7315-9a6f-0abc-e053-2880340a57a0", - "koblingReferanse": "88487f4b-f2e5-2133-e053-2880340a6560", "registerGrunnlag": { - "opprettetTidspunkt": "2019-02-11T07:42:52.618Z", - "eksternReferanse": "8a6bc441-ab0b-1f94-e053-2880340a2b28", - "arbeid": [], - "inntekter": [], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000029934619" - }, - "ytelser": [ - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "INFOTRYGD" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "SP" - }, - "periode": { - "fom": "2018-10-26", - "tom": "2018-11-30" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "LOP" + "inntekter": [ ], + "arbeid": [ ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000029934619" + }, + "ytelser": [ { + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973155067" }, - "anvisninger": [ - { - "periode": { - "fom": "2018-11-12", - "tom": "2018-12-02" - }, - "utbetalingsgrad": 50.00 - } - ], - "ytelseGrunnlag": { - "arbeidskategori": { - "kodeverk": "ARBEIDSKATEGORI", - "kode": "ARBEIDSTAKER" - }, - "fordeling": [ - { - "beløp": 45696.00, - "inntektPeriodeType": { - "kodeverk": "INNTEKT_PERIODE_TYPE", - "kode": "MNDLG" - }, - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973155067" - } - } - ] + "beløp": 45696, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "MNDLG" } + } ], + "arbeidskategori": { + "kodeverk": "ARBEIDSKATEGORI", + "kode": "ARBEIDSTAKER" } - ] - }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000013398207" }, - "ytelser": [ - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "INFOTRYGD" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "FP" - }, - "periode": { - "fom": "2017-09-18", - "tom": "2017-11-24" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "AVSLU" - }, - "anvisninger": [] - }, - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "INFOTRYGD" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "FP" - }, - "periode": { - "fom": "2017-11-27", - "tom": "2017-12-08" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "AVSLU" - }, - "anvisninger": [] + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "SP" + }, + "anvisninger": [ { + "utbetalingsgrad": 50, + "periode": { + "tom": "2018-12-02", + "fom": "2018-11-12" } - ] - } - ] - }, - "inntektsmeldinger": { - "inntektsmeldinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973155067" + } ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2018-11-30", + "fom": "2018-10-26" }, - "journalpostId": "444951911", - "innsendingstidspunkt": "2019-01-14T10:01:25Z", - "mottattDato": "2019-02-11", - "graderinger": [], - "naturalytelser": [], - "utsettelsePerioder": [], - "startdatoPermisjon": "2019-03-09", - "erNærRelasjon": false, - "inntektBeløp": 47810.00, - "refusjonsBeløpPerMnd": 47810.00, - "refusjonOpphører": "9999-12-31", - "refusjonEndringer": [], - "innsendingsårsak": { - "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", - "kode": "NY" + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "LOP" } - } - ] + } ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000013398207" + }, + "ytelser": [ { + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "FP" + }, + "anvisninger": [ ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2017-11-24", + "fom": "2017-09-18" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" + } + }, { + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "FP" + }, + "anvisninger": [ ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2017-12-08", + "fom": "2017-11-27" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" + } + } ] + } ], + "opprettetTidspunkt": "2019-02-11T07:42:52.618Z", + "eksternReferanse": "8a6bc441-ab0b-1f94-e053-2880340a2b28" }, + "koblingReferanse": "88487f4b-f2e5-2133-e053-2880340a6560", "arbeidsforholdInformasjon": { - "referanser": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973155067" + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973155067" + }, + "arbeidsforholdId": { + "abakusReferanse": "160f8c4f-340b-4f89-bfe5-080675e25615", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdId": { - "abakusReferanse": "160f8c4f-340b-4f89-bfe5-080675e25615", - "eksternReferanse": "522000100000700293001", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } + "eksternReferanse": "522000100000700293001" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "914785987" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "914785987" + "arbeidsforholdId": { + "abakusReferanse": "7fb3f6c0-c634-4a24-8ad7-3e59d1016af1", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdId": { - "abakusReferanse": "7fb3f6c0-c634-4a24-8ad7-3e59d1016af1", - "eksternReferanse": "332990960445000114830", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } + "eksternReferanse": "332990960445000114830" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974310996" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "974310996" + "arbeidsforholdId": { + "abakusReferanse": "f902508e-84d8-4fbb-9fba-50f7ea499456", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdId": { - "abakusReferanse": "f902508e-84d8-4fbb-9fba-50f7ea499456", - "eksternReferanse": "853", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } + "eksternReferanse": "853" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "914785987" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "914785987" + "arbeidsforholdId": { + "abakusReferanse": "d9cde83e-eed8-4e4d-a9a3-8200f8346974", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdId": { - "abakusReferanse": "d9cde83e-eed8-4e4d-a9a3-8200f8346974", - "eksternReferanse": "564990960445000108564", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } + "eksternReferanse": "564990960445000108564" } - ], - "overstyringer": [] + } ], + "overstyringer": [ ] } }, - "aktiv": false, "opplysningsperiode": { - "fom": "2017-10-09", - "tom": "2023-03-09" - } -} + "tom": "2023-03-09", + "fom": "2017-10-09" + }, + "aktiv": false +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-3.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-3.json index 56e0dc01f..6a25071d0 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-3.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-3.json @@ -6,882 +6,784 @@ }, "grunnlagTidspunkt": "2019-01-03T14:04:42.77Z", "grunnlagReferanse": "8abb7314-a936-0abc-e053-2880340a57a0", - "koblingReferanse": "88487f4b-f876-2133-e053-2880340a6560", "registerGrunnlag": { - "opprettetTidspunkt": "2019-01-03T13:11:04.528Z", - "eksternReferanse": "8a6bc440-eb04-1f94-e053-2880340a2b28", - "arbeid": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000026107933" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975270815" - }, - "arbeidsforholdId": { - "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", - "eksternReferanse": "V975270815R512846S201L0001", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2017-07-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00, - "sistLønnsendring": "2017-07-01" - }, - { - "periode": { - "fom": "2017-05-01", - "tom": "2018-03-31" - }, - "stillingsprosent": 0.00 - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "989644017" - }, - "arbeidsforholdId": { - "abakusReferanse": "e2b8c890-0416-4bc2-a791-36d0d32c0ee6", - "eksternReferanse": "974975587592000015673", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER_OPPDRAGSTAKER" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2017-10-01", - "tom": "9999-12-31" - } - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975587592" - }, - "arbeidsforholdId": { - "abakusReferanse": "b4aa73f8-bed1-4918-8f5e-bebaf3c24ef9", - "eksternReferanse": "143975587592000015858", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER_OPPDRAGSTAKER" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2016-09-01", - "tom": "2017-09-30" - } - } - ], - "permisjoner": [] - } - ] - }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000098325347" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "971715723" - }, - "arbeidsforholdId": { - "abakusReferanse": "dfe43528-b517-408d-8d3b-a8e97259da40", - "eksternReferanse": "900935721652000223420", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-01-01", - "tom": "2018-04-30" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2017-08-01" - }, - { - "periode": { - "fom": "2014-11-17", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2018-08-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2018-08-01" - }, - { - "periode": { - "fom": "2018-05-01", - "tom": "2018-07-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2018-04-01" - }, - { - "periode": { - "fom": "2017-08-01", - "tom": "2017-12-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2017-08-01" - } - ], - "permisjoner": [ - { - "periode": { - "fom": "2017-10-02", - "tom": "2017-10-02" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "PERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2017-10-09", - "tom": "2017-10-09" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "PERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-10-03", - "tom": "2018-10-03" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-08-24", - "tom": "2018-08-24" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-01-23", - "tom": "2018-01-24" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-02-15", - "tom": "2018-02-16" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2018-11-26", - "tom": "2018-11-28" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "VELFERDSPERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2015-09-07", - "tom": "2015-09-18" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "PERMISJON" - }, - "prosentsats": 100.00 - }, - { - "periode": { - "fom": "2016-08-08", - "tom": "2016-10-17" - }, - "type": { - "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", - "kode": "PERMISJON" - }, - "prosentsats": 100.00 - } - ] - } - ] - } - ], - "inntekter": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000098325347" - }, - "utbetalinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "971715723" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 37136.80 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 49730.20 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-11-01", - "tom": "2017-11-30" - }, - "beløp": 36482.10 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-08-01", - "tom": "2017-08-31" - }, - "beløp": 34636.50 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-09-01", - "tom": "2018-09-30" - }, - "beløp": 72091.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 38461.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-09-01", - "tom": "2017-09-30" - }, - "beløp": 37071.10 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-10-01", - "tom": "2017-10-31" - }, - "beløp": 35179.20 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-12-01", - "tom": "2017-12-31" - }, - "beløp": 55100.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-04-01", - "tom": "2018-04-30" - }, - "beløp": 28798.50 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-01-01", - "tom": "2018-01-31" - }, - "beløp": 34173.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-03-01", - "tom": "2018-03-31" - }, - "beløp": 32412.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-05-01", - "tom": "2018-05-31" - }, - "beløp": 39156.40 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-02-01", - "tom": "2018-02-28" - }, - "beløp": 35689.50 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-08-01", - "tom": "2018-08-31" - }, - "beløp": 36671.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 78326.96 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-07-01", - "tom": "2018-07-31" - }, - "beløp": 13765.60 - } - ] - } - ] + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000098325347" }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000026107933" - }, - "utbetalinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "974571900" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 429.21 - } - ] - }, - { - "arbeidsgiver": null, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 7720.00, - "ytelseType": { - "kodeverk": "YTELSE_FRA_OFFENTLIGE", - "kode": "AAP" - } - } - ] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975270815" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2017-11-01", - "tom": "2017-11-30" - }, - "beløp": 2229.29 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 427.82 - } - ] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "989644017" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 2300.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 2800.00 - } - ] - } - ] - } - ], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000026107933" - }, - "ytelser": [ - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "ARENA" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "AAP" - }, - "periode": { - "fom": "2018-11-30", - "tom": "2019-06-30" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "LOP" - }, - "saksnummer": "2018462694", - "anvisninger": [ - { - "periode": { - "fom": "2018-12-03", - "tom": "2018-12-16" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-11-19", - "tom": "2018-12-02" - }, - "beløp": 772.00, - "dagsats": 772.00, - "utbetalingsgrad": 20.00 - }, - { - "periode": { - "fom": "2018-12-17", - "tom": "2018-12-30" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - } - ], - "ytelseGrunnlag": { - "opprinneligIdentDato": "2018-11-22", - "fordeling": [] - } - }, - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "ARENA" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "AAP" - }, - "periode": { - "fom": "2018-07-02", - "tom": "2018-11-29" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "AVSLU" - }, - "saksnummer": "2018462694", - "anvisninger": [ - { - "periode": { - "fom": "2018-08-13", - "tom": "2018-08-26" - }, - "beløp": 3088.00, - "dagsats": 772.00, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2018-09-24", - "tom": "2018-10-07" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-07-02", - "tom": "2018-07-15" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-10-08", - "tom": "2018-10-21" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-07-16", - "tom": "2018-07-29" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-07-30", - "tom": "2018-08-12" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-08-27", - "tom": "2018-09-09" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - }, - { - "periode": { - "fom": "2018-11-19", - "tom": "2018-12-02" - }, - "beløp": 6948.00, - "dagsats": 772.00, - "utbetalingsgrad": 180.00 - }, - { - "periode": { - "fom": "2018-11-05", - "tom": "2018-11-18" - }, - "beløp": 7720.00, - "dagsats": 772.00, - "utbetalingsgrad": 200.00 - } - ], - "ytelseGrunnlag": { - "opprinneligIdentDato": "2018-11-30", - "fordeling": [] - } - } - ] + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "971715723" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 37136.8, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 49730.2, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 36482.1, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 34636.5, + "periode": { + "tom": "2017-08-31", + "fom": "2017-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 72091, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 38461.25, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 37071.1, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 35179.2, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 55100, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 28798.5, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 34173, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 32412, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 39156.4, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 35689.5, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 36671, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 78326.96, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 13765.6, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] + } ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000026107933" }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000098325347" + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974571900" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 429.21, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 7720, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "AAP" + }, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975270815" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 2229.29, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 427.82, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "989644017" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 2300, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 2800, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975270815" + }, + "arbeidsforholdId": { + "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "V975270815R512846S201L0001" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "9999-12-31", + "fom": "2017-07-01" + }, + "stillingsprosent": 0 + }, { + "periode": { + "tom": "2018-03-31", + "fom": "2017-05-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER_OPPDRAGSTAKER" }, - "ytelser": [] - } - ] - }, - "arbeidsforholdInformasjon": { - "referanser": [ - { "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "989644017" }, "arbeidsforholdId": { "abakusReferanse": "e2b8c890-0416-4bc2-a791-36d0d32c0ee6", - "eksternReferanse": "974975587592000015673", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "974975587592000015673" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2017-10-01" } - } - }, - { + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER_OPPDRAGSTAKER" + }, "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "975587592" }, "arbeidsforholdId": { "abakusReferanse": "b4aa73f8-bed1-4918-8f5e-bebaf3c24ef9", - "eksternReferanse": "143975587592000015858", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "143975587592000015858" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2017-09-30", + "fom": "2016-09-01" } - } - }, - { + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000026107933" + } + }, { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "971715723" }, "arbeidsforholdId": { "abakusReferanse": "dfe43528-b517-408d-8d3b-a8e97259da40", - "eksternReferanse": "900935721652000223420", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "900935721652000223420" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2018-04-30", + "fom": "2018-01-01" + }, + "stillingsprosent": 100 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2014-11-17" + }, + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-08-01" + }, + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2018-04-01", + "periode": { + "tom": "2018-07-31", + "fom": "2018-05-01" + }, + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-08-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "PERMISJON" + }, + "periode": { + "tom": "2017-10-02", + "fom": "2017-10-02" } - } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "PERMISJON" + }, + "periode": { + "tom": "2017-10-09", + "fom": "2017-10-09" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2018-10-03", + "fom": "2018-10-03" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2018-08-24", + "fom": "2018-08-24" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2018-01-24", + "fom": "2018-01-23" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2018-02-16", + "fom": "2018-02-15" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "VELFERDSPERMISJON" + }, + "periode": { + "tom": "2018-11-28", + "fom": "2018-11-26" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "PERMISJON" + }, + "periode": { + "tom": "2015-09-18", + "fom": "2015-09-07" + } + }, { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "PERMISJON" + }, + "periode": { + "tom": "2016-10-17", + "fom": "2016-08-08" + } + } ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000098325347" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000026107933" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975270815" + "ytelser": [ { + "saksnummer": "2018462694", + "ytelseGrunnlag": { + "fordeling": [ ], + "opprinneligIdentDato": "2018-11-22" }, - "arbeidsforholdId": { - "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", - "eksternReferanse": "V975270815R512846S201L0001", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "AAP" + }, + "anvisninger": [ { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-12-16", + "fom": "2018-12-03" + } + }, { + "dagsats": 772, + "beløp": 772, + "utbetalingsgrad": 20, + "periode": { + "tom": "2018-12-02", + "fom": "2018-11-19" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-12-30", + "fom": "2018-12-17" } + } ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "ARENA" + }, + "periode": { + "tom": "2019-06-30", + "fom": "2018-11-30" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "LOP" } - } - ], - "overstyringer": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "974571900" + }, { + "saksnummer": "2018462694", + "ytelseGrunnlag": { + "fordeling": [ ], + "opprinneligIdentDato": "2018-11-30" }, - "arbeidsforholdHandlingType": { - "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", - "kode": "BRUK_UTEN_INNTEKTSMELDING" + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "AAP" }, - "overstyrtePerioder": [] + "anvisninger": [ { + "dagsats": 772, + "beløp": 3088, + "utbetalingsgrad": 80, + "periode": { + "tom": "2018-08-26", + "fom": "2018-08-13" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-10-07", + "fom": "2018-09-24" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-07-15", + "fom": "2018-07-02" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-10-21", + "fom": "2018-10-08" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-07-29", + "fom": "2018-07-16" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-08-12", + "fom": "2018-07-30" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-09-09", + "fom": "2018-08-27" + } + }, { + "dagsats": 772, + "beløp": 6948, + "utbetalingsgrad": 180, + "periode": { + "tom": "2018-12-02", + "fom": "2018-11-19" + } + }, { + "dagsats": 772, + "beløp": 7720, + "utbetalingsgrad": 200, + "periode": { + "tom": "2018-11-18", + "fom": "2018-11-05" + } + } ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "ARENA" + }, + "periode": { + "tom": "2018-11-29", + "fom": "2018-07-02" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" + } + } ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000098325347" }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "975270815" + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-01-03T13:11:04.528Z", + "eksternReferanse": "8a6bc440-eb04-1f94-e053-2880340a2b28" + }, + "koblingReferanse": "88487f4b-f876-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "989644017" + }, + "arbeidsforholdId": { + "abakusReferanse": "e2b8c890-0416-4bc2-a791-36d0d32c0ee6", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdReferanse": { - "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", - "eksternReferanse": "V975270815R512846S201L0001", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } + "eksternReferanse": "974975587592000015673" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975587592" + }, + "arbeidsforholdId": { + "abakusReferanse": "b4aa73f8-bed1-4918-8f5e-bebaf3c24ef9", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "143975587592000015858" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "971715723" + }, + "arbeidsforholdId": { + "abakusReferanse": "dfe43528-b517-408d-8d3b-a8e97259da40", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidsforholdHandlingType": { - "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", - "kode": "BRUK" + "eksternReferanse": "900935721652000223420" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975270815" + }, + "arbeidsforholdId": { + "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "overstyrtePerioder": [] + "eksternReferanse": "V975270815R512846S201L0001" + } + } ], + "overstyringer": [ { + "overstyrtePerioder": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974571900" + }, + "arbeidsforholdHandlingType": { + "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", + "kode": "BRUK_UTEN_INNTEKTSMELDING" } - ] + }, { + "overstyrtePerioder": [ ], + "arbeidsforholdReferanse": { + "abakusReferanse": "496c923b-e8d0-4ae4-bda9-c9c34f3fc6a3", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "V975270815R512846S201L0001" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975270815" + }, + "arbeidsforholdHandlingType": { + "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", + "kode": "BRUK" + } + } ] } }, - "aktiv": false, "opplysningsperiode": { - "fom": "2017-08-25", - "tom": "2023-01-25" - } -} + "tom": "2023-01-25", + "fom": "2017-08-25" + }, + "aktiv": false +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-4.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-4.json index 2c20bc41c..b1b3d5058 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-4.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-4.json @@ -1,805 +1,716 @@ { "data": { + "oppgittOpptjening": { + "annenAktivitet": [ ], + "arbeidsforhold": [ ], + "opprettetTidspunkt": "2019-02-27T12:59:25.143Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": false, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "993249742" + }, + "virksomhetType": { + "kodeverk": "VIRKSOMHET_TYPE", + "kode": "ANNEN" + }, + "periode": { + "tom": "9999-12-31", + "fom": "2008-10-27" + }, + "bruttoInntekt": 0, + "landkode": { + "kodeverk": "LANDKODER", + "kode": "NOR" + }, + "erNyoppstartet": false, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": null, + "endringDato": null + } ], + "eksternReferanse": "8a6bc443-6ef4-1f94-e053-2880340a2b28" + }, "person": { "identType": "AKTØRID", "ident": "1000019579573" }, "grunnlagTidspunkt": "2019-03-06T06:02:14.145Z", "grunnlagReferanse": "8abb7316-7671-0abc-e053-2880340a57a0", - "koblingReferanse": "88487f4c-340f-2133-e053-2880340a6560", "registerGrunnlag": { - "opprettetTidspunkt": "2019-03-06T06:02:14.139Z", - "eksternReferanse": "8a6bc442-6411-1f94-e053-2880340a2b28", - "arbeid": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000047962258" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973681710" - }, - "arbeidsforholdId": { - "abakusReferanse": "8a6a80c3-cbb6-4070-ba89-3a6e3431c819", - "eksternReferanse": "0001-0003-20180801", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-08-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 100.00, - "sistLønnsendring": "2018-08-01" - }, - { - "periode": { - "fom": "2018-08-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "912582426" - }, - "arbeidsforholdId": { - "abakusReferanse": "4a37355c-8ff6-4e2a-9bbf-205eab355701", - "eksternReferanse": "0001-0001-20180501", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-05-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00, - "sistLønnsendring": "2018-05-01" - }, - { - "periode": { - "fom": "2018-05-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "912582426" - }, - "arbeidsforholdId": { - "abakusReferanse": "8161cce9-5543-49c8-88d1-6e36f506c45f", - "eksternReferanse": "0001-0001-20170301", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2017-03-01", - "tom": "2017-10-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2017-04-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00, - "sistLønnsendring": "2017-03-01" - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "999531741" - }, - "arbeidsforholdId": { - "abakusReferanse": "3d3b3aec-021e-4d37-bd5b-a7667c60d4c0", - "eksternReferanse": "V999531741R50153200S081801L0003", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER_OPPDRAGSTAKER" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-12-01", - "tom": "9999-12-31" - } - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "999531741" - }, - "arbeidsforholdId": { - "abakusReferanse": "71c6d357-2711-4449-a3b0-f5bb98fea24a", - "eksternReferanse": "V999531741R50153200S081801L0002", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER_OPPDRAGSTAKER" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2016-12-01", - "tom": "2018-07-31" - } - }, - { - "periode": { - "fom": "2016-12-01", - "tom": "2018-06-30" - } - }, - { - "periode": { - "fom": "2016-12-01", - "tom": "2016-12-01" - } - } - ], - "permisjoner": [] - } - ] + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000047962258" }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000019579573" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "986353747" - }, - "arbeidsforholdId": { - "abakusReferanse": "4c3bf914-7e14-423f-bdb2-557248687808", - "eksternReferanse": "0400-0001-20180501", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-05-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2018-05-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00, - "sistLønnsendring": "2018-05-01" - } - ], - "permisjoner": [] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "933119262" - }, - "arbeidsforholdId": { - "abakusReferanse": "1a4209a0-487e-4a94-9097-82382a242953", - "eksternReferanse": "205", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER_OPPDRAGSTAKER" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2007-05-01", - "tom": "9999-12-31" - } - } - ], - "permisjoner": [] + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "912582426" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 5790, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" } - ] - } - ], - "inntekter": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000047962258" - }, - "utbetalinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "912582426" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 5790.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 5790.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-09-01", - "tom": "2018-09-30" - }, - "beløp": 8412.00 - } - ] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "999531741" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 10416.00 - } - ] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973681710" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 87630.85 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-09-01", - "tom": "2018-09-30" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-01-01", - "tom": "2019-01-31" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-02-01", - "tom": "2019-02-28" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-08-01", - "tom": "2018-08-31" - }, - "beløp": 87577.25 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 17600.00 - } - ] + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 5790, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" } - ] - }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000019579573" - }, - "utbetalinger": [ - { - "arbeidsgiver": null, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2019-02-01", - "tom": "2019-02-28" - }, - "beløp": 14004.00, - "ytelseType": { - "kodeverk": "NÆRINGSINNTEKT_TYPE", - "kode": "SYKEPENGER" - } - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2019-01-01", - "tom": "2019-01-31" - }, - "beløp": 11670.00, - "ytelseType": { - "kodeverk": "NÆRINGSINNTEKT_TYPE", - "kode": "SYKEPENGER" - } - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 43574.00, - "ytelseType": { - "kodeverk": "NÆRINGSINNTEKT_TYPE", - "kode": "SYKEPENGER" - } - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "YTELSE" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 27230.00, - "ytelseType": { - "kodeverk": "NÆRINGSINNTEKT_TYPE", - "kode": "SYKEPENGER" - } - } - ] - }, - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "986353747" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-08-01", - "tom": "2018-08-31" - }, - "skattAvgiftType": { - "kodeverk": "SKATTE_OG_AVGIFTSREGEL", - "kode": "SKATTEFRI_ORGANISASJON" - }, - "beløp": 1354.13 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "skattAvgiftType": { - "kodeverk": "SKATTE_OG_AVGIFTSREGEL", - "kode": "SKATTEFRI_ORGANISASJON" - }, - "beløp": 16.39 - } - ] + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 8412, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" } - ] - } - ], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1000047962258" - }, - "ytelser": [] - }, - { - "person": { - "identType": "AKTØRID", - "ident": "1000019579573" - }, - "ytelser": [ - { - "fagsystem": { - "kodeverk": "FAGSYSTEM", - "kode": "INFOTRYGD" - }, - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "SP" - }, - "periode": { - "fom": "2018-07-30", - "tom": "2019-02-22" - }, - "status": { - "kodeverk": "YTELSE_STATUS", - "kode": "LOP" - }, - "anvisninger": [ - { - "periode": { - "fom": "2019-01-05", - "tom": "2019-01-30" - }, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2018-12-17", - "tom": "2019-01-04" - }, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2018-10-29", - "tom": "2018-12-16" - }, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2019-01-31", - "tom": "2019-02-24" - }, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2018-08-31", - "tom": "2018-10-28" - }, - "utbetalingsgrad": 80.00 - }, - { - "periode": { - "fom": "2018-08-15", - "tom": "2018-08-30" - }, - "utbetalingsgrad": 100.00 - } - ], - "ytelseGrunnlag": { - "arbeidskategori": { - "kodeverk": "ARBEIDSKATEGORI", - "kode": "SELVSTENDIG_NÆRINGSDRIVENDE" - }, - "fordeling": [ - { - "beløp": 337153.00, - "inntektPeriodeType": { - "kodeverk": "INNTEKT_PERIODE_TYPE", - "kode": "AARLG" - } - } - ] - } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "999531741" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10416, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" } - ] - } - ] - }, - "oppgittOpptjening": { - "eksternReferanse": "8a6bc443-6ef4-1f94-e053-2880340a2b28", - "opprettetTidspunkt": "2019-02-27T12:59:25.143Z", - "arbeidsforhold": [], - "egenNæring": [ - { - "periode": { - "fom": "2008-10-27", - "tom": "9999-12-31" + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "virksomhet": { + "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "993249742" - }, - "virksomhetType": { - "kodeverk": "VIRKSOMHET_TYPE", - "kode": "ANNEN" - }, - "regnskapsførerNavn": null, - "regnskapsførerTlf": null, - "virksomhetNavn": null, - "landkode": { - "kodeverk": "LANDKODER", - "kode": "NOR" - }, - "endringDato": null, - "erVarigEndring": false, - "endringBegrunnelse": null, - "bruttoInntekt": 0.00, - "erNyoppstartet": false, - "erNærRelasjon": false, - "erNyIArbeidslivet": false - } - ], - "annenAktivitet": [] - }, - "arbeidsforholdInformasjon": { - "referanser": [ - { + "ident": "973681710" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87630.85, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 87577.25, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 17600, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + } ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000019579573" + }, + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 14004, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" + }, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 11670, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" + }, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 43574, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" + }, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 27230, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" + }, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "986353747" }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "skattAvgiftType": { + "kodeverk": "SKATTE_OG_AVGIFTSREGEL", + "kode": "SKATTEFRI_ORGANISASJON" + }, + "beløp": 1354.13, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "skattAvgiftType": { + "kodeverk": "SKATTE_OG_AVGIFTSREGEL", + "kode": "SKATTEFRI_ORGANISASJON" + }, + "beløp": 16.39, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973681710" + }, "arbeidsforholdId": { - "abakusReferanse": "4c3bf914-7e14-423f-bdb2-557248687808", - "eksternReferanse": "0400-0001-20180501", + "abakusReferanse": "8a6a80c3-cbb6-4070-ba89-3a6e3431c819", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" - } - } - }, - { + }, + "eksternReferanse": "0001-0003-20180801" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-08-01" + }, + "stillingsprosent": 100 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2018-08-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, "arbeidsgiver": { "identType": "ORGNUMMER", "ident": "912582426" }, "arbeidsforholdId": { "abakusReferanse": "4a37355c-8ff6-4e2a-9bbf-205eab355701", - "eksternReferanse": "0001-0001-20180501", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" - } - } - }, - { + }, + "eksternReferanse": "0001-0001-20180501" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-05-01" + }, + "stillingsprosent": 0 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2018-05-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "999531741" + "ident": "912582426" }, "arbeidsforholdId": { - "abakusReferanse": "3d3b3aec-021e-4d37-bd5b-a7667c60d4c0", - "eksternReferanse": "V999531741R50153200S081801L0003", + "abakusReferanse": "8161cce9-5543-49c8-88d1-6e36f506c45f", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" - } - } - }, - { + }, + "eksternReferanse": "0001-0001-20170301" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2017-10-31", + "fom": "2017-03-01" + }, + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2017-03-01", + "periode": { + "tom": "9999-12-31", + "fom": "2017-04-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER_OPPDRAGSTAKER" + }, "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "973681710" + "ident": "999531741" }, "arbeidsforholdId": { - "abakusReferanse": "8a6a80c3-cbb6-4070-ba89-3a6e3431c819", - "eksternReferanse": "0001-0003-20180801", + "abakusReferanse": "3d3b3aec-021e-4d37-bd5b-a7667c60d4c0", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "V999531741R50153200S081801L0003" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2018-12-01" } - } - }, - { + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER_OPPDRAGSTAKER" + }, "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "933119262" + "ident": "999531741" }, "arbeidsforholdId": { - "abakusReferanse": "1a4209a0-487e-4a94-9097-82382a242953", - "eksternReferanse": "205", + "abakusReferanse": "71c6d357-2711-4449-a3b0-f5bb98fea24a", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "V999531741R50153200S081801L0002" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-07-31", + "fom": "2016-12-01" } - } - }, - { + }, { + "periode": { + "tom": "2018-06-30", + "fom": "2016-12-01" + } + }, { + "periode": { + "tom": "2016-12-01", + "fom": "2016-12-01" + } + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000047962258" + } + }, { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "912582426" + "ident": "986353747" }, "arbeidsforholdId": { - "abakusReferanse": "8161cce9-5543-49c8-88d1-6e36f506c45f", - "eksternReferanse": "0001-0001-20170301", + "abakusReferanse": "4c3bf914-7e14-423f-bdb2-557248687808", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" - } - } - }, - { + }, + "eksternReferanse": "0400-0001-20180501" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2018-05-01" + }, + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-05-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER_OPPDRAGSTAKER" + }, "arbeidsgiver": { "identType": "ORGNUMMER", - "ident": "999531741" + "ident": "933119262" }, "arbeidsforholdId": { - "abakusReferanse": "71c6d357-2711-4449-a3b0-f5bb98fea24a", - "eksternReferanse": "V999531741R50153200S081801L0002", + "abakusReferanse": "1a4209a0-487e-4a94-9097-82382a242953", "eksternReferanseSystem": { "kodeverk": "FAGSYSTEM", "kode": "AAREGISTERET" + }, + "eksternReferanse": "205" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2007-05-01" + } + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000019579573" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000047962258" + }, + "ytelser": [ ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000019579573" + }, + "ytelser": [ { + "ytelseGrunnlag": { + "fordeling": [ { + "beløp": 337153, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "AARLG" + } + } ], + "arbeidskategori": { + "kodeverk": "ARBEIDSKATEGORI", + "kode": "SELVSTENDIG_NÆRINGSDRIVENDE" } + }, + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "SP" + }, + "anvisninger": [ { + "utbetalingsgrad": 80, + "periode": { + "tom": "2019-01-30", + "fom": "2019-01-05" + } + }, { + "utbetalingsgrad": 80, + "periode": { + "tom": "2019-01-04", + "fom": "2018-12-17" + } + }, { + "utbetalingsgrad": 80, + "periode": { + "tom": "2018-12-16", + "fom": "2018-10-29" + } + }, { + "utbetalingsgrad": 80, + "periode": { + "tom": "2019-02-24", + "fom": "2019-01-31" + } + }, { + "utbetalingsgrad": 80, + "periode": { + "tom": "2018-10-28", + "fom": "2018-08-31" + } + }, { + "utbetalingsgrad": 100, + "periode": { + "tom": "2018-08-30", + "fom": "2018-08-15" + } + } ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2019-02-22", + "fom": "2018-07-30" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "LOP" } + } ] + } ], + "opprettetTidspunkt": "2019-03-06T06:02:14.139Z", + "eksternReferanse": "8a6bc442-6411-1f94-e053-2880340a2b28" + }, + "koblingReferanse": "88487f4c-340f-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "986353747" + }, + "arbeidsforholdId": { + "abakusReferanse": "4c3bf914-7e14-423f-bdb2-557248687808", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0400-0001-20180501" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "912582426" + }, + "arbeidsforholdId": { + "abakusReferanse": "4a37355c-8ff6-4e2a-9bbf-205eab355701", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20180501" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "999531741" + }, + "arbeidsforholdId": { + "abakusReferanse": "3d3b3aec-021e-4d37-bd5b-a7667c60d4c0", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "V999531741R50153200S081801L0003" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973681710" + }, + "arbeidsforholdId": { + "abakusReferanse": "8a6a80c3-cbb6-4070-ba89-3a6e3431c819", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0003-20180801" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "933119262" + }, + "arbeidsforholdId": { + "abakusReferanse": "1a4209a0-487e-4a94-9097-82382a242953", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "205" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "912582426" + }, + "arbeidsforholdId": { + "abakusReferanse": "8161cce9-5543-49c8-88d1-6e36f506c45f", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20170301" + } + }, { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "999531741" + }, + "arbeidsforholdId": { + "abakusReferanse": "71c6d357-2711-4449-a3b0-f5bb98fea24a", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "V999531741R50153200S081801L0002" } - ], - "overstyringer": [] + } ], + "overstyringer": [ ] } }, - "aktiv": false, "opplysningsperiode": { - "fom": "2017-09-25", - "tom": "2023-02-25" - } -} + "tom": "2023-02-25", + "fom": "2017-09-25" + }, + "aktiv": false +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-5.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-5.json index 687f51589..4ab00e662 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-5.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-5.json @@ -1,73 +1,69 @@ { "data": { + "oppgittOpptjening": { + "annenAktivitet": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER" + }, + "periode": { + "tom": "2019-05-31", + "fom": "2019-01-01" + } + } ], + "arbeidsforhold": [ ], + "frilans": { + "frilansoppdrag": [ ], + "erNyoppstartet": false, + "erNærRelasjon": false, + "harInntektFraFosterhjem": false + }, + "opprettetTidspunkt": "2019-06-17T06:41:14.659Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": false, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "997158768" + }, + "virksomhetType": { + "kodeverk": "VIRKSOMHET_TYPE", + "kode": "JORDBRUK_SKOGBRUK" + }, + "periode": { + "tom": "9999-12-31", + "fom": "2011-07-30" + }, + "bruttoInntekt": 600000, + "landkode": { + "kodeverk": "LANDKODER", + "kode": "NOR" + }, + "erNyoppstartet": true, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": "Ny som bonde", + "endringDato": null + } ], + "eksternReferanse": "17989d4c-0531-4046-8c0a-da332e923d3d" + }, "person": { "identType": "AKTØRID", "ident": "1546156295907" }, "grunnlagTidspunkt": "2019-06-17T06:41:14.935Z", "grunnlagReferanse": "8b8bef23-5e4d-0773-e053-2880340a0b5a", - "koblingReferanse": "2af22a7e-4f1e-4bfb-b824-628c054399b9", - "oppgittOpptjening": { - "eksternReferanse": "17989d4c-0531-4046-8c0a-da332e923d3d", - "opprettetTidspunkt": "2019-06-17T06:41:14.659Z", - "arbeidsforhold": [], - "egenNæring": [ - { - "periode": { - "fom": "2011-07-30", - "tom": "9999-12-31" - }, - "virksomhet": { - "identType": "ORGNUMMER", - "ident": "997158768" - }, - "virksomhetType": { - "kodeverk": "VIRKSOMHET_TYPE", - "kode": "JORDBRUK_SKOGBRUK" - }, - "regnskapsførerNavn": null, - "regnskapsførerTlf": null, - "virksomhetNavn": null, - "landkode": { - "kodeverk": "LANDKODER", - "kode": "NOR" - }, - "endringDato": null, - "erVarigEndring": false, - "endringBegrunnelse": "Ny som bonde", - "bruttoInntekt": 600000.00, - "erNyoppstartet": true, - "erNærRelasjon": false, - "erNyIArbeidslivet": false - } - ], - "annenAktivitet": [ - { - "periode": { - "fom": "2019-01-01", - "tom": "2019-05-31" - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER" - } - } - ], - "frilans": { - "harInntektFraFosterhjem": false, - "erNyoppstartet": false, - "erNærRelasjon": false, - "frilansoppdrag": [] - } - } + "koblingReferanse": "2af22a7e-4f1e-4bfb-b824-628c054399b9" + }, + "opptjeningsperiode": { + "tom": "2019-04-30", + "fom": "2019-04-03" }, - "aktiv": false, "opplysningsperiode": { - "fom": "2017-12-01", - "tom": "2023-05-01" + "tom": "2023-05-01", + "fom": "2017-12-01" }, - "opptjeningsperiode": { - "fom": "2019-04-03", - "tom": "2019-04-30" - } -} + "aktiv": false +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-6.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-6.json index 744b298f1..4b21a707c 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-6.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-6.json @@ -1,5 +1,28 @@ { "data": { + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "kildesystem": "FS32", + "mottattDato": "2019-06-19", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-06-19T14:27:54.636261Z", + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973135678" + }, + "erNærRelasjon": true, + "kanalreferanse": "V33QUEHBIQHB", + "utsettelsePerioder": [ ], + "inntektBeløp": 17500, + "journalpostId": "448187581", + "innsendingsårsak": { + "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", + "kode": "NY" + } + } ] + }, "person": { "identType": "AKTØRID", "ident": "1198595986180" @@ -7,39 +30,14 @@ "grunnlagTidspunkt": "2019-06-19T14:28:00.041Z", "grunnlagReferanse": "f39d8acd-9bb8-4bff-a273-56833d00e622", "koblingReferanse": "642ed3f4-071b-490a-a5a2-1f38d59e300a", - "inntektsmeldinger": { - "inntektsmeldinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973135678" - }, - "journalpostId": "448187581", - "innsendingstidspunkt": "2019-06-19T14:27:54.636261Z", - "mottattDato": "2019-06-19", - "graderinger": [], - "naturalytelser": [], - "utsettelsePerioder": [], - "erNærRelasjon": true, - "inntektBeløp": 17500.00, - "kanalreferanse": "V33QUEHBIQHB", - "kildesystem": "FS32", - "refusjonEndringer": [], - "innsendingsårsak": { - "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", - "kode": "NY" - } - } - ] - }, "arbeidsforholdInformasjon": { - "referanser": [], - "overstyringer": [] + "referanser": [ ], + "overstyringer": [ ] } }, - "aktiv": true, "opplysningsperiode": { - "fom": "2018-01-26", - "tom": "2023-06-26" - } -} + "tom": "2023-06-26", + "fom": "2018-01-26" + }, + "aktiv": true +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-7.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-7.json index 5b30cd23f..93aaf90ec 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-7.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-7.json @@ -1,674 +1,600 @@ { - "saksnummer": "139016732", - "ytelseType": { - "kodeverk": "YTELSE_TYPE", - "kode": "FP" - }, - "aktør": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "grunnlag": [ - { - "data": { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "grunnlagTidspunkt": "2019-06-24T12:50:22.46Z", - "grunnlagReferanse": "f99aadae-4b0c-46b8-9246-613dc82cd295", - "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", - "registerGrunnlag": { - "opprettetTidspunkt": "2019-06-24T12:50:28.354Z", - "eksternReferanse": "dbcfc65c-4f41-46a3-abb7-6e235c162713", - "arbeid": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "arbeidsforholdId": { - "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", - "eksternReferanse": "9838394545", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-01-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2018-01-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 100.00 - } - ], - "permisjoner": [] - } - ] - } - ], - "inntekter": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "utbetalinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-01-01", - "tom": "2019-01-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-09-01", - "tom": "2018-09-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-04-01", - "tom": "2019-04-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-03-01", - "tom": "2019-03-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-04-01", - "tom": "2018-04-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-05-01", - "tom": "2019-05-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-03-01", - "tom": "2018-03-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-02-01", - "tom": "2019-02-28" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-02-01", - "tom": "2018-02-28" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-05-01", - "tom": "2018-05-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-08-01", - "tom": "2018-08-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-06-01", - "tom": "2019-06-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-07-01", - "tom": "2018-07-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 10000.00 - } - ] - } - ] - } - ], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "ytelser": [] - } - ] - }, - "arbeidsforholdInformasjon": { - "referanser": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "arbeidsforholdId": { - "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", - "eksternReferanse": "9838394545", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } - } - ], - "overstyringer": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "arbeidsforholdReferanse": { - "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", - "eksternReferanse": "9838394545", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidsforholdHandlingType": { - "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", - "kode": "BRUK_UTEN_INNTEKTSMELDING" - }, - "overstyringBegrunnelse": "adsdasd", - "overstyrtePerioder": [] - } - ] - } + "grunnlag": [ { + "data": { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" }, - "aktiv": true, - "opplysningsperiode": { - "fom": "2018-02-01", - "tom": "2023-07-01" + "grunnlagTidspunkt": "2019-06-24T12:50:22.46Z", + "grunnlagReferanse": "f99aadae-4b0c-46b8-9246-613dc82cd295", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-04-30", + "fom": "2019-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-05-31", + "fom": "2019-05-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-06-30", + "fom": "2019-06-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "arbeidsforholdId": { + "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "9838394545" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" + }, + "stillingsprosent": 0 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-06-24T12:50:28.354Z", + "eksternReferanse": "dbcfc65c-4f41-46a3-abb7-6e235c162713" + }, + "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "arbeidsforholdId": { + "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "9838394545" + } + } ], + "overstyringer": [ { + "overstyrtePerioder": [ ], + "arbeidsforholdReferanse": { + "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "9838394545" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "overstyringBegrunnelse": "adsdasd", + "arbeidsforholdHandlingType": { + "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", + "kode": "BRUK_UTEN_INNTEKTSMELDING" + } + } ] } }, - { - "data": { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "grunnlagTidspunkt": "2019-06-24T12:50:28.349Z", - "grunnlagReferanse": "3f4528c3-7e6f-4ab6-ae4f-92886449dc3c", - "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", - "registerGrunnlag": { - "opprettetTidspunkt": "2019-06-24T12:50:27.677Z", - "eksternReferanse": "b039727c-b944-47a7-aaea-91fe301f3bf0", - "arbeid": [], - "inntekter": [], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "ytelser": [] - } - ] - }, - "arbeidsforholdInformasjon": { - "referanser": [], - "overstyringer": [] - } + "opplysningsperiode": { + "tom": "2023-07-01", + "fom": "2018-02-01" + }, + "aktiv": true + }, { + "data": { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "grunnlagTidspunkt": "2019-06-24T12:50:28.349Z", + "grunnlagReferanse": "3f4528c3-7e6f-4ab6-ae4f-92886449dc3c", + "registerGrunnlag": { + "inntekter": [ ], + "arbeid": [ ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-06-24T12:50:27.677Z", + "eksternReferanse": "b039727c-b944-47a7-aaea-91fe301f3bf0" }, - "aktiv": false, - "opplysningsperiode": { - "fom": "2018-02-01", - "tom": "2023-07-01" + "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", + "arbeidsforholdInformasjon": { + "referanser": [ ], + "overstyringer": [ ] } }, - { - "data": { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "grunnlagTidspunkt": "2019-06-24T12:50:29.071Z", - "grunnlagReferanse": "06ac21b7-3dd1-41b8-a587-3879d3dd0434", - "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", - "registerGrunnlag": { - "opprettetTidspunkt": "2019-06-24T12:50:28.354Z", - "eksternReferanse": "dbcfc65c-4f41-46a3-abb7-6e235c162713", - "arbeid": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "yrkesaktiviteter": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "arbeidsforholdId": { - "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", - "eksternReferanse": "9838394545", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler": [ - { - "periode": { - "fom": "2018-01-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 0.00 - }, - { - "periode": { - "fom": "2018-01-01", - "tom": "9999-12-31" - }, - "stillingsprosent": 100.00 - } - ], - "permisjoner": [] - } - ] - } - ], - "inntekter": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "utbetalinger": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "inntektsKilde": { - "kodeverk": "INNTEKTS_KILDE", - "kode": "INNTEKT_OPPTJENING" - }, - "utbetalingsPoster": [ - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-01-01", - "tom": "2019-01-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-11-01", - "tom": "2018-11-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-10-01", - "tom": "2018-10-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-12-01", - "tom": "2018-12-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-09-01", - "tom": "2018-09-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-04-01", - "tom": "2019-04-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-03-01", - "tom": "2019-03-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-04-01", - "tom": "2018-04-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-05-01", - "tom": "2019-05-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-03-01", - "tom": "2018-03-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-02-01", - "tom": "2019-02-28" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-02-01", - "tom": "2018-02-28" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-05-01", - "tom": "2018-05-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-08-01", - "tom": "2018-08-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2019-06-01", - "tom": "2019-06-30" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-07-01", - "tom": "2018-07-31" - }, - "beløp": 10000.00 - }, - { - "inntektspostType": { - "kodeverk": "INNTEKTSPOST_TYPE", - "kode": "LØNN" - }, - "periode": { - "fom": "2018-06-01", - "tom": "2018-06-30" - }, - "beløp": 10000.00 - } - ] - } - ] - } - ], - "ytelser": [ - { - "person": { - "identType": "AKTØRID", - "ident": "1649662525185" - }, - "ytelser": [] - } - ] - }, - "arbeidsforholdInformasjon": { - "referanser": [ - { - "arbeidsgiver": { - "identType": "ORGNUMMER", - "ident": "973861778" - }, - "arbeidsforholdId": { - "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", - "eksternReferanse": "9838394545", - "eksternReferanseSystem": { - "kodeverk": "FAGSYSTEM", - "kode": "AAREGISTERET" - } - } - } - ], - "overstyringer": [] - } + "opplysningsperiode": { + "tom": "2023-07-01", + "fom": "2018-02-01" + }, + "aktiv": false + }, { + "data": { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" }, - "aktiv": false, - "opplysningsperiode": { - "fom": "2018-02-01", - "tom": "2023-07-01" + "grunnlagTidspunkt": "2019-06-24T12:50:29.071Z", + "grunnlagReferanse": "06ac21b7-3dd1-41b8-a587-3879d3dd0434", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-04-30", + "fom": "2019-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-05-31", + "fom": "2019-05-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2019-06-30", + "fom": "2019-06-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 10000, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "arbeidsforholdId": { + "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "9838394545" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" + }, + "stillingsprosent": 0 + }, { + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1649662525185" + }, + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-06-24T12:50:28.354Z", + "eksternReferanse": "dbcfc65c-4f41-46a3-abb7-6e235c162713" + }, + "koblingReferanse": "1061ee0c-9bcd-4df0-ad0a-76b2662136df", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973861778" + }, + "arbeidsforholdId": { + "abakusReferanse": "b537fe95-9275-4f0c-a60e-be3ceed7b5c8", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "9838394545" + } + } ], + "overstyringer": [ ] } - } - ], - "snapshotTidspunkt": "2019-06-24T12:50:02.751Z" -} + }, + "opplysningsperiode": { + "tom": "2023-07-01", + "fom": "2018-02-01" + }, + "aktiv": false + } ], + "saksnummer": "139016732", + "snapshotTidspunkt": "2019-06-24T12:50:02.751Z", + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "FP" + }, + "aktør": { + "identType": "AKTØRID", + "ident": "1649662525185" + } +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-8.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-8.json index 697593da4..e06c38d0c 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-8.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-8.json @@ -1,81 +1,75 @@ { "data": { - "person": { - "identType": "AKTØRID", - "ident": "1000104922534" - }, - "grunnlagTidspunkt": "2019-03-11T11:04:08.516Z", - "grunnlagReferanse": "8abb7316-9a81-0abc-e053-2880340a57a0", - "koblingReferanse": "88487f4c-46a5-2133-e053-2880340a6560", "oppgittOpptjening": { - "eksternReferanse": "8a6bc443-723d-1f94-e053-2880340a2b28", - "opprettetTidspunkt": "2019-03-11T11:04:08.507Z", - "arbeidsforhold": [], - "egenNæring": [ - { - "periode": { - "fom": "2018-04-02", - "tom": "9999-12-31" - }, - "virksomhet": { - "identType": "ORGNUMMER", - "ident": "915527329" - }, - "virksomhetType": { - "kodeverk": "VIRKSOMHET_TYPE", - "kode": "ANNEN" - }, - "regnskapsførerNavn": null, - "regnskapsførerTlf": null, - "virksomhetNavn": null, - "landkode": { - "kodeverk": "LANDKODER", - "kode": "NOR" - }, - "endringDato": null, - "erVarigEndring": false, - "endringBegrunnelse": null, - "bruttoInntekt": 100000.00, - "erNyoppstartet": true, - "erNærRelasjon": false, - "erNyIArbeidslivet": true + "annenAktivitet": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "FRILANSER" + }, + "periode": { + "tom": "9999-12-31", + "fom": "2018-04-02" } - ], - "annenAktivitet": [ - { + } ], + "arbeidsforhold": [ ], + "frilans": { + "frilansoppdrag": [ { "periode": { - "fom": "2018-04-02", - "tom": "9999-12-31" + "tom": "2018-12-31", + "fom": "2018-04-02" }, - "arbeidType": { - "kodeverk": "ARBEID_TYPE", - "kode": "FRILANSER" - } - } - ], - "frilans": { - "harInntektFraFosterhjem": false, + "oppdragsgiver": "Karol Cieslinski" + } ], "erNyoppstartet": false, "erNærRelasjon": true, - "frilansoppdrag": [ - { - "periode": { - "fom": "2018-04-02", - "tom": "2018-12-31" - }, - "oppdragsgiver": "Karol Cieslinski" - } - ] - } + "harInntektFraFosterhjem": false + }, + "opprettetTidspunkt": "2019-03-11T11:04:08.507Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": true, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "915527329" + }, + "virksomhetType": { + "kodeverk": "VIRKSOMHET_TYPE", + "kode": "ANNEN" + }, + "periode": { + "tom": "9999-12-31", + "fom": "2018-04-02" + }, + "bruttoInntekt": 100000, + "landkode": { + "kodeverk": "LANDKODER", + "kode": "NOR" + }, + "erNyoppstartet": true, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": null, + "endringDato": null + } ], + "eksternReferanse": "8a6bc443-723d-1f94-e053-2880340a2b28" + }, + "person": { + "identType": "AKTØRID", + "ident": "1000104922534" }, + "grunnlagTidspunkt": "2019-03-11T11:04:08.516Z", + "grunnlagReferanse": "8abb7316-9a81-0abc-e053-2880340a57a0", + "koblingReferanse": "88487f4c-46a5-2133-e053-2880340a6560", "arbeidsforholdInformasjon": { - "referanser": [], - "overstyringer": [] + "referanser": [ ], + "overstyringer": [ ] } }, - "aktiv": true, "opplysningsperiode": { - "fom": "2017-12-25", - "tom": "2023-05-25" - } -} + "tom": "2023-05-25", + "fom": "2017-12-25" + }, + "aktiv": true +} \ No newline at end of file diff --git a/domenetjenester/iay/src/test/resources/migrering-grunnlag-9.json b/domenetjenester/iay/src/test/resources/migrering-grunnlag-9.json index 1d2f56120..2bc50bb43 100644 --- a/domenetjenester/iay/src/test/resources/migrering-grunnlag-9.json +++ b/domenetjenester/iay/src/test/resources/migrering-grunnlag-9.json @@ -1,2166 +1,2166 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000060002501" - }, - "grunnlagTidspunkt" : "2019-10-15T06:58:02.513+02:00", - "grunnlagReferanse" : "dcd68e38-b4a4-4ab8-add3-a3a4de11e4d0", - "koblingReferanse" : "9f2a89fc-84d1-45fb-a0ee-7b982cfa8919", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-05-20T08:14:34.566+02:00", - "eksternReferanse" : "8a7cb2a7-cbb5-4ece-e053-304d350a06c0", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000060002501" + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "kildesystem": "AltinnPortal", + "mottattDato": "2019-03-19", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-03-19T07:50:09+01:00", + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "09104de6-a957-45a1-8eea-7e53c0e66d39", - "eksternReferanse" : "0001-0001-20170619", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } - }, - "arbeidType" : { - "kodeverk" : "ARBEID_TYPE", - "kode" : "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-06-19", - "tom" : "2018-10-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-06-19" - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-05-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-06-19" - }, { - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-07-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-05-01" - }, { - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-10-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-08-01" - }, { - "periode" : { - "fom" : "2018-11-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-08-01" - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0002-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } - }, - "arbeidType" : { - "kodeverk" : "ARBEID_TYPE", - "kode" : "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-07-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 42.66, - "sistLønnsendring" : "2017-08-01" - }, { - "periode" : { - "fom" : "2017-08-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-05-31" - }, - "stillingsprosent" : 42.66, - "sistLønnsendring" : "2017-08-01" - }, { - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-07-31" - }, - "stillingsprosent" : 42.66, - "sistLønnsendring" : "2018-05-01" - }, { - "periode" : { - "fom" : "2018-08-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 42.66, - "sistLønnsendring" : "2018-08-01" - } ], - "permisjoner" : [ { - "periode" : { - "fom" : "2019-02-08", - "tom" : "2019-11-01" - }, - "type" : { - "kodeverk" : "PERMISJONSBESKRIVELSE_TYPE", - "kode" : "PERMISJON_MED_FORELDREPENGER" - }, - "prosentsats" : 100.00 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "990887977" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "a5b1b9f8-8af0-46ca-82ff-17c2ad88a5b1", - "eksternReferanse" : "0001-0002-20170619", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } - }, - "arbeidType" : { - "kodeverk" : "ARBEID_TYPE", - "kode" : "ORDINÆRT_ARBEIDSFORHOLD" - }, - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-06-19", - "tom" : "2017-10-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-09-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-06-19" - } ], - "permisjoner" : [ ] - } ] + "erNærRelasjon": false, + "kanalreferanse": "AR311459085", + "utsettelsePerioder": [ ], + "inntektBeløp": 6740, + "startdatoPermisjon": "2019-02-08", + "journalpostId": "447373435", + "innsendingsårsak": { + "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", + "kode": "ENDRING" + } }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000038049987" + "graderinger": [ ], + "kildesystem": "Enterprise HRM", + "mottattDato": "2019-03-27", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-03-27T10:40:10+01:00", + "refusjonsBeløpPerMnd": 13756.22, + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "988693545" + "erNærRelasjon": false, + "kanalreferanse": "AR312556381", + "utsettelsePerioder": [ { + "utsettelseÅrsak": { + "kodeverk": "UTSETTELSE_AARSAK_TYPE", + "kode": "LOVBESTEMT_FERIE" }, - "arbeidsforholdId" : { - "abakusReferanse" : "493fac28-862c-4191-8429-05dc9334a94f", - "eksternReferanse" : "4-20120701-1", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "periode": { + "tom": "2019-07-29", + "fom": "2019-07-01" + } + } ], + "inntektBeløp": 17019.55, + "startdatoPermisjon": "2019-02-08", + "refusjonOpphører": "9999-12-31", + "journalpostId": "447942069", + "innsendingsårsak": { + "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", + "kode": "NY" + } + }, { + "graderinger": [ ], + "kildesystem": "Enterprise HRM", + "mottattDato": "2019-03-27", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-03-27T10:40:11+01:00", + "refusjonsBeløpPerMnd": 12574.04, + "naturalytelser": [ ], + "arbeidsforholdReferanse": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "arbeidType" : { - "kodeverk" : "ARBEID_TYPE", - "kode" : "ORDINÆRT_ARBEIDSFORHOLD" + "eksternReferanse": "0001-0002-20170801" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" + }, + "erNærRelasjon": false, + "kanalreferanse": "AR312556427", + "utsettelsePerioder": [ { + "utsettelseÅrsak": { + "kodeverk": "UTSETTELSE_AARSAK_TYPE", + "kode": "LOVBESTEMT_FERIE" }, - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2013-04-09", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-04-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-04-01" - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2019-01-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-04-01" - }, { - "periode" : { - "fom" : "2019-02-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2019-02-01" - } ], - "permisjoner" : [ ] - } ] - } ], - "inntekter" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000038049987" + "periode": { + "tom": "2019-07-29", + "fom": "2019-07-01" + } + } ], + "inntektBeløp": 12574.04, + "startdatoPermisjon": "2019-02-08", + "refusjonOpphører": "9999-12-31", + "journalpostId": "447942093", + "innsendingsårsak": { + "kodeverk": "INNTEKTSMELDING_INNSENDINGSAARSAK", + "kode": "NY" + } + } ] + }, + "person": { + "identType": "AKTØRID", + "ident": "1000060002501" + }, + "grunnlagTidspunkt": "2019-10-15T06:58:02.513+02:00", + "grunnlagReferanse": "dcd68e38-b4a4-4ab8-add3-a3a4de11e4d0", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000038049987" }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "988693545" + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_OPPTJENING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "988693545" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 41216.00 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 41216, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 36856.00 + "beløp": 36856, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 38666.00 + "beløp": 38666, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 39122.00 + "beløp": 39122, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 40391.00 + "beløp": 40391, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 38256.00 + "beløp": 38256, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 40501.00 + "beløp": 40501, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 46401.00 + "beløp": 46401, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 36321.00 + "beløp": 36321, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 42657.42 + "beløp": 42657.42, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 33636.00 + "beløp": 33636, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 48106.00 + "beløp": 48106, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 50691.00 + "beløp": 50691, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 40626.00 + "beløp": 40626, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 45081.00 + "beløp": 45081, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 45282.00 + "beløp": 45282, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 44256.00 + "beløp": 44256, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 54006.00 + "beløp": 54006, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-03-31" - }, - "beløp" : 36366.00 + "beløp": 36366, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2019-04-01", - "tom" : "2019-04-30" - }, - "beløp" : 47886.00 + "beløp": 47886, + "periode": { + "tom": "2019-04-30", + "fom": "2019-04-01" + } } ] } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000060002501" + "person": { + "identType": "AKTØRID", + "ident": "1000060002501" }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "utbetalinger": [ { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_BEREGNING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_BEREGNING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 33727.78 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 33727.78, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 3169.64 + "beløp": 3169.64, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 4764.09 + "beløp": 4764.09, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 2809.83 + "beløp": 2809.83, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 4873.73 + "beløp": 4873.73, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 4874.83 + "beløp": 4874.83, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 12582.33 + "beløp": 12582.33, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 5960.18 + "beløp": 5960.18, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 7962.37 + "beløp": 7962.37, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 3534.80 + "beløp": 3534.8, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 8692.60 + "beløp": 8692.6, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 15973.80 + "beløp": 15973.8, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 4037.18 + "beløp": 4037.18, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 3837.94 + "beløp": 3837.94, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_BEREGNING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_BEREGNING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 34658.53 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 34658.53, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 21032.30 + "beløp": 21032.3, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 22050.00 + "beløp": 22050, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 22050.00 + "beløp": 22050, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 23256.16 + "beløp": 23256.16, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22050.00 + "beløp": 22050, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 25668.48 + "beløp": 25668.48, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22050.00 + "beløp": 22050, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 22050.00 + "beløp": 22050, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 17979.20 + "beløp": 17979.2, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 26785.72 + "beløp": 26785.72, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 24485.21 + "beløp": 24485.21, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 28175.31 + "beløp": 28175.31, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 32463.46 + "beløp": 32463.46, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 29406.70 + "beløp": 29406.7, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 26330.26 + "beløp": 26330.26, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 26330.26 + "beløp": 26330.26, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 26330.26 + "beløp": 26330.26, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 26330.26 + "beløp": 26330.26, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_OPPTJENING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 33727.78 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 33727.78, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 3169.64 + "beløp": 3169.64, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4764.09 + "beløp": 4764.09, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 2809.83 + "beløp": 2809.83, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4873.73 + "beløp": 4873.73, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4874.83 + "beløp": 4874.83, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 12582.33 + "beløp": 12582.33, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 5960.18 + "beløp": 5960.18, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 12961.75 + "beløp": 12961.75, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 3534.80 + "beløp": 3534.8, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 8692.60 + "beløp": 8692.6, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 15973.80 + "beløp": 15973.8, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4037.18 + "beløp": 4037.18, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 3837.94 + "beløp": 3837.94, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_OPPTJENING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 34723.64 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 34723.64, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 21097.41 + "beløp": 21097.41, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 22115.11 + "beløp": 22115.11, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 22115.11 + "beløp": 22115.11, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 23321.27 + "beløp": 23321.27, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 22115.11, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 25733.59 + "beløp": 25733.59, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 22115.11, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 22115.11, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 22881.19 + "beløp": 22881.19, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 26418.13 + "beløp": 26418.13, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 24550.32 + "beløp": 24550.32, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 28240.42 + "beløp": 28240.42, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 32528.57 + "beløp": 32528.57, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 29471.81 + "beløp": 29471.81, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2019-04-01", - "tom" : "2019-04-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2019-04-30", + "fom": "2019-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2019-05-01", - "tom" : "2019-05-31" - }, - "beløp" : 26395.37 + "beløp": 26395.37, + "periode": { + "tom": "2019-05-31", + "fom": "2019-05-01" + } } ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_OPPTJENING" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_OPPTJENING" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" - }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 1080.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "FORELDREPENGER" + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 1080, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" + }, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-03-31" + "beløp": 1512, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 1512.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "FORELDREPENGER" + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2019-04-01", - "tom" : "2019-04-30" + "beløp": 1584, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 1584.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "FORELDREPENGER" + "periode": { + "tom": "2019-04-30", + "fom": "2019-04-01" } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "beløp": 14617, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 14617.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "beløp": 5287, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 5287.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "beløp": 5598, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 5598.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_SAMMENLIGNING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_SAMMENLIGNING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 33727.78 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 33727.78, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 3169.64 + "beløp": 3169.64, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 4764.09 + "beløp": 4764.09, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 2809.83 + "beløp": 2809.83, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4873.73 + "beløp": 4873.73, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4874.83 + "beløp": 4874.83, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 12582.33 + "beløp": 12582.33, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 5960.18 + "beløp": 5960.18, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 12961.75 + "beløp": 12961.75, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 3534.80 + "beløp": 3534.8, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 8692.60 + "beløp": 8692.6, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 15973.80 + "beløp": 15973.8, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 4037.18 + "beløp": 4037.18, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 3837.94 + "beløp": 3837.94, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_SAMMENLIGNING" }, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_SAMMENLIGNING" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" - }, - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 34723.64 + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" + }, + "beløp": 34723.64, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "beløp": 21097.41, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 21097.41 + "beløp": 22115.11, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" + "beløp": 22115.11, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 23321.27, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "beløp": 22115.11, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 25733.59, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "beløp": 22115.11, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 23321.27 + "beløp": 22115.11, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "beløp": 22881.19, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 26418.13, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "beløp": 24550.32, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 25733.59 + "beløp": 28240.42, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "beløp": 32528.57, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 29471.81, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "beløp": 26395.37, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22115.11 + "beløp": 26395.37, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "beløp": 26395.37, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "LØNN" }, - "beløp" : 22881.19 + "beløp": 26395.37, + "periode": { + "tom": "2019-03-31", + "fom": "2019-03-01" + } + } ] + }, { + "inntektsKilde": { + "kodeverk": "INNTEKTS_KILDE", + "kode": "INNTEKT_SAMMENLIGNING" + }, + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" + }, + "beløp": 1080, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" + }, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "beløp": 3421, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 26418.13 + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "beløp": 6842, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 24550.32 + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "beløp": 6531, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 28240.42 + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" + "beløp": 7153, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 32528.57 + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "inntektspostType": { + "kodeverk": "INNTEKTSPOST_TYPE", + "kode": "YTELSE" }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "beløp": 1555, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "SYKEPENGER" }, - "beløp" : 29471.81 - }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" + }, + "arbeidsforholdId": { + "abakusReferanse": "09104de6-a957-45a1-8eea-7e53c0e66d39", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "eksternReferanse": "0001-0001-20170619" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-10-31", + "fom": "2017-06-19" }, - "beløp" : 26395.37 + "stillingsprosent": 0 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "sistLønnsendring": "2017-06-19", + "periode": { + "tom": "2017-12-31", + "fom": "2017-09-01" }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 26395.37 + "stillingsprosent": 0 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "sistLønnsendring": "2017-06-19", + "periode": { + "tom": "2018-05-31", + "fom": "2018-01-01" }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-07-31", + "fom": "2018-06-01" }, - "beløp" : 26395.37 + "stillingsprosent": 0 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "LØNN" + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "2018-10-31", + "fom": "2018-08-01" }, - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-03-31" + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-11-01" }, - "beløp" : 26395.37 - } ] + "stillingsprosent": 0 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : { - "kodeverk" : "INNTEKTS_KILDE", - "kode" : "INNTEKT_SAMMENLIGNING" + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" }, - "utbetalingsPoster" : [ { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" + }, + "arbeidsforholdId": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "eksternReferanse": "0001-0002-20170801" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-07-01" }, - "beløp" : 1080.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "FORELDREPENGER" - } + "stillingsprosent": 42.66 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "periode": { + "tom": "9999-12-31", + "fom": "2017-08-01" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2018-05-31", + "fom": "2018-01-01" }, - "beløp" : 3421.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" - } + "stillingsprosent": 42.66 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-07-31", + "fom": "2018-06-01" }, - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "stillingsprosent": 42.66 + }, { + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-08-01" }, - "beløp" : 6842.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" + "stillingsprosent": 42.66 + } ], + "permisjoner": [ { + "prosentsats": 100, + "type": { + "kodeverk": "PERMISJONSBESKRIVELSE_TYPE", + "kode": "PERMISJON_MED_FORELDREPENGER" + }, + "periode": { + "tom": "2019-11-01", + "fom": "2019-02-08" } - }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + } ] + }, { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "990887977" + }, + "arbeidsforholdId": { + "abakusReferanse": "a5b1b9f8-8af0-46ca-82ff-17c2ad88a5b1", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "eksternReferanse": "0001-0002-20170619" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2017-10-31", + "fom": "2017-06-19" }, - "beløp" : 6531.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" - } + "stillingsprosent": 0 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "sistLønnsendring": "2017-06-19", + "periode": { + "tom": "9999-12-31", + "fom": "2017-09-01" }, - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000060002501" + } + }, { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" + }, + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "988693545" + }, + "arbeidsforholdId": { + "abakusReferanse": "493fac28-862c-4191-8429-05dc9334a94f", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" }, - "beløp" : 7153.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" - } + "eksternReferanse": "4-20120701-1" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2013-04-09" + }, + "stillingsprosent": 0 }, { - "inntektspostType" : { - "kodeverk" : "INNTEKTSPOST_TYPE", - "kode" : "YTELSE" + "sistLønnsendring": "2017-04-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-04-01" }, - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2017-04-01", + "periode": { + "tom": "2019-01-31", + "fom": "2018-01-01" }, - "beløp" : 1555.00, - "ytelseType" : { - "kodeverk" : "YTELSE_FRA_OFFENTLIGE", - "kode" : "SYKEPENGER" - } - } ] - } ] + "stillingsprosent": 100 + }, { + "sistLønnsendring": "2019-02-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-02-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000038049987" + } } ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000060002501" + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000060002501" }, - "ytelser" : [ { - "fagsystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "FPSAK" - }, - "ytelseType" : { - "kodeverk" : "YTELSE_TYPE", - "kode" : "FP" - }, - "periode" : { - "fom" : "2019-02-08", - "tom" : "2019-10-03" + "ytelser": [ { + "saksnummer": "137642506", + "ytelseGrunnlag": { + "dekningsgradProsent": 100, + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" + }, + "beløp": 315960, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "AARLG" + } + } ] }, - "status" : { - "kodeverk" : "YTELSE_STATUS", - "kode" : "UBEH" + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "FP" }, - "saksnummer" : "137642506", - "anvisninger" : [ { - "periode" : { - "fom" : "2019-02-08", - "tom" : "2019-02-28" + "anvisninger": [ { + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-08" } }, { - "periode" : { - "fom" : "2019-03-01", - "tom" : "2019-04-11" + "periode": { + "tom": "2019-04-11", + "fom": "2019-03-01" } }, { - "periode" : { - "fom" : "2019-04-12", - "tom" : "2019-06-13" + "periode": { + "tom": "2019-06-13", + "fom": "2019-04-12" } }, { - "periode" : { - "fom" : "2019-06-14", - "tom" : "2019-06-28" + "periode": { + "tom": "2019-06-28", + "fom": "2019-06-14" } }, { - "periode" : { - "fom" : "2019-07-01", - "tom" : "2019-10-03" + "periode": { + "tom": "2019-10-03", + "fom": "2019-07-01" } } ], - "ytelseGrunnlag" : { - "dekningsgradProsent" : 100.00, - "fordeling" : [ { - "beløp" : 315960.00, - "inntektPeriodeType" : { - "kodeverk" : "INNTEKT_PERIODE_TYPE", - "kode" : "AARLG" - }, - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" - } - } ] - } - }, { - "fagsystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "INFOTRYGD" - }, - "ytelseType" : { - "kodeverk" : "YTELSE_TYPE", - "kode" : "SP" + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "FPSAK" }, - "periode" : { - "fom" : "2018-10-01", - "tom" : "2019-01-14" + "periode": { + "tom": "2019-10-03", + "fom": "2019-02-08" }, - "status" : { - "kodeverk" : "YTELSE_STATUS", - "kode" : "AVSLU" - }, - "anvisninger" : [ { - "periode" : { - "fom" : "2018-10-17", - "tom" : "2018-12-20" - }, - "utbetalingsgrad" : 100.00 - }, { - "periode" : { - "fom" : "2018-12-21", - "tom" : "2019-01-14" - }, - "utbetalingsgrad" : 100.00 - } ], - "ytelseGrunnlag" : { - "arbeidskategori" : { - "kodeverk" : "ARBEIDSKATEGORI", - "kode" : "ARBEIDSTAKER" - }, - "fordeling" : [ { - "beløp" : 1555.00, - "inntektPeriodeType" : { - "kodeverk" : "INNTEKT_PERIODE_TYPE", - "kode" : "UKNLG" - }, - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" - } - } ] + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "UBEH" } }, { - "fagsystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "INFOTRYGD" - }, - "ytelseType" : { - "kodeverk" : "YTELSE_TYPE", - "kode" : "SP" - }, - "periode" : { - "fom" : "2019-01-15", - "tom" : "2019-02-07" + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" + }, + "beløp": 1555, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "UKNLG" + } + } ], + "arbeidskategori": { + "kodeverk": "ARBEIDSKATEGORI", + "kode": "ARBEIDSTAKER" + } }, - "status" : { - "kodeverk" : "YTELSE_STATUS", - "kode" : "AVSLU" + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "SP" }, - "anvisninger" : [ { - "periode" : { - "fom" : "2019-01-15", - "tom" : "2019-01-28" - }, - "utbetalingsgrad" : 100.00 + "anvisninger": [ { + "utbetalingsgrad": 100, + "periode": { + "tom": "2018-12-20", + "fom": "2018-10-17" + } }, { - "periode" : { - "fom" : "2019-01-29", - "tom" : "2019-02-07" - }, - "utbetalingsgrad" : 100.00 + "utbetalingsgrad": 100, + "periode": { + "tom": "2019-01-14", + "fom": "2018-12-21" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : { - "kodeverk" : "ARBEIDSKATEGORI", - "kode" : "ARBEIDSTAKER" - }, - "fordeling" : [ { - "beløp" : 1555.00, - "inntektPeriodeType" : { - "kodeverk" : "INNTEKT_PERIODE_TYPE", - "kode" : "UKNLG" + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2019-01-14", + "fom": "2018-10-01" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" + } + }, { + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "beløp": 1555, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "UKNLG" } }, { - "beløp" : 82537.00, - "inntektPeriodeType" : { - "kodeverk" : "INNTEKT_PERIODE_TYPE", - "kode" : "AARLG" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "beløp": 82537, + "inntektPeriodeType": { + "kodeverk": "INNTEKT_PERIODE_TYPE", + "kode": "AARLG" } - } ] + } ], + "arbeidskategori": { + "kodeverk": "ARBEIDSKATEGORI", + "kode": "ARBEIDSTAKER" + } + }, + "ytelseType": { + "kodeverk": "YTELSE_TYPE", + "kode": "SP" + }, + "anvisninger": [ { + "utbetalingsgrad": 100, + "periode": { + "tom": "2019-01-28", + "fom": "2019-01-15" + } + }, { + "utbetalingsgrad": 100, + "periode": { + "tom": "2019-02-07", + "fom": "2019-01-29" + } + } ], + "fagsystem": { + "kodeverk": "FAGSYSTEM", + "kode": "INFOTRYGD" + }, + "periode": { + "tom": "2019-02-07", + "fom": "2019-01-15" + }, + "status": { + "kodeverk": "YTELSE_STATUS", + "kode": "AVSLU" } } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000038049987" + "person": { + "identType": "AKTØRID", + "ident": "1000038049987" }, - "ytelser" : [ ] - } ] + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-05-20T08:14:34.566+02:00", + "eksternReferanse": "8a7cb2a7-cbb5-4ece-e053-304d350a06c0" }, - "overstyrtGrunnlag" : { - "opprettetTidspunkt" : "2019-02-01T12:46:13.553+01:00", - "eksternReferanse" : "8a7cb2a4-0240-4ece-e053-304d350a06c0", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000060002501" - }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "koblingReferanse": "9f2a89fc-84d1-45fb-a0ee-7b982cfa8919", + "overstyrtGrunnlag": { + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": { + "kodeverk": "ARBEID_TYPE", + "kode": "ORDINÆRT_ARBEIDSFORHOLD" }, - "arbeidsforholdId" : { - "abakusReferanse" : "09104de6-a957-45a1-8eea-7e53c0e66d39", - "eksternReferanse" : "0001-0001-20170619", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "arbeidType" : { - "kodeverk" : "ARBEID_TYPE", - "kode" : "ORDINÆRT_ARBEIDSFORHOLD" + "arbeidsforholdId": { + "abakusReferanse": "09104de6-a957-45a1-8eea-7e53c0e66d39", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20170619" }, - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-06-19", - "tom" : "9999-12-31" + "aktivitetsAvtaler": [ { + "beskrivelse": "Timelønnet og jobbet hele året ", + "periode": { + "tom": "9999-12-31", + "fom": "2017-06-19" }, - "stillingsprosent" : 0.00, - "beskrivelse" : "Timelønnet og jobbet hele året " + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-12-31" + "sistLønnsendring": "2017-06-19", + "periode": { + "tom": "2017-12-31", + "fom": "2017-09-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-06-19" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-05-31" + "sistLønnsendring": "2017-06-19", + "periode": { + "tom": "2018-05-31", + "fom": "2018-01-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-06-19" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-07-31" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-07-31", + "fom": "2018-06-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-05-01" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-10-31" + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "2018-10-31", + "fom": "2018-08-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-08-01" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2018-11-01", - "tom" : "9999-12-31" + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-11-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-08-01" + "stillingsprosent": 0 } ], - "permisjoner" : [ ] - } ] - } ] - }, - "inntektsmeldinger" : { - "inntektsmeldinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" - }, - "journalpostId" : "447373435", - "innsendingstidspunkt" : "2019-03-19T07:50:09+01:00", - "mottattDato" : "2019-03-19", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ ], - "startdatoPermisjon" : "2019-02-08", - "erNærRelasjon" : false, - "inntektBeløp" : 6740.00, - "kanalreferanse" : "AR311459085", - "kildesystem" : "AltinnPortal", - "refusjonEndringer" : [ ], - "innsendingsårsak" : { - "kodeverk" : "INNTEKTSMELDING_INNSENDINGSAARSAK", - "kode" : "ENDRING" - } - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" - }, - "journalpostId" : "447942069", - "innsendingstidspunkt" : "2019-03-27T10:40:10+01:00", - "mottattDato" : "2019-03-27", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ { - "periode" : { - "fom" : "2019-07-01", - "tom" : "2019-07-29" - }, - "utsettelseÅrsak" : { - "kodeverk" : "UTSETTELSE_AARSAK_TYPE", - "kode" : "LOVBESTEMT_FERIE" - } - } ], - "startdatoPermisjon" : "2019-02-08", - "erNærRelasjon" : false, - "inntektBeløp" : 17019.55, - "refusjonsBeløpPerMnd" : 13756.22, - "kanalreferanse" : "AR312556381", - "kildesystem" : "Enterprise HRM", - "refusjonOpphører" : "9999-12-31", - "refusjonEndringer" : [ ], - "innsendingsårsak" : { - "kodeverk" : "INNTEKTSMELDING_INNSENDINGSAARSAK", - "kode" : "NY" - } - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" - }, - "journalpostId" : "447942093", - "innsendingstidspunkt" : "2019-03-27T10:40:11+01:00", - "mottattDato" : "2019-03-27", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ { - "periode" : { - "fom" : "2019-07-01", - "tom" : "2019-07-29" - }, - "utsettelseÅrsak" : { - "kodeverk" : "UTSETTELSE_AARSAK_TYPE", - "kode" : "LOVBESTEMT_FERIE" - } + "permisjoner": [ ] } ], - "arbeidsforholdReferanse" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0002-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } - }, - "startdatoPermisjon" : "2019-02-08", - "erNærRelasjon" : false, - "inntektBeløp" : 12574.04, - "refusjonsBeløpPerMnd" : 12574.04, - "kanalreferanse" : "AR312556427", - "kildesystem" : "Enterprise HRM", - "refusjonOpphører" : "9999-12-31", - "refusjonEndringer" : [ ], - "innsendingsårsak" : { - "kodeverk" : "INNTEKTSMELDING_INNSENDINGSAARSAK", - "kode" : "NY" + "person": { + "identType": "AKTØRID", + "ident": "1000060002501" } - } ] + } ], + "opprettetTidspunkt": "2019-02-01T12:46:13.553+01:00", + "eksternReferanse": "8a7cb2a4-0240-4ece-e053-304d350a06c0" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "916503229" + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "916503229" }, - "arbeidsforholdId" : { - "abakusReferanse" : "09104de6-a957-45a1-8eea-7e53c0e66d39", - "eksternReferanse" : "0001-0001-20170619", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "09104de6-a957-45a1-8eea-7e53c0e66d39", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20170619" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "arbeidsforholdId" : { - "abakusReferanse" : "20c2d1dd-2796-42ab-a139-1bafbda00505", - "eksternReferanse" : "0001-0001-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "20c2d1dd-2796-42ab-a139-1bafbda00505", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20170801" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "arbeidsforholdId" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0002-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0002-20170801" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "arbeidsforholdId" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0001-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0001-20170801" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "988693545" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "988693545" }, - "arbeidsforholdId" : { - "abakusReferanse" : "493fac28-862c-4191-8429-05dc9334a94f", - "eksternReferanse" : "4-20120701-1", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "493fac28-862c-4191-8429-05dc9334a94f", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "4-20120701-1" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "990887977" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "990887977" }, - "arbeidsforholdId" : { - "abakusReferanse" : "a5b1b9f8-8af0-46ca-82ff-17c2ad88a5b1", - "eksternReferanse" : "0001-0002-20170619", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "arbeidsforholdId": { + "abakusReferanse": "a5b1b9f8-8af0-46ca-82ff-17c2ad88a5b1", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0002-20170619" } } ], - "overstyringer" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" - }, - "arbeidsforholdReferanse" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0002-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } + "overstyringer": [ { + "overstyrtePerioder": [ { + "tom": "9999-12-31", + "fom": "2017-08-01" + } ], + "arbeidsforholdReferanse": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0002-20170801" }, - "arbeidsforholdHandlingType" : { - "kodeverk" : "ARBEIDSFORHOLD_HANDLING_TYPE", - "kode" : "BRUK" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "overstyrtePerioder" : [ { - "fom" : "2017-08-01", - "tom" : "9999-12-31" - } ] + "arbeidsforholdHandlingType": { + "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", + "kode": "BRUK" + } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "975275825" + "overstyrtePerioder": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "975275825" }, - "nyArbeidsforholdReferanse" : { - "abakusReferanse" : "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", - "eksternReferanse" : "0001-0002-20170801", - "eksternReferanseSystem" : { - "kodeverk" : "FAGSYSTEM", - "kode" : "AAREGISTERET" - } - }, - "arbeidsforholdHandlingType" : { - "kodeverk" : "ARBEIDSFORHOLD_HANDLING_TYPE", - "kode" : "SLÅTT_SAMMEN_MED_ANNET" + "nyArbeidsforholdReferanse": { + "abakusReferanse": "4be9a5bf-20d1-4359-8a54-3cdcdd7e3b0b", + "eksternReferanseSystem": { + "kodeverk": "FAGSYSTEM", + "kode": "AAREGISTERET" + }, + "eksternReferanse": "0001-0002-20170801" }, - "overstyrtePerioder" : [ ] + "arbeidsforholdHandlingType": { + "kodeverk": "ARBEIDSFORHOLD_HANDLING_TYPE", + "kode": "SLÅTT_SAMMEN_MED_ANNET" + } } ] } -} +} \ No newline at end of file diff --git a/domenetjenester/kobling/pom.xml b/domenetjenester/kobling/pom.xml index 7591245d4..04ae2b98b 100644 --- a/domenetjenester/kobling/pom.xml +++ b/domenetjenester/kobling/pom.xml @@ -1,40 +1,38 @@ - - 4.0.0 + + 4.0.0 - - no.nav.foreldrepenger.abakus - domenetjenester - 1.0-SNAPSHOT - + + no.nav.foreldrepenger.abakus + domenetjenester + 1.0-SNAPSHOT + - kobling - jar - Abakus :: Domenetjeneste :: Kobling + kobling + jar + Abakus :: Domenetjeneste :: Kobling - - - no.nav.foreldrepenger.abakus - prosesstask - + + + no.nav.foreldrepenger.abakus + prosesstask + no.nav.foreldrepenger.felles.integrasjon person-klient - - no.nav.foreldrepenger.felles - felles-db - - - no.nav.foreldrepenger.felles - felles-util - - - no.nav.foreldrepenger.abakus - felles - + + no.nav.foreldrepenger.felles + felles-db + + + no.nav.foreldrepenger.felles + felles-util + + + no.nav.foreldrepenger.abakus + felles + - + diff --git "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/Akt\303\270rTjeneste.java" "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/Akt\303\270rTjeneste.java" index b10b94371..884cc94e6 100644 --- "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/Akt\303\270rTjeneste.java" +++ "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/Akt\303\270rTjeneste.java" @@ -1,13 +1,12 @@ package no.nav.foreldrepenger.abakus.aktor; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.PersonIdent; import no.nav.pdl.HentIdenterQueryRequest; @@ -20,15 +19,16 @@ import no.nav.vedtak.felles.integrasjon.person.Persondata; import no.nav.vedtak.util.LRUCache; - @ApplicationScoped public class AktørTjeneste { private static final int DEFAULT_CACHE_SIZE = 1000; private static final long DEFAULT_CACHE_TIMEOUT = TimeUnit.MILLISECONDS.convert(8, TimeUnit.HOURS); - private static final LRUCache CACHE_AKTØR_ID_TIL_IDENT = new LRUCache<>(DEFAULT_CACHE_SIZE, DEFAULT_CACHE_TIMEOUT); - private static final LRUCache CACHE_IDENT_TIL_AKTØR_ID = new LRUCache<>(DEFAULT_CACHE_SIZE, DEFAULT_CACHE_TIMEOUT); + private static final LRUCache CACHE_AKTØR_ID_TIL_IDENT = + new LRUCache<>(DEFAULT_CACHE_SIZE, DEFAULT_CACHE_TIMEOUT); + private static final LRUCache CACHE_IDENT_TIL_AKTØR_ID = + new LRUCache<>(DEFAULT_CACHE_SIZE, DEFAULT_CACHE_TIMEOUT); private Persondata pdlKlient; @@ -50,7 +50,10 @@ public class AktørTjeneste { try { var identliste = hentIdenter(request, projection); - var aktørId = identliste.getIdenter().stream().findFirst().map(IdentInformasjon::getIdent).map(AktørId::new); + var aktørId = identliste.getIdenter().stream() + .findFirst() + .map(IdentInformasjon::getIdent) + .map(AktørId::new); aktørId.ifPresent(a -> CACHE_IDENT_TIL_AKTØR_ID.put(fnr, a)); return aktørId; } catch (VLException v) { @@ -70,7 +73,10 @@ public class AktørTjeneste { try { var identliste = hentIdenter(request, projection); - return identliste.getIdenter().stream().map(IdentInformasjon::getIdent).map(AktørId::new).collect(Collectors.toSet()); + return identliste.getIdenter().stream() + .map(IdentInformasjon::getIdent) + .map(AktørId::new) + .collect(Collectors.toSet()); } catch (VLException v) { if (Persondata.PDL_KLIENT_NOT_FOUND_KODE.equals(v.getKode())) { return Set.of(); @@ -94,7 +100,10 @@ public class AktørTjeneste { try { identliste = hentIdenter(request, projection); - var ident = identliste.getIdenter().stream().findFirst().map(IdentInformasjon::getIdent).map(PersonIdent::new); + var ident = identliste.getIdenter().stream() + .findFirst() + .map(IdentInformasjon::getIdent) + .map(PersonIdent::new); ident.ifPresent(i -> CACHE_AKTØR_ID_TIL_IDENT.put(aktørId, i)); return ident; } catch (VLException v) { @@ -114,7 +123,10 @@ public class AktørTjeneste { try { var identliste = hentIdenter(request, projection); - return identliste.getIdenter().stream().map(IdentInformasjon::getIdent).map(PersonIdent::new).collect(Collectors.toSet()); + return identliste.getIdenter().stream() + .map(IdentInformasjon::getIdent) + .map(PersonIdent::new) + .collect(Collectors.toSet()); } catch (VLException v) { if (Persondata.PDL_KLIENT_NOT_FOUND_KODE.equals(v.getKode())) { return Set.of(); diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/PdlKlient.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/PdlKlient.java index f8a8059fa..1c04e3431 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/PdlKlient.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/aktor/PdlKlient.java @@ -1,14 +1,18 @@ package no.nav.foreldrepenger.abakus.aktor; +import jakarta.enterprise.context.Dependent; import no.nav.vedtak.felles.integrasjon.person.AbstractPersonKlient; import no.nav.vedtak.felles.integrasjon.person.Tema; import no.nav.vedtak.felles.integrasjon.rest.RestClient; import no.nav.vedtak.felles.integrasjon.rest.RestClientConfig; import no.nav.vedtak.felles.integrasjon.rest.TokenFlow; -import jakarta.enterprise.context.Dependent; - -@RestClientConfig(tokenConfig = TokenFlow.ADAPTIVE, endpointProperty = "pdl.base.url", endpointDefault = "http://pdl-api.pdl/graphql", scopesProperty = "pdl.scopes", scopesDefault = "api://prod-fss.pdl.pdl-api/.default") +@RestClientConfig( + tokenConfig = TokenFlow.ADAPTIVE, + endpointProperty = "pdl.base.url", + endpointDefault = "http://pdl-api.pdl/graphql", + scopesProperty = "pdl.scopes", + scopesDefault = "api://prod-fss.pdl.pdl-api/.default") @Dependent public class PdlKlient extends AbstractPersonKlient { @@ -19,5 +23,4 @@ public PdlKlient() { public PdlKlient(Tema tema) { super(RestClient.client(), tema); } - } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/Kobling.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/Kobling.java index 28a694d9e..d5eb7b45e 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/Kobling.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/Kobling.java @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.kobling; -import java.time.LocalDate; -import java.util.Objects; - -import org.hibernate.annotations.NaturalId; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -15,6 +10,8 @@ import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -22,31 +19,31 @@ import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Saksnummer; +import org.hibernate.annotations.NaturalId; @Entity(name = "Kobling") @Table(name = "KOBLING") public class Kobling extends BaseEntitet implements IndexKey { - /** - * Abakus intern kobling_id. - */ + /** Abakus intern kobling_id. */ @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_KOBLING") private Long id; /** - * Saksnummer (gruppererer alle koblinger under samme saksnummer - typisk generert av FPSAK, eller annet saksbehandlingsystem) + * Saksnummer (gruppererer alle koblinger under samme saksnummer - typisk generert av FPSAK, eller annet + * saksbehandlingsystem) */ @Embedded @AttributeOverride(name = "saksnummer", column = @Column(name = "saksnummer")) private Saksnummer saksnummer; - /** - * Ekstern Referanse (eks. behandlingUuid). - */ + /** Ekstern Referanse (eks. behandlingUuid). */ @NaturalId @Embedded - @AttributeOverride(name = "referanse", column = @Column(name = "kobling_referanse", updatable = false, unique = true)) + @AttributeOverride( + name = "referanse", + column = @Column(name = "kobling_referanse", updatable = false, unique = true)) private KoblingReferanse koblingReferanse; @Convert(converter = YtelseTypeKodeverdiConverter.class) @@ -54,7 +51,9 @@ public class Kobling extends BaseEntitet implements IndexKey { private YtelseType ytelseType = YtelseType.UDEFINERT; @Embedded - @AttributeOverride(name = "aktørId", column = @Column(name = "bruker_aktoer_id", nullable = false, updatable = false)) + @AttributeOverride( + name = "aktørId", + column = @Column(name = "bruker_aktoer_id", nullable = false, updatable = false)) private AktørId aktørId; @Embedded @@ -75,7 +74,8 @@ public class Kobling extends BaseEntitet implements IndexKey { private IntervallEntitet opptjeningsperiode; /** - * Inaktive koblinger skal ikke kunne endres. Det betyr oftest at koblingsreferansen er avsluttet i fagsystemet også. + * Inaktive koblinger skal ikke kunne endres. Det betyr oftest at koblingsreferansen er avsluttet i fagsystemet + * også. */ @Column(name = "aktiv", nullable = false) private Boolean aktiv = true; @@ -84,8 +84,7 @@ public class Kobling extends BaseEntitet implements IndexKey { @Column(name = "versjon", nullable = false) private long versjon; - public Kobling() { - } + public Kobling() {} public Kobling(YtelseType ytelseType, Saksnummer saksnummer, KoblingReferanse koblingReferanse, AktørId aktørId) { this.saksnummer = Objects.requireNonNull(saksnummer, "saksnummer"); @@ -157,8 +156,8 @@ public long getVersjon() { @Override public String toString() { - return "Kobling{" + "KoblingReferanse=" + koblingReferanse + ", saksnummer = " + saksnummer + ", opplysningsperiode=" + opplysningsperiode - + ", opptjeningsperiode=" + opptjeningsperiode + '}'; + return "Kobling{" + "KoblingReferanse=" + koblingReferanse + ", saksnummer = " + saksnummer + + ", opplysningsperiode=" + opplysningsperiode + ", opptjeningsperiode=" + opptjeningsperiode + '}'; } public boolean erAktiv() { diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingReferanse.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingReferanse.java index 057d3dfbd..03810906a 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingReferanse.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingReferanse.java @@ -1,12 +1,10 @@ package no.nav.foreldrepenger.abakus.kobling; -import java.util.Objects; -import java.util.UUID; - +import com.fasterxml.jackson.annotation.JsonValue; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - -import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Objects; +import java.util.UUID; @Embeddable public class KoblingReferanse { diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingTjeneste.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingTjeneste.java index 77e17ef1b..745fa8a52 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingTjeneste.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingTjeneste.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.kobling; -import java.util.Optional; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.foreldrepenger.abakus.kobling.repository.KoblingRepository; import no.nav.foreldrepenger.abakus.kobling.repository.LåsRepository; @@ -26,9 +25,11 @@ public KoblingTjeneste(KoblingRepository repository, LåsRepository låsReposito this.låsRepository = låsRepository; } - public Kobling finnEllerOpprett(YtelseType ytelseType, KoblingReferanse referanse, AktørId aktørId, Saksnummer saksnummer) { - Kobling kobling = repository.hentForKoblingReferanse(referanse, true) - .orElseGet(() -> new Kobling(ytelseType, saksnummer, referanse, aktørId)); + public Kobling finnEllerOpprett( + YtelseType ytelseType, KoblingReferanse referanse, AktørId aktørId, Saksnummer saksnummer) { + Kobling kobling = repository + .hentForKoblingReferanse(referanse, true) + .orElseGet(() -> new Kobling(ytelseType, saksnummer, referanse, aktørId)); repository.lagre(kobling); return kobling; } @@ -50,11 +51,14 @@ public Kobling hent(Long koblingId) { } public KoblingLås taSkrivesLås(KoblingReferanse referanse) { - return repository.hentForKoblingReferanse(referanse, true).map(Kobling::getId).map(KoblingLås::new).orElse(null); + return repository + .hentForKoblingReferanse(referanse, true) + .map(Kobling::getId) + .map(KoblingLås::new) + .orElse(null); } public void oppdaterLåsVersjon(KoblingLås lås) { låsRepository.oppdaterLåsVersjon(lås); } - } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/TaskConstants.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/TaskConstants.java index ea81ae572..764d413bf 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/TaskConstants.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/TaskConstants.java @@ -2,6 +2,6 @@ public final class TaskConstants { public static final String KOBLING_ID = "koblingId"; - private TaskConstants() { - } + + private TaskConstants() {} } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/YtelseTypeKodeverdiConverter.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/YtelseTypeKodeverdiConverter.java index c51cf2da8..3cb04274a 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/YtelseTypeKodeverdiConverter.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/YtelseTypeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @Converter(autoApply = true) diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/kontroll/YtelseTypeRef.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/kontroll/YtelseTypeRef.java index db9b046f7..ea2d3ad24 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/kontroll/YtelseTypeRef.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/kontroll/YtelseTypeRef.java @@ -1,5 +1,11 @@ package no.nav.foreldrepenger.abakus.kobling.kontroll; +import jakarta.enterprise.context.Dependent; +import jakarta.enterprise.inject.Instance; +import jakarta.enterprise.inject.Stereotype; +import jakarta.enterprise.inject.spi.CDI; +import jakarta.enterprise.util.AnnotationLiteral; +import jakarta.inject.Qualifier; import java.lang.annotation.Annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; @@ -15,19 +21,9 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.stream.Collectors; - -import jakarta.enterprise.context.Dependent; -import jakarta.enterprise.inject.Instance; -import jakarta.enterprise.inject.Stereotype; -import jakarta.enterprise.inject.spi.CDI; -import jakarta.enterprise.util.AnnotationLiteral; -import jakarta.inject.Qualifier; - import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; -/** - * For å skille på implementasjoner av forskjellige - */ +/** For å skille på implementasjoner av forskjellige */ @Repeatable(YtelseTypeRef.ContainerOfYtelseTypeRef.class) @Qualifier @Stereotype @@ -39,8 +35,8 @@ /** * Kode-verdi som skiller ulike implementasjoner for ulike behandling typer. - *

- * Må matche ett innslag i FAGSAK_YTELSE_TYPE tabell for å kunne kjøres. + * + *

Må matche ett innslag i FAGSAK_YTELSE_TYPE tabell for å kunne kjøres. * * @see no.nav.abakus.iaygrunnlag.kodeverk.YtelseType */ @@ -59,9 +55,7 @@ YtelseTypeRef[] value(); } - /** - * AnnotationLiteral som kan brukes ved CDI søk. - */ + /** AnnotationLiteral som kan brukes ved CDI søk. */ class YtelseTypeRefLiteral extends AnnotationLiteral implements YtelseTypeRef { private YtelseType navn; @@ -74,22 +68,20 @@ public YtelseTypeRefLiteral(YtelseType navn) { public YtelseType value() { return navn == null ? YtelseType.UDEFINERT : navn; } - } @SuppressWarnings("unchecked") public static final class Lookup { - private Lookup() { - } + private Lookup() {} public static Optional find(Class cls, YtelseType ytelseTypeKode) { return find(cls, (CDI) CDI.current(), ytelseTypeKode); } /** - * Kan brukes til å finne instanser blant angitte som matcher følgende kode, eller default '*' implementasjon. Merk at Instance bør være - * injected med riktig forventet klassetype og @Any qualifier. + * Kan brukes til å finne instanser blant angitte som matcher følgende kode, eller default '*' implementasjon. + * Merk at Instance bør være injected med riktig forventet klassetype og @Any qualifier. */ public static Optional find(Instance instances, YtelseType ytelseTypeKode) { return find(null, instances, ytelseTypeKode); @@ -121,8 +113,8 @@ public static Optional find(Class cls, Instance instances, YtelseTy return Optional.of(getInstance(inst)); } else { if (inst.isAmbiguous()) { - throw new IllegalStateException( - "Har flere matchende instanser for klasse : " + cls.getName() + ", fagsakType=" + fagsakLiteral); + throw new IllegalStateException("Har flere matchende instanser for klasse : " + cls.getName() + + ", fagsakType=" + fagsakLiteral); } } } @@ -138,7 +130,8 @@ private static I getInstance(Instance inst) { var i = inst.get(); if (i.getClass().isAnnotationPresent(Dependent.class)) { throw new IllegalStateException( - "Kan ikke ha @Dependent scope bean ved Instance lookup dersom en ikke også håndtere lifecycle selv: " + i.getClass()); + "Kan ikke ha @Dependent scope bean ved Instance lookup dersom en ikke også håndtere lifecycle selv: " + + i.getClass()); } return i; } @@ -147,5 +140,4 @@ private static List coalesce(YtelseType... vals) { return Arrays.stream(vals).filter(Objects::nonNull).distinct().collect(Collectors.toList()); } } - } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/KoblingRepository.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/KoblingRepository.java index b991f0911..bcb4fedd2 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/KoblingRepository.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/KoblingRepository.java @@ -1,15 +1,11 @@ package no.nav.foreldrepenger.abakus.kobling.repository; -import java.util.Objects; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.persistence.EntityManager; import jakarta.persistence.LockModeType; +import java.util.Objects; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.kodeverk.Kodeverdi; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.foreldrepenger.abakus.felles.diff.DiffEntity; @@ -22,6 +18,8 @@ import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.vedtak.felles.jpa.HibernateVerktøy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class KoblingRepository { @@ -55,13 +53,16 @@ public Optional hentForKoblingReferanse(KoblingReferanse referanse, boo return k; } - public Optional hentSisteKoblingReferanseFor(AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType) { - var query = entityManager.createQuery(""" + public Optional hentSisteKoblingReferanseFor( + AktørId aktørId, Saksnummer saksnummer, YtelseType ytelseType) { + var query = entityManager.createQuery( + """ FROM Kobling k WHERE k.saksnummer = :ref AND k.ytelseType = :ytelse AND k.aktørId = :aktørId - ORDER BY k.opprettetTidspunkt desc, k.id desc""", Kobling.class); + ORDER BY k.opprettetTidspunkt desc, k.id desc""", + Kobling.class); query.setParameter("ref", saksnummer); query.setParameter("ytelse", ytelseType); @@ -74,7 +75,8 @@ public Optional hentSisteKoblingReferanseFor(AktørId aktørId, Saksnum private void validerErAktiv(Optional kobling) { if (kobling.isPresent() && !kobling.get().erAktiv()) { - throw new IllegalStateException("Etterspør kobling: " + kobling.get().getKoblingReferanse() + ", men denne er ikke aktiv"); + throw new IllegalStateException( + "Etterspør kobling: " + kobling.get().getKoblingReferanse() + ", men denne er ikke aktiv"); } } @@ -86,7 +88,10 @@ public void lagre(Kobling nyKobling) { var diff = getDiff(eksisterendeKobling.orElse(null), nyKobling); if (!diff.isEmpty()) { - LOG.info("Detekterte endringer på kobling med referanse={}, endringer={}", nyKobling.getId(), diff.getLeafDifferences()); + LOG.info( + "Detekterte endringer på kobling med referanse={}, endringer={}", + nyKobling.getId(), + diff.getLeafDifferences()); entityManager.persist(nyKobling); entityManager.flush(); } @@ -94,8 +99,10 @@ public void lagre(Kobling nyKobling) { private static void validerLikKoblingReferanse(Kobling nyKobling, Optional eksisterendeKobling) { var eksisterendeKoblingId = eksisterendeKobling.map(Kobling::getId).orElse(null); - if (!Objects.equals(eksisterendeKoblingId, nyKobling.getId())) { // for nye koblinger bør både eksisterende og ny være null. - throw new IllegalStateException("Utviklerfeil: Kan ikke lagre en ny kobling for eksisterende kobling referanse."); + if (!Objects.equals( + eksisterendeKoblingId, nyKobling.getId())) { // for nye koblinger bør både eksisterende og ny være null. + throw new IllegalStateException( + "Utviklerfeil: Kan ikke lagre en ny kobling for eksisterende kobling referanse."); } } @@ -113,5 +120,4 @@ private DiffResult getDiff(Kobling eksisterendeKobling, Kobling nyKobling) { public Kobling hentForKoblingId(Long koblingId) { return entityManager.find(Kobling.class, koblingId); } - } diff --git "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/L\303\245sRepository.java" "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/L\303\245sRepository.java" index 959b4e842..2442e3db1 100644 --- "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/L\303\245sRepository.java" +++ "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/repository/L\303\245sRepository.java" @@ -1,12 +1,10 @@ package no.nav.foreldrepenger.abakus.kobling.repository; -import java.util.Objects; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.persistence.EntityManager; import jakarta.persistence.LockModeType; - +import java.util.Objects; import no.nav.foreldrepenger.abakus.kobling.Kobling; import no.nav.foreldrepenger.abakus.kobling.KoblingLås; import no.nav.vedtak.exception.TekniskException; @@ -25,32 +23,32 @@ public class LåsRepository { this.entityManager = entityManager; } - /** - * Initialiser lås og ta lock på tilhørende database rader. - */ + /** Initialiser lås og ta lock på tilhørende database rader. */ public KoblingLås taLås(Long koblingId) { if (koblingId != null) { - entityManager.createQuery("from Kobling k where k.id = :id and k.aktiv = true") - .setParameter("id", koblingId) - .setLockMode(LockModeType.PESSIMISTIC_WRITE) - .getSingleResult(); + entityManager + .createQuery("from Kobling k where k.id = :id and k.aktiv = true") + .setParameter("id", koblingId) + .setLockMode(LockModeType.PESSIMISTIC_WRITE) + .getSingleResult(); } return new KoblingLås(koblingId); } - /** - * Verifiser lås ved å sjekke mot underliggende lager. - */ + /** Verifiser lås ved å sjekke mot underliggende lager. */ public void oppdaterLåsVersjon(KoblingLås lås) { if (lås.koblingId() != null) { var koblingId = lås.koblingId(); var kobling = entityManager.find(Kobling.class, koblingId); if (kobling == null) { - throw new TekniskException("FP-131239", String.format("Fant ikke entitet for låsing [%s], koblingId=%s.", Kobling.class.getSimpleName(), koblingId)); + throw new TekniskException( + "FP-131239", + String.format( + "Fant ikke entitet for låsing [%s], koblingId=%s.", + Kobling.class.getSimpleName(), koblingId)); } else { entityManager.lock(kobling, LockModeType.PESSIMISTIC_FORCE_INCREMENT); } } } - } diff --git "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Akt\303\270rId.java" "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Akt\303\270rId.java" index 585747cbb..6c4c84cea 100644 --- "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Akt\303\270rId.java" +++ "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Akt\303\270rId.java" @@ -1,22 +1,20 @@ package no.nav.foreldrepenger.abakus.typer; +import com.fasterxml.jackson.annotation.JsonValue; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.util.Objects; import java.util.concurrent.atomic.AtomicLong; import java.util.regex.Pattern; - -import jakarta.persistence.Column; -import jakarta.persistence.Embeddable; -import jakarta.validation.constraints.NotNull; - -import com.fasterxml.jackson.annotation.JsonValue; - import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.TraverseValue; /** - * Id som genereres fra NAV Aktør Register. Denne iden benyttes til interne forhold i Nav og vil ikke endres f.eks. dersom bruker går fra - * DNR til FNR i Folkeregisteret. Tilsvarende vil den kunne referere personer som har ident fra et utenlandsk system. + * Id som genereres fra NAV Aktør Register. Denne iden benyttes til interne forhold i Nav og vil ikke endres f.eks. + * dersom bruker går fra DNR til FNR i Folkeregisteret. Tilsvarende vil den kunne referere personer som har ident fra et + * utenlandsk system. */ @Embeddable public class AktørId implements Serializable, Comparable, IndexKey, TraverseValue { @@ -25,9 +23,12 @@ public class AktørId implements Serializable, Comparable, IndexKey, T private static final Pattern VALID = Pattern.compile(VALID_REGEXP, Pattern.CASE_INSENSITIVE); private static AtomicLong DUMMY_AKTØRID = new AtomicLong(1000000000000L); + @JsonValue @NotNull - @jakarta.validation.constraints.Pattern(regexp = VALID_REGEXP, message = "aktørId ${validatedValue} har ikke gyldig verdi ( pattern '{regexp}')") + @jakarta.validation.constraints.Pattern( + regexp = VALID_REGEXP, + message = "aktørId ${validatedValue} har ikke gyldig verdi ( pattern '{regexp}')") @Column(name = "aktoer_id", updatable = false, length = 50) private String aktørId; // NOSONAR @@ -44,9 +45,7 @@ public class AktørId implements Serializable, Comparable, IndexKey, T this.aktørId = validateAktørId(aktørId); } - /** - * Genererer dummy aktørid unikt for test. - */ + /** Genererer dummy aktørid unikt for test. */ public static AktørId dummy() { return new AktørId(DUMMY_AKTØRID.getAndIncrement()); } @@ -90,9 +89,7 @@ public String toString() { return getClass().getSimpleName() + "<********>"; } - /** - * @deprecated unngå bruk bytter til String internt - */ + /** @deprecated unngå bruk bytter til String internt */ @Deprecated public Long longValue() { return Long.parseLong(aktørId); diff --git "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Bel\303\270p.java" "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Bel\303\270p.java" index 0efcffb64..c8af1cacf 100644 --- "a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Bel\303\270p.java" +++ "b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Bel\303\270p.java" @@ -1,21 +1,17 @@ package no.nav.foreldrepenger.abakus.typer; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import java.io.Serializable; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Objects; - -import jakarta.persistence.Column; -import jakarta.persistence.Embeddable; - import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; import no.nav.foreldrepenger.abakus.felles.diff.TraverseValue; -/** - * Beløp representerer kombinasjon av kroner og øre på standardisert format - */ +/** Beløp representerer kombinasjon av kroner og øre på standardisert format */ @Embeddable public class Beløp implements Serializable, IndexKey, TraverseValue { public static final Beløp ZERO = new Beløp(BigDecimal.ZERO); diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/EksternArbeidsforholdRef.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/EksternArbeidsforholdRef.java index 21657f0cb..b0b4d7381 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/EksternArbeidsforholdRef.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/EksternArbeidsforholdRef.java @@ -1,34 +1,27 @@ package no.nav.foreldrepenger.abakus.typer; -import java.io.Serializable; -import java.util.Objects; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - +import java.io.Serializable; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; /** - * Ekstern arbeidsforhold referanse. - * Mottatt fra inntektsmelding eller AARegisteret. - *

- * Hvis null gjelder det flere arbeidsforhold, ellers for et spesifikt forhold + * Ekstern arbeidsforhold referanse. Mottatt fra inntektsmelding eller AARegisteret. + * + *

Hvis null gjelder det flere arbeidsforhold, ellers for et spesifikt forhold */ - @Embeddable public class EksternArbeidsforholdRef implements IndexKey, Serializable { - /** - * Representerer alle arbeidsforhold for en arbeidsgiver. - */ + /** Representerer alle arbeidsforhold for en arbeidsgiver. */ private static final EksternArbeidsforholdRef NULL_OBJECT = new EksternArbeidsforholdRef(null); @Column(name = "arbeidsforhold_id") private String referanse; - EksternArbeidsforholdRef() { - } + EksternArbeidsforholdRef() {} private EksternArbeidsforholdRef(String referanse) { this.referanse = referanse == null ? null : referanse.trim(); diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRef.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRef.java index a0365be38..59c98f0e6 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRef.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRef.java @@ -1,35 +1,29 @@ package no.nav.foreldrepenger.abakus.typer; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import java.io.Serializable; import java.nio.charset.StandardCharsets; import java.util.Objects; import java.util.UUID; - -import jakarta.persistence.Column; -import jakarta.persistence.Embeddable; - import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; /** * Intern arbeidsforhold referanse. - *

- * Hvis null gjelder det flere arbeidsforhold, ellers for et spesifikt forhold + * + *

Hvis null gjelder det flere arbeidsforhold, ellers for et spesifikt forhold */ - @Embeddable public class InternArbeidsforholdRef implements IndexKey, Serializable { - /** - * Instans som representerer alle arbeidsforhold (for en arbeidsgiver). - */ + /** Instans som representerer alle arbeidsforhold (for en arbeidsgiver). */ private static final InternArbeidsforholdRef NULL_OBJECT = new InternArbeidsforholdRef(null); @Column(name = "arbeidsforhold_intern_id") private UUID referanse; - InternArbeidsforholdRef() { - } + InternArbeidsforholdRef() {} private InternArbeidsforholdRef(UUID referanse) { this.referanse = referanse; @@ -51,9 +45,7 @@ public static InternArbeidsforholdRef nyRef() { return ref(UUID.randomUUID().toString()); } - /** - * Genererer en UUID type 3 basert på angitt seed. Gir konsekvente UUIDer - */ + /** Genererer en UUID type 3 basert på angitt seed. Gir konsekvente UUIDer */ public static InternArbeidsforholdRef namedRef(String seed) { return ref(UUID.nameUUIDFromBytes(seed.getBytes(StandardCharsets.UTF_8)).toString()); } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/JournalpostId.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/JournalpostId.java index ea92cdd10..f7c659d3f 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/JournalpostId.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/JournalpostId.java @@ -1,29 +1,26 @@ package no.nav.foreldrepenger.abakus.typer; +import com.fasterxml.jackson.annotation.JsonValue; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import java.io.Serializable; import java.util.Objects; import java.util.regex.Pattern; - -import jakarta.persistence.Column; -import jakarta.persistence.Embeddable; - -import com.fasterxml.jackson.annotation.JsonValue; - import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; -/** - * Journalpostid refererer til journalpost registret i Joark. - */ +/** Journalpostid refererer til journalpost registret i Joark. */ @Embeddable public class JournalpostId implements Serializable, IndexKey { private static final String CHARS = "a-z0-9_:-"; - private static final Pattern VALID = Pattern.compile("^(-?[1-9]|[a-z0])[" + CHARS + "]*$", Pattern.CASE_INSENSITIVE); - private static final Pattern INVALID = Pattern.compile("[^" + CHARS + "]+", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); + private static final Pattern VALID = + Pattern.compile("^(-?[1-9]|[a-z0])[" + CHARS + "]*$", Pattern.CASE_INSENSITIVE); + private static final Pattern INVALID = + Pattern.compile("[^" + CHARS + "]+", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); @JsonValue @Column(name = "journalpost_id", updatable = false) - private String journalpostId; // NOSONAR + private String journalpostId; // NOSONAR JournalpostId() { // for hibernate @@ -38,8 +35,8 @@ public JournalpostId(String journalpostId) { Objects.requireNonNull(journalpostId, "journalpostId"); if (!VALID.matcher(journalpostId).matches()) { // skal ikke skje, funksjonelle feilmeldinger håndteres ikke her. - throw new IllegalArgumentException( - "Ugyldig aktørId, støtter kun A-Z/0-9/:/-/_ tegn. Var: " + journalpostId.replaceAll(INVALID.pattern(), "?") + " (vasket)"); + throw new IllegalArgumentException("Ugyldig aktørId, støtter kun A-Z/0-9/:/-/_ tegn. Var: " + + journalpostId.replaceAll(INVALID.pattern(), "?") + " (vasket)"); } this.journalpostId = journalpostId; } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrgNummer.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrgNummer.java index e6dc64340..63b402741 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrgNummer.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrgNummer.java @@ -1,34 +1,32 @@ package no.nav.foreldrepenger.abakus.typer; -import java.io.Serializable; -import java.util.Objects; - +import com.fasterxml.jackson.annotation.JsonValue; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - -import com.fasterxml.jackson.annotation.JsonValue; - +import java.io.Serializable; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.TraverseValue; /** - * Id som genereres fra NAV Aktør Register. Denne iden benyttes til interne forhold i Nav og vil ikke endres f.eks. dersom bruker går fra - * DNR til FNR i Folkeregisteret. Tilsvarende vil den kunne referere personer som har ident fra et utenlandsk system. - *

- * Støtter også kunstige orgnummer (internt definert konstant i fp - orgnummer=342352362) + * Id som genereres fra NAV Aktør Register. Denne iden benyttes til interne forhold i Nav og vil ikke endres f.eks. + * dersom bruker går fra DNR til FNR i Folkeregisteret. Tilsvarende vil den kunne referere personer som har ident fra et + * utenlandsk system. + * + *

Støtter også kunstige orgnummer (internt definert konstant i fp - orgnummer=342352362) */ @Embeddable public class OrgNummer implements Serializable, Comparable, IndexKey, TraverseValue { /** - * Orgnr for KUNSTIG organisasjoner. Går sammen med OrganisasjonType#KUNSTIG. - * (p.t. kun en kunstig organisasjon som holder på arbeidsforhold lagt til av saksbehandler.) + * Orgnr for KUNSTIG organisasjoner. Går sammen med OrganisasjonType#KUNSTIG. (p.t. kun en kunstig organisasjon som + * holder på arbeidsforhold lagt til av saksbehandler.) */ - public static final String KUNSTIG_ORG = "342352362"; // magic constant + public static final String KUNSTIG_ORG = "342352362"; // magic constant @JsonValue @Column(name = "org_nummer", updatable = false, length = 50) - private String orgNummer; // NOSONAR + private String orgNummer; // NOSONAR public OrgNummer(String orgNummer) { Objects.requireNonNull(orgNummer, "orgNummer"); @@ -86,5 +84,4 @@ public int hashCode() { public String toString() { return getClass().getSimpleName() + "<********>"; } - } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrganisasjonsNummerValidator.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrganisasjonsNummerValidator.java index 0bf199f00..84b3e16bc 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrganisasjonsNummerValidator.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/OrganisasjonsNummerValidator.java @@ -2,8 +2,7 @@ public final class OrganisasjonsNummerValidator { - private OrganisasjonsNummerValidator() { - } + private OrganisasjonsNummerValidator() {} public static boolean erGyldig(String orgnummer) { diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/PersonIdent.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/PersonIdent.java index a23738a05..61f1439cf 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/PersonIdent.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/PersonIdent.java @@ -1,26 +1,23 @@ package no.nav.foreldrepenger.abakus.typer; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonValue; - +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; /** * Denne mapper p.t Norsk person ident (fødselsnummer, inkl F-nr, D-nr eller FDAT) - *

    - *
  • F-nr: http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-2 (F-nr)
  • - * - *
  • D-nr: http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-5 (D-nr), samt hvem som kan utstede - * (http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-6)
  • * - *
  • FDAT: Personer uten FNR. Disse har fødselsdato + 00000 (normalt) eller fødselsdato + 00001 (dødfødt). + *
      + *
    • F-nr: http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-2 (F-nr) + *
    • D-nr: http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-5 (D-nr), samt hvem som kan utstede + * (http://lovdata.no/forskrift/2007-11-09-1268/%C2%A72-6) + *
    • FDAT: Personer uten FNR. Disse har fødselsdato + 00000 (normalt) eller fødselsdato + 00001 (dødfødt). *
    */ public class PersonIdent implements Comparable, IndexKey { - private static final int[] CHECKSUM_EN_VECTOR = new int[]{3, 7, 6, 1, 8, 9, 4, 5, 2}; - private static final int[] CHECKSUM_TO_VECTOR = new int[]{5, 4, 3, 2, 7, 6, 5, 4, 3, 2}; + private static final int[] CHECKSUM_EN_VECTOR = new int[] {3, 7, 6, 1, 8, 9, 4, 5, 2}; + private static final int[] CHECKSUM_TO_VECTOR = new int[] {5, 4, 3, 2, 7, 6, 5, 4, 3, 2}; private static final int FNR_LENGDE = 11; @@ -34,9 +31,7 @@ public PersonIdent(String ident) { this.ident = ident; } - /** - * @return true hvis angitt str er et fødselsnummer (F-Nr eller D-Nr). False hvis ikke, eller er FDAT nummer. - */ + /** @return true hvis angitt str er et fødselsnummer (F-Nr eller D-Nr). False hvis ikke, eller er FDAT nummer. */ public static boolean erGyldigFnr(final String str) { if (str == null) { return false; @@ -46,7 +41,9 @@ public static boolean erGyldigFnr(final String str) { } private static String getPersonnummer(String str) { - return (str == null || str.length() < PERSONNR_LENGDE) ? null : str.substring(str.length() - PERSONNR_LENGDE, str.length()); + return (str == null || str.length() < PERSONNR_LENGDE) + ? null + : str.substring(str.length() - PERSONNR_LENGDE, str.length()); } private static boolean isFdatNummer(String personnummer) { @@ -73,8 +70,8 @@ private static boolean validerFnrStruktur(String foedselsnummer) { if (checksumTo == FNR_LENGDE) { checksumTo = 0; } - return checksumEn == Character.digit(foedselsnummer.charAt(FNR_LENGDE - 2), 10) && checksumTo == Character.digit( - foedselsnummer.charAt(FNR_LENGDE - 1), 10); + return checksumEn == Character.digit(foedselsnummer.charAt(FNR_LENGDE - 2), 10) + && checksumTo == Character.digit(foedselsnummer.charAt(FNR_LENGDE - 1), 10); } public static PersonIdent fra(String ident) { @@ -116,9 +113,7 @@ public int hashCode() { return Objects.hash(ident); } - /** - * Hvorvidt dette er et Fdat Nummer (dvs. gjelder person uten tildelt fødselsnummer). - */ + /** Hvorvidt dette er et Fdat Nummer (dvs. gjelder person uten tildelt fødselsnummer). */ public boolean erFdatNummer() { return isFdatNummer(getPersonnummer(ident)); } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/SakId.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/SakId.java index 39ff18244..d5de14822 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/SakId.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/SakId.java @@ -2,9 +2,5 @@ import java.io.Serializable; -/** - * Marker interface for sakid referanser. - */ -public interface SakId extends Serializable { - -} +/** Marker interface for sakid referanser. */ +public interface SakId extends Serializable {} diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Saksnummer.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Saksnummer.java index be9268aa8..ebf3926e4 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Saksnummer.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Saksnummer.java @@ -1,23 +1,21 @@ package no.nav.foreldrepenger.abakus.typer; -import java.util.Objects; -import java.util.regex.Pattern; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - +import java.util.Objects; +import java.util.regex.Pattern; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; -/** - * Saksnummer refererer til saksnummer registret i GSAK. - */ +/** Saksnummer refererer til saksnummer registret i GSAK. */ @Embeddable public class Saksnummer implements SakId, IndexKey { private static final String CHARS = "a-z0-9_:-"; - private static final Pattern VALID = Pattern.compile("^(-?[1-9]|[a-z0])[" + CHARS + "]*$", Pattern.CASE_INSENSITIVE); - private static final Pattern INVALID = Pattern.compile("[^" + CHARS + "]+", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); + private static final Pattern VALID = + Pattern.compile("^(-?[1-9]|[a-z0])[" + CHARS + "]*$", Pattern.CASE_INSENSITIVE); + private static final Pattern INVALID = + Pattern.compile("[^" + CHARS + "]+", Pattern.DOTALL | Pattern.CASE_INSENSITIVE); @Column(name = "saksnummer") private String saksnummer; // NOSONAR @@ -30,8 +28,8 @@ public Saksnummer(String saksnummer) { Objects.requireNonNull(saksnummer, "saksnummer"); if (!VALID.matcher(saksnummer).matches()) { // skal ikke skje, funksjonelle feilmeldinger håndteres ikke her. - throw new IllegalArgumentException( - "Ugyldig saksnummer, støtter kun A-Z/0-9/:/-/_ tegn. Var: " + saksnummer.replaceAll(INVALID.pattern(), "?") + " (vasket)"); + throw new IllegalArgumentException("Ugyldig saksnummer, støtter kun A-Z/0-9/:/-/_ tegn. Var: " + + saksnummer.replaceAll(INVALID.pattern(), "?") + " (vasket)"); } this.saksnummer = saksnummer; } @@ -45,7 +43,7 @@ public Saksnummer(String sakId, Fagsystem fagsystem) { public static Saksnummer infotrygd(String sakId) { if (sakId != null) { String vasketId = sakId.replaceAll(INVALID.pattern(), "").trim(); - return vasketId.length() == 0 ? null : new Saksnummer(vasketId, Fagsystem.INFOTRYGD); + return vasketId.isEmpty() ? null : new Saksnummer(vasketId, Fagsystem.INFOTRYGD); } return null; } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Stillingsprosent.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Stillingsprosent.java index 10cff2d48..6a7e31012 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Stillingsprosent.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/Stillingsprosent.java @@ -1,23 +1,19 @@ package no.nav.foreldrepenger.abakus.typer; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import java.io.Serializable; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Objects; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.persistence.Column; -import jakarta.persistence.Embeddable; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; import no.nav.foreldrepenger.abakus.felles.diff.TraverseValue; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -/** - * Stillingsprosent slik det er oppgitt i arbeidsavtalen - */ +/** Stillingsprosent slik det er oppgitt i arbeidsavtalen */ @Embeddable public class Stillingsprosent implements Serializable, IndexKey, TraverseValue { private static final Logger LOG = LoggerFactory.getLogger(Stillingsprosent.class); @@ -26,7 +22,8 @@ public class Stillingsprosent implements Serializable, IndexKey, TraverseValue { private static final BigDecimal UTBETALING_MAX_VERDI = BigDecimal.valueOf(499.99d); // Historisk absurd max - private static final BigDecimal ARBEID_MAX_VERDI = BigDecimal.valueOf(109.99d); // Bør være 100 men vil dobbelsjekke avrunding i noen tilfelle + private static final BigDecimal ARBEID_MAX_VERDI = + BigDecimal.valueOf(109.99d); // Bør være 100 men vil dobbelsjekke avrunding i noen tilfelle private static final Stillingsprosent NULL_PROSENT = new Stillingsprosent(null); @@ -51,7 +48,6 @@ public static Stillingsprosent utbetalingsgrad(BigDecimal verdi) { return new Stillingsprosent(normaliserData(verdi, UTBETALING_MAX_VERDI)); } - public static Stillingsprosent nullProsent() { return NULL_PROSENT; } diff --git a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/package-info.java b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/package-info.java index 6b7fb8777..71b30cad6 100644 --- a/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/package-info.java +++ b/domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/typer/package-info.java @@ -1,4 +1,2 @@ -/** - * Value objects i bruk i ytelser. - */ +/** Value objects i bruk i ytelser. */ package no.nav.foreldrepenger.abakus.typer; diff --git a/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRefTest.java b/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRefTest.java index 00c83113b..32d4686b3 100644 --- a/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRefTest.java +++ b/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/InternArbeidsforholdRefTest.java @@ -4,7 +4,6 @@ import org.junit.jupiter.api.Test; - class InternArbeidsforholdRefTest { @Test diff --git a/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/StillingsprosentTest.java b/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/StillingsprosentTest.java index a49bcbb6f..3d0796a16 100644 --- a/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/StillingsprosentTest.java +++ b/domenetjenester/kobling/src/test/java/no/nav/foreldrepenger/abakus/typer/StillingsprosentTest.java @@ -3,10 +3,8 @@ import static org.assertj.core.api.Assertions.assertThat; import java.math.BigDecimal; - import org.junit.jupiter.api.Test; - class StillingsprosentTest { @Test diff --git a/domenetjenester/lonnskomp/README.md b/domenetjenester/lonnskomp/README.md index 5bf7eb909..9410ed3ba 100644 --- a/domenetjenester/lonnskomp/README.md +++ b/domenetjenester/lonnskomp/README.md @@ -4,6 +4,6 @@ Disse inntektene ble utbetalt som LØNN med NAV som utbetaler Arbeidsgiver finnes fra vedtak og periode fra anvist. -Disse periodiseres og legges til inntekter innhentet fra Inntektskomponenten for Arbeidsgiver og Måned +Disse periodiseres og legges til inntekter innhentet fra Inntektskomponenten for Arbeidsgiver og Måned **LA STÅ** inntil utgangen av 2024 - eller til det ikke lenger etableres nye koblinger/grunnlag med opplysningsperiode i 2020. diff --git a/domenetjenester/lonnskomp/pom.xml b/domenetjenester/lonnskomp/pom.xml index 2d6a725e2..5c3b0b56d 100644 --- a/domenetjenester/lonnskomp/pom.xml +++ b/domenetjenester/lonnskomp/pom.xml @@ -1,24 +1,22 @@ - - 4.0.0 + + 4.0.0 - - no.nav.foreldrepenger.abakus - domenetjenester - 1.0-SNAPSHOT - + + no.nav.foreldrepenger.abakus + domenetjenester + 1.0-SNAPSHOT + - lonnskomp - jar - Abakus :: Domenetjeneste :: Lønnskompensasjon + lonnskomp + jar + Abakus :: Domenetjeneste :: Lønnskompensasjon - - - no.nav.foreldrepenger.abakus - prosesstask - + + + no.nav.foreldrepenger.abakus + prosesstask + no.nav.foreldrepenger.abakus kobling @@ -27,10 +25,10 @@ no.nav.foreldrepenger.abakus vedtak - - no.nav.foreldrepenger.abakus - felles - + + no.nav.foreldrepenger.abakus + felles + diff --git "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonAnvist.java" "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonAnvist.java" index bccd9b090..b6a5f7f28 100644 --- "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonAnvist.java" +++ "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonAnvist.java" @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.lonnskomp.domene; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Objects; -import java.util.Optional; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -17,7 +12,10 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -55,7 +53,8 @@ public class LønnskompensasjonAnvist extends BaseEntitet implements IndexKey { } public LønnskompensasjonAnvist(LønnskompensasjonAnvist ytelseAnvist) { - this.anvistPeriode = IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFom(), ytelseAnvist.getAnvistTom()); + this.anvistPeriode = + IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFom(), ytelseAnvist.getAnvistTom()); this.beløp = ytelseAnvist.getBeløp().orElse(null); } @@ -137,6 +136,5 @@ public static class LønnskompensasjonAnvistBuilder { public LønnskompensasjonAnvist build() { return anvist; } - } } diff --git "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepository.java" "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepository.java" index 2e31761f2..1f549fc94 100644 --- "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepository.java" +++ "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepository.java" @@ -1,19 +1,17 @@ package no.nav.foreldrepenger.abakus.lonnskomp.domene; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; import java.time.LocalDate; import java.util.LinkedHashSet; import java.util.Objects; import java.util.Optional; import java.util.Set; - -import org.hibernate.jpa.HibernateHints; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; -import jakarta.persistence.TypedQuery; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.vedtak.felles.jpa.HibernateVerktøy; +import org.hibernate.jpa.HibernateHints; @ApplicationScoped public class LønnskompensasjonRepository { @@ -31,7 +29,8 @@ public class LønnskompensasjonRepository { } public void lagre(LønnskompensasjonVedtak vedtak) { - LønnskompensasjonVedtak eksisterende = hentSak(vedtak.getSakId(), vedtak.getFnr()).orElse(null); + LønnskompensasjonVedtak eksisterende = + hentSak(vedtak.getSakId(), vedtak.getFnr()).orElse(null); if (eksisterende != null) { // Deaktiver eksisterende innslag eksisterende.setAktiv(false); @@ -49,17 +48,20 @@ public void lagre(LønnskompensasjonVedtak vedtak) { Objects.requireNonNull(sakId, "sakId"); TypedQuery query = entityManager.createQuery( - "SELECT v FROM LonnskompVedtakEntitet v " + "WHERE aktiv = true AND v.sakId = :sakId and v.fnr = :fnr", LønnskompensasjonVedtak.class); + "SELECT v FROM LonnskompVedtakEntitet v " + "WHERE aktiv = true AND v.sakId = :sakId and v.fnr = :fnr", + LønnskompensasjonVedtak.class); query.setParameter("sakId", sakId); query.setParameter("fnr", fnr); return HibernateVerktøy.hentUniktResultat(query); } - public Set hentLønnskompensasjonForIPeriode(AktørId aktørId, LocalDate fom, LocalDate tom) { + public Set hentLønnskompensasjonForIPeriode( + AktørId aktørId, LocalDate fom, LocalDate tom) { TypedQuery query = entityManager.createQuery( - "FROM LonnskompVedtakEntitet " + "WHERE aktørId = :aktørId " + "AND periode.fomDato <= :tom AND periode.tomDato >= :fom " - + "AND aktiv = true", LønnskompensasjonVedtak.class); + "FROM LonnskompVedtakEntitet " + "WHERE aktørId = :aktørId " + + "AND periode.fomDato <= :tom AND periode.tomDato >= :fom " + "AND aktiv = true", + LønnskompensasjonVedtak.class); query.setParameter("aktørId", aktørId); query.setParameter("fom", fom); query.setParameter("tom", tom); @@ -85,5 +87,4 @@ public boolean skalLagreVedtak(LønnskompensasjonVedtak eksisterende, Lønnskomp var likeUtenomForrigeVedtak = Objects.equals(eksisterende, vedtak); return !likeUtenomForrigeVedtak; } - } diff --git "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonVedtak.java" "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonVedtak.java" index 301f42ea3..8950e4d34 100644 --- "a/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonVedtak.java" +++ "b/domenetjenester/lonnskomp/src/main/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonVedtak.java" @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.lonnskomp.domene; -import java.time.LocalDate; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,7 +11,10 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.time.LocalDate; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -36,7 +34,7 @@ public class LønnskompensasjonVedtak extends BaseEntitet implements IndexKey { @ChangeTracked @Column(name = "sakid", nullable = false, updatable = false) - private String sakId; // Eg en ULID + private String sakId; // Eg en ULID @Embedded @AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "aktoer_id"))) @@ -96,13 +94,17 @@ public static boolean erLikForBrukerOrg(LønnskompensasjonVedtak v1, Lønnskompe if (v1 == null || v2 == null) { return false; } - return Objects.equals(v1.aktørId, v2.aktørId) && Objects.equals(v1.orgNummer, v2.orgNummer) && Objects.equals(v1.periode, v2.periode) - && Objects.equals(v1.beløp, v2.beløp); + return Objects.equals(v1.aktørId, v2.aktørId) + && Objects.equals(v1.orgNummer, v2.orgNummer) + && Objects.equals(v1.periode, v2.periode) + && Objects.equals(v1.beløp, v2.beløp); } @Override public String getIndexKey() { - Object[] keyParts = {periode, aktørId, sakId,}; + Object[] keyParts = { + periode, aktørId, sakId, + }; return IndexKeyComposer.createKey(keyParts); } @@ -181,7 +183,6 @@ void setAktiv(boolean aktiv) { public void leggTilAnvistPeriode(LønnskompensasjonAnvist anvist) { anvist.setVedtak(this); this.anvistePerioder.add(anvist); - } @Override @@ -193,9 +194,13 @@ public boolean equals(Object o) { return false; } LønnskompensasjonVedtak that = (LønnskompensasjonVedtak) o; - return Objects.equals(sakId, that.sakId) && Objects.equals(fnr, that.fnr) && Objects.equals(orgNummer, that.orgNummer) && Objects.equals( - periode, that.periode) && Objects.equals(beløp, that.beløp) && anvistePerioder.size() == that.anvistePerioder.size() - && anvistePerioder.containsAll(that.anvistePerioder); + return Objects.equals(sakId, that.sakId) + && Objects.equals(fnr, that.fnr) + && Objects.equals(orgNummer, that.orgNummer) + && Objects.equals(periode, that.periode) + && Objects.equals(beløp, that.beløp) + && anvistePerioder.size() == that.anvistePerioder.size() + && anvistePerioder.containsAll(that.anvistePerioder); } @Override @@ -205,7 +210,7 @@ public int hashCode() { @Override public String toString() { - return "LønnskompensasjonVedtak{" + "sakId='" + sakId + '\'' + ", orgNummer=" + orgNummer + ", forrigeVedtakDato=" + forrigeVedtakDato - + ", periode=" + periode + ", beløp=" + beløp + '}'; + return "LønnskompensasjonVedtak{" + "sakId='" + sakId + '\'' + ", orgNummer=" + orgNummer + + ", forrigeVedtakDato=" + forrigeVedtakDato + ", periode=" + periode + ", beløp=" + beløp + '}'; } } diff --git "a/domenetjenester/lonnskomp/src/test/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepositoryTest.java" "b/domenetjenester/lonnskomp/src/test/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepositoryTest.java" index 71e43acc3..2a19469c5 100644 --- "a/domenetjenester/lonnskomp/src/test/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepositoryTest.java" +++ "b/domenetjenester/lonnskomp/src/test/java/no/nav/foreldrepenger/abakus/lonnskomp/domene/L\303\270nnskompensasjonRepositoryTest.java" @@ -4,16 +4,14 @@ import java.math.BigDecimal; import java.time.LocalDate; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.foreldrepenger.abakus.dbstoette.JpaExtension; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.OrgNummer; import no.nav.foreldrepenger.abakus.typer.PersonIdent; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class LønnskompensasjonRepositoryTest { @@ -23,27 +21,29 @@ class LønnskompensasjonRepositoryTest { private static final AktørId AKTØR_ID = new AktørId("1231231231234"); private static final PersonIdent FNR = new PersonIdent("12312312312"); - private LønnskompensasjonRepository repository = new LønnskompensasjonRepository(repositoryRule.getEntityManager()); @Test void skal_håndtere_lagring_rett() { var anvist = LønnskompensasjonAnvist.LønnskompensasjonAnvistBuilder.ny() - .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.of(2020, 4, 20), LocalDate.of(2020, 4, 20))) - .medBeløp(new BigDecimal(1000)) - .build(); + .medAnvistPeriode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.of(2020, 4, 20), LocalDate.of(2020, 4, 20))) + .medBeløp(new BigDecimal(1000)) + .build(); var vedtak = new LønnskompensasjonVedtak(); vedtak.setAktørId(AKTØR_ID); vedtak.setFnr(FNR.getIdent()); vedtak.setSakId("1234"); - vedtak.setPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(10), LocalDate.now().minusMonths(9))); + vedtak.setPeriode(IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now().minusMonths(10), LocalDate.now().minusMonths(9))); vedtak.setBeløp(new Beløp(new BigDecimal(10000L))); vedtak.setOrgNummer(new OrgNummer("999999999")); vedtak.leggTilAnvistPeriode(anvist); repository.lagre(vedtak); - final var vedtakFraRepo = repository.hentLønnskompensasjonForIPeriode(AKTØR_ID, LocalDate.now().minusMonths(17), LocalDate.now()); + final var vedtakFraRepo = repository.hentLønnskompensasjonForIPeriode( + AKTØR_ID, LocalDate.now().minusMonths(17), LocalDate.now()); assertThat(vedtakFraRepo).hasSize(1); final var vedtakForSakId = repository.hentSak("1234", FNR.getIdent()); @@ -58,10 +58,13 @@ class LønnskompensasjonRepositoryTest { repository.lagre(nyVedtak); } - final var oppdatertVedtattVedtak = repository.hentLønnskompensasjonForIPeriode(AKTØR_ID, LocalDate.now().minusMonths(17), LocalDate.now()) - .stream() - .findFirst() - .orElse(null); + final var oppdatertVedtattVedtak = + repository + .hentLønnskompensasjonForIPeriode( + AKTØR_ID, LocalDate.now().minusMonths(17), LocalDate.now()) + .stream() + .findFirst() + .orElse(null); assertThat(oppdatertVedtattVedtak).isNotNull(); assertThat(oppdatertVedtattVedtak.getId()).isNotEqualTo(vedtak.getId()); @@ -71,21 +74,24 @@ class LønnskompensasjonRepositoryTest { @Test void skal_forkaste_vedtak_som_likt() { var anvist = LønnskompensasjonAnvist.LønnskompensasjonAnvistBuilder.ny() - .medAnvistPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.of(2020, 4, 20), LocalDate.of(2020, 4, 20))) - .medBeløp(new BigDecimal(1000)) - .build(); + .medAnvistPeriode( + IntervallEntitet.fraOgMedTilOgMed(LocalDate.of(2020, 4, 20), LocalDate.of(2020, 4, 20))) + .medBeløp(new BigDecimal(1000)) + .build(); var vedtak = new LønnskompensasjonVedtak(); vedtak.setAktørId(AKTØR_ID); vedtak.setFnr(FNR.getIdent()); vedtak.setSakId("1234"); - vedtak.setPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusMonths(10), LocalDate.now().minusMonths(9))); + vedtak.setPeriode(IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now().minusMonths(10), LocalDate.now().minusMonths(9))); vedtak.setBeløp(new Beløp(new BigDecimal(10000L))); vedtak.setOrgNummer(new OrgNummer("999999999")); vedtak.leggTilAnvistPeriode(anvist); repository.lagre(vedtak); - final var vedtakFraRepo = repository.hentLønnskompensasjonForIPeriode(AKTØR_ID, LocalDate.now().minusYears(1), LocalDate.now()); + final var vedtakFraRepo = repository.hentLønnskompensasjonForIPeriode( + AKTØR_ID, LocalDate.now().minusYears(1), LocalDate.now()); assertThat(vedtakFraRepo).hasSize(1); var nyVedtak = new LønnskompensasjonVedtak(vedtak); @@ -94,10 +100,13 @@ void skal_forkaste_vedtak_som_likt() { repository.lagre(nyVedtak); } - final var oppdatertVedtattVedtak = repository.hentLønnskompensasjonForIPeriode(AKTØR_ID, LocalDate.now().minusYears(1), LocalDate.now()) - .stream() - .findFirst() - .orElse(null); + final var oppdatertVedtattVedtak = + repository + .hentLønnskompensasjonForIPeriode( + AKTØR_ID, LocalDate.now().minusYears(1), LocalDate.now()) + .stream() + .findFirst() + .orElse(null); assertThat(oppdatertVedtattVedtak).isNotNull(); assertThat(oppdatertVedtattVedtak.getId()).isEqualTo(vedtak.getId()); diff --git a/domenetjenester/pom.xml b/domenetjenester/pom.xml index 381952b2a..002611e53 100644 --- a/domenetjenester/pom.xml +++ b/domenetjenester/pom.xml @@ -1,7 +1,5 @@ - + 4.0.0 @@ -11,8 +9,8 @@ domenetjenester - Abakus :: Domenetjeneste :: Root pom + Abakus :: Domenetjeneste :: Root kobling diff --git a/domenetjenester/vedtak/pom.xml b/domenetjenester/vedtak/pom.xml index ff5d4151c..d53231f5f 100644 --- a/domenetjenester/vedtak/pom.xml +++ b/domenetjenester/vedtak/pom.xml @@ -1,28 +1,26 @@ - - 4.0.0 + + 4.0.0 - - no.nav.foreldrepenger.abakus - domenetjenester - 1.0-SNAPSHOT - + + no.nav.foreldrepenger.abakus + domenetjenester + 1.0-SNAPSHOT + - vedtak - jar - Abakus :: Domenetjeneste :: Vedtak + vedtak + jar + Abakus :: Domenetjeneste :: Vedtak - - - no.nav.foreldrepenger.abakus - prosesstask - - - no.nav.foreldrepenger.abakus - kobling - + + + no.nav.foreldrepenger.abakus + prosesstask + + + no.nav.foreldrepenger.abakus + kobling + no.nav.foreldrepenger.abakus abakus-vedtak @@ -49,14 +47,14 @@ felles-server - - io.swagger.core.v3 - swagger-annotations-jakarta - - - org.apache.kafka - kafka-clients - + + io.swagger.core.v3 + swagger-annotations-jakarta + + + org.apache.kafka + kafka-clients + @@ -77,5 +75,5 @@ hibernate-micrometer - + diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTask.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTask.java index 87f208f2b..5714f9e30 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTask.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTask.java @@ -1,17 +1,14 @@ package no.nav.foreldrepenger.abakus.vedtak; -import java.io.IOException; -import java.util.Set; -import java.util.stream.Collectors; - +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.inject.Inject; import jakarta.validation.ConstraintViolation; import jakarta.validation.Validation; import jakarta.validation.Validator; import jakarta.validation.ValidatorFactory; - -import com.fasterxml.jackson.databind.ObjectMapper; - +import java.io.IOException; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.JsonObjectMapper; import no.nav.abakus.vedtak.ytelse.Ytelse; import no.nav.abakus.vedtak.ytelse.v1.YtelseV1; @@ -27,13 +24,12 @@ public class LagreVedtakTask implements ProsessTaskHandler { public static final String KEY = "kafka.key"; - private final static ObjectMapper OBJECT_MAPPER = JsonObjectMapper.getMapper(); + private static final ObjectMapper OBJECT_MAPPER = JsonObjectMapper.getMapper(); private VedtakYtelseRepository ytelseRepository; private ExtractFromYtelseV1 extractor; - public LagreVedtakTask() { - } + public LagreVedtakTask() {} @Inject public LagreVedtakTask(VedtakYtelseRepository ytelseRepository, ExtractFromYtelseV1 extractor) { @@ -57,7 +53,8 @@ public void doTask(ProsessTaskData data) { throw new IllegalArgumentException("Vedtatt-ytelse valideringsfeil :: \n " + allErrors); } } catch (IOException e) { - throw new TekniskException("FP-328773", String.format("Feil under parsing av vedtak. key={%s} payload={%s}", key, payload), e); + throw new TekniskException( + "FP-328773", String.format("Feil under parsing av vedtak. key={%s} payload={%s}", key, payload), e); } if (mottattVedtak != null) { // TODO: Gjør generisk @@ -65,7 +62,6 @@ public void doTask(ProsessTaskData data) { VedtakYtelseBuilder builder = extractor.extractFrom(mottattVedtak1); ytelseRepository.lagre(builder); - } } } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/Arbeidsgiver.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/Arbeidsgiver.java index eafcbfd78..69b7a90f3 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/Arbeidsgiver.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/Arbeidsgiver.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; -import java.io.Serializable; -import java.util.Objects; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.Embedded; - +import java.io.Serializable; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; @@ -19,11 +17,13 @@ @Embeddable public class Arbeidsgiver implements IndexKey, TraverseValue, Serializable { /** - * Kun en av denne og {@link #arbeidsgiverAktørId} kan være satt. Sett denne hvis ArbeidsgiverEntitet er en Organisasjon. + * Kun en av denne og {@link #arbeidsgiverAktørId} kan være satt. Sett denne hvis ArbeidsgiverEntitet er en + * Organisasjon. */ @ChangeTracked @Embedded - @AttributeOverrides(@AttributeOverride(name = "orgNummer", column = @Column(name = "arbeidsgiver_orgnr", updatable = false))) + @AttributeOverrides( + @AttributeOverride(name = "orgNummer", column = @Column(name = "arbeidsgiver_orgnr", updatable = false))) private OrgNummer arbeidsgiverOrgnr; /** @@ -31,7 +31,8 @@ public class Arbeidsgiver implements IndexKey, TraverseValue, Serializable { */ @ChangeTracked @Embedded - @AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "arbeidsgiver_aktor_id", updatable = false))) + @AttributeOverrides( + @AttributeOverride(name = "aktørId", column = @Column(name = "arbeidsgiver_aktor_id", updatable = false))) private AktørId arbeidsgiverAktørId; private Arbeidsgiver(OrgNummer arbeidsgiverOrgnr, AktørId arbeidsgiverAktørId) { @@ -39,8 +40,7 @@ private Arbeidsgiver(OrgNummer arbeidsgiverOrgnr, AktørId arbeidsgiverAktørId) this.arbeidsgiverAktørId = arbeidsgiverAktørId; } - protected Arbeidsgiver() { - } + protected Arbeidsgiver() {} public static Arbeidsgiver virksomhet(String orgnr) { return new Arbeidsgiver(new OrgNummer(orgnr), null); @@ -66,8 +66,8 @@ public OrgNummer getOrgnr() { } /** - * Returneer ident for ArbeidsgiverEntitet. Kan være Org nummer eller AktørDto id (dersom ArbeidsgiverEntitet er en enkelt person - - * f.eks. for Frilans el.) + * Returneer ident for ArbeidsgiverEntitet. Kan være Org nummer eller AktørDto id (dersom ArbeidsgiverEntitet er en + * enkelt person - f.eks. for Frilans el.) */ public String getIdentifikator() { if (arbeidsgiverAktørId != null) { @@ -85,7 +85,8 @@ public boolean equals(Object o) { return false; } Arbeidsgiver that = (Arbeidsgiver) o; - return Objects.equals(arbeidsgiverOrgnr, that.arbeidsgiverOrgnr) && Objects.equals(arbeidsgiverAktørId, that.arbeidsgiverAktørId); + return Objects.equals(arbeidsgiverOrgnr, that.arbeidsgiverOrgnr) + && Objects.equals(arbeidsgiverAktørId, that.arbeidsgiverAktørId); } @Override @@ -95,7 +96,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "arbeidsgiverOrgnr=" + arbeidsgiverOrgnr + ", arbeidsgiverAktørId='" + arbeidsgiverAktørId + '\'' - + '>'; + return getClass().getSimpleName() + "<" + "arbeidsgiverOrgnr=" + arbeidsgiverOrgnr + ", arbeidsgiverAktørId='" + + arbeidsgiverAktørId + '\'' + '>'; } } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/FagsystemKodeverdiConverter.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/FagsystemKodeverdiConverter.java index e8702c4c0..67a13bd72 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/FagsystemKodeverdiConverter.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/FagsystemKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; @Converter(autoApply = true) diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/InntektskategoriKodeverdiConverter.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/InntektskategoriKodeverdiConverter.java index e094c6a63..246d31f77 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/InntektskategoriKodeverdiConverter.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/InntektskategoriKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; @Converter(autoApply = true) diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelse.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelse.java index 301d9b4b5..28f56bf23 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelse.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelse.java @@ -1,18 +1,5 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; -import java.sql.Types; -import java.time.LocalDateTime; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - -import org.hibernate.annotations.JdbcTypeCode; -import org.hibernate.annotations.NaturalId; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -25,6 +12,15 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Version; +import java.sql.Types; +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -37,6 +33,8 @@ import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.vedtak.felles.jpa.converters.BooleanToStringConverter; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.annotations.NaturalId; @Entity(name = "VedtakYtelseEntitet") @Table(name = "VEDTAK_YTELSE") @@ -47,7 +45,10 @@ public class VedtakYtelse extends BaseEntitet implements IndexKey { private Long id; @Embedded - @AttributeOverrides(@AttributeOverride(name = "aktørId", column = @Column(name = "aktoer_id", nullable = false, updatable = false))) + @AttributeOverrides( + @AttributeOverride( + name = "aktørId", + column = @Column(name = "aktoer_id", nullable = false, updatable = false))) private AktørId aktørId; @Convert(converter = YtelseTypeKodeverdiConverter.class) @@ -71,9 +72,7 @@ public class VedtakYtelse extends BaseEntitet implements IndexKey { @Column(name = "status", nullable = false) private YtelseStatus status = YtelseStatus.UDEFINERT; - /** - * Saksnummer (fra Arena, Infotrygd, ..). - */ + /** Saksnummer (fra Arena, Infotrygd, ..). */ @Embedded @AttributeOverrides(@AttributeOverride(name = "saksnummer", column = @Column(name = "saksnummer"))) private Saksnummer saksnummer; @@ -112,11 +111,10 @@ public VedtakYtelse(VedtakYtelse ytelse) { this.saksnummer = ytelse.getSaksnummer(); this.kilde = ytelse.getKilde(); this.tilleggsopplysninger = ytelse.getTilleggsopplysninger(); - this.ytelseAnvist = ytelse.getYtelseAnvist() - .stream() - .map(YtelseAnvist::new) - .peek(it -> it.setYtelse(this)) - .collect(Collectors.toCollection(LinkedHashSet::new)); + this.ytelseAnvist = ytelse.getYtelseAnvist().stream() + .map(YtelseAnvist::new) + .peek(it -> it.setYtelse(this)) + .collect(Collectors.toCollection(LinkedHashSet::new)); } @Override @@ -188,7 +186,6 @@ public Collection getYtelseAnvist() { void leggTilYtelseAnvist(YtelseAnvist ytelseAnvist) { ytelseAnvist.setYtelse(this); this.ytelseAnvist.add(ytelseAnvist); - } public LocalDateTime getVedtattTidspunkt() { @@ -228,9 +225,12 @@ public boolean equals(Object o) { return false; } var that = (VedtakYtelse) o; - return Objects.equals(ytelseType, that.ytelseType) && Objects.equals(kilde, that.kilde) && Objects.equals(aktørId, that.aktørId) && ( - Objects.equals(periode, that.periode) || Objects.equals(periode.getFomDato(), that.periode.getFomDato())) && Objects.equals(saksnummer, - that.saksnummer); + return Objects.equals(ytelseType, that.ytelseType) + && Objects.equals(kilde, that.kilde) + && Objects.equals(aktørId, that.aktørId) + && (Objects.equals(periode, that.periode) + || Objects.equals(periode.getFomDato(), that.periode.getFomDato())) + && Objects.equals(saksnummer, that.saksnummer); } @Override @@ -240,7 +240,8 @@ public int hashCode() { @Override public String toString() { - return "VedtakYtelseEntitet{" + "aktørId=" + aktørId + ", ytelseType=" + ytelseType + ", vedtattTidspunkt=" + vedtattTidspunkt - + ", vedtakReferanse=" + vedtakReferanse + ", periode=" + periode + ", saksnummer=" + saksnummer + ", kilde=" + kilde + '}'; + return "VedtakYtelseEntitet{" + "aktørId=" + aktørId + ", ytelseType=" + ytelseType + ", vedtattTidspunkt=" + + vedtattTidspunkt + ", vedtakReferanse=" + vedtakReferanse + ", periode=" + periode + ", saksnummer=" + + saksnummer + ", kilde=" + kilde + '}'; } } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndel.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndel.java index d8e31a0aa..8b94203bc 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndel.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndel.java @@ -1,8 +1,5 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; -import java.util.Objects; -import java.util.Optional; - import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; import jakarta.persistence.Column; @@ -16,7 +13,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Version; - +import java.util.Objects; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; @@ -63,7 +61,6 @@ public class VedtakYtelseAndel extends BaseEntitet implements IndexKey { @Column(name = "inntektskategori", nullable = false, updatable = false) private Inntektskategori inntektskategori = Inntektskategori.UDEFINERT; - @Version @Column(name = "versjon", nullable = false) private long versjon; @@ -139,8 +136,10 @@ public boolean equals(Object o) { return false; } VedtakYtelseAndel that = (VedtakYtelseAndel) o; - return ytelseAnvist.equals(that.ytelseAnvist) && Objects.equals(arbeidsgiver, that.arbeidsgiver) && dagsats.equals(that.dagsats) - && inntektskategori == that.inntektskategori; + return ytelseAnvist.equals(that.ytelseAnvist) + && Objects.equals(arbeidsgiver, that.arbeidsgiver) + && dagsats.equals(that.dagsats) + && inntektskategori == that.inntektskategori; } @Override @@ -150,8 +149,9 @@ public int hashCode() { @Override public String toString() { - return "VedtakYtelseFordeling{" + "id=" + id + ", ytelseAnvist=" + ytelseAnvist + ", arbeidsgiver=" + arbeidsgiver + ", dagsats=" + dagsats - + ", inntektskategori=" + inntektskategori + ", versjon=" + versjon + '}'; + return "VedtakYtelseFordeling{" + "id=" + id + ", ytelseAnvist=" + ytelseAnvist + ", arbeidsgiver=" + + arbeidsgiver + ", dagsats=" + dagsats + ", inntektskategori=" + inntektskategori + ", versjon=" + + versjon + '}'; } @Override diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndelBuilder.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndelBuilder.java index f9f682305..f980045bc 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndelBuilder.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseAndelBuilder.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; import java.math.BigDecimal; - import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @@ -50,7 +49,6 @@ public VedtakYtelseAndelBuilder medArbeidsforholdId(String arbeidsforholdId) { return this; } - public VedtakYtelseAndelBuilder medInntektskategori(Inntektskategori inntektskategori) { if (inntektskategori != null) { this.vedtakYtelseAndel.setInntektskategori(inntektskategori); @@ -61,5 +59,4 @@ public VedtakYtelseAndelBuilder medInntektskategori(Inntektskategori inntektskat public VedtakYtelseAndel build() { return vedtakYtelseAndel; } - } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseBuilder.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseBuilder.java index de15e90ff..cc4e9abd5 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseBuilder.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseBuilder.java @@ -4,7 +4,6 @@ import java.util.Objects; import java.util.Optional; import java.util.UUID; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -19,7 +18,8 @@ public class VedtakYtelseBuilder { private VedtakYtelseBuilder(VedtakYtelse ytelseEntitet) { this.ytelse = ytelseEntitet; - this.originalVedtattTidspunkt = ytelseEntitet.getVedtattTidspunkt() != null ? ytelseEntitet.getVedtattTidspunkt() : LocalDateTime.MIN; + this.originalVedtattTidspunkt = + ytelseEntitet.getVedtattTidspunkt() != null ? ytelseEntitet.getVedtattTidspunkt() : LocalDateTime.MIN; } private static VedtakYtelseBuilder ny() { @@ -104,7 +104,8 @@ public void tilbakestillAnvisteYtelser() { * @return true / false avhengig av tidsstempel */ boolean erOppdatering() { - return originalVedtattTidspunkt != null && ytelse.getVedtattTidspunkt() != null && originalVedtattTidspunkt.isBefore( - ytelse.getVedtattTidspunkt()); + return originalVedtattTidspunkt != null + && ytelse.getVedtattTidspunkt() != null + && originalVedtattTidspunkt.isBefore(ytelse.getVedtattTidspunkt()); } } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepository.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepository.java index 79a8a2497..818e34ea8 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepository.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepository.java @@ -1,25 +1,23 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; - -import org.hibernate.jpa.HibernateHints; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; -import jakarta.persistence.TypedQuery; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Saksnummer; import no.nav.vedtak.felles.jpa.HibernateVerktøy; +import org.hibernate.jpa.HibernateHints; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class VedtakYtelseRepository { @@ -37,18 +35,21 @@ public VedtakYtelseRepository(EntityManager entityManager) { this.entityManager = entityManager; } - public VedtakYtelseBuilder opprettBuilderFor(AktørId aktørId, Saksnummer saksnummer, Fagsystem fagsystem, YtelseType ytelseType) { + public VedtakYtelseBuilder opprettBuilderFor( + AktørId aktørId, Saksnummer saksnummer, Fagsystem fagsystem, YtelseType ytelseType) { return VedtakYtelseBuilder.oppdatere(hentYtelseFor(aktørId, saksnummer, fagsystem, ytelseType)) - .medAktør(aktørId) - .medSaksnummer(saksnummer) - .medKilde(fagsystem) - .medYtelseType(ytelseType); + .medAktør(aktørId) + .medSaksnummer(saksnummer) + .medKilde(fagsystem) + .medYtelseType(ytelseType); } public void lagre(VedtakYtelseBuilder builder) { var ytelse = builder.build(); - Optional vedtakYtelse = hentYtelseFor(ytelse.getAktør(), ytelse.getSaksnummer(), ytelse.getKilde(), ytelse.getYtelseType()); - if (vedtakYtelse.isPresent() && (builder.erOppdatering() || manglerEksisterendeVedtakAndeler(vedtakYtelse.get(), ytelse))) { + Optional vedtakYtelse = + hentYtelseFor(ytelse.getAktør(), ytelse.getSaksnummer(), ytelse.getKilde(), ytelse.getYtelseType()); + if (vedtakYtelse.isPresent() + && (builder.erOppdatering() || manglerEksisterendeVedtakAndeler(vedtakYtelse.get(), ytelse))) { // Deaktiver eksisterende innslag VedtakYtelse ytelseEntitet = vedtakYtelse.get(); ytelseEntitet.setAktiv(false); @@ -71,25 +72,32 @@ public void lagre(VedtakYtelseBuilder builder) { // Lagrer vedtak med samme vedtakstidspunkt dersom ny har andeler og gammel mangler andeler private boolean manglerEksisterendeVedtakAndeler(VedtakYtelse eksisterende, VedtakYtelse ny) { - var eksisterendeHarAndeler = eksisterende.getYtelseAnvist().stream().anyMatch(a -> !a.getAndeler().isEmpty()); - var nyHarAndeler = ny.getYtelseAnvist().stream().anyMatch(a -> !a.getAndeler().isEmpty()); - return eksisterende.getVedtattTidspunkt().equals(ny.getVedtattTidspunkt()) && nyHarAndeler && !eksisterendeHarAndeler; + var eksisterendeHarAndeler = eksisterende.getYtelseAnvist().stream() + .anyMatch(a -> !a.getAndeler().isEmpty()); + var nyHarAndeler = + ny.getYtelseAnvist().stream().anyMatch(a -> !a.getAndeler().isEmpty()); + return eksisterende.getVedtattTidspunkt().equals(ny.getVedtattTidspunkt()) + && nyHarAndeler + && !eksisterendeHarAndeler; } - private Optional hentYtelseFor(AktørId aktørId, Saksnummer saksnummer, Fagsystem fagsystem, YtelseType ytelseType) { + private Optional hentYtelseFor( + AktørId aktørId, Saksnummer saksnummer, Fagsystem fagsystem, YtelseType ytelseType) { Objects.requireNonNull(aktørId, "aktørId"); Objects.requireNonNull(saksnummer, "saksnummer"); Objects.requireNonNull(fagsystem, "fagsystem"); Objects.requireNonNull(ytelseType, "ytelseType"); - TypedQuery query = entityManager.createQuery(""" + TypedQuery query = entityManager.createQuery( + """ SELECT v FROM VedtakYtelseEntitet v WHERE v.aktørId = :aktørId AND v.saksnummer = :saksnummer AND v.kilde = :fagsystem AND v.ytelseType = :ytelse AND v.aktiv = true - """, VedtakYtelse.class); + """, + VedtakYtelse.class); query.setParameter("aktørId", aktørId); query.setParameter("saksnummer", saksnummer); query.setParameter("fagsystem", fagsystem); @@ -99,12 +107,14 @@ private Optional hentYtelseFor(AktørId aktørId, Saksnummer saksn } public List hentYtelserForIPeriode(AktørId aktørId, LocalDate fom, LocalDate tom) { - TypedQuery query = entityManager.createQuery(""" + TypedQuery query = entityManager.createQuery( + """ SELECT v FROM VedtakYtelseEntitet v WHERE v.aktørId = :aktørId AND v.periode.fomDato <= :tom AND v.periode.tomDato >= :fom AND v.aktiv = true - """, VedtakYtelse.class); + """, + VedtakYtelse.class); query.setParameter("aktørId", aktørId); query.setParameter("fom", fom); query.setParameter("tom", tom); diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvist.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvist.java index 787732d48..39d47795f 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvist.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvist.java @@ -1,21 +1,19 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; -import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; -import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; -import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; -import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; -import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; -import no.nav.foreldrepenger.abakus.typer.Beløp; -import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; - import jakarta.persistence.*; - import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; +import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; +import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked; +import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer; +import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet; +import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; +import no.nav.foreldrepenger.abakus.typer.Beløp; +import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @Entity(name = "VedtakYtelseAnvistEntitet") @Table(name = "VE_YTELSE_ANVIST") @@ -61,11 +59,13 @@ public YtelseAnvist() { } public YtelseAnvist(YtelseAnvist ytelseAnvist) { - this.anvistPeriode = IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFom(), ytelseAnvist.getAnvistTom()); + this.anvistPeriode = + IntervallEntitet.fraOgMedTilOgMed(ytelseAnvist.getAnvistFom(), ytelseAnvist.getAnvistTom()); this.beløp = ytelseAnvist.getBeløp().orElse(null); this.dagsats = ytelseAnvist.getDagsats().orElse(null); this.utbetalingsgradProsent = ytelseAnvist.getUtbetalingsgradProsent().orElse(null); - this.andeler = ytelseAnvist.getAndeler().stream().map(VedtakYtelseAndel::new).collect(Collectors.toList()); + this.andeler = + ytelseAnvist.getAndeler().stream().map(VedtakYtelseAndel::new).collect(Collectors.toList()); this.andeler.forEach(a -> a.setYtelseAnvist(this)); } @@ -122,7 +122,6 @@ public List getAndeler() { void leggTilFordeling(VedtakYtelseAndel vedtakYtelseAndel) { vedtakYtelseAndel.setYtelseAnvist(this); this.andeler.add(vedtakYtelseAndel); - } @Override @@ -134,8 +133,10 @@ public boolean equals(Object o) { return false; } var that = (YtelseAnvist) o; - return Objects.equals(anvistPeriode, that.anvistPeriode) && Objects.equals(beløp, that.beløp) && Objects.equals(dagsats, that.dagsats) - && Objects.equals(utbetalingsgradProsent, that.utbetalingsgradProsent); + return Objects.equals(anvistPeriode, that.anvistPeriode) + && Objects.equals(beløp, that.beløp) + && Objects.equals(dagsats, that.dagsats) + && Objects.equals(utbetalingsgradProsent, that.utbetalingsgradProsent); } @Override @@ -145,7 +146,7 @@ public int hashCode() { @Override public String toString() { - return "YtelseAnvistEntitet{" + "periode=" + anvistPeriode + ", beløp=" + beløp + ", dagsats=" + dagsats + ", utbetalingsgradProsent=" - + utbetalingsgradProsent + '}'; + return "YtelseAnvistEntitet{" + "periode=" + anvistPeriode + ", beløp=" + beløp + ", dagsats=" + dagsats + + ", utbetalingsgradProsent=" + utbetalingsgradProsent + '}'; } } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvistBuilder.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvistBuilder.java index a7544fd74..72270c865 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvistBuilder.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseAnvistBuilder.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; import java.math.BigDecimal; - import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.Beløp; import no.nav.foreldrepenger.abakus.typer.Stillingsprosent; @@ -51,5 +50,4 @@ public YtelseAnvistBuilder medUtbetalingsgradProsent(BigDecimal utbetalingsgradP public YtelseAnvist build() { return ytelseAnvist; } - } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseStatusKodeverdiConverter.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseStatusKodeverdiConverter.java index ed9d3f661..61423c07c 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseStatusKodeverdiConverter.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseStatusKodeverdiConverter.java @@ -1,9 +1,8 @@ package no.nav.foreldrepenger.abakus.vedtak.domene; -import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; - import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; +import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @Converter(autoApply = true) class YtelseStatusKodeverdiConverter implements AttributeConverter { diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseTypeKodeverdiConverter.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseTypeKodeverdiConverter.java index 741c2333b..b4c75b61e 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseTypeKodeverdiConverter.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/domene/YtelseTypeKodeverdiConverter.java @@ -2,7 +2,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; - import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @Converter(autoApply = true) diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ConvertToYtelseV1.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ConvertToYtelseV1.java index 25c244d4c..f00fe1f6c 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ConvertToYtelseV1.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ConvertToYtelseV1.java @@ -2,7 +2,6 @@ import java.util.List; import java.util.stream.Collectors; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -27,8 +26,7 @@ public final class ConvertToYtelseV1 { - private ConvertToYtelseV1() { - } + private ConvertToYtelseV1() {} public static Ytelse convert(VedtakYtelse vedtak) { var ytelse = new YtelseV1(); @@ -46,12 +44,13 @@ public static Ytelse convert(VedtakYtelse vedtak) { periode.setFom(vedtak.getPeriode().getFomDato()); periode.setTom(vedtak.getPeriode().getTomDato()); ytelse.setPeriode(periode); - var anvist = vedtak.getYtelseAnvist().stream().map(ConvertToYtelseV1::mapLagretAnvist).collect(Collectors.toList()); + var anvist = vedtak.getYtelseAnvist().stream() + .map(ConvertToYtelseV1::mapLagretAnvist) + .collect(Collectors.toList()); ytelse.setAnvist(anvist); return ytelse; } - private static Anvisning mapLagretAnvist(YtelseAnvist anvist) { var anvisning = new Anvisning(); var periode = new Periode(); @@ -60,24 +59,33 @@ private static Anvisning mapLagretAnvist(YtelseAnvist anvist) { anvisning.setPeriode(periode); anvist.getBeløp().map(Beløp::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setBeløp); anvist.getDagsats().map(Beløp::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setDagsats); - anvist.getUtbetalingsgradProsent().map(Stillingsprosent::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setUtbetalingsgrad); + anvist.getUtbetalingsgradProsent() + .map(Stillingsprosent::getVerdi) + .map(Desimaltall::new) + .ifPresent(anvisning::setUtbetalingsgrad); anvisning.setAndeler(mapAndeler(anvist)); return anvisning; } private static List mapAndeler(YtelseAnvist anvist) { - return anvist.getAndeler() - .stream() - .map(a -> new AnvistAndel(a.getArbeidsgiver().map(ConvertToYtelseV1::mapArbeidsgiverIdent).orElse(null), a.getArbeidsforholdId(), - new Desimaltall(a.getDagsats().getVerdi()), - a.getUtbetalingsgradProsent() == null ? null : new Desimaltall(a.getUtbetalingsgradProsent().getVerdi()), - a.getRefusjonsgradProsent() == null ? null : new Desimaltall(a.getRefusjonsgradProsent().getVerdi()), - fraInntektskategori(a.getInntektskategori()))) - .collect(Collectors.toList()); + return anvist.getAndeler().stream() + .map(a -> new AnvistAndel( + a.getArbeidsgiver() + .map(ConvertToYtelseV1::mapArbeidsgiverIdent) + .orElse(null), + a.getArbeidsforholdId(), + new Desimaltall(a.getDagsats().getVerdi()), + a.getUtbetalingsgradProsent() == null + ? null + : new Desimaltall(a.getUtbetalingsgradProsent().getVerdi()), + a.getRefusjonsgradProsent() == null + ? null + : new Desimaltall(a.getRefusjonsgradProsent().getVerdi()), + fraInntektskategori(a.getInntektskategori()))) + .collect(Collectors.toList()); } - private static ArbeidsgiverIdent mapArbeidsgiverIdent(Arbeidsgiver arbeidsgiver) { if (arbeidsgiver == null) { return null; diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1.java index 9a8ebee50..7442d6a1f 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1.java @@ -1,10 +1,8 @@ package no.nav.foreldrepenger.abakus.vedtak.extract.v1; -import java.util.UUID; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; - +import java.util.UUID; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -32,8 +30,7 @@ public class ExtractFromYtelseV1 implements ExtractFromYtelse { private VedtakYtelseRepository repository; - ExtractFromYtelseV1() { - } + ExtractFromYtelseV1() {} @Inject public ExtractFromYtelseV1(VedtakYtelseRepository repository) { @@ -49,15 +46,15 @@ public VedtakYtelseBuilder extractFrom(YtelseV1 ytelse) { VedtakYtelseBuilder builder = repository.opprettBuilderFor(aktørId, saksnummer, fagsystem, ytelseType); builder.medAktør(aktørId) - .medVedtakReferanse(UUID.fromString(ytelse.getVedtakReferanse())) - .medVedtattTidspunkt(ytelse.getVedtattTidspunkt()) - .medSaksnummer(saksnummer) - .medKilde(fagsystem) - .medYtelseType(ytelseType) - .medPeriode(mapTilEntitet(ytelse.getPeriode())) - .medStatus(mapStatus(ytelse.getYtelseStatus())) - .medTilleggsopplysninger(ytelse.getTilleggsopplysninger()) - .tilbakestillAnvisteYtelser(); + .medVedtakReferanse(UUID.fromString(ytelse.getVedtakReferanse())) + .medVedtattTidspunkt(ytelse.getVedtattTidspunkt()) + .medSaksnummer(saksnummer) + .medKilde(fagsystem) + .medYtelseType(ytelseType) + .medPeriode(mapTilEntitet(ytelse.getPeriode())) + .medStatus(mapStatus(ytelse.getYtelseStatus())) + .medTilleggsopplysninger(ytelse.getTilleggsopplysninger()) + .tilbakestillAnvisteYtelser(); ytelse.getAnvist().forEach(anv -> mapAnvisning(builder, anv)); @@ -66,22 +63,26 @@ public VedtakYtelseBuilder extractFrom(YtelseV1 ytelse) { private void mapAnvisning(VedtakYtelseBuilder builder, Anvisning anv) { YtelseAnvistBuilder anvistBuilder = builder.getAnvistBuilder(); - anvistBuilder.medAnvistPeriode(mapTilEntitet(anv.getPeriode())) - .medBeløp(anv.getBeløp() != null ? anv.getBeløp().getVerdi() : null) - .medDagsats(anv.getDagsats() != null ? anv.getDagsats().getVerdi() : null) - .medUtbetalingsgradProsent(anv.getUtbetalingsgrad() != null ? anv.getUtbetalingsgrad().getVerdi() : null); + anvistBuilder + .medAnvistPeriode(mapTilEntitet(anv.getPeriode())) + .medBeløp(anv.getBeløp() != null ? anv.getBeløp().getVerdi() : null) + .medDagsats(anv.getDagsats() != null ? anv.getDagsats().getVerdi() : null) + .medUtbetalingsgradProsent( + anv.getUtbetalingsgrad() != null + ? anv.getUtbetalingsgrad().getVerdi() + : null); anv.getAndeler().stream().map(this::mapFordeling).forEach(anvistBuilder::leggTilFordeling); builder.leggTil(anvistBuilder); } private VedtakYtelseAndelBuilder mapFordeling(AnvistAndel andel) { return VedtakYtelseAndelBuilder.ny() - .medInntektskategori(mapInntektsklasse(andel.getInntektklasse())) - .medDagsats(andel.getDagsats().getVerdi()) - .medUtbetalingsgrad(andel.getUtbetalingsgrad().getVerdi()) - .medRefusjonsgrad(andel.getRefusjonsgrad().getVerdi()) - .medArbeidsgiver(mapArbeidsgiver(andel)) - .medArbeidsforholdId(andel.getArbeidsforholdId()); + .medInntektskategori(mapInntektsklasse(andel.getInntektklasse())) + .medDagsats(andel.getDagsats().getVerdi()) + .medUtbetalingsgrad(andel.getUtbetalingsgrad().getVerdi()) + .medRefusjonsgrad(andel.getRefusjonsgrad().getVerdi()) + .medArbeidsgiver(mapArbeidsgiver(andel)) + .medArbeidsforholdId(andel.getArbeidsforholdId()); } private Fagsystem mapKildesystem(Kildesystem kildesystem) { @@ -108,8 +109,9 @@ private Arbeidsgiver mapArbeidsgiver(AnvistAndel andel) { if (arbeidsgiverIdent == null) { return null; } - return arbeidsgiverIdent.erOrganisasjon() ? Arbeidsgiver.virksomhet(arbeidsgiverIdent.ident()) : Arbeidsgiver.person( - arbeidsgiverIdent.ident()); + return arbeidsgiverIdent.erOrganisasjon() + ? Arbeidsgiver.virksomhet(arbeidsgiverIdent.ident()) + : Arbeidsgiver.person(arbeidsgiverIdent.ident()); } private IntervallEntitet mapTilEntitet(Periode periode) { @@ -152,5 +154,4 @@ private Inntektskategori mapInntektsklasse(Inntektklasse inntektklasse) { default -> Inntektskategori.UDEFINERT; }; } - } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtakConsumer.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtakConsumer.java index 0f2411426..4fe38e093 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtakConsumer.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtakConsumer.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.vedtak.kafka; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import no.nav.vedtak.felles.integrasjon.kafka.KafkaConsumerManager; import no.nav.vedtak.server.Controllable; import no.nav.vedtak.server.LiveAndReadinessAware; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped public class VedtakConsumer implements LiveAndReadinessAware, Controllable { diff --git "a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtaksHendelseH\303\245ndterer.java" "b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtaksHendelseH\303\245ndterer.java" index b4febd410..d075ca19a 100644 --- "a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtaksHendelseH\303\245ndterer.java" +++ "b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/kafka/VedtaksHendelseH\303\245ndterer.java" @@ -4,22 +4,18 @@ import jakarta.enterprise.context.control.ActivateRequestContext; import jakarta.inject.Inject; import jakarta.transaction.Transactional; - +import no.nav.foreldrepenger.abakus.vedtak.LagreVedtakTask; import no.nav.foreldrepenger.konfig.KonfigVerdi; - import no.nav.vedtak.felles.integrasjon.kafka.KafkaMessageHandler; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import no.nav.foreldrepenger.abakus.vedtak.LagreVedtakTask; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskDataBuilder; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped @ActivateRequestContext @Transactional -public class VedtaksHendelseHåndterer implements KafkaMessageHandler.KafkaStringMessageHandler{ +public class VedtaksHendelseHåndterer implements KafkaMessageHandler.KafkaStringMessageHandler { private static final Logger LOG = LoggerFactory.getLogger(VedtaksHendelseHåndterer.class); private ProsessTaskTjeneste taskTjeneste; @@ -30,8 +26,10 @@ public class VedtaksHendelseHåndterer implements KafkaMessageHandler.KafkaStrin } @Inject - public VedtaksHendelseHåndterer(@KonfigVerdi(value = "kafka.fattevedtak.topic", defaultVerdi = "teamforeldrepenger.familie-vedtakfattet-v1") String topicName, - ProsessTaskTjeneste taskTjeneste) { + public VedtaksHendelseHåndterer( + @KonfigVerdi(value = "kafka.fattevedtak.topic", defaultVerdi = "teamforeldrepenger.familie-vedtakfattet-v1") + String topicName, + ProsessTaskTjeneste taskTjeneste) { this.topicName = topicName; this.taskTjeneste = taskTjeneste; } @@ -39,7 +37,9 @@ public class VedtaksHendelseHåndterer implements KafkaMessageHandler.KafkaStrin @Override public void handleRecord(String key, String value) { LOG.debug("Mottatt ytelse-vedtatt hendelse med key='{}', payload={}", key, value); - var data = ProsessTaskDataBuilder.forProsessTask(LagreVedtakTask.class).medProperty(LagreVedtakTask.KEY, key).medPayload(value); + var data = ProsessTaskDataBuilder.forProsessTask(LagreVedtakTask.class) + .medProperty(LagreVedtakTask.KEY, key) + .medPayload(value); taskTjeneste.lagre(data.build()); } diff --git a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/tjeneste/YtelseRestTjeneste.java b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/tjeneste/YtelseRestTjeneste.java index 0e61fdd62..6835aca3b 100644 --- a/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/tjeneste/YtelseRestTjeneste.java +++ b/domenetjenester/vedtak/src/main/java/no/nav/foreldrepenger/abakus/vedtak/tjeneste/YtelseRestTjeneste.java @@ -1,10 +1,5 @@ package no.nav.foreldrepenger.abakus.vedtak.tjeneste; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.function.Function; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -18,6 +13,10 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.function.Function; import no.nav.abakus.vedtak.ytelse.Aktør; import no.nav.abakus.vedtak.ytelse.Ytelse; import no.nav.abakus.vedtak.ytelse.request.VedtakForPeriodeRequest; @@ -43,8 +42,7 @@ public class YtelseRestTjeneste { private VedtakYtelseRepository ytelseRepository; private AktørTjeneste aktørTjeneste; - public YtelseRestTjeneste() { - } // CDI Ctor + public YtelseRestTjeneste() {} // CDI Ctor @Inject public YtelseRestTjeneste(VedtakYtelseRepository ytelseRepository, AktørTjeneste aktørTjeneste) { @@ -52,9 +50,7 @@ public YtelseRestTjeneste(VedtakYtelseRepository ytelseRepository, AktørTjenest this.aktørTjeneste = aktørTjeneste; } - /** - * Intern bruk - kun fra fpsak så langt - */ + /** Intern bruk - kun fra fpsak så langt */ @POST @Path("/hent-vedtak-ytelse") @Consumes(MediaType.APPLICATION_JSON) @@ -62,21 +58,23 @@ public YtelseRestTjeneste(VedtakYtelseRepository ytelseRepository, AktørTjenest @Operation(description = "Henter alle vedtak for en gitt person, evt med periode etter en fom", tags = "ytelse") @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.APPLIKASJON) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public List hentVedtakYtelse(@NotNull @TilpassetAbacAttributt(supplierClass = VedtakForPeriodeRequestAbacDataSupplier.class) @Valid VedtakForPeriodeRequest request) { + public List hentVedtakYtelse( + @NotNull @TilpassetAbacAttributt(supplierClass = VedtakForPeriodeRequestAbacDataSupplier.class) @Valid + VedtakForPeriodeRequest request) { if (request.getYtelser().isEmpty()) { return List.of(); } Set aktørIder = utledAktørIdFraRequest(request.getIdent()); - var periode = IntervallEntitet.fraOgMedTilOgMed(request.getPeriode().getFom(), request.getPeriode().getTom()); + var periode = IntervallEntitet.fraOgMedTilOgMed( + request.getPeriode().getFom(), request.getPeriode().getTom()); var ytelser = new ArrayList(); for (AktørId aktørId : aktørIder) { - ytelser.addAll(ytelseRepository.hentYtelserForIPeriode(aktørId, periode) - .stream() - .filter(it -> request.getYtelser().contains(ConvertToYtelseV1.mapYtelser(it.getYtelseType()))) - .map(ConvertToYtelseV1::convert) - .toList()); + ytelser.addAll(ytelseRepository.hentYtelserForIPeriode(aktørId, periode).stream() + .filter(it -> request.getYtelser().contains(ConvertToYtelseV1.mapYtelser(it.getYtelseType()))) + .map(ConvertToYtelseV1::convert) + .toList()); } return ytelser; @@ -91,15 +89,15 @@ public List hentVedtakYtelse(@NotNull @TilpassetAbacAttributt(supplierCl public static class VedtakForPeriodeRequestAbacDataSupplier implements Function { - public VedtakForPeriodeRequestAbacDataSupplier() { - } + public VedtakForPeriodeRequestAbacDataSupplier() {} @Override public AbacDataAttributter apply(Object obj) { var req = (VedtakForPeriodeRequest) obj; - var attributeType = req.getIdent().erAktørId() ? StandardAbacAttributtType.AKTØR_ID : StandardAbacAttributtType.FNR; - return AbacDataAttributter.opprett().leggTil(attributeType, req.getIdent().getVerdi()); + var attributeType = + req.getIdent().erAktørId() ? StandardAbacAttributtType.AKTØR_ID : StandardAbacAttributtType.FNR; + return AbacDataAttributter.opprett() + .leggTil(attributeType, req.getIdent().getVerdi()); } } - } diff --git a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTaskTest.java b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTaskTest.java index 00822f3e9..5b6a1af23 100644 --- a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTaskTest.java +++ b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/LagreVedtakTaskTest.java @@ -5,16 +5,14 @@ import java.time.LocalDate; import java.util.UUID; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.foreldrepenger.abakus.dbstoette.JpaExtension; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository; import no.nav.foreldrepenger.abakus.vedtak.extract.v1.ExtractFromYtelseV1; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskDataBuilder; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class LagreVedtakTaskTest { @@ -27,7 +25,8 @@ class LagreVedtakTaskTest { @Test void skal_feile_ved_valideringsfeil() { - String payload = """ + String payload = + """ { "version": "1.0", "aktør": { @@ -83,17 +82,17 @@ void skal_feile_ved_valideringsfeil() { """; ProsessTaskData data = ProsessTaskDataBuilder.forProsessTask(LagreVedtakTask.class) - .medPayload(payload) - .medProperty(LagreVedtakTask.KEY, UUID.randomUUID().toString()) - .build(); + .medPayload(payload) + .medProperty(LagreVedtakTask.KEY, UUID.randomUUID().toString()) + .build(); assertThrows(IllegalArgumentException.class, () -> task.doTask(data)); } - @Test void skal_ikke_feile_uten_valideringsfeil() { - String payload = """ + String payload = + """ { "version" : "1.0", "aktør" : { @@ -208,19 +207,26 @@ void skal_ikke_feile_uten_valideringsfeil() { """; ProsessTaskData data = ProsessTaskDataBuilder.forProsessTask(LagreVedtakTask.class) - .medPayload(payload) - .medProperty(LagreVedtakTask.KEY, UUID.randomUUID().toString()) - .build(); + .medPayload(payload) + .medProperty(LagreVedtakTask.KEY, UUID.randomUUID().toString()) + .build(); task.doTask(data); extension.getEntityManager().flush(); - var vedtakYtelser = repository.hentYtelserForIPeriode(new AktørId("1293528970663"), LocalDate.of(2021, 11, 1), LocalDate.of(2021, 11, 19)); + var vedtakYtelser = repository.hentYtelserForIPeriode( + new AktørId("1293528970663"), LocalDate.of(2021, 11, 1), LocalDate.of(2021, 11, 19)); assertThat(vedtakYtelser.size()).isEqualTo(1); assertThat(vedtakYtelser.get(0).getYtelseAnvist().size()).isEqualTo(3); - assertThat(vedtakYtelser.get(0).getYtelseAnvist().iterator().next().getAndeler().size()).isEqualTo(1); - + assertThat(vedtakYtelser + .get(0) + .getYtelseAnvist() + .iterator() + .next() + .getAndeler() + .size()) + .isEqualTo(1); } } diff --git a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepositoryTest.java b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepositoryTest.java index a5ccd9b27..3d2a3eb9d 100644 --- a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepositoryTest.java +++ b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/domene/VedtakYtelseRepositoryTest.java @@ -5,10 +5,6 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.UUID; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -16,6 +12,8 @@ import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; import no.nav.foreldrepenger.abakus.typer.AktørId; import no.nav.foreldrepenger.abakus.typer.Saksnummer; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class VedtakYtelseRepositoryTest { @@ -28,25 +26,33 @@ class VedtakYtelseRepositoryTest { void skal_håndtere_lagring_rett() { final var aktørId = new AktørId("1231231231234"); final var saksnummer = new Saksnummer("1234"); - final var builder = repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); + final var builder = + repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); builder.medPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(1), LocalDate.now())) - .medStatus(YtelseStatus.LØPENDE) - .medVedtakReferanse(UUID.randomUUID()) - .medVedtattTidspunkt(LocalDateTime.now()); + .medStatus(YtelseStatus.LØPENDE) + .medVedtakReferanse(UUID.randomUUID()) + .medVedtattTidspunkt(LocalDateTime.now()); repository.lagre(builder); - final var vedtattYtelser = repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); + final var vedtattYtelser = + repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); assertThat(vedtattYtelser).hasSize(1); - final var nyBuilder = repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); - final var intervallEntitet = IntervallEntitet.fraOgMedTilOgMed(LocalDate.now(), LocalDate.now().plusMonths(3)); - nyBuilder.medVedtakReferanse(UUID.randomUUID()).medVedtattTidspunkt(LocalDateTime.now()).medPeriode(intervallEntitet); + final var nyBuilder = + repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); + final var intervallEntitet = IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now(), LocalDate.now().plusMonths(3)); + nyBuilder + .medVedtakReferanse(UUID.randomUUID()) + .medVedtattTidspunkt(LocalDateTime.now()) + .medPeriode(intervallEntitet); repository.lagre(nyBuilder); - final var oppdatertVedtattYtelser = repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); + final var oppdatertVedtattYtelser = + repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); assertThat(oppdatertVedtattYtelser).hasSize(1); final var vedtattYtelse = oppdatertVedtattYtelser.get(0); @@ -57,28 +63,34 @@ class VedtakYtelseRepositoryTest { void skal_forkaste_vedtak_som_er_eldre() { final var aktørId = new AktørId("1231231231234"); final var saksnummer = new Saksnummer("1234"); - final var builder = repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); + final var builder = + repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); builder.medPeriode(IntervallEntitet.fraOgMedTilOgMed(LocalDate.now().minusYears(1), LocalDate.now())) - .medStatus(YtelseStatus.LØPENDE) - .medVedtakReferanse(UUID.randomUUID()) - .medVedtattTidspunkt(LocalDateTime.now()); + .medStatus(YtelseStatus.LØPENDE) + .medVedtakReferanse(UUID.randomUUID()) + .medVedtattTidspunkt(LocalDateTime.now()); repository.lagre(builder); - final var vedtattYtelser = repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); + final var vedtattYtelser = + repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); assertThat(vedtattYtelser).hasSize(1); - final var nyBuilder = repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); - final var intervallEntitet = IntervallEntitet.fraOgMedTilOgMed(LocalDate.now(), LocalDate.now().plusMonths(3)); - nyBuilder.medVedtakReferanse(UUID.randomUUID()) - .medVedtattTidspunkt(LocalDateTime.now().minusMinutes(10)) - .medStatus(YtelseStatus.LØPENDE) - .medPeriode(intervallEntitet); + final var nyBuilder = + repository.opprettBuilderFor(aktørId, saksnummer, Fagsystem.FPSAK, YtelseType.FORELDREPENGER); + final var intervallEntitet = IntervallEntitet.fraOgMedTilOgMed( + LocalDate.now(), LocalDate.now().plusMonths(3)); + nyBuilder + .medVedtakReferanse(UUID.randomUUID()) + .medVedtattTidspunkt(LocalDateTime.now().minusMinutes(10)) + .medStatus(YtelseStatus.LØPENDE) + .medPeriode(intervallEntitet); repository.lagre(nyBuilder); - final var oppdatertVedtattYtelser = repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); + final var oppdatertVedtattYtelser = + repository.hentYtelserForIPeriode(aktørId, LocalDate.now().minusDays(30), LocalDate.now()); assertThat(oppdatertVedtattYtelser).hasSize(1); assertThat(oppdatertVedtattYtelser).hasSameElementsAs(vedtattYtelser); diff --git a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1Test.java b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1Test.java index 66fc0d0e4..342449946 100644 --- a/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1Test.java +++ b/domenetjenester/vedtak/src/test/java/no/nav/foreldrepenger/abakus/vedtak/extract/v1/ExtractFromYtelseV1Test.java @@ -6,10 +6,6 @@ import java.time.LocalDateTime; import java.util.List; import java.util.UUID; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @@ -26,6 +22,8 @@ import no.nav.foreldrepenger.abakus.dbstoette.JpaExtension; import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseBuilder; import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; class ExtractFromYtelseV1Test { @@ -56,7 +54,8 @@ void skal_lagre_informasjon() { Anvisning anvisning = new Anvisning(); anvisning.setPeriode(periode); - anvisning.setAndeler(List.of(new AnvistAndel(new ArbeidsgiverIdent("999999999"), 1236, 100, 100, Inntektklasse.ARBEIDSTAKER, "ehuif2897"))); + anvisning.setAndeler(List.of(new AnvistAndel( + new ArbeidsgiverIdent("999999999"), 1236, 100, 100, Inntektklasse.ARBEIDSTAKER, "ehuif2897"))); ytelseV1.setAnvist(List.of(anvisning)); VedtakYtelseBuilder builder = extractor.extractFrom(ytelseV1); @@ -96,7 +95,8 @@ void skal_lagre_informasjon_plain_enum() { Anvisning anvisning = new Anvisning(); anvisning.setPeriode(periode); - anvisning.setAndeler(List.of(new AnvistAndel(new ArbeidsgiverIdent("999999999"), 1236, 100, 100, Inntektklasse.ARBEIDSTAKER, "ehuif2897"))); + anvisning.setAndeler(List.of(new AnvistAndel( + new ArbeidsgiverIdent("999999999"), 1236, 100, 100, Inntektklasse.ARBEIDSTAKER, "ehuif2897"))); ytelseV1.setAnvist(List.of(anvisning)); VedtakYtelseBuilder builder = extractor.extractFrom(ytelseV1); diff --git a/felles/pom.xml b/felles/pom.xml index 67e28bd23..b78794989 100644 --- a/felles/pom.xml +++ b/felles/pom.xml @@ -1,7 +1,5 @@ - + 4.0.0 @@ -28,8 +26,8 @@ felles-log - no.nav.foreldrepenger.abakus - abakus-kontrakt + no.nav.foreldrepenger.abakus + abakus-kontrakt no.nav.vedtak.prosesstask diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/LoggUtil.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/LoggUtil.java index 0ae70e46f..20734edc2 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/LoggUtil.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/LoggUtil.java @@ -1,7 +1,6 @@ package no.nav.foreldrepenger.abakus.felles; import java.util.UUID; - import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.vedtak.log.mdc.MdcExtendedLogContext; diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ChangeTracked.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ChangeTracked.java index 67544d482..e738a6db3 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ChangeTracked.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ChangeTracked.java @@ -8,11 +8,10 @@ /** * Markerer at et felt i en entitet skal sjekkes for endringer når registerdata blir hentet inn på nytt (PK-41326). - *

    - * Default vil annotasjonen gjelde både Engangsstønad og Foreldrepenger, - * men det er mulig å overstyre dette når den bare skal gjelde for én av dem. + * + *

    Default vil annotasjonen gjelde både Engangsstønad og Foreldrepenger, men det er mulig å overstyre dette når den + * bare skal gjelde for én av dem. */ @Target(FIELD) @Retention(RUNTIME) -public @interface ChangeTracked { -} +public @interface ChangeTracked {} diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffEntity.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffEntity.java index c49322825..4a72b8fc7 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffEntity.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffEntity.java @@ -1,7 +1,5 @@ package no.nav.foreldrepenger.abakus.felles.diff; -import no.nav.foreldrepenger.abakus.felles.diff.TraverseGraph.TraverseResult; - public class DiffEntity { private TraverseGraph traverser; @@ -24,5 +22,4 @@ public DiffResult diff(V entity1, V entity2) { public boolean areDifferent(V entity1, V entity2) { return !diff(entity1, entity2).getLeafDifferences().isEmpty(); } - } diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffIgnore.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffIgnore.java index e389a93f5..9a7662f3c 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffIgnore.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffIgnore.java @@ -6,11 +6,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; -/** - * Ignorer alltid et felt for forskjeller ved traversing av entity graph. (se TraverseEntityGraph). - */ +/** Ignorer alltid et felt for forskjeller ved traversing av entity graph. (se TraverseEntityGraph). */ @Target(FIELD) @Retention(RUNTIME) -public @interface DiffIgnore { - -} +public @interface DiffIgnore {} diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffResult.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffResult.java index d2729b0d9..7bea74c27 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffResult.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/DiffResult.java @@ -8,17 +8,14 @@ import java.util.Objects; import java.util.Set; import java.util.TreeMap; - import no.nav.foreldrepenger.abakus.felles.diff.TraverseGraph.TraverseResult; -/** - * Henter ut resultat fra å diffe to entitet objekter. - * Det forventes at begge objektene har samme rot. - */ +/** Henter ut resultat fra å diffe to entitet objekter. Det forventes at begge objektene har samme rot. */ public class DiffResult { private TraverseResult result1; private TraverseResult result2; + @SuppressWarnings("unused") private TraverseGraph traverser; @@ -76,12 +73,12 @@ private boolean areEqualListsOutOfOrder(Node key, List lhsList, List rhsList) { if (lhsSet.size() != lhsList.size()) { throw new IllegalArgumentException( - "Bad Equals eller duplikater i List. lhsList har forskjellig størrelse fra lhsSet. Key=\"" + key - + "\"\n,\"lhsList\"=" + lhsList + "\n,\"rhsList\"=" + rhsList); + "Bad Equals eller duplikater i List. lhsList har forskjellig størrelse fra lhsSet. Key=\"" + key + + "\"\n,\"lhsList\"=" + lhsList + "\n,\"rhsList\"=" + rhsList); } else if (rhsSet.size() != rhsList.size()) { throw new IllegalArgumentException( - "Bad Equals eller duplikater i List. rhsList har forskjellig størrelse fra rhsSet. Key=\"" + key - + "\"\n,\"lhsList\"=" + lhsList + "\n,\"rhsList\"=" + rhsList); + "Bad Equals eller duplikater i List. rhsList har forskjellig størrelse fra rhsSet. Key=\"" + key + + "\"\n,\"lhsList\"=" + lhsList + "\n,\"rhsList\"=" + rhsList); } return Objects.equals(lhsSet, rhsSet); diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/IndexKeyComposer.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/IndexKeyComposer.java index f842aa1dd..c00547ef4 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/IndexKeyComposer.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/IndexKeyComposer.java @@ -3,13 +3,12 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; - import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet; /** - * Hjelpemetoder for å raskere sette sammen en IndexKey fra flere deler. - * Må være String, CharSequence, Number eller implementere IndexKey for hver key part. + * Hjelpemetoder for å raskere sette sammen en IndexKey fra flere deler. Må være String, CharSequence, Number eller + * implementere IndexKey for hver key part. */ public final class IndexKeyComposer { @@ -17,9 +16,7 @@ private IndexKeyComposer() { // hidden } - /** - * Hjelpe metode for å effektivt generere keys. - */ + /** Hjelpe metode for å effektivt generere keys. */ public static String createKey(Object... keyParts) { StringBuilder sb = new StringBuilder(keyParts.length * 10); int max = keyParts.length; @@ -31,7 +28,6 @@ public static String createKey(Object... keyParts) { } } return sb.toString(); - } private static String toString(Object obj, int i) { @@ -47,8 +43,8 @@ private static String toString(Object obj, int i) { return ((IndexKey) obj).getIndexKey(); } else if (IntervallEntitet.class.isAssignableFrom(objClass)) { IntervallEntitet periode = (IntervallEntitet) obj; - return "[" + periode.getFomDato().format(DateTimeFormatter.ISO_DATE) + - "," + periode.getTomDato().format(DateTimeFormatter.ISO_DATE) + "]"; + return "[" + periode.getFomDato().format(DateTimeFormatter.ISO_DATE) + "," + + periode.getTomDato().format(DateTimeFormatter.ISO_DATE) + "]"; } else if (LocalDate.class.isAssignableFrom(objClass)) { LocalDate dt = (LocalDate) obj; return dt.format(DateTimeFormatter.ISO_DATE); @@ -56,7 +52,8 @@ private static String toString(Object obj, int i) { LocalDateTime ldt = (LocalDateTime) obj; return ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); } else { - throw new IllegalArgumentException("Støtter ikke å lage IndexKey for " + objClass.getName() + "[index=" + i + "], " + obj); + throw new IllegalArgumentException( + "Støtter ikke å lage IndexKey for " + objClass.getName() + "[index=" + i + "], " + obj); } } } diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ListPositionEquality.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ListPositionEquality.java index cdf8514d3..15bcc22fb 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ListPositionEquality.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/ListPositionEquality.java @@ -10,7 +10,9 @@ class ListPositionEquality { int getKey(Node node, Object o) { AtomicInteger counter = equalsNodeCounter.computeIfAbsent(node, n -> new AtomicInteger()); - return equalsMap.computeIfAbsent(o, v -> new NodeWrap(node, counter.getAndIncrement())).getPos(); + return equalsMap + .computeIfAbsent(o, v -> new NodeWrap(node, counter.getAndIncrement())) + .getPos(); } static class NodeWrap { diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Node.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Node.java index 371fb1792..b707ea501 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Node.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Node.java @@ -3,8 +3,8 @@ import java.util.Objects; /** - * Representere tre-struktur vha. Lenket liste, der hver node peker tilbake mot rot av treet. Svært effektivt for - * bygge unike stier uten å bruke mye minne eller tid. + * Representere tre-struktur vha. Lenket liste, der hver node peker tilbake mot rot av treet. Svært effektivt for bygge + * unike stier uten å bruke mye minne eller tid. */ public class Node implements Comparable { Node parent; diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Pair.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Pair.java index 644c520cb..a29d51fe5 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Pair.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/Pair.java @@ -1,4 +1,3 @@ package no.nav.foreldrepenger.abakus.felles.diff; -public record Pair(Object element1, Object element2) { -} +public record Pair(Object element1, Object element2) {} diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraph.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraph.java index 194c4f2c3..7f0c88099 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraph.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraph.java @@ -1,5 +1,8 @@ package no.nav.foreldrepenger.abakus.felles.diff; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Version; import java.lang.reflect.Field; import java.util.Collection; import java.util.Collections; @@ -8,22 +11,16 @@ import java.util.Map; import java.util.Objects; import java.util.Set; - -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.Id; -import jakarta.persistence.Version; - +import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; import org.hibernate.Hibernate; import org.hibernate.proxy.HibernateProxy; -import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey; - /** * Denne klassen kan traverse en Entity graph og trekk ut verdier som key/value. - *

    - * Genererte verdier, {@link Id}, {@link Version}, {@link GeneratedValue} vil ignoreres. - *

    - * Bør opprette ny instans for hver gang det brukes til sammenligning. + * + *

    Genererte verdier, {@link Id}, {@link Version}, {@link GeneratedValue} vil ignoreres. + * + *

    Bør opprette ny instans for hver gang det brukes til sammenligning. */ public class TraverseGraph { @@ -80,7 +77,6 @@ private void traverseRecursiveInternal(Object obj, Node currentPath, TraverseRes // hånter alt annet (vanlige felter) doTraverseRecursiveInternal(currentPath, result, obj); } - } private void doTraverseRecursiveInternal(Node currentPath, TraverseResult result, Object obj) { diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraphConfig.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraphConfig.java index 6d0737d96..9d899287c 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraphConfig.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseGraphConfig.java @@ -21,14 +21,11 @@ import java.util.Set; import java.util.UUID; import java.util.function.Function; - import javassist.Modifier; public class TraverseGraphConfig { - /** - * Return alltid true, dvs. vil aldri filtrere bort noe. - */ + /** Return alltid true, dvs. vil aldri filtrere bort noe. */ public static final Function NO_FILTER = new Function() { @Override public Boolean apply(Object t) { @@ -36,31 +33,52 @@ public Boolean apply(Object t) { } }; - /** - * Final klasser som ikke trenger videre forklaring. For raskest oppslag. - */ - private static final Set> LEAVES_FINAL = Set.of(String.class, Character.class, Character.TYPE, // - Long.class, Double.class, Integer.class, Short.class, Byte.class, Boolean.class, // - Long.TYPE, Double.TYPE, Integer.TYPE, Short.TYPE, Byte.TYPE, Boolean.TYPE, // - BigInteger.class, BigDecimal.class, // - LocalDate.class, LocalDateTime.class, OffsetDateTime.class, ZonedDateTime.class, Instant.class, UUID.class, URI.class, URL.class // - ); - - /** - * Rot klasser som ikke skal inspiseres i et hierarki. - */ + /** Final klasser som ikke trenger videre forklaring. For raskest oppslag. */ + private static final Set> LEAVES_FINAL = Set.of( + String.class, + Character.class, + Character.TYPE, // + Long.class, + Double.class, + Integer.class, + Short.class, + Byte.class, + Boolean.class, // + Long.TYPE, + Double.TYPE, + Integer.TYPE, + Short.TYPE, + Byte.TYPE, + Boolean.TYPE, // + BigInteger.class, + BigDecimal.class, // + LocalDate.class, + LocalDateTime.class, + OffsetDateTime.class, + ZonedDateTime.class, + Instant.class, + UUID.class, + URI.class, + URL.class // + ); + + /** Rot klasser som ikke skal inspiseres i et hierarki. */ private static final Set> ROOTS_CLASSES = Set.of(Object.class); /** * Ikke final - men Interfacer/Abstract klasser som fanger store grupper av LEAF objekter (eks. Temporal -- * LocalDate, Number -- Long, osv). */ - private static final Set> LEAVES_EXTENDABLE = Set.of(Number.class, Enum.class, TemporalAccessor.class, TemporalAmount.class, - TemporalField.class, TraverseValue.class); - /** - * Filter - returnerer false dersom objekt ikke skal sammmenlignes. Default sammenligner alt. - */ + private static final Set> LEAVES_EXTENDABLE = Set.of( + Number.class, + Enum.class, + TemporalAccessor.class, + TemporalAmount.class, + TemporalField.class, + TraverseValue.class); + /** Filter - returnerer false dersom objekt ikke skal sammmenlignes. Default sammenligner alt. */ Function inclusionFilter = NO_FILTER; + private Set> leafFinalClasses = LEAVES_FINAL; private Set> leafExtendableClasses = LEAVES_EXTENDABLE; private Set> rootClasses = ROOTS_CLASSES; @@ -81,7 +99,8 @@ public void addRootClasses(Class... moreRootClasses) { } public boolean isTraverseField(final Field field) { - return (isOnlyCheckTrackedFields() && isChangeTrackedField(field)) || (!isOnlyCheckTrackedFields() && isMappedField(field)); + return (isOnlyCheckTrackedFields() && isChangeTrackedField(field)) + || (!isOnlyCheckTrackedFields() && isMappedField(field)); } public boolean isLeaf(Object obj) { @@ -115,7 +134,6 @@ public final void addLeafClasses(Class... leafClasses) { this.leafFinalClasses = new HashSet<>(this.leafFinalClasses); this.leafFinalClasses.addAll(newLeafClasses); - } public void setInclusionFilter(Function inclusionFilter) { @@ -142,5 +160,4 @@ public void setOnlyCheckTrackedFields(boolean onlyCheckTrackedFields) { public void valider(Node currentPath, Class targetClass) { // template method, ingen sjekk her } - } diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseJpaEntityGraphConfig.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseJpaEntityGraphConfig.java index 25fa4b7cb..049633ef6 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseJpaEntityGraphConfig.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseJpaEntityGraphConfig.java @@ -1,7 +1,5 @@ package no.nav.foreldrepenger.abakus.felles.diff; -import java.lang.reflect.Field; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.Embedded; @@ -15,11 +13,10 @@ import jakarta.persistence.OneToOne; import jakarta.persistence.Transient; import jakarta.persistence.Version; +import java.lang.reflect.Field; import javassist.Modifier; -/** - * Konfig for å scanne JPA klasser. - */ +/** Konfig for å scanne JPA klasser. */ public class TraverseJpaEntityGraphConfig extends TraverseGraphConfig { @Override @@ -29,20 +26,30 @@ public boolean isMappedField(Field fld) { protected boolean isExpectedField(Field fld) { int mods = fld.getModifiers(); - if (Modifier.isFinal(mods) || Modifier.isStatic(mods) || Modifier.isTransient(mods) || Modifier.isVolatile(mods)) { + if (Modifier.isFinal(mods) + || Modifier.isStatic(mods) + || Modifier.isTransient(mods) + || Modifier.isVolatile(mods)) { // her kan final felter skippes, da disse må være i løvnøder return false; } // følger bare standard, mappede felter i Entity grafen - return fld.isAnnotationPresent(Column.class) || fld.isAnnotationPresent(JoinColumn.class) || fld.isAnnotationPresent(OneToOne.class) - || fld.isAnnotationPresent(ManyToOne.class) || fld.isAnnotationPresent(OneToMany.class) || fld.isAnnotationPresent(ManyToMany.class) - || fld.isAnnotationPresent(Embedded.class); + return fld.isAnnotationPresent(Column.class) + || fld.isAnnotationPresent(JoinColumn.class) + || fld.isAnnotationPresent(OneToOne.class) + || fld.isAnnotationPresent(ManyToOne.class) + || fld.isAnnotationPresent(OneToMany.class) + || fld.isAnnotationPresent(ManyToMany.class) + || fld.isAnnotationPresent(Embedded.class); } protected boolean isSkippedFields(Field fld) { - return fld.isAnnotationPresent(DiffIgnore.class) || (fld.isAnnotationPresent(Id.class) && fld.isAnnotationPresent(GeneratedValue.class)) - || fld.isAnnotationPresent(Version.class) || fld.isAnnotationPresent(GeneratedValue.class) || fld.isAnnotationPresent(Transient.class); + return fld.isAnnotationPresent(DiffIgnore.class) + || (fld.isAnnotationPresent(Id.class) && fld.isAnnotationPresent(GeneratedValue.class)) + || fld.isAnnotationPresent(Version.class) + || fld.isAnnotationPresent(GeneratedValue.class) + || fld.isAnnotationPresent(Transient.class); } @Override @@ -51,9 +58,8 @@ public void valider(Node currentPath, Class targetClass) { boolean ok = targetClass.isAnnotationPresent(Entity.class) || targetClass.isAnnotationPresent(Embeddable.class); if (!ok) { - throw new IllegalArgumentException("target [" + targetClass + "] er ikke en Entity eller Embeddable (mangler annotation):" + currentPath); + throw new IllegalArgumentException("target [" + targetClass + + "] er ikke en Entity eller Embeddable (mangler annotation):" + currentPath); } - } - } diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseValue.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseValue.java index aa269ad63..244fb038b 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseValue.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/diff/TraverseValue.java @@ -1,8 +1,4 @@ package no.nav.foreldrepenger.abakus.felles.diff; - -/** - * Marker-interface som markerer løvklasser for equals()-sammenligning i {@link TraverseGraph} - */ -public interface TraverseValue { -} +/** Marker-interface som markerer løvklasser for equals()-sammenligning i {@link TraverseGraph} */ +public interface TraverseValue {} diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/AbstractIntervall.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/AbstractIntervall.java index ce752590d..e9e5b26ba 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/AbstractIntervall.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/AbstractIntervall.java @@ -4,7 +4,6 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Objects; - import no.nav.vedtak.konfig.Tid; public abstract class AbstractIntervall implements Comparable, Serializable { @@ -33,7 +32,9 @@ private boolean erEtterEllerLikPeriodestart(LocalDate dato) { } private boolean erFørEllerLikPeriodeslutt(LocalDate dato) { - return getTomDato() == null || getTomDato().isAfter(dato) || getTomDato().isEqual(dato); + return getTomDato() == null + || getTomDato().isAfter(dato) + || getTomDato().isEqual(dato); } @Override @@ -59,6 +60,7 @@ public int hashCode() { @Override public String toString() { - return String.format("Periode[%s,%s]", getFomDato().format(FORMATTER), getTomDato().format(FORMATTER)); + return String.format( + "Periode[%s,%s]", getFomDato().format(FORMATTER), getTomDato().format(FORMATTER)); } } diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/BaseEntitet.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/BaseEntitet.java index 344522a62..4d82d1cc9 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/BaseEntitet.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/BaseEntitet.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.felles.jpa; -import java.io.Serializable; -import java.time.LocalDateTime; -import java.util.Optional; - import jakarta.persistence.Column; import jakarta.persistence.MappedSuperclass; import jakarta.persistence.PrePersist; import jakarta.persistence.PreUpdate; - +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Optional; import no.nav.foreldrepenger.abakus.felles.diff.DiffIgnore; import no.nav.vedtak.sikkerhet.kontekst.Kontekst; import no.nav.vedtak.sikkerhet.kontekst.KontekstHolder; @@ -39,8 +37,9 @@ public class BaseEntitet implements Serializable { private LocalDateTime endretTidspunkt; private static String finnBrukernavn() { - return Optional.ofNullable(KontekstHolder.getKontekst()).map(Kontekst::getKompaktUid) - .orElse(BRUKERNAVN_NÅR_SIKKERHETSKONTEKST_IKKE_FINNES); + return Optional.ofNullable(KontekstHolder.getKontekst()) + .map(Kontekst::getKompaktUid) + .orElse(BRUKERNAVN_NÅR_SIKKERHETSKONTEKST_IKKE_FINNES); } @PrePersist @@ -64,8 +63,8 @@ public LocalDateTime getOpprettetTidspunkt() { } /** - * Kan brukes til å eksplisitt sette opprettet tidspunkt, f.eks. ved migrering av data fra et annet system. Ivaretar da opprinnelig - * tidspunkt istdf å sette likt now(). + * Kan brukes til å eksplisitt sette opprettet tidspunkt, f.eks. ved migrering av data fra et annet system. Ivaretar + * da opprinnelig tidspunkt istdf å sette likt now(). */ protected void setOpprettetTidspunkt(LocalDateTime opprettetTidspunkt) { this.opprettetTidspunkt = opprettetTidspunkt; diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/IntervallEntitet.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/IntervallEntitet.java index 551e58fa4..959cd2a5b 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/IntervallEntitet.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/jpa/IntervallEntitet.java @@ -1,25 +1,21 @@ package no.nav.foreldrepenger.abakus.felles.jpa; -import java.time.LocalDate; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - +import java.time.LocalDate; import no.nav.abakus.iaygrunnlag.Periode; @Embeddable public class IntervallEntitet extends AbstractIntervall { - @Column(name = "fom") private LocalDate fomDato; @Column(name = "tom") private LocalDate tomDato; - public IntervallEntitet() { - //hibernate + // hibernate } private IntervallEntitet(LocalDate fomDato, LocalDate tomDato) { diff --git a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/sikkerhet/PdpRequestBuilderImpl.java b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/sikkerhet/PdpRequestBuilderImpl.java index ae395c30a..48bf3980b 100644 --- a/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/sikkerhet/PdpRequestBuilderImpl.java +++ b/felles/src/main/java/no/nav/foreldrepenger/abakus/felles/sikkerhet/PdpRequestBuilderImpl.java @@ -1,5 +1,8 @@ package no.nav.foreldrepenger.abakus.felles.sikkerhet; +import static no.nav.vedtak.sikkerhet.abac.pdp.ForeldrepengerDataKeys.BEHANDLING_STATUS; +import static no.nav.vedtak.sikkerhet.abac.pdp.ForeldrepengerDataKeys.FAGSAK_STATUS; + import jakarta.enterprise.context.ApplicationScoped; import no.nav.vedtak.sikkerhet.abac.AbacDataAttributter; import no.nav.vedtak.sikkerhet.abac.PdpRequestBuilder; @@ -8,23 +11,18 @@ import no.nav.vedtak.sikkerhet.abac.pipdata.PipBehandlingStatus; import no.nav.vedtak.sikkerhet.abac.pipdata.PipFagsakStatus; -import static no.nav.vedtak.sikkerhet.abac.pdp.ForeldrepengerDataKeys.BEHANDLING_STATUS; -import static no.nav.vedtak.sikkerhet.abac.pdp.ForeldrepengerDataKeys.FAGSAK_STATUS; - -/** - * Implementasjon av PDP request for denne applikasjonen. - */ +/** Implementasjon av PDP request for denne applikasjonen. */ @ApplicationScoped public class PdpRequestBuilderImpl implements PdpRequestBuilder { @Override public AppRessursData lagAppRessursData(AbacDataAttributter dataAttributter) { return AppRessursData.builder() - .leggTilAktørIdSet(dataAttributter.getVerdier(StandardAbacAttributtType.AKTØR_ID)) - .leggTilFødselsnumre(dataAttributter.getVerdier(StandardAbacAttributtType.FNR)) - // TODO: Hente fra pip-tjenesten? arv fra tidligere... men nå er 2 pips aktuelle .... - .leggTilRessurs(FAGSAK_STATUS, PipFagsakStatus.UNDER_BEHANDLING) - .leggTilRessurs(BEHANDLING_STATUS, PipBehandlingStatus.UTREDES) - .build(); + .leggTilAktørIdSet(dataAttributter.getVerdier(StandardAbacAttributtType.AKTØR_ID)) + .leggTilFødselsnumre(dataAttributter.getVerdier(StandardAbacAttributtType.FNR)) + // TODO: Hente fra pip-tjenesten? arv fra tidligere... men nå er 2 pips aktuelle .... + .leggTilRessurs(FAGSAK_STATUS, PipFagsakStatus.UNDER_BEHANDLING) + .leggTilRessurs(BEHANDLING_STATUS, PipBehandlingStatus.UTREDES) + .build(); } } diff --git a/kodeverk/pom.xml b/kodeverk/pom.xml index 536b6efaa..8135e286e 100644 --- a/kodeverk/pom.xml +++ b/kodeverk/pom.xml @@ -1,7 +1,5 @@ - + 4.0.0 no.nav.foreldrepenger.abakus diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidType.java index ad45fef51..03ac68483 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidType.java @@ -1,44 +1,59 @@ package no.nav.abakus.iaygrunnlag.kodeverk; /** * Typer av arbeidsforhold. + * *

    + * *

    Kilde: NAV kodeverk

    + * * https://modapp.adeo.no/kodeverksklient/viskodeverk/Arbeidsforholdstyper/2 + * *

    + * *

    Tjeneste(r) som returnerer dette:

    + * *
      - *
    • https://confluence.adeo.no/display/SDFS/tjeneste_v3%3Avirksomhet%3AArbeidsforhold_v3
    • + *
    • https://confluence.adeo.no/display/SDFS/tjeneste_v3%3Avirksomhet%3AArbeidsforhold_v3 *
    + * *

    Tjeneste(r) som konsumerer dete:

    + * *
      - *
    • + *
    • *
    */ - +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; import java.util.Set; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum ArbeidType implements Kodeverdi { - ETTERLØNN_SLUTTPAKKE("ETTERLØNN_SLUTTPAKKE", "Etterlønn eller sluttpakke", null, true), - FORENKLET_OPPGJØRSORDNING("FORENKLET_OPPGJØRSORDNING", "Forenklet oppgjørsordning ", "forenkletOppgjoersordning", false), + FORENKLET_OPPGJØRSORDNING( + "FORENKLET_OPPGJØRSORDNING", "Forenklet oppgjørsordning ", "forenkletOppgjoersordning", false), FRILANSER("FRILANSER", "Frilanser, samlet aktivitet", null, true), - FRILANSER_OPPDRAGSTAKER_MED_MER("FRILANSER_OPPDRAGSTAKER", "Frilansere/oppdragstakere, med mer", "frilanserOppdragstakerHonorarPersonerMm", - false), + FRILANSER_OPPDRAGSTAKER_MED_MER( + "FRILANSER_OPPDRAGSTAKER", + "Frilansere/oppdragstakere, med mer", + "frilanserOppdragstakerHonorarPersonerMm", + false), LØNN_UNDER_UTDANNING("LØNN_UNDER_UTDANNING", "Lønn under utdanning", null, true), MARITIMT_ARBEIDSFORHOLD("MARITIMT_ARBEIDSFORHOLD", "Maritimt arbeidsforhold", "maritimtArbeidsforhold", false), MILITÆR_ELLER_SIVILTJENESTE("MILITÆR_ELLER_SIVILTJENESTE", "Militær eller siviltjeneste", null, true), ORDINÆRT_ARBEIDSFORHOLD("ORDINÆRT_ARBEIDSFORHOLD", "Ordinært arbeidsforhold", "ordinaertArbeidsforhold", false), - PENSJON_OG_ANDRE_TYPER_YTELSER_UTEN_ANSETTELSESFORHOLD("PENSJON_OG_ANDRE_TYPER_YTELSER_UTEN_ANSETTELSESFORHOLD", - "Pensjoner og andre typer ytelser", "pensjonOgAndreTyperYtelserUtenAnsettelsesforhold", false), + PENSJON_OG_ANDRE_TYPER_YTELSER_UTEN_ANSETTELSESFORHOLD( + "PENSJON_OG_ANDRE_TYPER_YTELSER_UTEN_ANSETTELSESFORHOLD", + "Pensjoner og andre typer ytelser", + "pensjonOgAndreTyperYtelserUtenAnsettelsesforhold", + false), SELVSTENDIG_NÆRINGSDRIVENDE("NÆRING", "Selvstendig næringsdrivende", null, false), UTENLANDSK_ARBEIDSFORHOLD("UTENLANDSK_ARBEIDSFORHOLD", "Arbeid i utlandet", null, true), VENTELØNN_VARTPENGER("VENTELØNN_VARTPENGER", "Ventelønn eller vartpenger", null, true), @@ -46,10 +61,15 @@ public enum ArbeidType implements Kodeverdi { UDEFINERT("-", "Ikke definert", null, false), ; - private static final Set AA_REGISTER_TYPER = Set.of(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD, ArbeidType.MARITIMT_ARBEIDSFORHOLD, - ArbeidType.FORENKLET_OPPGJØRSORDNING, ArbeidType.FRILANSER_OPPDRAGSTAKER_MED_MER); - private static final Set AA_REGISTER_ARBEID_TYPER = Set.of(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD, ArbeidType.MARITIMT_ARBEIDSFORHOLD, - ArbeidType.FORENKLET_OPPGJØRSORDNING); + private static final Set AA_REGISTER_TYPER = Set.of( + ArbeidType.ORDINÆRT_ARBEIDSFORHOLD, + ArbeidType.MARITIMT_ARBEIDSFORHOLD, + ArbeidType.FORENKLET_OPPGJØRSORDNING, + ArbeidType.FRILANSER_OPPDRAGSTAKER_MED_MER); + private static final Set AA_REGISTER_ARBEID_TYPER = Set.of( + ArbeidType.ORDINÆRT_ARBEIDSFORHOLD, + ArbeidType.MARITIMT_ARBEIDSFORHOLD, + ArbeidType.FORENKLET_OPPGJØRSORDNING); private static final Map KODER = new LinkedHashMap<>(); private static final Map OFFISIELLE_KODER = new LinkedHashMap<>(); @@ -88,7 +108,8 @@ public static ArbeidType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent ArbeidType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent ArbeidType: " + kode)); } public static Map kodeMap() { @@ -120,5 +141,4 @@ public String getNavn() { public String getOffisiellKode() { return offisiellKode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidsforholdHandlingType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidsforholdHandlingType.java index d875e478f..e72d2415a 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidsforholdHandlingType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/ArbeidsforholdHandlingType.java @@ -1,38 +1,47 @@ package no.nav.abakus.iaygrunnlag.kodeverk; /** + * + * *

    Internt kodeverk

    + * * Definerer typer av handlinger en saksbehandler kan gjøre vedrørende et arbeidsforhold + * *

    */ - +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum ArbeidsforholdHandlingType implements Kodeverdi { - UDEFINERT("-", "Udefinert", false), BRUK("BRUK", "Bruk", false), NYTT_ARBEIDSFORHOLD("NYTT_ARBEIDSFORHOLD", "Arbeidsforholdet er ansett som nytt", false), BRUK_UTEN_INNTEKTSMELDING("BRUK_UTEN_INNTEKTSMELDING", "Bruk, men ikke benytt inntektsmelding", false), IKKE_BRUK("IKKE_BRUK", "Ikke bruk", false), /** - * @deprecated Tillater ikke nye sammenslåinger. Logikken var del av 5080 i FP, vil fases ut. Sist brukt 2019-11, støttes for legacy grunnlag inntil videre + * @deprecated Tillater ikke nye sammenslåinger. Logikken var del av 5080 i FP, vil fases ut. Sist brukt 2019-11, + * støttes for legacy grunnlag inntil videre */ @Deprecated(forRemoval = true) SLÅTT_SAMMEN_MED_ANNET("SLÅTT_SAMMEN_MED_ANNET", "Arbeidsforholdet er slått sammen med et annet", true), LAGT_TIL_AV_SAKSBEHANDLER("LAGT_TIL_AV_SAKSBEHANDLER", "Arbeidsforhold lagt til av saksbehandler", false), - BASERT_PÅ_INNTEKTSMELDING("BASERT_PÅ_INNTEKTSMELDING", "Arbeidsforholdet som ikke ligger i AA-reg er basert på inntektsmelding", false), + BASERT_PÅ_INNTEKTSMELDING( + "BASERT_PÅ_INNTEKTSMELDING", + "Arbeidsforholdet som ikke ligger i AA-reg er basert på inntektsmelding", + false), BRUK_MED_OVERSTYRT_PERIODE("BRUK_MED_OVERSTYRT_PERIODE", "Bruk arbeidsforholdet med overstyrt periode", false), - INNTEKT_IKKE_MED_I_BG("INNTEKT_IKKE_MED_I_BG", "Inntekten til arbeidsforholdet skal ikke være med i beregningsgrunnlaget", false), + INNTEKT_IKKE_MED_I_BG( + "INNTEKT_IKKE_MED_I_BG", "Inntekten til arbeidsforholdet skal ikke være med i beregningsgrunnlaget", false), ; private static final Map KODER = new LinkedHashMap<>(); @@ -62,7 +71,8 @@ public static ArbeidsforholdHandlingType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent ArbeidsforholdHandlingType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent ArbeidsforholdHandlingType: " + kode)); } public static Map kodeMap() { @@ -81,5 +91,4 @@ public String getKode() { public boolean isReadOnly() { return readOnly; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Arbeidskategori.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Arbeidskategori.java index 34d778c48..e98f992dd 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Arbeidskategori.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Arbeidskategori.java @@ -1,32 +1,38 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum Arbeidskategori implements Kodeverdi { - FISKER("FISKER", "Selvstendig næringsdrivende - Fisker"), ARBEIDSTAKER("ARBEIDSTAKER", "Arbeidstaker"), SELVSTENDIG_NÆRINGSDRIVENDE("SELVSTENDIG_NÆRINGSDRIVENDE", "Selvstendig næringsdrivende"), - KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE("KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", - "Kombinasjon arbeidstaker og selvstendig næringsdrivende"), + KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE( + "KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", + "Kombinasjon arbeidstaker og selvstendig næringsdrivende"), SJØMANN("SJØMANN", "Arbeidstaker - sjømann"), JORDBRUKER("JORDBRUKER", "Selvstendig næringsdrivende - Jordbruker"), DAGPENGER("DAGPENGER", "Tilstøtende ytelse - dagpenger"), INAKTIV("INAKTIV", "Inaktiv"), - KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER("KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER", - "Kombinasjon arbeidstaker og selvstendig næringsdrivende - jordbruker"), - KOMBINASJON_ARBEIDSTAKER_OG_FISKER("KOMBINASJON_ARBEIDSTAKER_OG_FISKER", "Kombinasjon arbeidstaker og selvstendig næringsdrivende - fisker"), + KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER( + "KOMBINASJON_ARBEIDSTAKER_OG_JORDBRUKER", + "Kombinasjon arbeidstaker og selvstendig næringsdrivende - jordbruker"), + KOMBINASJON_ARBEIDSTAKER_OG_FISKER( + "KOMBINASJON_ARBEIDSTAKER_OG_FISKER", "Kombinasjon arbeidstaker og selvstendig næringsdrivende - fisker"), FRILANSER("FRILANSER", "Frilanser"), - KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER("KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER", "Kombinasjon arbeidstaker og frilanser"), - KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER("KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER", "Kombinasjon arbeidstaker og dagpenger"), + KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER( + "KOMBINASJON_ARBEIDSTAKER_OG_FRILANSER", "Kombinasjon arbeidstaker og frilanser"), + KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER( + "KOMBINASJON_ARBEIDSTAKER_OG_DAGPENGER", "Kombinasjon arbeidstaker og dagpenger"), DAGMAMMA("DAGMAMMA", "Selvstendig næringsdrivende - Dagmamma"), UGYLDIG("UGYLDIG", "Ugyldig"), UDEFINERT("-", "Ingen inntektskategori (default)"), @@ -42,7 +48,6 @@ public enum Arbeidskategori implements Kodeverdi { } } - private final String navn; @JsonValue @@ -57,7 +62,8 @@ public static Arbeidskategori fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent Arbeidskategori: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent Arbeidskategori: " + kode)); } public static Map kodeMap() { @@ -72,5 +78,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/BekreftetPermisjonStatus.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/BekreftetPermisjonStatus.java index f3bc0dbf9..c973c5231 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/BekreftetPermisjonStatus.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/BekreftetPermisjonStatus.java @@ -1,23 +1,19 @@ package no.nav.abakus.iaygrunnlag.kodeverk; -/** - *

    - * Definerer statuser for bekreftet permisjoner - *

    - */ - +/** Definerer statuser for bekreftet permisjoner */ +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum BekreftetPermisjonStatus implements Kodeverdi { - UDEFINERT("-", "UDEFINERT"), BRUK_PERMISJON("BRUK_PERMISJON", "Bruk permisjonen til arbeidsforholdet"), IKKE_BRUK_PERMISJON("IKKE_BRUK_PERMISJON", "Ikke bruk permisjonen til arbeidsforholdet"), @@ -48,7 +44,8 @@ public static BekreftetPermisjonStatus fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent BekreftetPermisjonStatus: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent BekreftetPermisjonStatus: " + kode)); } public static Map kodeMap() { @@ -63,5 +60,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Fagsystem.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Fagsystem.java index f3f9e6adc..f746eafb3 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Fagsystem.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Fagsystem.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum Fagsystem implements Kodeverdi { - BISYS("BISYS", "Bisys", "BID"), BIDRAGINNKREVING("BIDRAGINNKREVING", "Bidraginnkreving", "BII"), FPSAK("FPSAK", "Vedtaksløsning Foreldrepenger", "FS36"), @@ -37,9 +38,7 @@ public enum Fagsystem implements Kodeverdi { ØKONOMI("ØKONOMI", "Økonomi", "OKO"), ØVRIG("ØVRIG", "ØVRIG", "OVR"), - /** - * Alle kodeverk må ha en verdi, det kan ikke være null i databasen. Denne koden gjør samme nytten. - */ + /** Alle kodeverk må ha en verdi, det kan ikke være null i databasen. Denne koden gjør samme nytten. */ UDEFINERT("-", "Ikke definert", null), ; @@ -55,6 +54,7 @@ public enum Fagsystem implements Kodeverdi { private final String navn; private final String offisiellKode; + @JsonValue private final String kode; @@ -68,7 +68,8 @@ public static Fagsystem fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent Fagsystem: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent Fagsystem: " + kode)); } public static Map kodeMap() { diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/IndexKey.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/IndexKey.java index 8845881d4..c3735a0f6 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/IndexKey.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/IndexKey.java @@ -1,17 +1,14 @@ package no.nav.abakus.iaygrunnlag.kodeverk; /** - * Bruk for å hente et key for et innslag i en collection (hvis ikke vil key ved diff være basert på index, noe - * som kan være mer ustabilt). - *

    - * {@link #getIndexKey()} bør være unikt i En collection lokalt (trenger ikke være globalt unik, kun i kontekst av collection det brukes (eks. gitt en parent)). + * Bruk for å hente et key for et innslag i en collection (hvis ikke vil key ved diff være basert på index, noe som kan + * være mer ustabilt). + * + *

    {@link #getIndexKey()} bør være unikt i En collection lokalt (trenger ikke være globalt unik, kun i kontekst av + * collection det brukes (eks. gitt en parent)). */ public interface IndexKey { - /** - * Returnerer et lokal indexkey for et objekt i en collection. - * Må være en stabil string key - */ + /** Returnerer et lokal indexkey for et objekt i en collection. Må være en stabil string key */ String getIndexKey(); - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektPeriodeType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektPeriodeType.java index e3eb7fb43..f1db0dfc5 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektPeriodeType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektPeriodeType.java @@ -1,18 +1,19 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.time.Period; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum InntektPeriodeType implements Kodeverdi { - DAGLIG("DAGLG", "Daglig", "D", Period.ofDays(1)), UKENTLIG("UKNLG", "Ukentlig", "U", Period.ofWeeks(1)), BIUKENTLIG("14DLG", "Fjorten-daglig", "F", Period.ofWeeks(2)), @@ -53,7 +54,8 @@ public static InntektPeriodeType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent InntektPeriodeType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent InntektPeriodeType: " + kode)); } public static Map kodeMap() { @@ -77,5 +79,4 @@ public Period getPeriode() { public String getOffisiellKode() { return offisiellKode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektYtelseType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektYtelseType.java index 0c8413f80..165a38b8d 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektYtelseType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektYtelseType.java @@ -1,66 +1,138 @@ package no.nav.abakus.iaygrunnlag.kodeverk; -import java.util.List; -import java.util.stream.Stream; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import java.util.List; +import java.util.stream.Stream; -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum InntektYtelseType implements Kodeverdi { // Ytelse utbetalt til person som er arbeidstaker/frilanser/ytelsesmottaker AAP("Arbeidsavklaringspenger", Kategori.YTELSE, YtelseType.ARBEIDSAVKLARINGSPENGER, "arbeidsavklaringspenger"), - DAGPENGER("Dagpenger arbeid og hyre", Kategori.YTELSE, YtelseType.DAGPENGER, - List.of("dagpengerVedArbeidsloeshet", "dagpengerTilFiskerSomBareHarHyre")), + DAGPENGER( + "Dagpenger arbeid og hyre", + Kategori.YTELSE, + YtelseType.DAGPENGER, + List.of("dagpengerVedArbeidsloeshet", "dagpengerTilFiskerSomBareHarHyre")), FORELDREPENGER("Foreldrepenger", Kategori.YTELSE, YtelseType.FORELDREPENGER, "foreldrepenger"), SVANGERSKAPSPENGER("Svangerskapspenger", Kategori.YTELSE, YtelseType.SVANGERSKAPSPENGER, "svangerskapspenger"), - SYKEPENGER("Sykepenger", Kategori.YTELSE, YtelseType.SYKEPENGER, - List.of("sykepenger", "sykepengerTilFiskerSomBareHarHyre")), + SYKEPENGER( + "Sykepenger", + Kategori.YTELSE, + YtelseType.SYKEPENGER, + List.of("sykepenger", "sykepengerTilFiskerSomBareHarHyre")), OMSORGSPENGER("Omsorgspenger", Kategori.YTELSE, YtelseType.OMSORGSPENGER, "omsorgspenger"), OPPLÆRINGSPENGER("Opplæringspenger", Kategori.YTELSE, YtelseType.OPPLÆRINGSPENGER, "opplaeringspenger"), PLEIEPENGER("Pleiepenger", Kategori.YTELSE, YtelseType.PLEIEPENGER_SYKT_BARN, "pleiepenger"), - OVERGANGSSTØNAD_ENSLIG("Overgangsstønad til enslig mor eller far", Kategori.YTELSE, YtelseType.ENSLIG_FORSØRGER, - "overgangsstoenadTilEnsligMorEllerFarSomBegynteAaLoepe1April2014EllerSenere"), + OVERGANGSSTØNAD_ENSLIG( + "Overgangsstønad til enslig mor eller far", + Kategori.YTELSE, + YtelseType.ENSLIG_FORSØRGER, + "overgangsstoenadTilEnsligMorEllerFarSomBegynteAaLoepe1April2014EllerSenere"), VENTELØNN("Ventelønn", Kategori.YTELSE, YtelseType.UDEFINERT, "venteloenn"), // Feriepenger Ytelse utbetalt til person som er arbeidstaker/frilanser/ytelsesmottaker // TODO slå sammen til FERIEPENGER_YTELSE - eller ta de med under hver ytelse??? - FERIEPENGER_FORELDREPENGER("Feriepenger foreldrepenger", Kategori.YTELSE, YtelseType.FORELDREPENGER, "feriepengerForeldrepenger"), - FERIEPENGER_SVANGERSKAPSPENGER("Feriepenger svangerskapspenger", Kategori.YTELSE, YtelseType.SVANGERSKAPSPENGER, "feriepengerSvangerskapspenger"), - FERIEPENGER_OMSORGSPENGER("Feriepenger omsorgspenger", Kategori.YTELSE, YtelseType.OMSORGSPENGER, "feriepengerOmsorgspenger"), - FERIEPENGER_OPPLÆRINGSPENGER("Feriepenger opplæringspenger", Kategori.YTELSE, YtelseType.OPPLÆRINGSPENGER, "feriepengerOpplaeringspenger"), - FERIEPENGER_PLEIEPENGER("Feriepenger pleiepenger", Kategori.YTELSE, YtelseType.PLEIEPENGER_SYKT_BARN, "feriepengerPleiepenger"), - FERIEPENGER_SYKEPENGER("Feriepenger sykepenger", Kategori.YTELSE, YtelseType.SYKEPENGER, - List.of("feriepengerSykepenger", "feriepengerSykepengerTilFiskerSomBareHarHyre")), - FERIETILLEGG_DAGPENGER("Ferietillegg dagpenger ", Kategori.YTELSE, YtelseType.DAGPENGER, - List.of("ferietilleggDagpengerVedArbeidsloeshet", "ferietilleggDagpengerTilFiskerSomBareHarHyre")), + FERIEPENGER_FORELDREPENGER( + "Feriepenger foreldrepenger", Kategori.YTELSE, YtelseType.FORELDREPENGER, "feriepengerForeldrepenger"), + FERIEPENGER_SVANGERSKAPSPENGER( + "Feriepenger svangerskapspenger", + Kategori.YTELSE, + YtelseType.SVANGERSKAPSPENGER, + "feriepengerSvangerskapspenger"), + FERIEPENGER_OMSORGSPENGER( + "Feriepenger omsorgspenger", Kategori.YTELSE, YtelseType.OMSORGSPENGER, "feriepengerOmsorgspenger"), + FERIEPENGER_OPPLÆRINGSPENGER( + "Feriepenger opplæringspenger", + Kategori.YTELSE, + YtelseType.OPPLÆRINGSPENGER, + "feriepengerOpplaeringspenger"), + FERIEPENGER_PLEIEPENGER( + "Feriepenger pleiepenger", Kategori.YTELSE, YtelseType.PLEIEPENGER_SYKT_BARN, "feriepengerPleiepenger"), + FERIEPENGER_SYKEPENGER( + "Feriepenger sykepenger", + Kategori.YTELSE, + YtelseType.SYKEPENGER, + List.of("feriepengerSykepenger", "feriepengerSykepengerTilFiskerSomBareHarHyre")), + FERIETILLEGG_DAGPENGER( + "Ferietillegg dagpenger ", + Kategori.YTELSE, + YtelseType.DAGPENGER, + List.of("ferietilleggDagpengerVedArbeidsloeshet", "ferietilleggDagpengerTilFiskerSomBareHarHyre")), // Annen ytelse utbetalt til person KVALIFISERINGSSTØNAD("Kvalifiseringsstønad", Kategori.TRYGD, YtelseType.UDEFINERT, "kvalifiseringstoenad"), // Ytelse utbetalt til person som er næringsdrivende, fisker/lott, dagmamma eller jord/skogbruker - FORELDREPENGER_NÆRING("Foreldrepenger næring", Kategori.NÆRING, YtelseType.FORELDREPENGER, - List.of("foreldrepenger", "foreldrepengerTilDagmamma", "foreldrepengerTilFisker", "foreldrepengerTilJordOgSkogbrukere")), - SVANGERSKAPSPENGER_NÆRING("Svangerskapspenger næring", Kategori.NÆRING, YtelseType.SVANGERSKAPSPENGER, - List.of("svangerskapspenger", "svangerskapspengerTilDagmamma", "svangerskapspengerTilFisker", "svangerskapspengerTilJordOgSkogbrukere")), - SYKEPENGER_NÆRING("Sykepenger næring", Kategori.NÆRING, YtelseType.SYKEPENGER, - List.of("sykepenger", "sykepengerTilDagmamma", "sykepengerTilFisker", "sykepengerTilJordOgSkogbrukere")), - OMSORGSPENGER_NÆRING("Omsorgspenger næring", Kategori.NÆRING, YtelseType.OMSORGSPENGER, - List.of("omsorgspenger", "omsorgspengerTilDagmamma", "omsorgspengerTilFisker", "omsorgspengerTilJordOgSkogbrukere")), - OPPLÆRINGSPENGER_NÆRING("Opplæringspenger næring", Kategori.NÆRING, YtelseType.OPPLÆRINGSPENGER, - List.of("opplaeringspenger", "opplaeringspengerTilDagmamma", "opplaeringspengerTilFisker", "opplaeringspengerTilJordOgSkogbrukere")), - PLEIEPENGER_NÆRING("Pleiepenger næring", Kategori.NÆRING, YtelseType.PLEIEPENGER_SYKT_BARN, - List.of("pleiepenger", "pleiepengerTilDagmamma", "pleiepengerTilFisker", "pleiepengerTilJordOgSkogbrukere")), - DAGPENGER_NÆRING("Dagpenger næring", Kategori.NÆRING, YtelseType.DAGPENGER, - List.of("dagpengerVedArbeidsloeshet", "dagpengerTilFisker")), + FORELDREPENGER_NÆRING( + "Foreldrepenger næring", + Kategori.NÆRING, + YtelseType.FORELDREPENGER, + List.of( + "foreldrepenger", + "foreldrepengerTilDagmamma", + "foreldrepengerTilFisker", + "foreldrepengerTilJordOgSkogbrukere")), + SVANGERSKAPSPENGER_NÆRING( + "Svangerskapspenger næring", + Kategori.NÆRING, + YtelseType.SVANGERSKAPSPENGER, + List.of( + "svangerskapspenger", + "svangerskapspengerTilDagmamma", + "svangerskapspengerTilFisker", + "svangerskapspengerTilJordOgSkogbrukere")), + SYKEPENGER_NÆRING( + "Sykepenger næring", + Kategori.NÆRING, + YtelseType.SYKEPENGER, + List.of("sykepenger", "sykepengerTilDagmamma", "sykepengerTilFisker", "sykepengerTilJordOgSkogbrukere")), + OMSORGSPENGER_NÆRING( + "Omsorgspenger næring", + Kategori.NÆRING, + YtelseType.OMSORGSPENGER, + List.of( + "omsorgspenger", + "omsorgspengerTilDagmamma", + "omsorgspengerTilFisker", + "omsorgspengerTilJordOgSkogbrukere")), + OPPLÆRINGSPENGER_NÆRING( + "Opplæringspenger næring", + Kategori.NÆRING, + YtelseType.OPPLÆRINGSPENGER, + List.of( + "opplaeringspenger", + "opplaeringspengerTilDagmamma", + "opplaeringspengerTilFisker", + "opplaeringspengerTilJordOgSkogbrukere")), + PLEIEPENGER_NÆRING( + "Pleiepenger næring", + Kategori.NÆRING, + YtelseType.PLEIEPENGER_SYKT_BARN, + List.of( + "pleiepenger", + "pleiepengerTilDagmamma", + "pleiepengerTilFisker", + "pleiepengerTilJordOgSkogbrukere")), + DAGPENGER_NÆRING( + "Dagpenger næring", + Kategori.NÆRING, + YtelseType.DAGPENGER, + List.of("dagpengerVedArbeidsloeshet", "dagpengerTilFisker")), // Annen ytelse utbetalt til person som er næringsdrivende ANNET("Annet", Kategori.NÆRING, YtelseType.UDEFINERT, "annet"), VEDERLAG("Vederlag", Kategori.NÆRING, YtelseType.UDEFINERT, List.of("vederlag", "vederlagDagmammaIEgetHjem")), LOTT_KUN_TRYGDEAVGIFT("Lott kun trygdeavgift", Kategori.NÆRING, YtelseType.UDEFINERT, "lottKunTrygdeavgift"), - KOMPENSASJON_FOR_TAPT_PERSONINNTEKT("Kompensasjon for tapt personinntekt", Kategori.NÆRING, YtelseType.FRISINN, "kompensasjonForTaptPersoninntekt") - ; + KOMPENSASJON_FOR_TAPT_PERSONINNTEKT( + "Kompensasjon for tapt personinntekt", + Kategori.NÆRING, + YtelseType.FRISINN, + "kompensasjonForTaptPersoninntekt"); private final String navn; private final YtelseType ytelseType; @@ -84,8 +156,11 @@ public static InntektYtelseType fraKode(String kode) { } public static InntektYtelseType finnForKodeverkEiersKode(Kategori kategori, String kode) { - return Stream.of(values()).filter(k -> k.kategori == kategori && k.offisiellKode.contains(kode)).findFirst() - .orElseThrow(() -> new IllegalArgumentException("Ukjent YtelseInntektType: " + kode + " kategori " + kategori)); + return Stream.of(values()) + .filter(k -> k.kategori == kategori && k.offisiellKode.contains(kode)) + .findFirst() + .orElseThrow(() -> + new IllegalArgumentException("Ukjent YtelseInntektType: " + kode + " kategori " + kategori)); } public String getNavn() { @@ -114,5 +189,9 @@ public YtelseType getYtelseType() { return kategori == Kategori.NÆRING; } - public enum Kategori { YTELSE, NÆRING, TRYGD } + public enum Kategori { + YTELSE, + NÆRING, + TRYGD + } } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Inntektskategori.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Inntektskategori.java index 6b97c79d4..c902385bf 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Inntektskategori.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Inntektskategori.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum Inntektskategori implements Kodeverdi { - ARBEIDSTAKER("ARBEIDSTAKER", "Arbeidstaker"), FRILANSER("FRILANSER", "Frilans"), SELVSTENDIG_NÆRINGSDRIVENDE("SELVSTENDIG_NÆRINGSDRIVENDE", "Selvstendig næringsdrivende"), @@ -49,7 +50,8 @@ public static Inntektskategori fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent Inntektskategori: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent Inntektskategori: " + kode)); } public static Map kodeMap() { @@ -64,5 +66,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektskildeType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektskildeType.java index 93f7394b7..55bacdd6c 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektskildeType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektskildeType.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum InntektskildeType implements Kodeverdi { - UDEFINERT("-", "Ikke definert"), INNTEKT_OPPTJENING("INNTEKT_OPPTJENING", "INNTEKT_OPPTJENING"), INNTEKT_BEREGNING("INNTEKT_BEREGNING", "INNTEKT_BEREGNING"), @@ -44,7 +45,8 @@ public static InntektskildeType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent InntektsKilde: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent InntektsKilde: " + kode)); } public static Map kodeMap() { @@ -59,5 +61,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektsmeldingInnsendings\303\245rsakType.java" "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektsmeldingInnsendings\303\245rsakType.java" index 259b0d7a6..cf213aec6 100644 --- "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektsmeldingInnsendings\303\245rsakType.java" +++ "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektsmeldingInnsendings\303\245rsakType.java" @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum InntektsmeldingInnsendingsårsakType implements Kodeverdi { - NY("NY", "NY"), ENDRING("ENDRING", "ENDRING"), UDEFINERT("-", "UDEFINERT"), @@ -42,7 +43,7 @@ public enum InntektsmeldingInnsendingsårsakType implements Kodeverdi { return null; } return Optional.ofNullable(KODER.get(kode)) - .orElseThrow(() -> new IllegalArgumentException("Ukjent InntektsmeldingInnsendingsårsak: " + kode)); + .orElseThrow(() -> new IllegalArgumentException("Ukjent InntektsmeldingInnsendingsårsak: " + kode)); } public static Map kodeMap() { @@ -57,5 +58,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektspostType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektspostType.java index 1882a0a0a..affd5b025 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektspostType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/InntektspostType.java @@ -1,23 +1,26 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum InntektspostType implements Kodeverdi { - UDEFINERT("-", "Ikke definert", null), LØNN("LØNN", "Lønn", "LONN"), YTELSE("YTELSE", "Ytelse", "YTELSE"), SELVSTENDIG_NÆRINGSDRIVENDE("SELVSTENDIG_NÆRINGSDRIVENDE", "Selvstendig næringsdrivende", "-"), - NÆRING_FISKE_FANGST_FAMBARNEHAGE("NÆRING_FISKE_FANGST_FAMBARNEHAGE", "Jordbruk/Skogbruk/Fiske/FamilieBarnehage", - "personinntektFiskeFangstFamilebarnehage"), + NÆRING_FISKE_FANGST_FAMBARNEHAGE( + "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "Jordbruk/Skogbruk/Fiske/FamilieBarnehage", + "personinntektFiskeFangstFamilebarnehage"), ; private static final Map KODER = new LinkedHashMap<>(); @@ -47,7 +50,8 @@ public static InntektspostType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent InntektspostType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent InntektspostType: " + kode)); } public static Map kodeMap() { @@ -67,5 +71,4 @@ public String getKode() { public String getOffisiellKode() { return offisiellKode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Kodeverdi.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Kodeverdi.java index 6493cf132..f4238b31f 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Kodeverdi.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Kodeverdi.java @@ -1,8 +1,6 @@ package no.nav.abakus.iaygrunnlag.kodeverk; -/** - * Kodeverk som er portet til java. - */ +/** Kodeverk som er portet til java. */ public interface Kodeverdi extends IndexKey { String getKode(); @@ -15,5 +13,4 @@ default String getIndexKey() { default String getOffisiellKode() { return getKode(); } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Landkode.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Landkode.java index c2eb67430..e1cba2f4c 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Landkode.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Landkode.java @@ -1,21 +1,22 @@ package no.nav.abakus.iaygrunnlag.kodeverk; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Locale; -import java.util.Locale.IsoCountryCode; -import java.util.Map; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; - import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Locale; +import java.util.Locale.IsoCountryCode; +import java.util.Map; +import java.util.Objects; -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public class Landkode implements Kodeverdi { private static final Map KODER = initKoder(); @@ -23,14 +24,10 @@ public class Landkode implements Kodeverdi { public static final Landkode DNK = fraKode("DNK"); public static final Landkode SWE = fraKode("SWE"); - /** - * Egendefinert konstant - ikke definert (null object pattern) for bruk i modeller som krever non-null. - */ + /** Egendefinert konstant - ikke definert (null object pattern) for bruk i modeller som krever non-null. */ public static final Landkode UDEFINERT = fraKode("-"); - /** - * ISO 3166 alpha 3-letter code. - */ + /** ISO 3166 alpha 3-letter code. */ @JsonValue @Size(max = 3) @Pattern(regexp = "^[\\p{Alnum}]+$", message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") diff --git "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/L\303\270nnsinntektBeskrivelse.java" "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/L\303\270nnsinntektBeskrivelse.java" index 84a96c39c..587945585 100644 --- "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/L\303\270nnsinntektBeskrivelse.java" +++ "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/L\303\270nnsinntektBeskrivelse.java" @@ -1,5 +1,6 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -7,12 +8,13 @@ import java.util.Optional; import java.util.stream.Stream; -import com.fasterxml.jackson.annotation.JsonValue; - public enum LønnsinntektBeskrivelse implements Kodeverdi { - KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE("KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE", "Kommunal omsorgslønn og fosterhjemsgodtgjørelse", "kommunalOmsorgsloennOgFosterhjemsgodtgjoerelse"), + KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE( + "KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE", + "Kommunal omsorgslønn og fosterhjemsgodtgjørelse", + "kommunalOmsorgsloennOgFosterhjemsgodtgjoerelse"), UDEFINERT("-", "Udefinert", null), - ; + ; private static final Map KODER = new LinkedHashMap<>(); static { @@ -39,7 +41,8 @@ public enum LønnsinntektBeskrivelse implements Kodeverdi { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent LønnsinntektBeskrivelse: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent LønnsinntektBeskrivelse: " + kode)); } public static Map kodeMap() { @@ -47,7 +50,10 @@ public enum LønnsinntektBeskrivelse implements Kodeverdi { } public static LønnsinntektBeskrivelse finnForKodeverkEiersKode(String offisiellDokumentType) { - return Stream.of(values()).filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)).findFirst().orElse(UDEFINERT); + return Stream.of(values()) + .filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)) + .findFirst() + .orElse(UDEFINERT); } @Override @@ -63,5 +69,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/NaturalytelseType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/NaturalytelseType.java index fc8fd0131..bb032bde6 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/NaturalytelseType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/NaturalytelseType.java @@ -1,5 +1,8 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -7,15 +10,14 @@ import java.util.Optional; import java.util.stream.Stream; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum NaturalytelseType implements Kodeverdi { - ELEKTRISK_KOMMUNIKASJON("ELEKTRISK_KOMMUNIKASJON", "Elektrisk kommunikasjon", "elektroniskKommunikasjon"), - AKSJER_GRUNNFONDSBEVIS_TIL_UNDERKURS("AKSJER_UNDERKURS", "Aksjer grunnfondsbevis til underkurs", "aksjerGrunnfondsbevisTilUnderkurs"), + AKSJER_GRUNNFONDSBEVIS_TIL_UNDERKURS( + "AKSJER_UNDERKURS", "Aksjer grunnfondsbevis til underkurs", "aksjerGrunnfondsbevisTilUnderkurs"), LOSJI("LOSJI", "Losji", "losji"), KOST_DØGN("KOST_DOEGN", "Kostpenger døgnsats", "kostDoegn"), BESØKSREISER_HJEMMET_ANNET("BESOEKSREISER_HJEM", "Besøksreiser hjemmet annet", "besoeksreiserHjemmetAnnet"), @@ -30,10 +32,14 @@ public enum NaturalytelseType implements Kodeverdi { TILSKUDD_BARNEHAGEPLASS("TILSKUDD_BARNEHAGE", "Tilskudd barnehageplass", "tilskuddBarnehageplass"), ANNET("ANNET", "Annet", "annet"), BEDRIFTSBARNEHAGEPLASS("BEDRIFTSBARNEHAGE", "Bedriftsbarnehageplass", "bedriftsbarnehageplass"), - YRKEBIL_TJENESTLIGBEHOV_KILOMETER("YRKESBIL_KILOMETER", "Yrkesbil tjenesteligbehov kilometer", "yrkebilTjenestligbehovKilometer"), - YRKEBIL_TJENESTLIGBEHOV_LISTEPRIS("YRKESBIL_LISTEPRIS", "Yrkesbil tjenesteligbehov listepris", "yrkebilTjenestligbehovListepris"), - INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING("UTENLANDSK_PENSJONSORDNING", "Innbetaling utenlandsk pensjonsordning", - "innbetalingTilUtenlandskPensjonsordning"), + YRKEBIL_TJENESTLIGBEHOV_KILOMETER( + "YRKESBIL_KILOMETER", "Yrkesbil tjenesteligbehov kilometer", "yrkebilTjenestligbehovKilometer"), + YRKEBIL_TJENESTLIGBEHOV_LISTEPRIS( + "YRKESBIL_LISTEPRIS", "Yrkesbil tjenesteligbehov listepris", "yrkebilTjenestligbehovListepris"), + INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING( + "UTENLANDSK_PENSJONSORDNING", + "Innbetaling utenlandsk pensjonsordning", + "innbetalingTilUtenlandskPensjonsordning"), UDEFINERT("-", "Ikke definert", null), ; @@ -47,7 +53,6 @@ public enum NaturalytelseType implements Kodeverdi { } } - private final String navn; @JsonValue @@ -65,7 +70,8 @@ public static NaturalytelseType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent NaturalYtelseType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent NaturalYtelseType: " + kode)); } public static Map kodeMap() { @@ -73,7 +79,10 @@ public static Map kodeMap() { } public static NaturalytelseType finnForKodeverkEiersKode(String offisiellDokumentType) { - return Stream.of(values()).filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)).findFirst().orElse(UDEFINERT); + return Stream.of(values()) + .filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)) + .findFirst() + .orElse(UDEFINERT); } public String getNavn() { @@ -89,5 +98,4 @@ public String getKode() { public String getOffisiellKode() { return offisiellKode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/OrganisasjonType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/OrganisasjonType.java index 2d0e8b05e..effd71e53 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/OrganisasjonType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/OrganisasjonType.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum OrganisasjonType implements Kodeverdi { - JURIDISK_ENHET("JURIDISK_ENHET", "Juridisk enhet"), VIRKSOMHET("VIRKSOMHET", "Virksomhet"), ORGLEDD("ORGANISASJONSLEDD", "Organisasjonsledd"), @@ -43,7 +44,8 @@ public static OrganisasjonType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent Organisasjonstype: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent Organisasjonstype: " + kode)); } public static Map kodeMap() { @@ -58,5 +60,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/PermisjonsbeskrivelseType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/PermisjonsbeskrivelseType.java index 91ef7aaea..848d1a789 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/PermisjonsbeskrivelseType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/PermisjonsbeskrivelseType.java @@ -1,6 +1,8 @@ package no.nav.abakus.iaygrunnlag.kodeverk; - +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -8,25 +10,30 @@ import java.util.Optional; import java.util.stream.Stream; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum PermisjonsbeskrivelseType implements Kodeverdi { - UDEFINERT("-", "Ikke definert", null), PERMISJON("PERMISJON", "Permisjon", "permisjon"), UTDANNINGSPERMISJON("UTDANNINGSPERMISJON", "Utdanningspermisjon", "utdanningspermisjon"), // Utgår 31/12-2022 - UTDANNINGSPERMISJON_IKKE_LOVFESTET("UTDANNINGSPERMISJON_IKKE_LOVFESTET", "Utdanningspermisjon (Ikke lovfestet)", - "utdanningspermisjonIkkeLovfestet"), - UTDANNINGSPERMISJON_LOVFESTET("UTDANNINGSPERMISJON_LOVFESTET", "Utdanningspermisjon (Lovfestet)", "utdanningspermisjonLovfestet"), + UTDANNINGSPERMISJON_IKKE_LOVFESTET( + "UTDANNINGSPERMISJON_IKKE_LOVFESTET", + "Utdanningspermisjon (Ikke lovfestet)", + "utdanningspermisjonIkkeLovfestet"), + UTDANNINGSPERMISJON_LOVFESTET( + "UTDANNINGSPERMISJON_LOVFESTET", "Utdanningspermisjon (Lovfestet)", "utdanningspermisjonLovfestet"), VELFERDSPERMISJON("VELFERDSPERMISJON", "Velferdspermisjon", "velferdspermisjon"), // Utgår 31/12-2022 - ANNEN_PERMISJON_IKKE_LOVFESTET("ANNEN_PERMISJON_IKKE_LOVFESTET", "Andre ikke-lovfestede permisjoner", "andreIkkeLovfestedePermisjoner"), - ANNEN_PERMISJON_LOVFESTET("ANNEN_PERMISJON_LOVFESTET", "Andre lovfestede permisjoner", "andreLovfestedePermisjoner"), - PERMISJON_MED_FORELDREPENGER("PERMISJON_MED_FORELDREPENGER", "Permisjon med foreldrepenger", "permisjonMedForeldrepenger"), + ANNEN_PERMISJON_IKKE_LOVFESTET( + "ANNEN_PERMISJON_IKKE_LOVFESTET", "Andre ikke-lovfestede permisjoner", "andreIkkeLovfestedePermisjoner"), + ANNEN_PERMISJON_LOVFESTET( + "ANNEN_PERMISJON_LOVFESTET", "Andre lovfestede permisjoner", "andreLovfestedePermisjoner"), + PERMISJON_MED_FORELDREPENGER( + "PERMISJON_MED_FORELDREPENGER", "Permisjon med foreldrepenger", "permisjonMedForeldrepenger"), PERMITTERING("PERMITTERING", "Permittering", "permittering"), - PERMISJON_VED_MILITÆRTJENESTE("PERMISJON_VED_MILITÆRTJENESTE", "Permisjon ved militærtjeneste", "permisjonVedMilitaertjeneste"), + PERMISJON_VED_MILITÆRTJENESTE( + "PERMISJON_VED_MILITÆRTJENESTE", "Permisjon ved militærtjeneste", "permisjonVedMilitaertjeneste"), ; private static final Map KODER = new LinkedHashMap<>(); @@ -56,7 +63,8 @@ public static PermisjonsbeskrivelseType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent PermisjonsbeskrivelseType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent PermisjonsbeskrivelseType: " + kode)); } public static Map kodeMap() { @@ -64,7 +72,10 @@ public static Map kodeMap() { } public static PermisjonsbeskrivelseType finnForKodeverkEiersKode(String offisiellDokumentType) { - return Stream.of(values()).filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)).findFirst().orElse(UDEFINERT); + return Stream.of(values()) + .filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)) + .findFirst() + .orElse(UDEFINERT); } public String getNavn() { @@ -80,6 +91,4 @@ public String getKode() { public String getOffisiellKode() { return offisiellKode; } - - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/SkatteOgAvgiftsregelType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/SkatteOgAvgiftsregelType.java index b872ea90a..29123639a 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/SkatteOgAvgiftsregelType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/SkatteOgAvgiftsregelType.java @@ -1,5 +1,8 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -7,20 +10,20 @@ import java.util.Optional; import java.util.stream.Stream; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum SkatteOgAvgiftsregelType implements Kodeverdi { - - SÆRSKILT_FRADRAG_FOR_SJØFOLK("SÆRSKILT_FRADRAG_FOR_SJØFOLK", "Særskilt fradrag for sjøfolk", "saerskiltFradragForSjoefolk"), + SÆRSKILT_FRADRAG_FOR_SJØFOLK( + "SÆRSKILT_FRADRAG_FOR_SJØFOLK", "Særskilt fradrag for sjøfolk", "saerskiltFradragForSjoefolk"), SVALBARD("SVALBARD", "Svalbardinntekt", "svalbard"), SKATTEFRI_ORGANISASJON("SKATTEFRI_ORGANISASJON", "Skattefri Organisasjon", "skattefriOrganisasjon"), NETTOLØNN_FOR_SJØFOLK("NETTOLØNN_FOR_SJØFOLK", "Nettolønn for sjøfolk", "nettoloennForSjoefolk"), NETTOLØNN("NETTOLØNN", "Nettolønn", "nettoloenn"), KILDESKATT_PÅ_PENSJONER("KILDESKATT_PÅ_PENSJONER", "Kildeskatt på pensjoner", "kildeskattPaaPensjoner"), - JAN_MAYEN_OG_BILANDENE("JAN_MAYEN_OG_BILANDENE", "Inntekt på Jan Mayen og i norske biland i Antarktis", "janMayenOgBilandene"), + JAN_MAYEN_OG_BILANDENE( + "JAN_MAYEN_OG_BILANDENE", "Inntekt på Jan Mayen og i norske biland i Antarktis", "janMayenOgBilandene"), UDEFINERT("-", "Udefinert", "Ikke definert"), ; @@ -52,7 +55,8 @@ public static SkatteOgAvgiftsregelType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent SkatteOgAvgiftsregelType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent SkatteOgAvgiftsregelType: " + kode)); } public static Map kodeMap() { @@ -60,7 +64,10 @@ public static Map kodeMap() { } public static SkatteOgAvgiftsregelType finnForKodeverkEiersKode(String offisiellDokumentType) { - return Stream.of(values()).filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)).findFirst().orElse(UDEFINERT); + return Stream.of(values()) + .filter(k -> Objects.equals(k.offisiellKode, offisiellDokumentType)) + .findFirst() + .orElse(UDEFINERT); } public String getNavn() { @@ -76,5 +83,4 @@ public String getKode() { public String getOffisiellKode() { return offisiellKode; } - } diff --git "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Utsettelse\303\205rsakType.java" "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Utsettelse\303\205rsakType.java" index fe4b8f06a..195fd37e1 100644 --- "a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Utsettelse\303\205rsakType.java" +++ "b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/Utsettelse\303\205rsakType.java" @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum UtsettelseÅrsakType implements Kodeverdi { - ARBEID("ARBEID", "Arbeid"), FERIE("LOVBESTEMT_FERIE", "Lovbestemt ferie"), SYKDOM("SYKDOM", "Avhengig av hjelp grunnet sykdom"), @@ -30,8 +31,8 @@ public enum UtsettelseÅrsakType implements Kodeverdi { } } - private final String navn; + @JsonValue private final String kode; @@ -44,7 +45,8 @@ public enum UtsettelseÅrsakType implements Kodeverdi { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent UtsettelseÅrsak: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent UtsettelseÅrsak: " + kode)); } public static Map kodeMap() { diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/VirksomhetType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/VirksomhetType.java index a92861c0d..ce54ae18d 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/VirksomhetType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/VirksomhetType.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum VirksomhetType implements Kodeverdi { - DAGMAMMA("DAGMAMMA", "Dagmamma i eget hjem/familiebarnehage"), FISKE("FISKE", "Fiske"), JORDBRUK_SKOGBRUK("JORDBRUK_SKOGBRUK", "Jordbruk"), @@ -43,7 +44,8 @@ public static VirksomhetType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent VirksomhetType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent VirksomhetType: " + kode)); } public static Map kodeMap() { @@ -58,5 +60,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseStatus.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseStatus.java index 23438bcc3..ef9b55700 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseStatus.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseStatus.java @@ -1,17 +1,18 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum YtelseStatus implements Kodeverdi { - OPPRETTET("OPPR", "Opprettet"), UNDER_BEHANDLING("UBEH", "Under behandling"), LØPENDE("LOP", "Løpende"), @@ -30,7 +31,6 @@ public enum YtelseStatus implements Kodeverdi { } } - private final String navn; @JsonValue @@ -45,7 +45,8 @@ public static YtelseStatus fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent YtelseStatus: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent YtelseStatus: " + kode)); } public static Map kodeMap() { @@ -60,5 +61,4 @@ public String getNavn() { public String getKode() { return kode; } - } diff --git a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseType.java b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseType.java index 1cd3f70bc..e6e4583f7 100644 --- a/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseType.java +++ b/kodeverk/src/main/java/no/nav/abakus/iaygrunnlag/kodeverk/YtelseType.java @@ -1,56 +1,44 @@ package no.nav.abakus.iaygrunnlag.kodeverk; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonValue; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.JsonValue; - -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum YtelseType implements Kodeverdi { - /** - * Folketrygdloven K4 ytelser. - */ + /** Folketrygdloven K4 ytelser. */ DAGPENGER("DAG", "Dagpenger"), - /** - * Ny ytelse for kompenasasjon for koronatiltak for Selvstendig næringsdrivende og Frilansere (Anmodning 10). - */ + /** Ny ytelse for kompenasasjon for koronatiltak for Selvstendig næringsdrivende og Frilansere (Anmodning 10). */ FRISINN("FRISINN", "FRISINN"), - /** - * Folketrygdloven K8 ytelser. - */ + /** Folketrygdloven K8 ytelser. */ SYKEPENGER("SP", "Sykepenger"), - /** - * Folketrygdloven K9 ytelser. - */ + /** Folketrygdloven K9 ytelser. */ PLEIEPENGER_SYKT_BARN("PSB", "Pleiepenger sykt barn"), PLEIEPENGER_NÆRSTÅENDE("PPN", "Pleiepenger nærstående"), OMSORGSPENGER("OMP", "Omsorgspenger"), OPPLÆRINGSPENGER("OLP", "Opplæringspenger"), - /** - * Folketrygdloven K11 ytelser. - */ + /** Folketrygdloven K11 ytelser. */ ARBEIDSAVKLARINGSPENGER("AAP", "Arbeidsavklaringspenger"), - /** - * Folketrygdloven K14 ytelser. - */ + /** Folketrygdloven K14 ytelser. */ ENGANGSTØNAD("ES", "Engangsstønad"), FORELDREPENGER("FP", "Foreldrepenger"), SVANGERSKAPSPENGER("SVP", "Svangerskapspenger"), - /** - * Folketrygdloven K15 ytelser. - */ + /** Folketrygdloven K15 ytelser. */ ENSLIG_FORSØRGER("EF", "Enslig forsørger"), UDEFINERT("-", "Ikke definert"), @@ -80,7 +68,8 @@ public static YtelseType fraKode(String kode) { if (kode == null) { return null; } - return Optional.ofNullable(KODER.get(kode)).orElseThrow(() -> new IllegalArgumentException("Ukjent YtelseType: " + kode)); + return Optional.ofNullable(KODER.get(kode)) + .orElseThrow(() -> new IllegalArgumentException("Ukjent YtelseType: " + kode)); } public static Map kodeMap() { @@ -88,8 +77,14 @@ public static Map kodeMap() { } public static List abakusYtelser() { - return List.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER, YtelseType.OMSORGSPENGER, YtelseType.PLEIEPENGER_SYKT_BARN, - YtelseType.PLEIEPENGER_NÆRSTÅENDE, YtelseType.OPPLÆRINGSPENGER, YtelseType.FRISINN); + return List.of( + YtelseType.FORELDREPENGER, + YtelseType.SVANGERSKAPSPENGER, + YtelseType.OMSORGSPENGER, + YtelseType.PLEIEPENGER_SYKT_BARN, + YtelseType.PLEIEPENGER_NÆRSTÅENDE, + YtelseType.OPPLÆRINGSPENGER, + YtelseType.FRISINN); } @Override @@ -100,5 +95,4 @@ public String getKode() { public String getNavn() { return navn; } - } diff --git a/kontrakt-vedtak/pom.xml b/kontrakt-vedtak/pom.xml index 51a140112..abce76e28 100644 --- a/kontrakt-vedtak/pom.xml +++ b/kontrakt-vedtak/pom.xml @@ -1,13 +1,11 @@ - + + 4.0.0 - fpabakus no.nav.foreldrepenger.abakus + fpabakus 1.0-SNAPSHOT - 4.0.0 abakus-vedtak @@ -43,7 +41,6 @@ jackson-datatype-jsr310 - @@ -69,4 +66,3 @@ - diff --git "a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Akt\303\270r.java" "b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Akt\303\270r.java" index 7474f3065..b60a438de 100644 --- "a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Akt\303\270r.java" +++ "b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Akt\303\270r.java" @@ -1,10 +1,9 @@ package no.nav.abakus.vedtak.ytelse; +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; -import com.fasterxml.jackson.annotation.JsonProperty; - public class Aktør { @NotNull @@ -12,8 +11,7 @@ public class Aktør { @Pattern(regexp = "\\d{11}|\\d{13}") // Fnr / aktørid private String verdi; - public Aktør() { - } + public Aktør() {} public String getVerdi() { return verdi; diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Desimaltall.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Desimaltall.java index 40059c018..7c510b73c 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Desimaltall.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Desimaltall.java @@ -1,17 +1,15 @@ package no.nav.abakus.vedtak.ytelse; +import com.fasterxml.jackson.annotation.JsonProperty; import java.math.BigDecimal; import java.math.RoundingMode; -import com.fasterxml.jackson.annotation.JsonProperty; - public class Desimaltall { @JsonProperty("verdi") private BigDecimal verdi; - public Desimaltall() { - } + public Desimaltall() {} public Desimaltall(BigDecimal verdi) { setVerdi(verdi); diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Periode.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Periode.java index a0202c98f..2296bf5d7 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Periode.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Periode.java @@ -1,22 +1,20 @@ package no.nav.abakus.vedtak.ytelse; -import java.time.LocalDate; - -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; public class Periode { @NotNull @JsonProperty("fom") private LocalDate fom; + @NotNull @JsonProperty("tom") private LocalDate tom; - public Periode() { - } + public Periode() {} public LocalDate getFom() { return fom; diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelse.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelse.java index 8828b5d4d..6a8572a6e 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelse.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelse.java @@ -2,11 +2,12 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; - import no.nav.abakus.vedtak.ytelse.v1.YtelseV1; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "version") -@JsonSubTypes({@JsonSubTypes.Type(value = YtelseV1.class, name = "1.0"),}) +@JsonSubTypes({ + @JsonSubTypes.Type(value = YtelseV1.class, name = "1.0"), +}) public abstract class Ytelse { public abstract Ytelser getYtelse(); diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelser.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelser.java index 848160943..66665251e 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelser.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/Ytelser.java @@ -2,24 +2,17 @@ public enum Ytelser { - /** - * Folketrygdloven K9 ytelser. - */ + /** Folketrygdloven K9 ytelser. */ PLEIEPENGER_SYKT_BARN, PLEIEPENGER_NÆRSTÅENDE, OMSORGSPENGER, OPPLÆRINGSPENGER, - /** - * Folketrygdloven K14 ytelser. - */ + /** Folketrygdloven K14 ytelser. */ ENGANGSTØNAD, FORELDREPENGER, SVANGERSKAPSPENGER, - /** - * Midlertidig ytelse for Selvstendig næringsdrivende og Frilansere (Anmodning 10). - */ + /** Midlertidig ytelse for Selvstendig næringsdrivende og Frilansere (Anmodning 10). */ FRISINN - } diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/request/VedtakForPeriodeRequest.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/request/VedtakForPeriodeRequest.java index b0fcc3219..80863385c 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/request/VedtakForPeriodeRequest.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/request/VedtakForPeriodeRequest.java @@ -1,29 +1,36 @@ package no.nav.abakus.vedtak.ytelse.request; -import java.time.LocalDate; -import java.util.Objects; -import java.util.Set; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.Objects; +import java.util.Set; import no.nav.abakus.vedtak.ytelse.Aktør; import no.nav.abakus.vedtak.ytelse.Periode; import no.nav.abakus.vedtak.ytelse.Ytelser; - @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class VedtakForPeriodeRequest { - public static final Set ALLE_YTELSER = Set.of(Ytelser.FORELDREPENGER, Ytelser.SVANGERSKAPSPENGER, Ytelser.PLEIEPENGER_SYKT_BARN, - Ytelser.PLEIEPENGER_NÆRSTÅENDE, Ytelser.OPPLÆRINGSPENGER, Ytelser.OMSORGSPENGER, Ytelser.FRISINN); + public static final Set ALLE_YTELSER = Set.of( + Ytelser.FORELDREPENGER, + Ytelser.SVANGERSKAPSPENGER, + Ytelser.PLEIEPENGER_SYKT_BARN, + Ytelser.PLEIEPENGER_NÆRSTÅENDE, + Ytelser.OPPLÆRINGSPENGER, + Ytelser.OMSORGSPENGER, + Ytelser.FRISINN); @JsonProperty(value = "ident", required = true) @NotNull @@ -38,8 +45,7 @@ public class VedtakForPeriodeRequest { @JsonProperty(value = "ytelser") private Set ytelser = ALLE_YTELSER; - private VedtakForPeriodeRequest() { - } + private VedtakForPeriodeRequest() {} public VedtakForPeriodeRequest(Aktør ident, Periode periode) { this.ident = Objects.requireNonNull(ident); diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/YtelseV1.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/YtelseV1.java index 2dfd81ddf..6ec1f8039 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/YtelseV1.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/YtelseV1.java @@ -1,15 +1,12 @@ package no.nav.abakus.vedtak.ytelse.v1; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; - -import com.fasterxml.jackson.annotation.JsonProperty; - +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; import no.nav.abakus.vedtak.ytelse.Aktør; import no.nav.abakus.vedtak.ytelse.Kildesystem; import no.nav.abakus.vedtak.ytelse.Periode; @@ -34,7 +31,9 @@ public class YtelseV1 extends Ytelse { @JsonProperty("ytelse") private Ytelser ytelse; - @Pattern(regexp = "^(-?[1-9]|[a-z0])[a-z0-9_:-]*$", flags = {Pattern.Flag.CASE_INSENSITIVE}) + @Pattern( + regexp = "^(-?[1-9]|[a-z0])[a-z0-9_:-]*$", + flags = {Pattern.Flag.CASE_INSENSITIVE}) @JsonProperty("saksnummer") private String saksnummer; @@ -64,8 +63,7 @@ public class YtelseV1 extends Ytelse { @JsonProperty("anvist") private List anvist = new ArrayList<>(); - public YtelseV1() { - } + public YtelseV1() {} @Override public Ytelser getYtelse() { @@ -152,8 +150,10 @@ public void setTilleggsopplysninger(String tilleggsopplysninger) { @Override public String toString() { - return getClass().getSimpleName() + "[aktør=" + aktør + ", vedtattTidspunkt=" + vedtattTidspunkt + ", ytelse=" + ytelse + ", saksnummer=" - + saksnummer + ", vedtakReferanse=" + vedtakReferanse + ", status=" + ytelseStatus + ", kildesystem=" + kildesystem + ", periode=" - + periode + ", anvist=" + anvist + "]"; + return getClass().getSimpleName() + "[aktør=" + aktør + ", vedtattTidspunkt=" + vedtattTidspunkt + ", ytelse=" + + ytelse + ", saksnummer=" + + saksnummer + ", vedtakReferanse=" + vedtakReferanse + ", status=" + ytelseStatus + ", kildesystem=" + + kildesystem + ", periode=" + + periode + ", anvist=" + anvist + "]"; } } diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Anvisning.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Anvisning.java index 615aef090..2aef0b9f9 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Anvisning.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Anvisning.java @@ -1,13 +1,10 @@ package no.nav.abakus.vedtak.ytelse.v1.anvisning; -import java.util.ArrayList; -import java.util.List; - +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; - -import com.fasterxml.jackson.annotation.JsonProperty; - +import java.util.ArrayList; +import java.util.List; import no.nav.abakus.vedtak.ytelse.Desimaltall; import no.nav.abakus.vedtak.ytelse.Periode; @@ -30,8 +27,7 @@ public class Anvisning { @JsonProperty("andeler") private List andeler = new ArrayList<>(); - public Anvisning() { - } + public Anvisning() {} public Periode getPeriode() { return periode; @@ -75,7 +71,7 @@ public void setAndeler(List andeler) { @Override public String toString() { - return getClass().getSimpleName() + "[periode=" + periode + ", beløp=" + beløp + ", dagsats=" + dagsats + ", utbetalingsgrad=" - + utbetalingsgrad + "]"; + return getClass().getSimpleName() + "[periode=" + periode + ", beløp=" + beløp + ", dagsats=" + dagsats + + ", utbetalingsgrad=" + utbetalingsgrad + "]"; } } diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/AnvistAndel.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/AnvistAndel.java index f0ed058be..1b6195717 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/AnvistAndel.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/AnvistAndel.java @@ -1,27 +1,20 @@ package no.nav.abakus.vedtak.ytelse.v1.anvisning; -import java.math.BigDecimal; -import java.util.Optional; - -import jakarta.validation.Valid; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import java.math.BigDecimal; +import java.util.Optional; import no.nav.abakus.vedtak.ytelse.Desimaltall; -/** - * Angir størrelse for ytelse. - */ +/** Angir størrelse for ytelse. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) public class AnvistAndel { - /** - * Kan være null. - */ + /** Kan være null. */ @JsonProperty(value = "arbeidsgiverIdent") @Valid private ArbeidsgiverIdent arbeidsgiverIdent; @@ -44,25 +37,31 @@ public class AnvistAndel { @Valid private Inntektklasse inntektklasse; - protected AnvistAndel() { + protected AnvistAndel() {} + + public AnvistAndel( + ArbeidsgiverIdent arbeidsgiverIdent, + int beløp, + int utbetalingsgrad, + int refusjonsgrad, + Inntektklasse inntektklasse, + String arbeidsforholdId) { + this( + arbeidsgiverIdent, + arbeidsforholdId, + new Desimaltall(BigDecimal.valueOf(beløp)), + new Desimaltall(BigDecimal.valueOf(utbetalingsgrad)), + new Desimaltall(BigDecimal.valueOf(refusjonsgrad)), + inntektklasse); } - public AnvistAndel(ArbeidsgiverIdent arbeidsgiverIdent, - int beløp, - int utbetalingsgrad, - int refusjonsgrad, - Inntektklasse inntektklasse, - String arbeidsforholdId) { - this(arbeidsgiverIdent, arbeidsforholdId, new Desimaltall(BigDecimal.valueOf(beløp)), new Desimaltall(BigDecimal.valueOf(utbetalingsgrad)), - new Desimaltall(BigDecimal.valueOf(refusjonsgrad)), inntektklasse); - } - - public AnvistAndel(ArbeidsgiverIdent arbeidsgiverIdent, - String arbeidsforholdId, - Desimaltall beløp, - Desimaltall utbetalingsgrad, - Desimaltall refusjonsgrad, - Inntektklasse inntektklasse) { + public AnvistAndel( + ArbeidsgiverIdent arbeidsgiverIdent, + String arbeidsforholdId, + Desimaltall beløp, + Desimaltall utbetalingsgrad, + Desimaltall refusjonsgrad, + Inntektklasse inntektklasse) { this.arbeidsgiverIdent = arbeidsgiverIdent; this.arbeidsforholdId = arbeidsforholdId; this.dagsats = beløp; @@ -94,5 +93,4 @@ public Desimaltall getRefusjonsgrad() { public Inntektklasse getInntektklasse() { return Optional.ofNullable(inntektklasse).orElse(Inntektklasse.INGEN); } - } diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/ArbeidsgiverIdent.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/ArbeidsgiverIdent.java index da47d239d..8550918d5 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/ArbeidsgiverIdent.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/ArbeidsgiverIdent.java @@ -1,10 +1,9 @@ package no.nav.abakus.vedtak.ytelse.v1.anvisning; +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; -import com.fasterxml.jackson.annotation.JsonProperty; - // Orgnr / aktørid public record ArbeidsgiverIdent(@NotNull @JsonProperty("ident") @Pattern(regexp = "\\d{9}|\\d{13}") String ident) { diff --git a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Inntektklasse.java b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Inntektklasse.java index 13ffd9eef..4976ff203 100644 --- a/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Inntektklasse.java +++ b/kontrakt-vedtak/src/main/java/no/nav/abakus/vedtak/ytelse/v1/anvisning/Inntektklasse.java @@ -1,7 +1,6 @@ package no.nav.abakus.vedtak.ytelse.v1.anvisning; public enum Inntektklasse { - ARBEIDSTAKER, FRILANSER, SELVSTENDIG_NÆRINGSDRIVENDE, @@ -13,5 +12,4 @@ public enum Inntektklasse { FISKER, ARBEIDSTAKER_UTEN_FERIEPENGER, INGEN - } diff --git a/kontrakt/pom.xml b/kontrakt/pom.xml index a09b7b445..ffa39b35e 100644 --- a/kontrakt/pom.xml +++ b/kontrakt/pom.xml @@ -1,58 +1,56 @@ - - 4.0.0 - - no.nav.foreldrepenger.abakus - fpabakus - 1.0-SNAPSHOT - + + 4.0.0 + + no.nav.foreldrepenger.abakus + fpabakus + 1.0-SNAPSHOT + - abakus-kontrakt - jar - Abakus :: Kontrakter + abakus-kontrakt + jar + Abakus :: Kontrakter - + false - - - no.nav.foreldrepenger.abakus - abakus-kodeverk - + + + no.nav.foreldrepenger.abakus + abakus-kodeverk + no.nav.foreldrepenger.abakus abakus-vedtak - - jakarta.validation - jakarta.validation-api - provided - + + jakarta.validation + jakarta.validation-api + provided + - - - org.apache.kafka - kafka-clients - true - + + + org.apache.kafka + kafka-clients + true + - + org.hibernate.validator hibernate-validator test - - org.glassfish.expressly - expressly - test - + + org.glassfish.expressly + expressly + test + - + diff --git a/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/CallbackDto.java b/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/CallbackDto.java index 3d8667164..cb88be8a7 100644 --- a/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/CallbackDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/CallbackDto.java @@ -1,17 +1,14 @@ package no.nav.abakus.callback.registerdata; -import java.time.LocalDateTime; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import java.time.LocalDateTime; /** - * Metadata for callback - * Inneholder: - * - opprettetTidspunkt: Tidspunktet hvor det oppdaterte grunnlaget ble commitet til database - * - avsenderRef: avsenderRef til behandlingen - * - opprinneligGrunnlagRef: tilstand før registerinnhenting, referanse til opprinnelig grunnlag - * - oppdatertGrunnlagRef: resultatet av registerinnhenting, referanse til nytt grunnlag + * Metadata for callback Inneholder: - opprettetTidspunkt: Tidspunktet hvor det oppdaterte grunnlaget ble commitet til + * database - avsenderRef: avsenderRef til behandlingen - opprinneligGrunnlagRef: tilstand før registerinnhenting, + * referanse til opprinnelig grunnlag - oppdatertGrunnlagRef: resultatet av registerinnhenting, referanse til nytt + * grunnlag */ public class CallbackDto { diff --git a/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/ReferanseDto.java b/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/ReferanseDto.java index e025d800a..b85cb994d 100644 --- a/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/ReferanseDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/callback/registerdata/ReferanseDto.java @@ -1,13 +1,10 @@ package no.nav.abakus.callback.registerdata; -import java.util.UUID; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import java.util.UUID; -/** - * Unik referanse representert som UUID - */ +/** Unik referanse representert som UUID */ public class ReferanseDto { public static final String UUID_REGEX = "\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b"; diff --git "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270r.java" "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270r.java" index 0a6784c04..dae7e6bb3 100644 --- "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270r.java" +++ "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270r.java" @@ -1,36 +1,40 @@ package no.nav.abakus.iaygrunnlag; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.util.Objects; -/** - * Identifiserer en aktør (person, virksomhet). - */ - +/** Identifiserer en aktør (person, virksomhet). */ @JsonIgnoreProperties(ignoreUnknown = true) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "identType", defaultImpl = Void.class) -@JsonSubTypes({@JsonSubTypes.Type(value = Organisasjon.class, name = Organisasjon.IDENT_TYPE), @JsonSubTypes.Type(value = AktørIdPersonident.class, name = AktørIdPersonident.IDENT_TYPE), @JsonSubTypes.Type(value = FnrPersonident.class, name = FnrPersonident.IDENT_TYPE),}) +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "identType", + defaultImpl = Void.class) +@JsonSubTypes({ + @JsonSubTypes.Type(value = Organisasjon.class, name = Organisasjon.IDENT_TYPE), + @JsonSubTypes.Type(value = AktørIdPersonident.class, name = AktørIdPersonident.IDENT_TYPE), + @JsonSubTypes.Type(value = FnrPersonident.class, name = FnrPersonident.IDENT_TYPE), +}) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public abstract class Aktør { - protected Aktør() { - } + protected Aktør() {} - /** - * Returnerer Id (format ihht angitt type. *). - */ + /** Returnerer Id (format ihht angitt type. *). */ public abstract String getIdent(); - /** - * Type ident. (per ident fra subklasse). - */ + /** Type ident. (per ident fra subklasse). */ public abstract String getIdentType(); public abstract boolean getErOrganisasjon(); @@ -52,7 +56,8 @@ public boolean equals(Object obj) { } var other = getClass().cast(obj); - return Objects.equals(this.getIdent(), other.getIdent()) && Objects.equals(this.getIdentType(), other.getIdentType()); + return Objects.equals(this.getIdent(), other.getIdent()) + && Objects.equals(this.getIdentType(), other.getIdentType()); } @Override diff --git "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270rIdPersonident.java" "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270rIdPersonident.java" index c833906de..c573a139d 100644 --- "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270rIdPersonident.java" +++ "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Akt\303\270rIdPersonident.java" @@ -1,18 +1,22 @@ package no.nav.abakus.iaygrunnlag; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class AktørIdPersonident extends PersonIdent { public static final String IDENT_TYPE = "AKTØRID"; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdRefDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdRefDto.java index 28d3d7d62..200b3aa31 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdRefDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdRefDto.java @@ -1,24 +1,27 @@ package no.nav.abakus.iaygrunnlag; -import java.util.Objects; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; @JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidsforholdRefDto { - @JsonProperty(value = "eksternReferanse", required = true) - @Pattern(regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "Eksternreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "Eksternreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") @NotNull private String eksternReferanse; @@ -27,23 +30,25 @@ public class ArbeidsforholdRefDto { private Fagsystem eksternReferanseSystem; @JsonProperty(value = "abakusReferanse") - @Pattern(regexp = "^[\\p{L}\\p{N}_\\.\\-]+$", message = "Abakusreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{L}\\p{N}_\\.\\-]+$", + message = "Abakusreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String abakusReferanse; @JsonCreator - public ArbeidsforholdRefDto(@JsonProperty(value = "abakusReferanse") String internReferanse, - @JsonProperty(value = "eksternReferanse", required = true) String eksternReferanse, - @JsonProperty(value = "eksternReferanseSystem") Fagsystem eksternReferanseSystem) { + public ArbeidsforholdRefDto( + @JsonProperty(value = "abakusReferanse") String internReferanse, + @JsonProperty(value = "eksternReferanse", required = true) String eksternReferanse, + @JsonProperty(value = "eksternReferanseSystem") Fagsystem eksternReferanseSystem) { this.abakusReferanse = internReferanse; // kan sende null, abakus må da generere. this.eksternReferanse = Objects.requireNonNull(eksternReferanse, "eksternReferanse"); this.eksternReferanseSystem = Objects.requireNonNull(eksternReferanseSystem, "eksternReferanseSystem"); } - /** - * Hjelpe ctor -default ekstern system er AAREGISTERET inntil videre. - */ - public ArbeidsforholdRefDto(@JsonProperty(value = "abakusReferanse") String internReferanse, - @JsonProperty(value = "eksternReferanse", required = true) String eksternReferanse) { + /** Hjelpe ctor -default ekstern system er AAREGISTERET inntil videre. */ + public ArbeidsforholdRefDto( + @JsonProperty(value = "abakusReferanse") String internReferanse, + @JsonProperty(value = "eksternReferanse", required = true) String eksternReferanse) { this(internReferanse, eksternReferanse, Fagsystem.AAREGISTERET); } @@ -61,8 +66,8 @@ public Fagsystem getEksternReferanseSystem() { @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } @Override @@ -74,13 +79,13 @@ public boolean equals(Object obj) { return false; } var other = getClass().cast(obj); - return Objects.equals(this.abakusReferanse, other.abakusReferanse) && Objects.equals(this.eksternReferanse, other.eksternReferanse) - && Objects.equals(this.eksternReferanseSystem, other.eksternReferanseSystem); + return Objects.equals(this.abakusReferanse, other.abakusReferanse) + && Objects.equals(this.eksternReferanse, other.eksternReferanse) + && Objects.equals(this.eksternReferanseSystem, other.eksternReferanseSystem); } @Override public int hashCode() { return Objects.hash(abakusReferanse, eksternReferanse, eksternReferanseSystem); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdReferanse.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdReferanse.java index 48655fa4f..b551bbc81 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdReferanse.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ArbeidsforholdReferanse.java @@ -1,22 +1,23 @@ package no.nav.abakus.iaygrunnlag; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.UUID; -/** - * Representerer et arbeidsforhold for en arbeidsgiver i en behandling. - */ +/** Representerer et arbeidsforhold for en arbeidsgiver i en behandling. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidsforholdReferanse { @JsonProperty(value = "koblingReferanse", required = true) @@ -66,5 +67,4 @@ public UuidDto getKoblingReferanse() { public ArbeidsforholdRefDto getArbeidsforholdId() { return arbeidsforholdId; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/FnrPersonident.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/FnrPersonident.java index 81a10bd70..f44ae62c0 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/FnrPersonident.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/FnrPersonident.java @@ -1,18 +1,22 @@ package no.nav.abakus.iaygrunnlag; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class FnrPersonident extends PersonIdent { public static final String IDENT_TYPE = "FNR"; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JournalpostId.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JournalpostId.java index 9d253ab34..4d3e89038 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JournalpostId.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JournalpostId.java @@ -1,24 +1,29 @@ package no.nav.abakus.iaygrunnlag; -import java.util.Objects; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonValue; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.Objects; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class JournalpostId { @JsonValue - @Pattern(regexp = "^[\\p{L}\\p{N}_\\.\\-:|]+$", message = "JournalpostId [${validatedValue}] matcher ikke tillatt pattern") + @Pattern( + regexp = "^[\\p{L}\\p{N}_\\.\\-:|]+$", + message = "JournalpostId [${validatedValue}] matcher ikke tillatt pattern") @NotNull private String journalpostId; @@ -53,5 +58,4 @@ public boolean equals(Object obj) { public int hashCode() { return Objects.hash(journalpostId); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JsonObjectMapper.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JsonObjectMapper.java index 2ffd774ac..f978c7e22 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JsonObjectMapper.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/JsonObjectMapper.java @@ -13,20 +13,19 @@ public class JsonObjectMapper { private static final ObjectMapper OM; static { - OM = new ObjectMapper().registerModule(new Jdk8Module()) - .registerModule(new JavaTimeModule()) - .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE) - .setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE) - .setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.NONE) - .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY) - .setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.ANY); + OM = new ObjectMapper() + .registerModule(new Jdk8Module()) + .registerModule(new JavaTimeModule()) + .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE) + .setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE) + .setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.NONE) + .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY) + .setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.ANY); } public static ObjectMapper getMapper() { return OM; } - - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Organisasjon.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Organisasjon.java index bbdc7d144..942ed92ed 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Organisasjon.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Organisasjon.java @@ -1,18 +1,22 @@ package no.nav.abakus.iaygrunnlag; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class Organisasjon extends Aktør { static final String IDENT_TYPE = "ORGNUMMER"; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Periode.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Periode.java index 3f98b987d..364af58c8 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Periode.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/Periode.java @@ -1,22 +1,23 @@ package no.nav.abakus.iaygrunnlag; -import java.time.LocalDate; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; +import java.util.Objects; -/** - * Periode med fom/tom dato. - */ - +/** Periode med fom/tom dato. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class Periode { @JsonProperty(value = "fom") @@ -31,7 +32,6 @@ public Periode(@JsonProperty(value = "fom") LocalDate fom, @JsonProperty(value = throw new IllegalArgumentException("Både fom og tom er null"); } else if (fom != null && tom != null && fom.isAfter(tom)) { throw new IllegalArgumentException("Input data gir umulig periode (fom > tom): [" + fom + ", " + tom + "]"); - } this.fom = fom; this.tom = tom; @@ -66,5 +66,4 @@ public boolean equals(Object obj) { public int hashCode() { return Objects.hash(getFom(), getTom()); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/PersonIdent.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/PersonIdent.java index d22daf94b..b7d791dd1 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/PersonIdent.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/PersonIdent.java @@ -9,10 +9,22 @@ // marker class for aktører av type person @JsonIgnoreProperties(ignoreUnknown = true) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "identType", defaultImpl = Void.class) -@JsonSubTypes({@JsonSubTypes.Type(value = AktørIdPersonident.class, name = AktørIdPersonident.IDENT_TYPE), @JsonSubTypes.Type(value = FnrPersonident.class, name = FnrPersonident.IDENT_TYPE),}) +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "identType", + defaultImpl = Void.class) +@JsonSubTypes({ + @JsonSubTypes.Type(value = AktørIdPersonident.class, name = AktørIdPersonident.IDENT_TYPE), + @JsonSubTypes.Type(value = FnrPersonident.class, name = FnrPersonident.IDENT_TYPE), +}) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public abstract class PersonIdent extends Aktør { @Override diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/UuidDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/UuidDto.java index 0b42f9922..9f540979d 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/UuidDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/UuidDto.java @@ -1,26 +1,31 @@ package no.nav.abakus.iaygrunnlag; -import java.util.Objects; -import java.util.UUID; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonValue; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.Objects; +import java.util.UUID; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class UuidDto { @JsonValue @NotNull - @Pattern(regexp = "\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b", message = "${validatedValue} er ikke gyldig UUID") + @Pattern( + regexp = "\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b", + message = "${validatedValue} er ikke gyldig UUID") private String uuid; protected UuidDto() { @@ -68,5 +73,4 @@ public boolean equals(Object obj) { public int hashCode() { return Objects.hash(uuid); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/AktivitetsAvtaleDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/AktivitetsAvtaleDto.java index 9031dbbcf..aa16bfd5d 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/AktivitetsAvtaleDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/AktivitetsAvtaleDto.java @@ -1,25 +1,28 @@ package no.nav.abakus.iaygrunnlag.arbeid.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMax; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; import no.nav.abakus.iaygrunnlag.Periode; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class AktivitetsAvtaleDto { @JsonProperty("periode") @@ -28,9 +31,9 @@ public class AktivitetsAvtaleDto { private Periode periode; /** - * Det går an å ha stillingprosent mer enn 100%, men innsendingsfeil hos LPS leverandører og manglende Altinn validering - * gjør at i noen historiske tilfeller har man akseptert innsending opp til 500% (typisk skjedd når man har tastet inn ett ukesverks antall - * timer i dag-felt i de systemene). + * Det går an å ha stillingprosent mer enn 100%, men innsendingsfeil hos LPS leverandører og manglende Altinn + * validering gjør at i noen historiske tilfeller har man akseptert innsending opp til 500% (typisk skjedd når man + * har tastet inn ett ukesverks antall timer i dag-felt i de systemene). */ @JsonProperty("stillingsprosent") @Valid @@ -47,8 +50,7 @@ public class AktivitetsAvtaleDto { @Valid private String beskrivelse; - protected AktivitetsAvtaleDto() { - } + protected AktivitetsAvtaleDto() {} public AktivitetsAvtaleDto(@Valid @NotNull Periode periode) { this.periode = periode; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/ArbeidDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/ArbeidDto.java index f3f25d2d1..37ae383ad 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/ArbeidDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/ArbeidDto.java @@ -1,22 +1,24 @@ package no.nav.abakus.iaygrunnlag.arbeid.v1; -import java.util.List; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.PersonIdent; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidDto { @JsonProperty("person") @@ -28,8 +30,7 @@ public class ArbeidDto { @Valid private List yrkesaktiviteter; - protected ArbeidDto() { - } + protected ArbeidDto() {} public ArbeidDto(PersonIdent person) { Objects.requireNonNull(person, "person"); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/PermisjonDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/PermisjonDto.java index 2b3c5876c..65e52dcf7 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/PermisjonDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/PermisjonDto.java @@ -1,26 +1,28 @@ package no.nav.abakus.iaygrunnlag.arbeid.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.PermisjonsbeskrivelseType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class PermisjonDto { @JsonProperty(value = "periode", required = true) @@ -28,24 +30,22 @@ public class PermisjonDto { @Valid private Periode periode; - /** - * Permisjon type, hvis oppgitt. Kan være null. - */ + /** Permisjon type, hvis oppgitt. Kan være null. */ @JsonProperty(value = "type", required = true) private PermisjonsbeskrivelseType type; /** - * Prosent sats med to desimaler - min 0.00 - 100.00. - * Pga inntastingfeil og manglende validering i LPS systemer og Altinn har man historisk akseptert mottatt permisjonsprosenter langt over - * 100%. C'est la vie. + * Prosent sats med to desimaler - min 0.00 - 100.00. Pga inntastingfeil og manglende validering i LPS systemer og + * Altinn har man historisk akseptert mottatt permisjonsprosenter langt over 100%. C'est la vie. */ @JsonProperty("prosentsats") - @Valid @DecimalMin(value = "0.00", message = "permisjon prosentsats [${validatedValue}] må være >= {value}") @DecimalMax(value = "500.00", message = "permisjon prosentsats [${validatedValue}] må være <= {value}") + @Valid + @DecimalMin(value = "0.00", message = "permisjon prosentsats [${validatedValue}] må være >= {value}") + @DecimalMax(value = "500.00", message = "permisjon prosentsats [${validatedValue}] må være <= {value}") // insane maks verdi, men Aa-reg sier så private BigDecimal prosentsats; - protected PermisjonDto() { - } + protected PermisjonDto() {} public PermisjonDto(@NotNull @Valid Periode periode, @NotNull PermisjonsbeskrivelseType type) { Objects.requireNonNull(periode, "periode"); @@ -78,5 +78,4 @@ public PermisjonDto medProsentsats(int prosentsats) { setProsentsats(BigDecimal.valueOf(prosentsats)); return this; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/YrkesaktivitetDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/YrkesaktivitetDto.java index b8fc40e08..235a6d90a 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/YrkesaktivitetDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeid/v1/YrkesaktivitetDto.java @@ -1,27 +1,29 @@ package no.nav.abakus.iaygrunnlag.arbeid.v1; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.List; +import java.util.Objects; +import java.util.Optional; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class YrkesaktivitetDto { @JsonProperty("arbeidsgiver") @@ -45,7 +47,10 @@ public class YrkesaktivitetDto { private List permisjoner; @JsonProperty("navnArbeidsgiverUtland") - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "Yrkesaktivitet#navnArbeidsgiverUtland [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = + "Yrkesaktivitet#navnArbeidsgiverUtland [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") @Valid private String navnArbeidsgiverUtland; @@ -64,7 +69,8 @@ public YrkesaktivitetDto(String arbeidType) { @AssertTrue(message = "Må ha minst en av aktivitetsAvtaler eller permisjoner") private boolean isOk() { - boolean ok = (aktivitetsAvtaler != null && !aktivitetsAvtaler.isEmpty()) || (permisjoner != null && !permisjoner.isEmpty()); + boolean ok = (aktivitetsAvtaler != null && !aktivitetsAvtaler.isEmpty()) + || (permisjoner != null && !permisjoner.isEmpty()); return ok; } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsavtaleDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsavtaleDto.java index 42eea471d..78bf4dd65 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsavtaleDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsavtaleDto.java @@ -1,22 +1,8 @@ package no.nav.abakus.iaygrunnlag.arbeidsforhold.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; +import java.math.BigDecimal; import no.nav.abakus.iaygrunnlag.Periode; - -public record ArbeidsavtaleDto( @Valid @NotNull Periode periode, @Valid BigDecimal stillingsprosent) { -} +public record ArbeidsavtaleDto(@Valid @NotNull Periode periode, @Valid BigDecimal stillingsprosent) {} diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdDto.java index 40e1e5388..27e58e0a7 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdDto.java @@ -1,26 +1,27 @@ package no.nav.abakus.iaygrunnlag.arbeidsforhold.v1; -import java.util.List; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; import no.nav.abakus.iaygrunnlag.Periode; -import no.nav.abakus.iaygrunnlag.arbeid.v1.AktivitetsAvtaleDto; import no.nav.abakus.iaygrunnlag.arbeid.v1.PermisjonDto; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidsforholdDto { @JsonProperty(value = "arbeidsgiver", required = true) @@ -39,15 +40,16 @@ public class ArbeidsforholdDto { @JsonProperty("ansettelsePerioder") @Valid private List ansettelsesperiode; + @JsonProperty("arbeidsavtaler") @Valid private List arbeidsavtaler; + @JsonProperty("permisjoner") @Valid private List permisjoner; - protected ArbeidsforholdDto() { - } + protected ArbeidsforholdDto() {} public ArbeidsforholdDto(Aktør arbeidsgiver, ArbeidType type) { this.arbeidsgiver = arbeidsgiver; @@ -73,9 +75,11 @@ public ArbeidType getType() { public List getAnsettelsesperiode() { return ansettelsesperiode; } + public List getPermisjoner() { return permisjoner; } + public List getArbeidsavtaler() { return arbeidsavtaler; } @@ -83,9 +87,11 @@ public List getArbeidsavtaler() { public void setAnsettelsesperiode(List ansettelsesperiode) { this.ansettelsesperiode = ansettelsesperiode; } + public void setArbeidsavtaler(List arbeidsavtaler) { this.arbeidsavtaler = arbeidsavtaler; } + public void setPermisjoner(List permisjoner) { this.permisjoner = permisjoner; } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdInformasjon.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdInformasjon.java index d6a9704ab..8d2c138cb 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdInformasjon.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdInformasjon.java @@ -1,21 +1,23 @@ package no.nav.abakus.iaygrunnlag.arbeidsforhold.v1; -import java.util.List; -import java.util.UUID; - -import jakarta.validation.Valid; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import java.util.List; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseGrunnlagDto; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidsforholdInformasjon { @JsonProperty(value = "referanser") @@ -27,13 +29,13 @@ public class ArbeidsforholdInformasjon { private List overstyringer; /** - * Grunnlag referanse, samme som {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagReferanse()} men nyttig når returnerer denne DTO alene. + * Grunnlag referanse, samme som {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagReferanse()} men nyttig når + * returnerer denne DTO alene. */ @JsonProperty(value = "grunnlagReferanse") private UUID grunnlagRef; - public ArbeidsforholdInformasjon() { - } + public ArbeidsforholdInformasjon() {} public ArbeidsforholdInformasjon(UUID grunnlagRef) { this.grunnlagRef = grunnlagRef; @@ -68,6 +70,4 @@ public ArbeidsforholdInformasjon medOverstyringer(List arbeidsforholdOverstyrtePerioder; - /** - * Saksbehandler har angitt permisjon. - */ + /** Saksbehandler har angitt permisjon. */ @JsonProperty(value = "bekreftetPermisjon") @Valid private BekreftetPermisjon bekreftetPermisjon; @@ -152,7 +147,8 @@ public void setArbeidsforholdOverstyrtePerioder(List arbeidsforholdOver this.arbeidsforholdOverstyrtePerioder = arbeidsforholdOverstyrtePerioder; } - public ArbeidsforholdOverstyringDto medArbeidsforholdOverstyrtePerioder(List arbeidsforholdOverstyrtePerioder) { + public ArbeidsforholdOverstyringDto medArbeidsforholdOverstyrtePerioder( + List arbeidsforholdOverstyrtePerioder) { setArbeidsforholdOverstyrtePerioder(arbeidsforholdOverstyrtePerioder); return this; } @@ -192,7 +188,8 @@ public ArbeidsforholdOverstyringDto medBekreftetPermisjon(BekreftetPermisjon bek return this; } - public ArbeidsforholdOverstyringDto medBekreftetPermisjon(LocalDate fom, LocalDate tom, BekreftetPermisjonStatus status) { + public ArbeidsforholdOverstyringDto medBekreftetPermisjon( + LocalDate fom, LocalDate tom, BekreftetPermisjonStatus status) { if (fom == null && tom == null) { return this; } else { @@ -203,5 +200,4 @@ public ArbeidsforholdOverstyringDto medBekreftetPermisjon(LocalDate fom, LocalDa public Optional getBekreftetPermisjon() { return Optional.ofNullable(bekreftetPermisjon); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdReferanseDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdReferanseDto.java index 9e45ae0ec..ad7691f74 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdReferanseDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/ArbeidsforholdReferanseDto.java @@ -1,26 +1,26 @@ package no.nav.abakus.iaygrunnlag.arbeidsforhold.v1; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; -/** - * Et arbeidsforhold for en arbeidsgiver. - */ +/** Et arbeidsforhold for en arbeidsgiver. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ArbeidsforholdReferanseDto { @JsonProperty(value = "arbeidsgiver", required = true) @@ -34,8 +34,10 @@ public class ArbeidsforholdReferanseDto { private ArbeidsforholdRefDto arbeidsforholdId; @JsonCreator - public ArbeidsforholdReferanseDto(@JsonProperty(value = "arbeidsgiver", required = true) @Valid @NotNull Aktør arbeidsgiver, - @JsonProperty(value = "arbeidsforholdId", required = true) @Valid @NotNull ArbeidsforholdRefDto arbeidsforholdId) { + public ArbeidsforholdReferanseDto( + @JsonProperty(value = "arbeidsgiver", required = true) @Valid @NotNull Aktør arbeidsgiver, + @JsonProperty(value = "arbeidsforholdId", required = true) @Valid @NotNull + ArbeidsforholdRefDto arbeidsforholdId) { Objects.requireNonNull(arbeidsgiver, "arbeidsgiver"); Objects.requireNonNull(arbeidsforholdId, "arbeidsforholdId"); this.arbeidsgiver = arbeidsgiver; @@ -59,8 +61,8 @@ public boolean equals(Object obj) { return false; } var other = getClass().cast(obj); - return Objects.equals(this.arbeidsgiver, other.arbeidsgiver) && Objects.equals(this.arbeidsforholdId, other.arbeidsforholdId); - + return Objects.equals(this.arbeidsgiver, other.arbeidsgiver) + && Objects.equals(this.arbeidsforholdId, other.arbeidsforholdId); } @Override @@ -70,6 +72,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/BekreftetPermisjon.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/BekreftetPermisjon.java index 1ccc1bbbf..8bdc3f056 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/BekreftetPermisjon.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/arbeidsforhold/v1/BekreftetPermisjon.java @@ -1,24 +1,26 @@ package no.nav.abakus.iaygrunnlag.arbeidsforhold.v1; -import java.time.LocalDate; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.BekreftetPermisjonStatus; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class BekreftetPermisjon { @JsonProperty(value = "status") @@ -31,8 +33,9 @@ public class BekreftetPermisjon { private Periode periode; @JsonCreator - public BekreftetPermisjon(@JsonProperty("periode") @Valid @NotNull Periode periode, - @JsonProperty(value = "status") @NotNull BekreftetPermisjonStatus status) { + public BekreftetPermisjon( + @JsonProperty("periode") @Valid @NotNull Periode periode, + @JsonProperty(value = "status") @NotNull BekreftetPermisjonStatus status) { Objects.requireNonNull(periode, "periode"); this.periode = periode; this.status = status; @@ -71,5 +74,4 @@ public int hashCode() { public String toString() { return getClass().getSimpleName() + "<" + "periode=" + periode + ", status=" + status + '>'; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/InntekterDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/InntekterDto.java index d7d5be4dc..e9dd9f86a 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/InntekterDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/InntekterDto.java @@ -1,27 +1,27 @@ package no.nav.abakus.iaygrunnlag.inntekt.v1; -import java.util.List; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.PersonIdent; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class InntekterDto { - /** - * Bruker som har inntektene. - */ + /** Bruker som har inntektene. */ @JsonProperty("person") @Valid private PersonIdent person; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingDto.java index 06c82930a..9d03805b2 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingDto.java @@ -1,28 +1,28 @@ package no.nav.abakus.iaygrunnlag.inntekt.v1; -import java.util.List; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class UtbetalingDto { - /** - * Arbeidsgiver for utbetaling. Kan være null . - */ + /** Arbeidsgiver for utbetaling. Kan være null . */ @JsonProperty(value = "arbeidsgiver") @Valid private Aktør arbeidsgiver; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingsPostDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingsPostDto.java index 9ffadbfaa..9a9205351 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingsPostDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntekt/v1/UtbetalingsPostDto.java @@ -1,17 +1,15 @@ package no.nav.abakus.iaygrunnlag.inntekt.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.InntektYtelseType; import no.nav.abakus.iaygrunnlag.kodeverk.InntektspostType; @@ -20,7 +18,12 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class UtbetalingsPostDto { @JsonProperty(value = "inntektspostType", required = true) @@ -38,23 +41,18 @@ public class UtbetalingsPostDto { @JsonProperty("lønnsinntektBeskrivelse") private LønnsinntektBeskrivelse lønnsinntektBeskrivelse; - /** - * Tillater her både positive og negative beløp (korreksjoner). Min/max verdi håndteres av mottager og avsender. - */ + /** Tillater her både positive og negative beløp (korreksjoner). Min/max verdi håndteres av mottager og avsender. */ @JsonProperty("beløp") @Valid @NotNull private BigDecimal beløp; - /** - * Satt dersom dette gjelder en ytelse, ellers ikke (henger sammen med {@link UtbetalingDto#getKilde()}) - */ + /** Satt dersom dette gjelder en ytelse, ellers ikke (henger sammen med {@link UtbetalingDto#getKilde()}) */ @JsonProperty(value = "inntektYtelseType") @Valid private InntektYtelseType inntektYtelseType; - protected UtbetalingsPostDto() { - } + protected UtbetalingsPostDto() {} public UtbetalingsPostDto(Periode periode, InntektspostType inntektspostType) { Objects.requireNonNull(periode, "periode"); @@ -89,11 +87,11 @@ public UtbetalingsPostDto medSkattAvgiftType(SkatteOgAvgiftsregelType skattAvgif } public UtbetalingsPostDto medLønnsinntektbeskrivelse(LønnsinntektBeskrivelse lønnsinntektBeskrivelse) { - setLønnsinntektBeskrivelse(LønnsinntektBeskrivelse.UDEFINERT.equals(lønnsinntektBeskrivelse) ? null : lønnsinntektBeskrivelse); + setLønnsinntektBeskrivelse( + LønnsinntektBeskrivelse.UDEFINERT.equals(lønnsinntektBeskrivelse) ? null : lønnsinntektBeskrivelse); return this; } - public Periode getPeriode() { return periode; } @@ -140,13 +138,13 @@ public boolean equals(Object obj) { } var other = this.getClass().cast(obj); - return Objects.equals(inntektspostType, other.inntektspostType) && Objects.equals(periode, other.periode) && - Objects.equals(inntektYtelseType, other.inntektYtelseType); + return Objects.equals(inntektspostType, other.inntektspostType) + && Objects.equals(periode, other.periode) + && Objects.equals(inntektYtelseType, other.inntektYtelseType); } @Override public int hashCode() { return Objects.hash(inntektspostType, periode, inntektYtelseType); } - } diff --git "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/Frav\303\246rDto.java" "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/Frav\303\246rDto.java" index c3c5fef64..1e72d6a0f 100644 --- "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/Frav\303\246rDto.java" +++ "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/Frav\303\246rDto.java" @@ -1,23 +1,25 @@ package no.nav.abakus.iaygrunnlag.inntektsmelding.v1; -import java.time.Duration; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.time.Duration; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class FraværDto { @JsonProperty(value = "periode", required = true) @@ -25,16 +27,15 @@ public class FraværDto { @NotNull private Periode periode; - /** - * Hvis satt, angir en del av en dag. hvis ikke satt - regn hele dager med fravær. - */ + /** Hvis satt, angir en del av en dag. hvis ikke satt - regn hele dager med fravær. */ @JsonProperty(value = "varighetPerDag") @Valid private Duration varighetPerDag; @JsonCreator - public FraværDto(@JsonProperty(value = "periode", required = true) @NotNull Periode periode, - @JsonProperty(value = "varighetPerDag") Duration varighetPerDag) { + public FraværDto( + @JsonProperty(value = "periode", required = true) @NotNull Periode periode, + @JsonProperty(value = "varighetPerDag") Duration varighetPerDag) { this.periode = Objects.requireNonNull(periode, "periode"); this.varighetPerDag = varighetPerDag; } @@ -70,6 +71,7 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/GraderingDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/GraderingDto.java index 7ca731954..dd6f46311 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/GraderingDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/GraderingDto.java @@ -1,25 +1,27 @@ package no.nav.abakus.iaygrunnlag.inntektsmelding.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class GraderingDto { @JsonProperty(value = "periode", required = true) diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingDto.java index 4141b271a..fa04490ec 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingDto.java @@ -5,17 +5,10 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.iaygrunnlag.Aktør; -import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; -import no.nav.abakus.iaygrunnlag.JournalpostId; -import no.nav.abakus.iaygrunnlag.kodeverk.InntektsmeldingInnsendingsårsakType; - import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; - import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; @@ -25,10 +18,19 @@ import java.util.Collections; import java.util.List; import java.util.Objects; +import no.nav.abakus.iaygrunnlag.Aktør; +import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; +import no.nav.abakus.iaygrunnlag.JournalpostId; +import no.nav.abakus.iaygrunnlag.kodeverk.InntektsmeldingInnsendingsårsakType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class InntektsmeldingDto { @JsonProperty(value = "arbeidsgiver", required = true) @@ -77,29 +79,27 @@ public class InntektsmeldingDto { @JsonProperty(value = "erNærRelasjon") private Boolean erNærRelasjon; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty("inntektBeløp") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal inntektBeløp; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty("refusjonsBeløpPerMnd") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal refusjonsBeløpPerMnd; @JsonProperty(value = "kanalreferanse") - @Pattern(regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "Inntektsmelding kanalreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "Inntektsmelding kanalreferanse [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String kanalreferanse; - /** - * NB: tilsvarer avsendersystem i Inntektsmelding skjema. - */ + /** NB: tilsvarer avsendersystem i Inntektsmelding skjema. */ @JsonProperty(value = "kildesystem") - @Pattern(regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "Inntektsmelding kildeSystem [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\s\\t\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "Inntektsmelding kildeSystem [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String kildesystem; @JsonProperty(value = "refusjonOpphører") @@ -112,7 +112,11 @@ public class InntektsmeldingDto { @NotNull private InntektsmeldingInnsendingsårsakType innsendingsårsak; - public InntektsmeldingDto(Aktør arbeidsgiver, JournalpostId journalpostId, LocalDateTime innsendingstidspunkt, LocalDate mottattDato) { + public InntektsmeldingDto( + Aktør arbeidsgiver, + JournalpostId journalpostId, + LocalDateTime innsendingstidspunkt, + LocalDate mottattDato) { Objects.requireNonNull(arbeidsgiver, "arbeidsgiver"); Objects.requireNonNull(journalpostId, "journalpostId"); Objects.requireNonNull(innsendingstidspunkt, "innsendingstidspunkt"); @@ -120,7 +124,8 @@ public InntektsmeldingDto(Aktør arbeidsgiver, JournalpostId journalpostId, Loca this.arbeidsgiver = arbeidsgiver; this.journalpostId = journalpostId; this.mottattDato = mottattDato; - this.innsendingstidspunkt = innsendingstidspunkt.atZone(ZoneId.systemDefault()).toOffsetDateTime(); + this.innsendingstidspunkt = + innsendingstidspunkt.atZone(ZoneId.systemDefault()).toOffsetDateTime(); } protected InntektsmeldingDto() { @@ -232,7 +237,8 @@ public void setNaturalytelser(List naturalytelser) { } public void setRefusjonsBeløpPerMnd(BigDecimal refusjonsBeløpPerMnd) { - this.refusjonsBeløpPerMnd = refusjonsBeløpPerMnd == null ? null : refusjonsBeløpPerMnd.setScale(2, RoundingMode.HALF_UP); + this.refusjonsBeløpPerMnd = + refusjonsBeløpPerMnd == null ? null : refusjonsBeløpPerMnd.setScale(2, RoundingMode.HALF_UP); } public LocalDate getStartDatoPermisjon() { @@ -343,5 +349,4 @@ public InntektsmeldingDto medUtsettelsePerioder(List utset public void setNærRelasjon(boolean naerRelasjon) { this.erNærRelasjon = naerRelasjon; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingerDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingerDto.java index 3f746300f..43e384186 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingerDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/InntektsmeldingerDto.java @@ -5,16 +5,19 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; - import java.util.Collections; import java.util.List; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class InntektsmeldingerDto { @JsonProperty(value = "inntektsmeldinger", required = true) diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/NaturalytelseDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/NaturalytelseDto.java index f5968560a..ded931207 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/NaturalytelseDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/NaturalytelseDto.java @@ -5,21 +5,23 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.iaygrunnlag.Periode; -import no.nav.abakus.iaygrunnlag.kodeverk.NaturalytelseType; - import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; - import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Objects; +import no.nav.abakus.iaygrunnlag.Periode; +import no.nav.abakus.iaygrunnlag.kodeverk.NaturalytelseType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class NaturalytelseDto { @JsonProperty(value = "periode", required = true) @@ -31,9 +33,7 @@ public class NaturalytelseDto { @NotNull private NaturalytelseType type; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "beløpPerMnd") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal beløpPerMnd; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonDto.java index 36aa08681..8e84febe4 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonDto.java @@ -1,23 +1,26 @@ package no.nav.abakus.iaygrunnlag.inntektsmelding.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.Objects; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class RefusjonDto { @JsonProperty(value = "fom", required = true) @@ -25,20 +28,18 @@ public class RefusjonDto { @NotNull private LocalDate fom; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "refusjonBeløpPerMnd") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal refusjonBeløpPerMnd; - protected RefusjonDto() { - } + protected RefusjonDto() {} public RefusjonDto(LocalDate fom, BigDecimal refusjonBeløpPerMnd) { Objects.requireNonNull(fom, "fom"); this.fom = fom; - this.refusjonBeløpPerMnd = refusjonBeløpPerMnd == null ? null : refusjonBeløpPerMnd.setScale(2, RoundingMode.HALF_UP); + this.refusjonBeløpPerMnd = + refusjonBeløpPerMnd == null ? null : refusjonBeløpPerMnd.setScale(2, RoundingMode.HALF_UP); } public RefusjonDto(LocalDate fom, int refusjonBeløpPerMnd) { diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoDto.java index a8fdbbac1..724003523 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoDto.java @@ -5,18 +5,20 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.iaygrunnlag.Aktør; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; - import java.time.LocalDate; import java.util.Objects; +import no.nav.abakus.iaygrunnlag.Aktør; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class RefusjonskravDatoDto { @JsonProperty(value = "arbeidsgiver", required = true) @@ -39,11 +41,11 @@ public class RefusjonskravDatoDto { @Valid private LocalDate førsteInnsendingAvRefusjonskrav; - - public RefusjonskravDatoDto(Aktør arbeidsgiver, - LocalDate førsteInnsendingAvRefusjonskrav, - LocalDate førsteDagMedRefusjonskrav, - boolean harRefusjonFraStart) { + public RefusjonskravDatoDto( + Aktør arbeidsgiver, + LocalDate førsteInnsendingAvRefusjonskrav, + LocalDate førsteDagMedRefusjonskrav, + boolean harRefusjonFraStart) { Objects.requireNonNull(arbeidsgiver, "arbeidsgiver"); Objects.requireNonNull(arbeidsgiver, "førsteInnsendingAvRefusjonskrav"); Objects.requireNonNull(arbeidsgiver, "førsteDagMedRefusjonskrav"); @@ -75,7 +77,8 @@ public boolean harRefusjonFraStart() { @Override public String toString() { - return "RefusjonskravDatoDto{" + "arbeidsgiver=" + arbeidsgiver + ", førsteDagMedRefusjonskrav=" + førsteDagMedRefusjonskrav - + ", harRefusjonFraStart=" + harRefusjonFraStart + ", førsteInnsendingAvRefusjonskrav=" + førsteInnsendingAvRefusjonskrav + '}'; + return "RefusjonskravDatoDto{" + "arbeidsgiver=" + arbeidsgiver + ", førsteDagMedRefusjonskrav=" + + førsteDagMedRefusjonskrav + ", harRefusjonFraStart=" + harRefusjonFraStart + + ", førsteInnsendingAvRefusjonskrav=" + førsteInnsendingAvRefusjonskrav + '}'; } } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoerDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoerDto.java index 7cee72735..b0d7ce478 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoerDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/RefusjonskravDatoerDto.java @@ -1,19 +1,22 @@ package no.nav.abakus.iaygrunnlag.inntektsmelding.v1; -import java.util.List; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class RefusjonskravDatoerDto { @JsonProperty(value = "refusjonskravDatoer", required = true) diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/UtsettelsePeriodeDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/UtsettelsePeriodeDto.java index 05cf05c0b..15e93480b 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/UtsettelsePeriodeDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/inntektsmelding/v1/UtsettelsePeriodeDto.java @@ -1,22 +1,24 @@ package no.nav.abakus.iaygrunnlag.inntektsmelding.v1; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.UtsettelseÅrsakType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class UtsettelsePeriodeDto { @JsonProperty(value = "periode", required = true) @@ -27,8 +29,7 @@ public class UtsettelsePeriodeDto { @JsonProperty(value = "utsettelseÅrsak") private UtsettelseÅrsakType utsettelseÅrsak; - protected UtsettelsePeriodeDto() { - } + protected UtsettelsePeriodeDto() {} public UtsettelsePeriodeDto(Periode periode) { this(periode, null); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittAnnenAktivitetDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittAnnenAktivitetDto.java index 5a9678e80..6fa6233fb 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittAnnenAktivitetDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittAnnenAktivitetDto.java @@ -1,23 +1,25 @@ package no.nav.abakus.iaygrunnlag.oppgittopptjening.v1; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittAnnenAktivitetDto { @JsonProperty(value = "periode", required = true) @@ -30,8 +32,9 @@ public class OppgittAnnenAktivitetDto { private ArbeidType arbeidTypeDto; @JsonCreator - public OppgittAnnenAktivitetDto(@JsonProperty(value = "periode", required = true) @Valid @NotNull Periode periode, - @JsonProperty(value = "arbeidType", required = true) @NotNull ArbeidType arbeidType) { + public OppgittAnnenAktivitetDto( + @JsonProperty(value = "periode", required = true) @Valid @NotNull Periode periode, + @JsonProperty(value = "arbeidType", required = true) @NotNull ArbeidType arbeidType) { Objects.requireNonNull(periode, "periode"); Objects.requireNonNull(arbeidType, "arbeidType"); this.periode = periode; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittArbeidsforholdDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittArbeidsforholdDto.java index 01415f50e..2bdc6dfb1 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittArbeidsforholdDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittArbeidsforholdDto.java @@ -1,29 +1,31 @@ package no.nav.abakus.iaygrunnlag.oppgittopptjening.v1; -import java.math.BigDecimal; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.Digits; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.math.BigDecimal; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.ArbeidType; import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittArbeidsforholdDto { @JsonProperty(value = "periode", required = true) @@ -43,9 +45,7 @@ public class OppgittArbeidsforholdDto { @NotNull private Landkode landkode = Landkode.NOR; - /** - * Tillater kun positive verdier. - */ + /** Tillater kun positive verdier. */ @JsonProperty("inntekt") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") @DecimalMax(value = "9999999999.00", message = "beløp [${validatedValue}] må være >= {value}") @@ -56,12 +56,16 @@ public class OppgittArbeidsforholdDto { * Oppgis normalt dersom ikke orgnr kan gis. F.eks for utlandske virsomheter, eller noen tilfeller Fiskere med Lott. */ @JsonProperty(value = "virksomhetNavn") - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "Oppgitt Arbeidsforhold - Virksomhet navn [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = + "Oppgitt Arbeidsforhold - Virksomhet navn [${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String virksomhetNavn; @JsonCreator - public OppgittArbeidsforholdDto(@JsonProperty(value = "periode", required = true) Periode periode, - @JsonProperty(value = "arbeidType", required = true) ArbeidType arbeidType) { + public OppgittArbeidsforholdDto( + @JsonProperty(value = "periode", required = true) Periode periode, + @JsonProperty(value = "arbeidType", required = true) ArbeidType arbeidType) { Objects.requireNonNull(periode, "periode"); Objects.requireNonNull(arbeidType, "arbeidType"); this.periode = periode; diff --git "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittEgenN\303\246ringDto.java" "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittEgenN\303\246ringDto.java" index 41b588bd3..a13342c41 100644 --- "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittEgenN\303\246ringDto.java" +++ "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittEgenN\303\246ringDto.java" @@ -1,22 +1,19 @@ package no.nav.abakus.iaygrunnlag.oppgittopptjening.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; -import jakarta.validation.constraints.Size; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Organisasjon; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.Landkode; @@ -24,7 +21,12 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.ALWAYS, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittEgenNæringDto { @JsonProperty(value = "periode", required = true) @@ -40,13 +42,17 @@ public class OppgittEgenNæringDto { private VirksomhetType virksomhetType; @JsonProperty(value = "regnskapsførerNavn") - @Size(max=400) - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Size(max = 400) + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String regnskapsførerNavn; @JsonProperty(value = "regnskapsførerTlf") - @Size(max=100) - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "[${validatedValue}] matcher ikke oppgitt pattern [{regexp}]") + @Size(max = 100) + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "[${validatedValue}] matcher ikke oppgitt pattern [{regexp}]") // har caser som har sluppet gjennom selvbetjening med alfa private String regnskapsførerTlf; @@ -54,8 +60,10 @@ public class OppgittEgenNæringDto { * Oppgis normalt dersom ikke orgnr kan gis. F.eks for utlandske virsomheter, eller noen tilfeller Fiskere med Lott. */ @JsonProperty(value = "virksomhetNavn", required = false) - @Size(max=100) - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Size(max = 100) + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String virksomhetNavn; @JsonProperty(value = "landkode", required = true) @@ -70,12 +78,10 @@ public class OppgittEgenNæringDto { private Boolean erVarigEndring; @JsonProperty(value = "endringBegrunnelse") - @Size(max=10000) + @Size(max = 10000) private String endringBegrunnelse; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty("bruttoInntekt") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal bruttoInntekt; @@ -89,8 +95,7 @@ public class OppgittEgenNæringDto { @JsonProperty(value = "erNyIArbeidslivet") private Boolean nyIArbeidslivet; - protected OppgittEgenNæringDto() { - } + protected OppgittEgenNæringDto() {} public OppgittEgenNæringDto(Periode periode) { Objects.requireNonNull(periode, "periode"); @@ -278,5 +283,4 @@ public void setVirksomhetNavn(String virksomhetNavn) { setVirksomhetNavn(virksomhetNavn); return this; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansDto.java index 332215c8a..93b16c835 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansDto.java @@ -1,23 +1,24 @@ package no.nav.abakus.iaygrunnlag.oppgittopptjening.v1; -import java.util.List; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; -/** - * Oppgitt frilansinntekter fra søker. - */ +/** Oppgitt frilansinntekter fra søker. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittFrilansDto { @JsonProperty(value = "harInntektFraFosterhjem") @@ -34,8 +35,7 @@ public class OppgittFrilansDto { @Valid private List frilansoppdrag; - protected OppgittFrilansDto() { - } + protected OppgittFrilansDto() {} public OppgittFrilansDto(List frilansoppdrag) { Objects.requireNonNull(frilansoppdrag, "frilansoppdrag"); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansoppdragDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansoppdragDto.java index ba2368311..0efcaccc0 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansoppdragDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittFrilansoppdragDto.java @@ -5,21 +5,23 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.iaygrunnlag.Periode; - import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; - import java.math.BigDecimal; import java.util.Objects; +import no.nav.abakus.iaygrunnlag.Periode; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittFrilansoppdragDto { @JsonProperty(value = "periode", required = true) @@ -29,18 +31,17 @@ public class OppgittFrilansoppdragDto { @JsonProperty(value = "oppdragsgiver") @Size(max = 100) - @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") + @Pattern( + regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", + message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]") private String oppdragsgiver; - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty("inntekt") @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal inntekt; - protected OppgittFrilansoppdragDto() { - } + protected OppgittFrilansoppdragDto() {} public OppgittFrilansoppdragDto(Periode periode, String oppdragsgiver) { Objects.requireNonNull(periode, "periode"); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittOpptjeningDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittOpptjeningDto.java index 4040c7d1c..ae4edc83a 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittOpptjeningDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/oppgittopptjening/v1/OppgittOpptjeningDto.java @@ -1,28 +1,30 @@ package no.nav.abakus.iaygrunnlag.oppgittopptjening.v1; -import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.util.List; -import java.util.Objects; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.AssertTrue; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.util.List; +import java.util.Objects; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.JournalpostId; import no.nav.abakus.iaygrunnlag.UuidDto; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OppgittOpptjeningDto { @JsonProperty(value = "journalpostId") @@ -49,9 +51,7 @@ public class OppgittOpptjeningDto { @Valid private OppgittFrilansDto frilans; - /** - * Unik referanse for dette aggregatet. Kan benyttes f.eks. til å de-duplisere overførte data. - */ + /** Unik referanse for dette aggregatet. Kan benyttes f.eks. til å de-duplisere overførte data. */ @JsonProperty(value = "eksternReferanse", required = true) @Valid private UuidDto eksternReferanse; @@ -65,10 +65,11 @@ public class OppgittOpptjeningDto { } @JsonCreator - public OppgittOpptjeningDto(@JsonProperty(value = "journalpostId") @Valid JournalpostId journalpostId, - @JsonProperty(value = "innsendingstidspunkt") @Valid OffsetDateTime innsendingstidspunkt, - @JsonProperty(value = "eksternReferanse", required = true) @Valid UUID eksternReferanse, - @JsonProperty(value = "opprettetTidspunkt", required = true) @Valid OffsetDateTime tidspunkt) { + public OppgittOpptjeningDto( + @JsonProperty(value = "journalpostId") @Valid JournalpostId journalpostId, + @JsonProperty(value = "innsendingstidspunkt") @Valid OffsetDateTime innsendingstidspunkt, + @JsonProperty(value = "eksternReferanse", required = true) @Valid UUID eksternReferanse, + @JsonProperty(value = "opprettetTidspunkt", required = true) @Valid OffsetDateTime tidspunkt) { Objects.requireNonNull(eksternReferanse, "eksternReferanse"); Objects.requireNonNull(tidspunkt, "tidspunkt"); this.journalpostId = journalpostId; @@ -77,8 +78,9 @@ public OppgittOpptjeningDto(@JsonProperty(value = "journalpostId") @Valid Journa this.opprettetTidspunkt = tidspunkt; } - public OppgittOpptjeningDto(@JsonProperty(value = "eksternReferanse", required = true) @Valid UUID eksternReferanse, - @JsonProperty(value = "opprettetTidspunkt", required = true) @Valid LocalDateTime tidspunkt) { + public OppgittOpptjeningDto( + @JsonProperty(value = "eksternReferanse", required = true) @Valid UUID eksternReferanse, + @JsonProperty(value = "opprettetTidspunkt", required = true) @Valid LocalDateTime tidspunkt) { Objects.requireNonNull(eksternReferanse, "eksternReferanse"); Objects.requireNonNull(tidspunkt, "tidspunkt"); this.eksternReferanse = new UuidDto(eksternReferanse); @@ -87,8 +89,10 @@ public OppgittOpptjeningDto(@JsonProperty(value = "eksternReferanse", required = @AssertTrue(message = "Må oppgi minst en av arbeidsforhold, egenNæring, annenAktivitet eller frilans") private boolean isOk() { - return (arbeidsforhold != null && !arbeidsforhold.isEmpty()) || (egenNæring != null && !egenNæring.isEmpty()) || (annenAktivitet != null - && !annenAktivitet.isEmpty()) || (frilans != null); + return (arbeidsforhold != null && !arbeidsforhold.isEmpty()) + || (egenNæring != null && !egenNæring.isEmpty()) + || (annenAktivitet != null && !annenAktivitet.isEmpty()) + || (frilans != null); } public List getArbeidsforhold() { diff --git "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/Akt\303\270rDatoRequest.java" "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/Akt\303\270rDatoRequest.java" index 4ab385c9a..4e76bf592 100644 --- "a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/Akt\303\270rDatoRequest.java" +++ "b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/Akt\303\270rDatoRequest.java" @@ -1,29 +1,29 @@ package no.nav.abakus.iaygrunnlag.request; -import java.time.LocalDate; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; -/** - * Input request strutkur for en Aktør for en periode (evt. dato) - */ +/** Input request strutkur for en Aktør for en periode (evt. dato) */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class AktørDatoRequest { @JsonProperty(value = "aktør", required = true) @@ -40,9 +40,10 @@ public class AktørDatoRequest { private YtelseType ytelse; @JsonCreator - public AktørDatoRequest(@JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "periode", required = true) @NotNull @Valid Periode periode, - @JsonProperty(value = "ytelse") YtelseType ytelse) { + public AktørDatoRequest( + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "periode", required = true) @NotNull @Valid Periode periode, + @JsonProperty(value = "ytelse") YtelseType ytelse) { this.aktør = aktør; this.periode = periode; this.ytelse = ytelse; @@ -66,9 +67,7 @@ public YtelseType getYtelse() { return ytelse; } - /** - * Fungerer kun dersom fom/tom er like (perioden dekker kun en dag) - */ + /** Fungerer kun dersom fom/tom er like (perioden dekker kun en dag) */ public LocalDate getDato() { if (Objects.equals(periode.getFom(), periode.getTom()) && periode.getFom() != null) { return periode.getFom(); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InnhentRegisterdataRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InnhentRegisterdataRequest.java index 34aff81dc..2800fe7aa 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InnhentRegisterdataRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InnhentRegisterdataRequest.java @@ -1,8 +1,5 @@ package no.nav.abakus.iaygrunnlag.request; -import java.util.Set; -import java.util.UUID; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; @@ -10,22 +7,26 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; +import java.util.Set; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public class InnhentRegisterdataRequest { - /** - * Saksnummer alle grunnlag og koblinger er linket til. - */ + /** Saksnummer alle grunnlag og koblinger er linket til. */ @JsonProperty(value = "saksnummer", required = true) @NotNull @Pattern(regexp = "^[A-Za-z0-9_\\.\\-]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") @@ -65,14 +66,15 @@ public class InnhentRegisterdataRequest { @JsonProperty(value = "elementer") @Valid - private Set elementer = Set.of(RegisterdataType.ARBEIDSFORHOLD, RegisterdataType.INNTEKT_PENSJONSGIVENDE, - RegisterdataType.YTELSE); - - public InnhentRegisterdataRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, - @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, - @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør) { + private Set elementer = + Set.of(RegisterdataType.ARBEIDSFORHOLD, RegisterdataType.INNTEKT_PENSJONSGIVENDE, RegisterdataType.YTELSE); + + public InnhentRegisterdataRequest( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, + @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, + @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør) { this.saksnummer = saksnummer; this.referanse = referanse; this.ytelseType = ytelseType; @@ -81,12 +83,13 @@ public InnhentRegisterdataRequest(@JsonProperty(value = "saksnummer", required = } @JsonCreator - public InnhentRegisterdataRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, - @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, - @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "elementer", required = true) @NotNull @Valid Set elementer) { + public InnhentRegisterdataRequest( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse, + @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, + @JsonProperty(value = "opplysningsperiode", required = true) @NotNull @Valid Periode opplysningsperiode, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "elementer", required = true) @NotNull @Valid Set elementer) { this(saksnummer, referanse, ytelseType, opplysningsperiode, aktør); this.elementer = elementer; } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektArbeidYtelseGrunnlagRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektArbeidYtelseGrunnlagRequest.java index 29b896689..1a0b6969b 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektArbeidYtelseGrunnlagRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektArbeidYtelseGrunnlagRequest.java @@ -1,16 +1,5 @@ package no.nav.abakus.iaygrunnlag.request; -import java.util.Collection; -import java.util.EnumSet; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.AssertTrue; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; @@ -18,61 +7,67 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.Collection; +import java.util.EnumSet; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; /** - * Spesifikasjon for å hente opp et InntektArbeidYtelseGrunnlag. - * Merk at props her kan ekskludere/kombineres. - * Må minimum angi personident og en eller flere referanser (grunnlag, kobling, saksnummer) + * Spesifikasjon for å hente opp et InntektArbeidYtelseGrunnlag. Merk at props her kan ekskludere/kombineres. Må minimum + * angi personident og en eller flere referanser (grunnlag, kobling, saksnummer) */ @JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) public class InntektArbeidYtelseGrunnlagRequest { @JsonProperty("dataset") @Valid public Set dataset = EnumSet.of(Dataset.REGISTER, Dataset.OVERSTYRT); - /** - * Angi hvem grunnlaget hentes for. - */ + /** Angi hvem grunnlaget hentes for. */ @JsonProperty(value = "personIdent", required = true) @Valid @NotNull private PersonIdent person; + @JsonProperty(value = "ytelseType") @Valid private YtelseType ytelseType; - /** - * Forespørsel på grunnlag referanse gir eksakt grunnlag forespurt (også utdaterte versjoner). - */ + /** Forespørsel på grunnlag referanse gir eksakt grunnlag forespurt (også utdaterte versjoner). */ @JsonProperty("grunnlagReferanse") @Valid private UUID grunnlagReferanse; - /** - * Forespørsel på grunnlag referanse gir eksakt grunnlag forespurt (også utdaterte versjoner). - */ + /** Forespørsel på grunnlag referanse gir eksakt grunnlag forespurt (også utdaterte versjoner). */ @JsonProperty("sisteKjenteGrunnlagReferanse") @Valid private UUID sisteKjenteGrunnlagReferanse; /** - * Forespørsel på kobling referanse gir kun siste grunnlag på koblingen (kobling er typisk eks. behandling). Ignoreres dersom - * grunnlagReferanse er satt. + * Forespørsel på kobling referanse gir kun siste grunnlag på koblingen (kobling er typisk eks. behandling). + * Ignoreres dersom grunnlagReferanse er satt. */ @JsonProperty("koblingReferanse") @Valid private UUID koblingReferanse; - /** - * Angi evt. hvilken sak det gjelder. - */ + /** Angi evt. hvilken sak det gjelder. */ @JsonProperty(value = "saksnummer") @Valid @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") private String saksnummer; /** - * Hvis satt til true hentes første opprettete versjon av grunnlaget, hvis false eller ikke satt hentes den siste aktive grunnlaget. + * Hvis satt til true hentes første opprettete versjon av grunnlaget, hvis false eller ikke satt hentes den siste + * aktive grunnlaget. */ @JsonProperty(value = "grunnlagVersjon") @Valid @@ -83,7 +78,8 @@ protected InntektArbeidYtelseGrunnlagRequest() { } @JsonCreator - public InntektArbeidYtelseGrunnlagRequest(@JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { + public InntektArbeidYtelseGrunnlagRequest( + @JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { this.person = Objects.requireNonNull(person, "person"); } @@ -164,30 +160,28 @@ public GrunnlagVersjon getGrunnlagVersjon() { return grunnlagVersjon; } - /** - * Setter scope for hvilke grunnlag som hentes per behandling. - */ + /** Setter scope for hvilke grunnlag som hentes per behandling. */ public enum GrunnlagVersjon { - /** - * Alle grunnlag versjoner per behandling. Egnet kun ved full migrering. - */ + /** Alle grunnlag versjoner per behandling. Egnet kun ved full migrering. */ ALLE, /** - * Default valg. Kun siste (dvs. aktiv) grunnlag per behandling. Typisk dersom man ønsker kun gjeldende grunnlag. + * Default valg. Kun siste (dvs. aktiv) grunnlag per behandling. Typisk dersom man ønsker kun gjeldende + * grunnlag. */ SISTE, /** - * første grunnlag per behandling (kan være aktivt hvis det også er eneste), ellers er det typisk starttilstand for behandlingen. - * Normalt vil en konsument heller være interesset i {@link #SISTE} eller {@link #FØRSTE_OG_SISTE}. + * første grunnlag per behandling (kan være aktivt hvis det også er eneste), ellers er det typisk starttilstand + * for behandlingen. Normalt vil en konsument heller være interesset i {@link #SISTE} eller + * {@link #FØRSTE_OG_SISTE}. */ FØRSTE, /** - * Både første og siste grunnlag per behandling (se #SISTE, #FØRSTE). Ignorerer mellomliggende versjoner på samme behandling. Brukes typisk - * for å håndtere Revurdering (om det har vært endringer i behandlingen). + * Både første og siste grunnlag per behandling (se #SISTE, #FØRSTE). Ignorerer mellomliggende versjoner på + * samme behandling. Brukes typisk for å håndtere Revurdering (om det har vært endringer i behandlingen). */ FØRSTE_OG_SISTE, ; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerMottattRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerMottattRequest.java index 7c034299e..30ce09520 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerMottattRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerMottattRequest.java @@ -1,23 +1,25 @@ package no.nav.abakus.iaygrunnlag.request; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.inntektsmelding.v1.InntektsmeldingerDto; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) public class InntektsmeldingerMottattRequest { @JsonProperty(value = "saksnummer", required = true) @@ -41,18 +43,18 @@ public class InntektsmeldingerMottattRequest { @Valid private InntektsmeldingerDto inntektsmeldinger; - /** - * Optional - for now, gjør required når K9, FP sender. - */ + /** Optional - for now, gjør required når K9, FP sender. */ @JsonProperty(value = "ytelseType") private YtelseType ytelseType = YtelseType.UDEFINERT; @JsonCreator - public InntektsmeldingerMottattRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "ytelseType") @Valid YtelseType ytelseType, - @JsonProperty(value = "inntektsmeldinger", required = true) @NotNull @Valid InntektsmeldingerDto inntektsmeldinger) { + public InntektsmeldingerMottattRequest( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "ytelseType") @Valid YtelseType ytelseType, + @JsonProperty(value = "inntektsmeldinger", required = true) @NotNull @Valid + InntektsmeldingerDto inntektsmeldinger) { this.saksnummer = saksnummer; this.koblingReferanse = koblingReferanse; this.aktør = aktør; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerRequest.java index 08633fd25..3a22f620e 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InntektsmeldingerRequest.java @@ -3,29 +3,28 @@ import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import no.nav.abakus.iaygrunnlag.PersonIdent; -import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; - import java.util.Objects; +import no.nav.abakus.iaygrunnlag.PersonIdent; +import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; /** - * Spesifikasjon for å hente opp et InntektArbeidYtelseGrunnlag. - * Merk at props her kan ekskludere/kombineres. - * Må minimum angi personident og en eller flere referanser (grunnlag, kobling, saksnummer) + * Spesifikasjon for å hente opp et InntektArbeidYtelseGrunnlag. Merk at props her kan ekskludere/kombineres. Må minimum + * angi personident og en eller flere referanser (grunnlag, kobling, saksnummer) */ @JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) public class InntektsmeldingerRequest { - /** - * Angi hvem grunnlaget hentes for. - */ + /** Angi hvem grunnlaget hentes for. */ @JsonProperty(value = "personIdent", required = true) @Valid @NotNull @@ -34,9 +33,7 @@ public class InntektsmeldingerRequest { @JsonProperty(value = "ytelseType") private YtelseType ytelseType; - /** - * Angi hvilken sak det gjelder. - */ + /** Angi hvilken sak det gjelder. */ @JsonProperty(value = "saksnummer") @Valid @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") @@ -47,7 +44,8 @@ protected InntektsmeldingerRequest() { } @JsonCreator - public InntektsmeldingerRequest(@JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { + public InntektsmeldingerRequest( + @JsonProperty(value = "personIdent", required = true) @Valid @NotNull PersonIdent person) { this.person = Objects.requireNonNull(person, "person"); } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/KopierGrunnlagRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/KopierGrunnlagRequest.java index fcb5a2a10..7b187d1ef 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/KopierGrunnlagRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/KopierGrunnlagRequest.java @@ -1,13 +1,5 @@ package no.nav.abakus.iaygrunnlag.request; -import java.util.EnumSet; -import java.util.Set; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; @@ -15,62 +7,80 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.EnumSet; +import java.util.Set; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public class KopierGrunnlagRequest { @JsonProperty("dataset") @Valid - public Set dataset = EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.REGISTER, Dataset.OVERSTYRT, Dataset.INNTEKTSMELDING); - /** - * Saksnummer alle grunnlag og koblinger er linket til. - */ + public Set dataset = + EnumSet.of(Dataset.OPPGITT_OPPTJENING, Dataset.REGISTER, Dataset.OVERSTYRT, Dataset.INNTEKTSMELDING); + /** Saksnummer alle grunnlag og koblinger er linket til. */ @JsonProperty(value = "saksnummer", required = true) @NotNull @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "[${validatedValue}] matcher ikke tillatt pattern '{value}'") @Valid private String saksnummer; + @JsonProperty(value = "nyReferanse", required = true) @Valid @NotNull private UUID nyReferanse; + @JsonProperty(value = "ytelseType", required = true) @NotNull private YtelseType ytelseType; + @JsonProperty(value = "opplysningsperiode") @Valid private Periode opplysningsperiode; + @JsonProperty(value = "opplysningsperiodeSkattegrunnlag") @Valid private Periode opplysningsperiodeSkattegrunnlag; + @JsonProperty(value = "aktør", required = true) @NotNull @Valid private PersonIdent aktør; + @JsonProperty(value = "annenPartAktør") @Valid private PersonIdent annenPartAktør; + @JsonProperty(value = "opptjeningsperiode") @Valid private Periode opptjeningsperiode; + @JsonProperty(value = "gammelReferanse", required = true) @Valid @NotNull private UUID gammelReferanse; @JsonCreator - public KopierGrunnlagRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "nyReferanse", required = true) @Valid @NotNull UUID nyReferanse, - @JsonProperty(value = "gammelReferanse", required = true) @Valid @NotNull UUID gammelReferanse, - @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "dataset", required = true) @NotNull @Valid Set dataset) { + public KopierGrunnlagRequest( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "nyReferanse", required = true) @Valid @NotNull UUID nyReferanse, + @JsonProperty(value = "gammelReferanse", required = true) @Valid @NotNull UUID gammelReferanse, + @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "dataset", required = true) @NotNull @Valid Set dataset) { this.saksnummer = saksnummer; this.nyReferanse = nyReferanse; this.gammelReferanse = gammelReferanse; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/OppgittOpptjeningMottattRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/OppgittOpptjeningMottattRequest.java index 7b43f4e02..916a7a275 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/OppgittOpptjeningMottattRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/OppgittOpptjeningMottattRequest.java @@ -1,24 +1,26 @@ package no.nav.abakus.iaygrunnlag.request; -import java.util.Objects; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import java.util.Objects; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; import no.nav.abakus.iaygrunnlag.oppgittopptjening.v1.OppgittOpptjeningDto; @JsonIgnoreProperties(ignoreUnknown = true) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) @JsonInclude(value = JsonInclude.Include.NON_ABSENT, content = JsonInclude.Include.NON_EMPTY) public class OppgittOpptjeningMottattRequest { @@ -43,18 +45,18 @@ public class OppgittOpptjeningMottattRequest { @Valid private OppgittOpptjeningDto oppgittOpptjening; - /** - * Optional - for now, gjør required når K9, FP sender. - */ + /** Optional - for now, gjør required når K9, FP sender. */ @JsonProperty(value = "ytelseType") private YtelseType ytelseType = YtelseType.UDEFINERT; @JsonCreator - public OppgittOpptjeningMottattRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, - @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, - @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, - @JsonProperty(value = "ytelseType") YtelseType ytelseType, - @JsonProperty(value = "oppgittOpptjening", required = true) @NotNull @Valid OppgittOpptjeningDto oppgittOpptjening) { + public OppgittOpptjeningMottattRequest( + @JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer, + @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, + @JsonProperty(value = "aktør", required = true) @NotNull @Valid PersonIdent aktør, + @JsonProperty(value = "ytelseType") YtelseType ytelseType, + @JsonProperty(value = "oppgittOpptjening", required = true) @NotNull @Valid + OppgittOpptjeningDto oppgittOpptjening) { this.saksnummer = saksnummer; this.koblingReferanse = koblingReferanse; this.aktør = aktør; @@ -104,13 +106,15 @@ public boolean equals(Object obj) { return false; } var other = (OppgittOpptjeningMottattRequest) obj; - return Objects.equals(saksnummer, other.saksnummer) && Objects.equals(koblingReferanse, other.koblingReferanse) && Objects.equals(aktør, - other.aktør) && Objects.equals(ytelseType, other.ytelseType); - + return Objects.equals(saksnummer, other.saksnummer) + && Objects.equals(koblingReferanse, other.koblingReferanse) + && Objects.equals(aktør, other.aktør) + && Objects.equals(ytelseType, other.ytelseType); } @Override public String toString() { - return getClass().getSimpleName() + ""; + return getClass().getSimpleName() + ""; } } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/RegisterdataType.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/RegisterdataType.java index 863879479..9b4bf7c9f 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/RegisterdataType.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/RegisterdataType.java @@ -2,12 +2,13 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; - import no.nav.abakus.iaygrunnlag.kodeverk.Kodeverdi; -@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY) +@JsonAutoDetect( + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + fieldVisibility = Visibility.ANY) public enum RegisterdataType implements Kodeverdi { - ARBEIDSFORHOLD, LIGNET_NÆRING, INNTEKT_PENSJONSGIVENDE, @@ -24,5 +25,4 @@ public static RegisterdataType fraKode(String kode) { public String getKode() { return name(); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/SjekkStatusRequest.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/SjekkStatusRequest.java index 54607d857..e10e604b7 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/SjekkStatusRequest.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/SjekkStatusRequest.java @@ -1,9 +1,5 @@ package no.nav.abakus.iaygrunnlag.request; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Pattern; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonCreator; @@ -11,12 +7,19 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import no.nav.abakus.iaygrunnlag.UuidDto; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, creatorVisibility = Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = Visibility.NONE, + getterVisibility = Visibility.NONE, + setterVisibility = Visibility.NONE, + isGetterVisibility = Visibility.NONE, + creatorVisibility = Visibility.NONE) public class SjekkStatusRequest { @JsonProperty(value = "referanse", required = true) @@ -30,8 +33,10 @@ public class SjekkStatusRequest { private String taskReferanse; @JsonCreator - public SjekkStatusRequest(@JsonProperty(value = "referanse", required = true) @Valid @NotNull UuidDto referanse, - @JsonProperty(value = "taskReferanse", required = true) @NotNull @Pattern(regexp = "\\d+") String taskReferanse) { + public SjekkStatusRequest( + @JsonProperty(value = "referanse", required = true) @Valid @NotNull UuidDto referanse, + @JsonProperty(value = "taskReferanse", required = true) @NotNull @Pattern(regexp = "\\d+") + String taskReferanse) { this.referanse = referanse; this.taskReferanse = taskReferanse; } @@ -51,5 +56,4 @@ public String getTaskReferanse() { public void setTaskReferanse(String taskReferanse) { this.taskReferanse = taskReferanse; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatDto.java index 84dbb4940..eb96e976a 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatDto.java @@ -1,27 +1,29 @@ package no.nav.abakus.iaygrunnlag.v1; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.time.ZoneId; import java.util.List; import java.util.Objects; import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; - import no.nav.abakus.iaygrunnlag.UuidDto; import no.nav.abakus.iaygrunnlag.arbeid.v1.ArbeidDto; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public abstract class InntektArbeidYtelseAggregatDto> { @JsonProperty(value = "opprettetTidspunkt", required = true) @@ -29,9 +31,7 @@ public abstract class InntektArbeidYtelseAggregatDto { +public class InntektArbeidYtelseAggregatOverstyrtDto + extends InntektArbeidYtelseAggregatDto { protected InntektArbeidYtelseAggregatOverstyrtDto() { // default ctor @@ -33,5 +32,4 @@ public InntektArbeidYtelseAggregatOverstyrtDto(LocalDateTime tidspunkt, UUID agg public InntektArbeidYtelseAggregatOverstyrtDto(OffsetDateTime tidspunkt, String aggregatReferanse) { super(tidspunkt, UUID.fromString(aggregatReferanse)); } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatRegisterDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatRegisterDto.java index fdc2803f6..423107442 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatRegisterDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseAggregatRegisterDto.java @@ -4,22 +4,20 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.iaygrunnlag.UuidDto; -import no.nav.abakus.iaygrunnlag.inntekt.v1.InntekterDto; -import no.nav.abakus.iaygrunnlag.ytelse.v1.YtelserDto; - import jakarta.validation.Valid; - import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; import java.util.UUID; +import no.nav.abakus.iaygrunnlag.UuidDto; +import no.nav.abakus.iaygrunnlag.inntekt.v1.InntekterDto; +import no.nav.abakus.iaygrunnlag.ytelse.v1.YtelserDto; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -public class InntektArbeidYtelseAggregatRegisterDto extends InntektArbeidYtelseAggregatDto { +public class InntektArbeidYtelseAggregatRegisterDto + extends InntektArbeidYtelseAggregatDto { @JsonProperty(value = "inntekter") @Valid diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagDto.java index 614853b80..95e5af3d6 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagDto.java @@ -1,21 +1,19 @@ package no.nav.abakus.iaygrunnlag.v1; -import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.UuidDto; import no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.ArbeidsforholdInformasjon; @@ -25,18 +23,26 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class InntektArbeidYtelseGrunnlagDto { private static final ZoneId DEFAULT_ZONE = ZoneId.systemDefault(); /** * Unk referanse for grunnlaget. Hver versjon av grunnlaget vil få en ny grunnlagReferanse. + * *

    - *

    Ved skriving

    - Hvis referanse ikke finnes fra før vil data skrives ned på nytt og få denne referanse. Hvis de finnes fra før vil - * det - * opprettes nytt grunnlag (med ny grunnlagreferanse) der data som sendes ned skrives sammen med data som henger på angitt - * grunnlagReferanse. + * + *

    Ved skriving

    + * + * - Hvis referanse ikke finnes fra før vil data skrives ned på nytt og få denne referanse. Hvis de finnes fra før + * vil det opprettes nytt grunnlag (med ny grunnlagreferanse) der data som sendes ned skrives sammen med data som + * henger på angitt grunnlagReferanse. */ @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @@ -44,8 +50,8 @@ public class InntektArbeidYtelseGrunnlagDto { private UuidDto grunnlagReferanse; /** - * Brukes til å koble sammen flere grunnlag (der kun siste er aktivt). Normalt behandlingUuid. En koblingReferanse kan spenne over flere - * grunnlagReferanser. Brukes f.eks. til å finne siste grunnlag på angitt kobling. + * Brukes til å koble sammen flere grunnlag (der kun siste er aktivt). Normalt behandlingUuid. En koblingReferanse + * kan spenne over flere grunnlagReferanser. Brukes f.eks. til å finne siste grunnlag på angitt kobling. */ @JsonProperty(value = "koblingReferanse", required = true) @Valid @@ -77,9 +83,7 @@ public class InntektArbeidYtelseGrunnlagDto { @Valid private InntektsmeldingerDto inntektsmeldinger; - /** - * Opptjening bruker har oppgitt selv. - */ + /** Opptjening bruker har oppgitt selv. */ @JsonProperty(value = "oppgittOpptjening") @Valid private OppgittOpptjeningDto oppgittOpptjening; @@ -93,11 +97,13 @@ public class InntektArbeidYtelseGrunnlagDto { private ArbeidsforholdInformasjon arbeidsforholdInformasjon; @JsonCreator - public InntektArbeidYtelseGrunnlagDto(@JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, - @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull OffsetDateTime grunnlagTidspunkt, - @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UUID grunnlagReferanse, - @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, - @JsonProperty(value = "ytelseType") YtelseType ytelseType) { + public InntektArbeidYtelseGrunnlagDto( + @JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, + @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull + OffsetDateTime grunnlagTidspunkt, + @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UUID grunnlagReferanse, + @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UUID koblingReferanse, + @JsonProperty(value = "ytelseType") YtelseType ytelseType) { Objects.requireNonNull(person, "person"); Objects.requireNonNull(grunnlagTidspunkt, "grunnlagTidspunkt"); Objects.requireNonNull(grunnlagReferanse, "grunnlagReferanse"); @@ -109,11 +115,12 @@ public InntektArbeidYtelseGrunnlagDto(@JsonProperty(value = "person", required = this.ytelseType = ytelseType; } - public InntektArbeidYtelseGrunnlagDto(@JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, - @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull LocalDateTime grunnlagTidspunkt, - @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UuidDto grunnlagReferanse, - @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UuidDto koblingReferanse, - @JsonProperty(value = "ytelseType") YtelseType ytelseType) { + public InntektArbeidYtelseGrunnlagDto( + @JsonProperty(value = "person", required = true) @Valid @NotNull PersonIdent person, + @JsonProperty(value = "grunnlagTidspunkt", required = true) @Valid @NotNull LocalDateTime grunnlagTidspunkt, + @JsonProperty(value = "grunnlagReferanse", required = true) @Valid @NotNull UuidDto grunnlagReferanse, + @JsonProperty(value = "koblingReferanse", required = true) @Valid @NotNull UuidDto koblingReferanse, + @JsonProperty(value = "ytelseType") YtelseType ytelseType) { Objects.requireNonNull(person, "person"); Objects.requireNonNull(grunnlagTidspunkt, "grunnlagTidspunkt"); Objects.requireNonNull(grunnlagReferanse, "grunnlagReferanse"); @@ -137,8 +144,11 @@ public boolean equals(Object obj) { return false; } InntektArbeidYtelseGrunnlagDto other = (InntektArbeidYtelseGrunnlagDto) obj; - //TODO bør sammenligne alle feltene, eller ha en kommentar som sier hvorfor kun utvalgte felt brukes i equals-metoden - return Objects.equals(person, other.person) && Objects.equals(register, other.register) && Objects.equals(overstyrt, other.overstyrt); + // TODO bør sammenligne alle feltene, eller ha en kommentar som sier hvorfor kun utvalgte felt brukes i + // equals-metoden + return Objects.equals(person, other.person) + && Objects.equals(register, other.register) + && Objects.equals(overstyrt, other.overstyrt); } public ArbeidsforholdInformasjon getArbeidsforholdInformasjon() { @@ -214,7 +224,8 @@ public int hashCode() { return Objects.hash(person, register, overstyrt); } - public InntektArbeidYtelseGrunnlagDto medArbeidsforholdInformasjon(ArbeidsforholdInformasjon arbeidsforholdInformasjon) { + public InntektArbeidYtelseGrunnlagDto medArbeidsforholdInformasjon( + ArbeidsforholdInformasjon arbeidsforholdInformasjon) { setArbeidsforholdInformasjon(arbeidsforholdInformasjon); return this; } @@ -229,7 +240,8 @@ public InntektArbeidYtelseGrunnlagDto medOppgittOpptjening(OppgittOpptjeningDto return this; } - public InntektArbeidYtelseGrunnlagDto medOverstyrtOppgittOpptjening(OppgittOpptjeningDto overstyrtOppgittOpptjening) { + public InntektArbeidYtelseGrunnlagDto medOverstyrtOppgittOpptjening( + OppgittOpptjeningDto overstyrtOppgittOpptjening) { setOverstyrtOppgittOpptjening(overstyrtOppgittOpptjening); return this; } @@ -243,5 +255,4 @@ public InntektArbeidYtelseGrunnlagDto medRegister(InntektArbeidYtelseAggregatReg setRegister(register); return this; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagSakSnapshotDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagSakSnapshotDto.java index 4205b625a..4a8620872 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagSakSnapshotDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/InntektArbeidYtelseGrunnlagSakSnapshotDto.java @@ -2,34 +2,32 @@ import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import no.nav.abakus.iaygrunnlag.Periode; -import no.nav.abakus.iaygrunnlag.PersonIdent; -import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; - import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.time.ZoneId; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import no.nav.abakus.iaygrunnlag.Periode; +import no.nav.abakus.iaygrunnlag.PersonIdent; +import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; -/** - * Representeer et snapshot aggregert av alle grunnlag knyttet til samme sak. - */ +/** Representeer et snapshot aggregert av alle grunnlag knyttet til samme sak. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class InntektArbeidYtelseGrunnlagSakSnapshotDto { private static final ZoneId DEFAULT_ZONE = ZoneId.systemDefault(); - /** - * Saksnummer alle grunnlag og koblinger er linket til. - */ + /** Saksnummer alle grunnlag og koblinger er linket til. */ @JsonProperty(value = "saksnummer", required = true) @NotNull @Valid @@ -50,12 +48,14 @@ public class InntektArbeidYtelseGrunnlagSakSnapshotDto { /** * Liste av InntektArbeidYtelseGrunnlag. - *

    - * Merk:
    + * + *

    Merk:
    + * *

      - *
    • Det kan kun være ett aktivt grunnlag {@link Konvolutt#erAktiv()} med samme - * {@link InntektArbeidYtelseGrunnlagDto#getKoblingReferanse()}, men flere inaktive
    • - *
    • Rekkefølge gitt av {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagTidspunkt()} angir historisk rekkefølge.
    • + *
    • Det kan kun være ett aktivt grunnlag {@link Konvolutt#erAktiv()} med samme + * {@link InntektArbeidYtelseGrunnlagDto#getKoblingReferanse()}, men flere inaktive + *
    • Rekkefølge gitt av {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagTidspunkt()} angir historisk + * rekkefølge. *
    */ @JsonProperty(value = "grunnlag", required = true) @@ -67,15 +67,17 @@ public class InntektArbeidYtelseGrunnlagSakSnapshotDto { private OffsetDateTime snapshotTidspunkt = OffsetDateTime.now(DEFAULT_ZONE); @JsonCreator - public InntektArbeidYtelseGrunnlagSakSnapshotDto(@JsonProperty(value = "saksnummer", required = true) String saksnummer, - @JsonProperty(value = "ytelseType", required = true) YtelseType ytelseType, - @JsonProperty(value = "aktør", required = true) PersonIdent aktør) { + public InntektArbeidYtelseGrunnlagSakSnapshotDto( + @JsonProperty(value = "saksnummer", required = true) String saksnummer, + @JsonProperty(value = "ytelseType", required = true) YtelseType ytelseType, + @JsonProperty(value = "aktør", required = true) PersonIdent aktør) { this.saksnummer = saksnummer; this.ytelseType = ytelseType; this.aktør = aktør; } - public void leggTil(InntektArbeidYtelseGrunnlagDto dto, Boolean aktiv, Periode opplysningsperiode, Periode opptjeningsperiode) { + public void leggTil( + InntektArbeidYtelseGrunnlagDto dto, Boolean aktiv, Periode opplysningsperiode, Periode opptjeningsperiode) { grunnlag.add(new Konvolutt(dto, aktiv, opplysningsperiode, opptjeningsperiode)); } @@ -138,19 +140,26 @@ public void setSaksnummer(String saksnummer) { @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) - @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) + @JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public static class Konvolutt { /** - * Unik og immutable grunnlag. Data kan dedupliseres ved å se på {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagReferanse()} + * Unik og immutable grunnlag. Data kan dedupliseres ved å se på + * {@link InntektArbeidYtelseGrunnlagDto#getGrunnlagReferanse()} */ @JsonProperty(value = "data", required = true) @Valid private InntektArbeidYtelseGrunnlagDto data; /** - * Hvis satt angir at dette grunnlaget er aktivt (eller inaktivt). Hvis ikke satt - så ubestemt. - * Merk at dette flagget er transient og vil endre seg over tid (når nye grunnnlag blir aktive så blir gamle grunnlag inaktive) + * Hvis satt angir at dette grunnlaget er aktivt (eller inaktivt). Hvis ikke satt - så ubestemt. Merk at dette + * flagget er transient og vil endre seg over tid (når nye grunnnlag blir aktive så blir gamle grunnlag + * inaktive) */ @JsonProperty(value = "aktiv", required = false) private Boolean aktiv; @@ -165,10 +174,11 @@ public static class Konvolutt { private Periode opptjeningsperiode; @JsonCreator - public Konvolutt(@JsonProperty(value = "data", required = true) @Valid InntektArbeidYtelseGrunnlagDto data, - @JsonProperty(value = "aktiv", required = false) Boolean aktiv, - @JsonProperty(value = "opplysningsperiode", required = true) Periode opplysningsperiode, - @JsonProperty(value = "opptjeningsperiode", required = false) Periode opptjeningsperiode) { + public Konvolutt( + @JsonProperty(value = "data", required = true) @Valid InntektArbeidYtelseGrunnlagDto data, + @JsonProperty(value = "aktiv", required = false) Boolean aktiv, + @JsonProperty(value = "opplysningsperiode", required = true) Periode opplysningsperiode, + @JsonProperty(value = "opptjeningsperiode", required = false) Periode opptjeningsperiode) { this.data = data; this.aktiv = aktiv; this.opptjeningsperiode = opptjeningsperiode; @@ -190,7 +200,5 @@ public Periode getOpptjeningsperiode() { public InntektArbeidYtelseGrunnlagDto getData() { return data; } - } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/OverstyrtInntektArbeidYtelseDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/OverstyrtInntektArbeidYtelseDto.java index 657cc7182..45f41a878 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/OverstyrtInntektArbeidYtelseDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/v1/OverstyrtInntektArbeidYtelseDto.java @@ -1,42 +1,42 @@ package no.nav.abakus.iaygrunnlag.v1; -import java.util.Objects; -import java.util.UUID; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.Objects; +import java.util.UUID; import no.nav.abakus.iaygrunnlag.PersonIdent; import no.nav.abakus.iaygrunnlag.arbeidsforhold.v1.ArbeidsforholdInformasjon; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType; @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class OverstyrtInntektArbeidYtelseDto { @JsonProperty(value = "ytelseType") @NotNull private YtelseType ytelseType; - /** - * Angi hvem grunnlaget hentes for. - */ + /** Angi hvem grunnlaget hentes for. */ @JsonProperty(value = "personIdent", required = true) @Valid @NotNull private PersonIdent person; /** - * Brukes til å koble sammen flere grunnlag (der kun siste er aktivt). Normalt behandlingUuid. En koblingReferanse kan spenne over flere - * grunnlagReferanser. Brukes f.eks. til å finne siste grunnlag på angitt kobling. + * Brukes til å koble sammen flere grunnlag (der kun siste er aktivt). Normalt behandlingUuid. En koblingReferanse + * kan spenne over flere grunnlagReferanser. Brukes f.eks. til å finne siste grunnlag på angitt kobling. */ @JsonProperty(value = "koblingReferanse") @Valid @@ -44,11 +44,14 @@ public class OverstyrtInntektArbeidYtelseDto { /** * Unk referanse for grunnlaget. Hver versjon av grunnlaget vil få en ny grunnlagReferanse. + * *

    - *

    Ved skriving

    - Hvis referanse ikke finnes fra før vil data skrives ned på nytt og få denne referanse. Hvis de finnes fra før vil - * det - * opprettes nytt grunnlag (med ny grunnlagreferanse) der data som sendes ned skrives sammen med data som henger på angitt - * grunnlagReferanse. + * + *

    Ved skriving

    + * + * - Hvis referanse ikke finnes fra før vil data skrives ned på nytt og få denne referanse. Hvis de finnes fra før + * vil det opprettes nytt grunnlag (med ny grunnlagreferanse) der data som sendes ned skrives sammen med data som + * henger på angitt grunnlagReferanse. */ @JsonProperty(value = "grunnlagReferanse") @Valid @@ -58,20 +61,19 @@ public class OverstyrtInntektArbeidYtelseDto { @Valid private InntektArbeidYtelseAggregatOverstyrtDto overstyrt; - /** - * Referanser til arbeidsforhold satt av saksbehandler. - */ + /** Referanser til arbeidsforhold satt av saksbehandler. */ @JsonProperty(value = "arbeidsforholdInformasjon") @Valid private ArbeidsforholdInformasjon arbeidsforholdInformasjon; @JsonCreator - public OverstyrtInntektArbeidYtelseDto(@JsonProperty(value = "personIdent", required = true) PersonIdent person, - @JsonProperty(value = "grunnlagReferanse") @Valid UUID grunnlagReferanse, - @JsonProperty(value = "koblingReferanse") @Valid UUID koblingReferanse, - @JsonProperty(value = "ytelseType") YtelseType ytelseType, - @JsonProperty(value = "arbeidsforholdInformasjon") ArbeidsforholdInformasjon arbeidsforholdInformasjon, - @JsonProperty(value = "overstyrt") InntektArbeidYtelseAggregatOverstyrtDto overstyrt) { + public OverstyrtInntektArbeidYtelseDto( + @JsonProperty(value = "personIdent", required = true) PersonIdent person, + @JsonProperty(value = "grunnlagReferanse") @Valid UUID grunnlagReferanse, + @JsonProperty(value = "koblingReferanse") @Valid UUID koblingReferanse, + @JsonProperty(value = "ytelseType") YtelseType ytelseType, + @JsonProperty(value = "arbeidsforholdInformasjon") ArbeidsforholdInformasjon arbeidsforholdInformasjon, + @JsonProperty(value = "overstyrt") InntektArbeidYtelseAggregatOverstyrtDto overstyrt) { this.ytelseType = Objects.requireNonNull(ytelseType, "ytelseType"); this.person = Objects.requireNonNull(person, "person"); if (koblingReferanse == null && grunnlagReferanse == null) { @@ -110,10 +112,10 @@ public YtelseType getYtelseType() { @Override public String toString() { - return getClass().getSimpleName() + "<" + "person=*****" + ", ytelseType=" + ytelseType + ( - koblingReferanse == null ? "" : ", koblingReferanse=" + koblingReferanse) + ( - grunnlagReferanse == null ? "" : ", grunnlagReferanse" + grunnlagReferanse) + (overstyrt == null ? "" : ", overstyrtIay={...}") + ( - arbeidsforholdInformasjon == null ? "" : ", arbeidsforholdInformasjon={...}") + ">"; + return getClass().getSimpleName() + "<" + "person=*****" + ", ytelseType=" + ytelseType + + (koblingReferanse == null ? "" : ", koblingReferanse=" + koblingReferanse) + + (grunnlagReferanse == null ? "" : ", grunnlagReferanse" + grunnlagReferanse) + + (overstyrt == null ? "" : ", overstyrtIay={...}") + + (arbeidsforholdInformasjon == null ? "" : ", arbeidsforholdInformasjon={...}") + ">"; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvisningDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvisningDto.java index 298656ed2..865e1f9cf 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvisningDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvisningDto.java @@ -1,21 +1,18 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.List; - +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMax; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; - +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; import no.nav.abakus.iaygrunnlag.Periode; @JsonIgnoreProperties(ignoreUnknown = true) @@ -27,25 +24,19 @@ public class AnvisningDto { @Valid private Periode periode; - /** - * Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "beløp") @Valid @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal beløp; - /** - * Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "dagsats") @Valid @DecimalMin(value = "0.00", message = "beløp [${validatedValue}] må være >= {value}") private BigDecimal dagsats; - /** - * Maks utbetalingsgrad er 200% (forekommer i meldekort fra Arena). - */ + /** Maks utbetalingsgrad er 200% (forekommer i meldekort fra Arena). */ @JsonProperty(value = "utbetalingsgrad") @Valid @DecimalMin(value = "0.00", message = "prosentsats [${validatedValue}] må være >= {value}") @@ -57,7 +48,6 @@ public class AnvisningDto { @Size private List andeler = new ArrayList<>(); - protected AnvisningDto() { // default ctor } @@ -130,5 +120,4 @@ public AnvisningDto medUtbetalingsgrad(int utbetalingsgrad) { setUtbetalingsgrad(BigDecimal.valueOf(utbetalingsgrad)); return this; } - } diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvistAndelDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvistAndelDto.java index 586a24d93..18aaf8a23 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvistAndelDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/AnvistAndelDto.java @@ -1,29 +1,22 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.math.BigDecimal; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import java.math.BigDecimal; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori; -/** - * Angir størrelse for ytelse på arbeidsforholdnivå. - */ +/** Angir størrelse for ytelse på arbeidsforholdnivå. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) public class AnvistAndelDto { - /** - * Kan være null. - */ + /** Kan være null. */ @JsonProperty(value = "arbeidsgiver") @Valid private Aktør arbeidsgiver; @@ -51,16 +44,15 @@ public class AnvistAndelDto { @Valid private Inntektskategori inntektskategori; - protected AnvistAndelDto() { - } - + protected AnvistAndelDto() {} - public AnvistAndelDto(Aktør arbeidsgiver, - String arbeidsforholdId, - BigDecimal dagsats, - BigDecimal utbetalingsgrad, - BigDecimal refusjonsgrad, - Inntektskategori inntektskategori) { + public AnvistAndelDto( + Aktør arbeidsgiver, + String arbeidsforholdId, + BigDecimal dagsats, + BigDecimal utbetalingsgrad, + BigDecimal refusjonsgrad, + Inntektskategori inntektskategori) { this.arbeidsgiver = arbeidsgiver; this.arbeidsforholdId = arbeidsforholdId; this.dagsats = dagsats; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/FordelingDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/FordelingDto.java index a5d69f7d3..9fe431735 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/FordelingDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/FordelingDto.java @@ -1,66 +1,53 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Objects; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Aktør; import no.nav.abakus.iaygrunnlag.kodeverk.InntektPeriodeType; -/** - * Angir hyppighet og størrelse for ytelse. - */ +/** Angir hyppighet og størrelse for ytelse. */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) public class FordelingDto { - /** - * Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "beløp", required = true) @Valid @NotNull @DecimalMin(value = "0.00", message = "[${validatedValue}] må være >= {value}") private BigDecimal beløp; - /** - * Angir hvilken periode beløp gjelder for. - */ + /** Angir hvilken periode beløp gjelder for. */ @JsonProperty(value = "inntektPeriodeType", required = true) @NotNull private InntektPeriodeType inntektPeriodeType; - /** - * Kan være null. - */ + /** Kan være null. */ @JsonProperty(value = "arbeidsgiver") @Valid private Aktør arbeidsgiver; - /** - * Kan være null. - */ + /** Kan være null. */ @JsonProperty(value = "erRefusjon") @Valid private Boolean erRefusjon; - protected FordelingDto() { - } + protected FordelingDto() {} public FordelingDto(Aktør arbeidsgiver, InntektPeriodeType inntektPeriodeType, int beløp, Boolean erRefusjon) { this(arbeidsgiver, inntektPeriodeType, BigDecimal.valueOf(beløp), erRefusjon); } - public FordelingDto(Aktør arbeidsgiver, InntektPeriodeType inntektPeriodeType, BigDecimal beløp, Boolean erRefusjon) { + public FordelingDto( + Aktør arbeidsgiver, InntektPeriodeType inntektPeriodeType, BigDecimal beløp, Boolean erRefusjon) { Objects.requireNonNull(beløp); this.arbeidsgiver = arbeidsgiver; this.inntektPeriodeType = inntektPeriodeType; diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseDto.java index 451df70aa..e37d5205e 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseDto.java @@ -1,18 +1,16 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem; import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus; @@ -30,7 +28,6 @@ public class YtelseDto { @NotNull private YtelseType ytelseType; - @JsonProperty(value = "periode", required = true) @Valid @NotNull @@ -42,7 +39,9 @@ public class YtelseDto { @JsonProperty(value = "saksnummer") @Valid - @Pattern(regexp = "^[A-Za-z0-9_\\.\\-:]+$", message = "Saksnummer [${validatedValue}] matcher ikke tillatt pattern '{value}'") + @Pattern( + regexp = "^[A-Za-z0-9_\\.\\-:]+$", + message = "Saksnummer [${validatedValue}] matcher ikke tillatt pattern '{value}'") private String saksnummer; @JsonProperty(value = "vedtattTidspunkt") @@ -57,10 +56,11 @@ public class YtelseDto { private YtelseGrunnlagDto grunnlag; @JsonCreator - public YtelseDto(@JsonProperty(value = "fagsystem", required = true) @NotNull Fagsystem fagsystem, - @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, - @JsonProperty(value = "periode", required = true) @Valid @NotNull Periode periode, - @JsonProperty(value = "status", required = true) @NotNull YtelseStatus status) { + public YtelseDto( + @JsonProperty(value = "fagsystem", required = true) @NotNull Fagsystem fagsystem, + @JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType, + @JsonProperty(value = "periode", required = true) @Valid @NotNull Periode periode, + @JsonProperty(value = "status", required = true) @NotNull YtelseStatus status) { Objects.requireNonNull(fagsystem, "fagsystem"); Objects.requireNonNull(ytelseType, "ytelseType"); Objects.requireNonNull(periode, "periode"); diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseGrunnlagDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseGrunnlagDto.java index 7eee2e1ff..e70026fbd 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseGrunnlagDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelseGrunnlagDto.java @@ -1,19 +1,16 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; -import java.util.List; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.List; import no.nav.abakus.iaygrunnlag.kodeverk.Arbeidskategori; @JsonIgnoreProperties(ignoreUnknown = true) @@ -49,16 +46,13 @@ public class YtelseGrunnlagDto { @Valid private List fordeling; - /** - * Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. - */ + /** Beløp i hele kroner (currency major unit). Tillater kun positive verdier. Max verdi håndteres av mottager. */ @JsonProperty(value = "dagsats") @Valid @DecimalMin(value = "0.00", message = "[${validatedValue}] må være >= {value}") private BigDecimal vedtaksDagsats; - public YtelseGrunnlagDto() { - } + public YtelseGrunnlagDto() {} public Arbeidskategori getArbeidskategoriDto() { return arbeidskategoriDto; @@ -91,7 +85,8 @@ public BigDecimal getDekningsgradProsent() { } public void setDekningsgradProsent(BigDecimal dekningsgradProsent) { - this.dekningsgradProsent = dekningsgradProsent == null ? null : dekningsgradProsent.setScale(2, RoundingMode.HALF_UP); + this.dekningsgradProsent = + dekningsgradProsent == null ? null : dekningsgradProsent.setScale(2, RoundingMode.HALF_UP); } public YtelseGrunnlagDto medDekningsgradProsent(BigDecimal dekningsgradProsent) { @@ -127,7 +122,8 @@ public BigDecimal getInntektsgrunnlagProsent() { } public void setInntektsgrunnlagProsent(BigDecimal inntektsgrunnlagProsent) { - this.inntektsgrunnlagProsent = inntektsgrunnlagProsent == null ? null : inntektsgrunnlagProsent.setScale(2, RoundingMode.HALF_UP); + this.inntektsgrunnlagProsent = + inntektsgrunnlagProsent == null ? null : inntektsgrunnlagProsent.setScale(2, RoundingMode.HALF_UP); } public YtelseGrunnlagDto medInntektsgrunnlagProsent(BigDecimal inntektsgrunnlagProsent) { diff --git a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelserDto.java b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelserDto.java index fc4a945ab..ac8856480 100644 --- a/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelserDto.java +++ b/kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/ytelse/v1/YtelserDto.java @@ -1,25 +1,19 @@ package no.nav.abakus.iaygrunnlag.ytelse.v1; -import java.util.List; -import java.util.Objects; - -import jakarta.validation.Valid; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import java.util.List; +import java.util.Objects; import no.nav.abakus.iaygrunnlag.PersonIdent; - @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.ALWAYS) public class YtelserDto { - /** - * Bruker ytelse gjelder for. - */ + /** Bruker ytelse gjelder for. */ @JsonProperty(value = "person", required = true) @Valid private PersonIdent person; @@ -28,8 +22,7 @@ public class YtelserDto { @Valid private List ytelser; - protected YtelserDto() { - } + protected YtelserDto() {} public YtelserDto(PersonIdent person) { Objects.requireNonNull(person, "person"); diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/callback/registerdata/ReferanseDtoTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/callback/registerdata/ReferanseDtoTest.java index f94ab0c51..913034cd0 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/callback/registerdata/ReferanseDtoTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/callback/registerdata/ReferanseDtoTest.java @@ -4,10 +4,8 @@ import java.util.UUID; import java.util.regex.Pattern; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.callback.registerdata.ReferanseDto; +import org.junit.jupiter.api.Test; class ReferanseDtoTest { @@ -20,7 +18,8 @@ void skal_validere_UUID_med_regex() { assertThat(pattern.matcher(uuid.toString()).matches()).isTrue(); assertThat(pattern.matcher("FASDFASDA-asd").matches()).isFalse(); - assertThat(pattern.matcher("FASDFASD-asdd-asdf-asdf-asdfasdfasdf").matches()).isFalse(); + assertThat(pattern.matcher("FASDFASD-asdd-asdf-asdf-asdfasdfasdf").matches()) + .isFalse(); uuid = UUID.randomUUID(); assertThat(pattern.matcher(uuid.toString()).matches()).isTrue(); uuid = UUID.randomUUID(); diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYMigreringNPETest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYMigreringNPETest.java index 773f345e3..3396d9e9d 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYMigreringNPETest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYMigreringNPETest.java @@ -2,26 +2,28 @@ import static org.assertj.core.api.Assertions.assertThat; +import jakarta.validation.Validation; import java.io.IOException; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.Scanner; import java.util.stream.Stream; - -import jakarta.validation.Validation; - +import no.nav.abakus.iaygrunnlag.JsonObjectMapper; +import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseGrunnlagDto; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import no.nav.abakus.iaygrunnlag.JsonObjectMapper; -import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseGrunnlagDto; - class IAYMigreringNPETest { public static Stream provideArguments() throws URISyntaxException { - return Stream.of("/iay_case_001.json", "/iay_case_002.json", "/iay_case_003.json", "/iay_case_004.json", "/iay_case_005.json") - .map(v -> Arguments.of(v)); + return Stream.of( + "/iay_case_001.json", + "/iay_case_002.json", + "/iay_case_003.json", + "/iay_case_004.json", + "/iay_case_005.json") + .map(v -> Arguments.of(v)); } @ParameterizedTest @@ -36,12 +38,13 @@ void test_file(String fileName) throws Exception { assertThat(dto.getPerson()).isNotNull(); validateResult(dto); - } private String readTestCase(String fileName) throws IOException { String str = null; - try (var is = getClass().getResourceAsStream(fileName); var s = new java.util.Scanner(is, StandardCharsets.UTF_8); Scanner s2 = s.useDelimiter("\\A")) { + try (var is = getClass().getResourceAsStream(fileName); + var s = new java.util.Scanner(is, StandardCharsets.UTF_8); + Scanner s2 = s.useDelimiter("\\A")) { str = s2.hasNext() ? s2.next() : ""; } diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYValideringTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYValideringTest.java index 508b2fdec..9a6443aa3 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYValideringTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IAYValideringTest.java @@ -2,15 +2,12 @@ import static org.assertj.core.api.Assertions.assertThat; +import jakarta.validation.Validation; import java.math.BigDecimal; import java.time.LocalDate; - -import jakarta.validation.Validation; - -import org.junit.jupiter.api.Test; - import no.nav.abakus.iaygrunnlag.Periode; import no.nav.abakus.iaygrunnlag.oppgittopptjening.v1.OppgittEgenNæringDto; +import org.junit.jupiter.api.Test; class IAYValideringTest { @@ -37,7 +34,6 @@ private void validateResult(Object roundTripped, boolean expectOk) { assertThat(violations).isEmpty(); } else { assertThat(violations).isNotEmpty(); - } } } diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IayGrunnlagTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IayGrunnlagTest.java index 056e36059..7dc11640d 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IayGrunnlagTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/kontrakter/iaygrunnlag/v1/iay/IayGrunnlagTest.java @@ -2,6 +2,9 @@ import static org.assertj.core.api.Assertions.assertThat; +import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.databind.ObjectWriter; +import jakarta.validation.Validation; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @@ -9,13 +12,6 @@ import java.time.ZoneOffset; import java.util.List; import java.util.UUID; - -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.databind.ObjectReader; -import com.fasterxml.jackson.databind.ObjectWriter; - -import jakarta.validation.Validation; import no.nav.abakus.iaygrunnlag.AktørIdPersonident; import no.nav.abakus.iaygrunnlag.ArbeidsforholdRefDto; import no.nav.abakus.iaygrunnlag.FnrPersonident; @@ -73,6 +69,7 @@ import no.nav.abakus.iaygrunnlag.ytelse.v1.YtelseDto; import no.nav.abakus.iaygrunnlag.ytelse.v1.YtelseGrunnlagDto; import no.nav.abakus.iaygrunnlag.ytelse.v1.YtelserDto; +import org.junit.jupiter.api.Test; class IayGrunnlagTest { @@ -99,12 +96,12 @@ void skal_generere_og_validere_roundtrip_mega_iaygrunnlag_json() throws Exceptio String json = WRITER.writeValueAsString(grunnlag); System.out.println(json); - InntektArbeidYtelseGrunnlagDto roundTripped = READER.forType(InntektArbeidYtelseGrunnlagDto.class).readValue(json); + InntektArbeidYtelseGrunnlagDto roundTripped = + READER.forType(InntektArbeidYtelseGrunnlagDto.class).readValue(json); assertThat(roundTripped).isNotNull(); assertThat(roundTripped.getPerson()).isNotNull(); validateResult(roundTripped); - } @Test @@ -118,97 +115,125 @@ void skal_generere_og_validere_roundtrip_mega_iaygrunnlag_snapshot_json() throws String json = WRITER.writeValueAsString(snapshot); System.out.println(json); - InntektArbeidYtelseGrunnlagSakSnapshotDto roundTripped = READER.forType(InntektArbeidYtelseGrunnlagSakSnapshotDto.class).readValue(json); + InntektArbeidYtelseGrunnlagSakSnapshotDto roundTripped = + READER.forType(InntektArbeidYtelseGrunnlagSakSnapshotDto.class).readValue(json); validateResult(roundTripped); - } private InntektArbeidYtelseGrunnlagDto byggInntektArbeidYtelseGrunnlag() { - OffsetDateTime offTidspunkt = tidspunkt.atZone(ZoneOffset.systemDefault()).toOffsetDateTime(); + OffsetDateTime offTidspunkt = + tidspunkt.atZone(ZoneOffset.systemDefault()).toOffsetDateTime(); var grunnlag = new InntektArbeidYtelseGrunnlagDto(aktørId, offTidspunkt, uuid, uuid, ytelseType); var arbeidsforholdId = new ArbeidsforholdRefDto(UUID.randomUUID().toString(), "aaregRef"); - grunnlag.medRegister(new InntektArbeidYtelseAggregatRegisterDto(tidspunkt, uuid).medArbeid(List.of(new ArbeidDto(fnr).medYrkesaktiviteter( - List.of(new YrkesaktivitetDto(arbeidType).medArbeidsgiver(org) - .medPermisjoner(List.of(new PermisjonDto(periode, PermisjonsbeskrivelseType.PERMISJON).medProsentsats(50))) - .medArbeidsforholdId(arbeidsforholdId) - .medNavnArbeidsgiverUtland("UtenlandskArbeidsgiverAS") - .medAktivitetsAvtaler( - List.of(new AktivitetsAvtaleDto(periode).medSistLønnsendring(fom).medBeskrivelse("beskrivelse").medStillingsprosent(50))))))) - .medInntekt(List.of(new InntekterDto(fnr).medUtbetalinger(List.of( - new UtbetalingDto(InntektskildeType.INNTEKT_SAMMENLIGNING).medArbeidsgiver(org) - .medPoster(List.of(new UtbetalingsPostDto(periode, InntektspostType.LØNN) - .medInntektYtelseType(InntektYtelseType.FORELDREPENGER) - .medBeløp(100) - .medSkattAvgiftType(SkatteOgAvgiftsregelType.NETTOLØNN))))))) - .medYtelse(List.of(new YtelserDto(fnr).medYtelser(List.of( - new YtelseDto(Fagsystem.FPSAK, ytelseType, periode, YtelseStatus.LØPENDE).medSaksnummer("1234") - .medVedtattTidspunkt(LocalDateTime.now().minusDays(1)) - .medGrunnlag(new YtelseGrunnlagDto().medArbeidskategoriDto(Arbeidskategori.ARBEIDSTAKER) - .medOpprinneligIdentDato(fom) - .medDekningsgradProsent(100) - .medInntektsgrunnlagProsent(100) - .medGraderingProsent(100) - .medVedtaksDagsats(255) - .medFordeling(List.of(new FordelingDto(org, InntektPeriodeType.DAGLIG, 100, true)))) - .medAnvisninger(List.of(new AnvisningDto(periode).medBeløp(100).medDagsats(100).medUtbetalingsgrad(100)))))))); - - grunnlag.medArbeidsforholdInformasjon( - new ArbeidsforholdInformasjon(UUID.randomUUID()).medReferanser(List.of(new ArbeidsforholdReferanseDto(org, arbeidsforholdId))) - .medOverstyringer(List.of(new ArbeidsforholdOverstyringDto(org, arbeidsforholdId).medBegrunnelse("en begrunnelse") - .medHandling(ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING) - .medNavn("Mitt arbeisforhold") - .medStillingsprosent(100) - .medBekreftetPermisjon(fom, tom, BekreftetPermisjonStatus.BRUK_PERMISJON)))); - - grunnlag.medOverstyrt(new InntektArbeidYtelseAggregatOverstyrtDto(tidspunkt, uuid).medArbeid(List.of(new ArbeidDto(fnr).medYrkesaktiviteter( - List.of(new YrkesaktivitetDto(arbeidType).medArbeidsgiver(org) - .medPermisjoner(List.of(new PermisjonDto(periode, PermisjonsbeskrivelseType.PERMISJON).medProsentsats(50))) - .medArbeidsforholdId(new ArbeidsforholdRefDto(UUID.randomUUID().toString(), "ekstern")) - .medAktivitetsAvtaler( - List.of(new AktivitetsAvtaleDto(periode).medSistLønnsendring(fom).medBeskrivelse("beskrivelse").medStillingsprosent(30)))))))); - - grunnlag.medInntektsmeldinger(new InntektsmeldingerDto().medInntektsmeldinger(List.of( - new InntektsmeldingDto(org, journalpostId, tidspunkt, fom).medArbeidsforholdRef( - new ArbeidsforholdRefDto(UUID.randomUUID().toString(), "ID 1")) - .medInnsendingsårsak(InntektsmeldingInnsendingsårsakType.NY) - .medInntektBeløp(99999) - .medKanalreferanse("BBC") - .medKildesystem("TheSource") - .medRefusjonOpphører(fom) - .medRefusjonsBeløpPerMnd(100) - .medStartDatoPermisjon(fom) - .medNærRelasjon(false) - .medEndringerRefusjon(List.of(new RefusjonDto(fom, 100))) - .medGraderinger(List.of(new GraderingDto(periode, 50))) - .medNaturalytelser(List.of(new NaturalytelseDto(periode, NaturalytelseType.ELEKTRISK_KOMMUNIKASJON, 100))) - .medOppgittFravær(List.of(new FraværDto(periode))) - .medUtsettelsePerioder(List.of(new UtsettelsePeriodeDto(periode, UtsettelseÅrsakType.FERIE)))))); - - grunnlag.medOppgittOpptjening(new OppgittOpptjeningDto(null, null, uuid, offTidspunkt).medArbeidsforhold(List.of( - new OppgittArbeidsforholdDto(periode, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD).medErUtenlandskInntekt(true) - .medInntekt(BigDecimal.valueOf(10000)) - .medOppgittVirksomhetNavn("GammelDansk", Landkode.DNK))) - .medEgenNæring(List.of(new OppgittEgenNæringDto(periode).medBegrunnelse("MinBegrunnelse") - .medBruttoInntekt(10000) - .medEndringDato(fom) - .medNyIArbeidslivet(false) - .medNyoppstartet(false) - .medNærRelasjon(false) - .medOppgittVirksomhetNavn("Argonne National Laboratory (9700 S. Cass Avenue, Lemont, IL 60439, USA [https://www.anl.gov/])", - Landkode.SWE) - .medRegnskapsførerNavn("Regnskapsfører") - .medRegnskapsførerTlf("Sentralbord: 71 44 33 00 Direktenummer: 468 41 333 Mail: adf@ladf.no") - .medVarigEndring(true) - .medVirksomhet(org) - .medVirksomhetType(VirksomhetType.ANNEN))) - .medAnnenAktivitet(List.of(new OppgittAnnenAktivitetDto(periode, arbeidType))) - .medFrilans(new OppgittFrilansDto(List.of(new OppgittFrilansoppdragDto(periode, "MittOppdrag"))).medErNyoppstartet(false) - .medHarInntektFraFosterhjem(false) - .medHarNærRelasjon(false))); + grunnlag.medRegister(new InntektArbeidYtelseAggregatRegisterDto(tidspunkt, uuid) + .medArbeid(List.of(new ArbeidDto(fnr) + .medYrkesaktiviteter(List.of(new YrkesaktivitetDto(arbeidType) + .medArbeidsgiver(org) + .medPermisjoner(List.of(new PermisjonDto(periode, PermisjonsbeskrivelseType.PERMISJON) + .medProsentsats(50))) + .medArbeidsforholdId(arbeidsforholdId) + .medNavnArbeidsgiverUtland("UtenlandskArbeidsgiverAS") + .medAktivitetsAvtaler(List.of(new AktivitetsAvtaleDto(periode) + .medSistLønnsendring(fom) + .medBeskrivelse("beskrivelse") + .medStillingsprosent(50))))))) + .medInntekt(List.of(new InntekterDto(fnr) + .medUtbetalinger(List.of(new UtbetalingDto(InntektskildeType.INNTEKT_SAMMENLIGNING) + .medArbeidsgiver(org) + .medPoster(List.of(new UtbetalingsPostDto(periode, InntektspostType.LØNN) + .medInntektYtelseType(InntektYtelseType.FORELDREPENGER) + .medBeløp(100) + .medSkattAvgiftType(SkatteOgAvgiftsregelType.NETTOLØNN))))))) + .medYtelse(List.of(new YtelserDto(fnr) + .medYtelser(List.of(new YtelseDto(Fagsystem.FPSAK, ytelseType, periode, YtelseStatus.LØPENDE) + .medSaksnummer("1234") + .medVedtattTidspunkt(LocalDateTime.now().minusDays(1)) + .medGrunnlag(new YtelseGrunnlagDto() + .medArbeidskategoriDto(Arbeidskategori.ARBEIDSTAKER) + .medOpprinneligIdentDato(fom) + .medDekningsgradProsent(100) + .medInntektsgrunnlagProsent(100) + .medGraderingProsent(100) + .medVedtaksDagsats(255) + .medFordeling( + List.of(new FordelingDto(org, InntektPeriodeType.DAGLIG, 100, true)))) + .medAnvisninger(List.of(new AnvisningDto(periode) + .medBeløp(100) + .medDagsats(100) + .medUtbetalingsgrad(100)))))))); + + grunnlag.medArbeidsforholdInformasjon(new ArbeidsforholdInformasjon(UUID.randomUUID()) + .medReferanser(List.of(new ArbeidsforholdReferanseDto(org, arbeidsforholdId))) + .medOverstyringer(List.of(new ArbeidsforholdOverstyringDto(org, arbeidsforholdId) + .medBegrunnelse("en begrunnelse") + .medHandling(ArbeidsforholdHandlingType.BRUK_UTEN_INNTEKTSMELDING) + .medNavn("Mitt arbeisforhold") + .medStillingsprosent(100) + .medBekreftetPermisjon(fom, tom, BekreftetPermisjonStatus.BRUK_PERMISJON)))); + + grunnlag.medOverstyrt(new InntektArbeidYtelseAggregatOverstyrtDto(tidspunkt, uuid) + .medArbeid(List.of(new ArbeidDto(fnr) + .medYrkesaktiviteter(List.of(new YrkesaktivitetDto(arbeidType) + .medArbeidsgiver(org) + .medPermisjoner(List.of(new PermisjonDto(periode, PermisjonsbeskrivelseType.PERMISJON) + .medProsentsats(50))) + .medArbeidsforholdId(new ArbeidsforholdRefDto( + UUID.randomUUID().toString(), "ekstern")) + .medAktivitetsAvtaler(List.of(new AktivitetsAvtaleDto(periode) + .medSistLønnsendring(fom) + .medBeskrivelse("beskrivelse") + .medStillingsprosent(30)))))))); + + grunnlag.medInntektsmeldinger(new InntektsmeldingerDto() + .medInntektsmeldinger(List.of(new InntektsmeldingDto(org, journalpostId, tidspunkt, fom) + .medArbeidsforholdRef( + new ArbeidsforholdRefDto(UUID.randomUUID().toString(), "ID 1")) + .medInnsendingsårsak(InntektsmeldingInnsendingsårsakType.NY) + .medInntektBeløp(99999) + .medKanalreferanse("BBC") + .medKildesystem("TheSource") + .medRefusjonOpphører(fom) + .medRefusjonsBeløpPerMnd(100) + .medStartDatoPermisjon(fom) + .medNærRelasjon(false) + .medEndringerRefusjon(List.of(new RefusjonDto(fom, 100))) + .medGraderinger(List.of(new GraderingDto(periode, 50))) + .medNaturalytelser( + List.of(new NaturalytelseDto(periode, NaturalytelseType.ELEKTRISK_KOMMUNIKASJON, 100))) + .medOppgittFravær(List.of(new FraværDto(periode))) + .medUtsettelsePerioder( + List.of(new UtsettelsePeriodeDto(periode, UtsettelseÅrsakType.FERIE)))))); + + grunnlag.medOppgittOpptjening(new OppgittOpptjeningDto(null, null, uuid, offTidspunkt) + .medArbeidsforhold(List.of(new OppgittArbeidsforholdDto(periode, ArbeidType.ORDINÆRT_ARBEIDSFORHOLD) + .medErUtenlandskInntekt(true) + .medInntekt(BigDecimal.valueOf(10000)) + .medOppgittVirksomhetNavn("GammelDansk", Landkode.DNK))) + .medEgenNæring(List.of(new OppgittEgenNæringDto(periode) + .medBegrunnelse("MinBegrunnelse") + .medBruttoInntekt(10000) + .medEndringDato(fom) + .medNyIArbeidslivet(false) + .medNyoppstartet(false) + .medNærRelasjon(false) + .medOppgittVirksomhetNavn( + "Argonne National Laboratory (9700 S. Cass Avenue, Lemont, IL 60439, USA [https://www.anl.gov/])", + Landkode.SWE) + .medRegnskapsførerNavn("Regnskapsfører") + .medRegnskapsførerTlf( + "Sentralbord: 71 44 33 00 Direktenummer: 468 41 333 Mail: adf@ladf.no") + .medVarigEndring(true) + .medVirksomhet(org) + .medVirksomhetType(VirksomhetType.ANNEN))) + .medAnnenAktivitet(List.of(new OppgittAnnenAktivitetDto(periode, arbeidType))) + .medFrilans(new OppgittFrilansDto(List.of(new OppgittFrilansoppdragDto(periode, "MittOppdrag"))) + .medErNyoppstartet(false) + .medHarInntektFraFosterhjem(false) + .medHarNærRelasjon(false))); return grunnlag; } diff --git a/kontrakt/src/test/resources/iay_case_001.json b/kontrakt/src/test/resources/iay_case_001.json index 8d834227f..d68793cd2 100644 --- a/kontrakt/src/test/resources/iay_case_001.json +++ b/kontrakt/src/test/resources/iay_case_001.json @@ -1,2099 +1,2099 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057080999" + "oppgittOpptjening": { + "annenAktivitet": [ { + "arbeidType": "FRILANSER", + "periode": { + "tom": "9999-12-31", + "fom": "2015-12-15" + } + } ], + "arbeidsforhold": [ ], + "frilans": { + "frilansoppdrag": [ ], + "erNyoppstartet": false, + "erNærRelasjon": false, + "harInntektFraFosterhjem": false + }, + "opprettetTidspunkt": "2019-01-07T14:06:47.605Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": false, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "916451504" + }, + "virksomhetType": "ANNEN", + "periode": { + "tom": "9999-12-31", + "fom": "2015-12-15" + }, + "bruttoInntekt": 51150, + "landkode": "NOR", + "erNyoppstartet": true, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": null, + "endringDato": null + } ], + "eksternReferanse": "8a6bc443-6f71-1f94-e053-2880340a2b28" }, - "grunnlagTidspunkt" : "2019-03-06T08:05:04.785Z", - "grunnlagReferanse" : "8abb7316-7a78-0abc-e053-2880340a57a0", - "koblingReferanse" : "88487f4b-f422-2133-e053-2880340a6560", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-03-06T06:00:28.277Z", - "eksternReferanse" : "8a6bc442-a32e-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057080999" + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "kildesystem": "AltinnPortal", + "mottattDato": "2019-02-26", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-02-26T15:08:41Z", + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "81699674-9917-49e1-8fbc-828f66f855e6", - "eksternReferanse" : "V974613522R40274SPLHE0UTL0001", - "eksternReferanseSystem" : "AAREGISTERET" + "erNærRelasjon": false, + "kanalreferanse": "AR308323299", + "utsettelsePerioder": [ ], + "inntektBeløp": 791, + "startdatoPermisjon": "2019-03-16", + "journalpostId": "446045317", + "innsendingsårsak": "NY" + }, { + "graderinger": [ ], + "kildesystem": "AltinnPortal", + "mottattDato": "2019-02-26", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-02-26T15:10:44Z", + "refusjonsBeløpPerMnd": 44586, + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" + }, + "erNærRelasjon": false, + "kanalreferanse": "AR308323711", + "utsettelsePerioder": [ ], + "inntektBeløp": 44586, + "startdatoPermisjon": "2019-03-17", + "refusjonOpphører": "9999-12-31", + "journalpostId": "446045439", + "innsendingsårsak": "NY" + }, { + "graderinger": [ ], + "kildesystem": "AltinnPortal", + "mottattDato": "2019-03-01", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-03-01T10:29:38Z", + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "erNærRelasjon": false, + "kanalreferanse": "AR308970089", + "utsettelsePerioder": [ ], + "inntektBeløp": 8256.29, + "startdatoPermisjon": "2019-03-16", + "journalpostId": "446280466", + "innsendingsårsak": "NY" + } ] + }, + "person": { + "identType": "AKTØRID", + "ident": "1000057080999" + }, + "grunnlagTidspunkt": "2019-03-06T08:05:04.785Z", + "grunnlagReferanse": "8abb7316-7a78-0abc-e053-2880340a57a0", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000057080999" + }, + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2014-05-01" - }, { - "periode" : { - "fom" : "2015-05-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2014-05-01" + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 8700, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "periode" : { - "fom" : "2005-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] + "inntektspostType": "LØNN", + "beløp": 216, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "3c5f8bac-670b-4c63-8996-f8d8b508c842", - "eksternReferanse" : "0050568C5E3C1EE4A4E62A0BFC14320D", - "eksternReferanseSystem" : "AAREGISTERET" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-05-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 90.00, - "sistLønnsendring" : "2017-05-01" + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 43681.9, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-09-01" + "inntektspostType": "LØNN", + "beløp": 39790.5, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "periode" : { - "fom" : "2018-10-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-10-01" + "inntektspostType": "LØNN", + "beløp": 40888.25, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-04-30" - }, - "stillingsprosent" : 90.00, - "sistLønnsendring" : "2018-01-01" + "inntektspostType": "LØNN", + "beløp": 35275.17, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-06-30" - }, - "stillingsprosent" : 90.00, - "sistLønnsendring" : "2018-05-01" + "inntektspostType": "LØNN", + "beløp": 39790.5, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-08-31" - }, - "stillingsprosent" : 90.00, - "sistLønnsendring" : "2018-07-01" + "inntektspostType": "LØNN", + "beløp": 38807.25, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "periode" : { - "fom" : "2014-03-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ { - "periode" : { - "fom" : "2018-05-12", - "tom" : "2018-08-31" - }, - "type" : "VELFERDSPERMISJON", - "prosentsats" : 100.00 + "inntektspostType": "LØNN", + "beløp": 34249.67, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "periode" : { - "fom" : "2017-08-11", - "tom" : "2017-12-31" - }, - "type" : "PERMISJON", - "prosentsats" : 100.00 + "inntektspostType": "LØNN", + "beløp": 35275.17, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "periode" : { - "fom" : "2016-07-01", - "tom" : "2017-01-31" - }, - "type" : "PERMISJON", - "prosentsats" : 10.00 + "inntektspostType": "LØNN", + "beløp": 36130.25, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-05-11" - }, - "type" : "PERMISJON_MED_FORELDREPENGER", - "prosentsats" : 100.00 + "inntektspostType": "LØNN", + "beløp": 36498.75, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-06-30" - }, - "type" : "PERMISJON", - "prosentsats" : 20.00 + "inntektspostType": "LØNN", + "beløp": 37542, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 59216.65, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 29812.55, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 57173.9, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 3244.05, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 23360.8, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 12523.75, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "13d980c0-f0b5-47bc-9a35-d95d818793ef", - "eksternReferanse" : "33", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2015-06-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2004-06-15" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "YTELSE", + "beløp": 3860, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" + }, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 15486, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2004-06-15" + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "periode" : { - "fom" : "2015-06-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 5607, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] - } ] - }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000058324999" - }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "993316121" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "b94ccb16-68b3-4b38-8c64-f38640197004", - "eksternReferanse" : "0050568C5E3C1EE4A4E62DD05137720D", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-04-30" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-07-01" + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-06-30" + "inntektspostType": "YTELSE", + "beløp": 5874, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "periode" : { - "fom" : "2017-07-01", - "tom" : "2017-12-31" + "inntektspostType": "YTELSE", + "beløp": 4439, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-07-01" + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "periode" : { - "fom" : "2009-01-12", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 4246, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 0.00 + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "periode" : { - "fom" : "2018-07-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 2725, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-07-01" - } ], - "permisjoner" : [ { - "periode" : { - "fom" : "2018-09-28", - "tom" : "2019-03-21" - }, - "type" : "PERMISJON_MED_FORELDREPENGER", - "prosentsats" : 40.00 + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "periode" : { - "fom" : "2015-01-30", - "tom" : "2015-02-01" + "inntektspostType": "YTELSE", + "beløp": 4053, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "type" : "PERMISJON", - "prosentsats" : 100.00 + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "periode" : { - "fom" : "2016-11-01", - "tom" : "2016-11-01" + "inntektspostType": "YTELSE", + "beløp": 5874, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "type" : "PERMISJON", - "prosentsats" : 100.00 + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "periode" : { - "fom" : "2016-11-21", - "tom" : "2016-11-22" + "inntektspostType": "YTELSE", + "beløp": 2136, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "type" : "PERMISJON", - "prosentsats" : 100.00 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "55987635-d94b-4c78-8822-1ef89d878b97", - "eksternReferanse" : "V974613522R41447SPLHE0UTL0002", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-02-01" + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-12-31" + "inntektspostType": "YTELSE", + "beløp": 5340, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-02-01" + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "periode" : { - "fom" : "2018-02-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 5607, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "0ce3ed01-5787-4d8f-aa4c-0db2dfe0fbb6", - "eksternReferanse" : "V974613522R41447SPLHE0UTL0001", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-11-01", - "tom" : "2018-08-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-02-01" + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "periode" : { - "fom" : "2018-09-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 4053, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2018-02-01" + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-01" + "inntektspostType": "YTELSE", + "beløp": 11194, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "db19342d-01b2-455a-8a0c-ac55bb94cee6", - "eksternReferanse" : "1", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-08-01" + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "periode" : { - "fom" : "2017-10-01", - "tom" : "2018-12-31" + "inntektspostType": "YTELSE", + "beløp": 4246, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2017-08-01" + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "periode" : { - "fom" : "2017-08-01", - "tom" : "9999-12-31" + "inntektspostType": "YTELSE", + "beløp": 6141, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974727501" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "38b0f45f-ec01-4037-a107-85a05126f641", - "eksternReferanse" : "0050568C307E1ED8988150806A1B60D7", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "FRILANSER_OPPDRAGSTAKER", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-12-31" + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" } - } ], - "permisjoner" : [ ] + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974732017" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "arbeidsforholdId" : { - "abakusReferanse" : "04d96aec-5e59-4bd3-b08e-bda0314da9b0", - "eksternReferanse" : "0050568C20321ED69BC0C3CC6F79E0D1", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "FRILANSER_OPPDRAGSTAKER", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2016-08-01", - "tom" : "9999-12-31" + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 5347.72, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" } - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974725576" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "de33de61-dd87-409e-89da-90f32d6c1765", - "eksternReferanse" : "0050568C2F591ED891FF1A599F24C0DB", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "FRILANSER_OPPDRAGSTAKER", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-12-31" + }, { + "inntektspostType": "LØNN", + "beløp": 3418.08, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" } - } ], - "permisjoner" : [ ] - } ] - } ], - "inntekter" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057080999" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 8700.00 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 216.00 + "inntektspostType": "LØNN", + "beløp": 5824.51, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 3729.49, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 13291.04, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 5653.31, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 6664.62, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 3539.23, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 3125.87, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 43681.90 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 43299, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 39790.50 + "inntektspostType": "LØNN", + "beløp": 39790.5, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 40888.25 + "inntektspostType": "LØNN", + "beløp": 40888.25, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 35275.17 + "inntektspostType": "LØNN", + "beløp": 35275.17, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 39790.50 + "inntektspostType": "LØNN", + "beløp": 39790.5, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 38807.25 + "inntektspostType": "LØNN", + "beløp": 38807.25, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 34249.67 + "inntektspostType": "LØNN", + "beløp": 34249.67, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 35275.17 + "inntektspostType": "LØNN", + "beløp": 35275.17, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 36130.25 + "inntektspostType": "LØNN", + "beløp": 36130.25, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 36498.75 + "inntektspostType": "LØNN", + "beløp": 36498.75, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 37542.00 + "inntektspostType": "LØNN", + "beløp": 37542, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 59216.65 + "inntektspostType": "LØNN", + "beløp": 59216.65, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 29812.55 + "inntektspostType": "LØNN", + "beløp": 29812.55, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 57173.90 + "inntektspostType": "LØNN", + "beløp": 57173.9, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 3244.05 + "inntektspostType": "LØNN", + "beløp": 3244.05, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 23360.80 + "inntektspostType": "LØNN", + "beløp": 12523.75, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 12523.75 + "inntektspostType": "LØNN", + "beløp": 23360.8, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 3860.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 8700, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 15486.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektspostType": "LØNN", + "beløp": 216, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "YTELSE", + "beløp": 4246, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" + }, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "inntektspostType": "YTELSE", + "beløp": 2725, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 5607.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" + "inntektspostType": "YTELSE", + "beløp": 4053, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 5874.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "inntektspostType": "YTELSE", + "beløp": 4053, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 4439.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": "YTELSE", + "beløp": 11194, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 4246.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "inntektspostType": "YTELSE", + "beløp": 4246, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 2725.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "inntektspostType": "YTELSE", + "beløp": 3860, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 4053.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "inntektspostType": "YTELSE", + "beløp": 4439, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 5874.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 5347.72, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 2136.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektspostType": "LØNN", + "beløp": 3418.08, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 5340.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektspostType": "LØNN", + "beløp": 5824.51, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 5607.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektspostType": "LØNN", + "beløp": 3729.49, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 4053.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 13291.04, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 11194.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 6664.62, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 4246.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 3539.23, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 6141.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektspostType": "LØNN", + "beløp": 3125.87, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "inntektsKilde": "INNTEKT_BEREGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 5347.72 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 3418.08 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 5824.51 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 8700, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_BEREGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 3418.08, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 3729.49 + "inntektspostType": "LØNN", + "beløp": 5347.72, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 13291.04 + "inntektspostType": "LØNN", + "beløp": 5824.51, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 5653.31 + "inntektspostType": "LØNN", + "beløp": 3729.49, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 6664.62 + "inntektspostType": "LØNN", + "beløp": 13291.04, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 3539.23 + "inntektspostType": "LØNN", + "beløp": 6664.62, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 3125.87 + "inntektspostType": "LØNN", + "beløp": 3539.23, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" + "inntektsKilde": "INNTEKT_BEREGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 43299.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 39790.50 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 43199, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 40888.25 + "inntektspostType": "LØNN", + "beløp": 40781, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 35275.17 + "inntektspostType": "LØNN", + "beløp": 39683.25, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 39790.50 + "inntektspostType": "LØNN", + "beløp": 35171, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 38807.25 + "inntektspostType": "LØNN", + "beløp": 39683.25, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 34249.67 + "inntektspostType": "LØNN", + "beløp": 38700, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 35275.17 + "inntektspostType": "LØNN", + "beløp": 34145.5, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 36130.25 + "inntektspostType": "LØNN", + "beløp": 35171, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 36498.75 + "inntektspostType": "LØNN", + "beløp": 36023, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 37542.00 + "inntektspostType": "LØNN", + "beløp": 36391.5, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 59216.65 + "inntektspostType": "LØNN", + "beløp": 37434.75, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 29812.55 + "inntektspostType": "LØNN", + "beløp": 59116.65, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 57173.90 + "inntektspostType": "LØNN", + "beløp": 29705.3, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 3244.05 + "inntektspostType": "LØNN", + "beløp": 57066.65, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 12523.75 + "inntektspostType": "LØNN", + "beløp": 3136.8, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 23360.80 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 8700.00 + "inntektspostType": "LØNN", + "beløp": 12416.5, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 216.00 + "inntektspostType": "LØNN", + "beløp": 10473.4, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 4246.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektsKilde": "SIGRUN", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 93262, + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 2725.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 46799, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 4053.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 0, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 4053.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 544200, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 11194.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 547741, + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 4246.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "LØNN", + "beløp": 579306, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 3860.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 4439.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" } } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + } ] + }, { + "person": { + "identType": "AKTØRID", + "ident": "1000058324999" + }, + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 5347.72 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 3418.08 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 5824.51 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 3729.49 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 13291.04 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 6664.62 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 8850, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 3539.23 + "inntektspostType": "LØNN", + "beløp": 9000, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 3125.87 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "inntektsKilde" : "INNTEKT_BEREGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 8700.00 + "inntektspostType": "LØNN", + "beløp": 1080, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "993316121" }, - "inntektsKilde" : "INNTEKT_BEREGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 3418.08 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 40631.87, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 5347.72 + "inntektspostType": "LØNN", + "beløp": 43565.21, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 5824.51 + "inntektspostType": "LØNN", + "beløp": 48095.32, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 3729.49 + "inntektspostType": "LØNN", + "beløp": 41880.01, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 13291.04 + "inntektspostType": "LØNN", + "beløp": 41701.5, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 6664.62 + "inntektspostType": "LØNN", + "beløp": 39521.71, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 3539.23 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" - }, - "inntektsKilde" : "INNTEKT_BEREGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 43199.00 + "inntektspostType": "LØNN", + "beløp": 36724.01, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 40781.00 + "inntektspostType": "LØNN", + "beløp": 41956.51, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 39683.25 + "inntektspostType": "LØNN", + "beløp": 40404.31, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 35171.00 + "inntektspostType": "LØNN", + "beløp": 35375.35, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 39683.25 + "inntektspostType": "LØNN", + "beløp": 42433.99, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 38700.00 + "inntektspostType": "LØNN", + "beløp": 49834.69, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 34145.50 + "inntektspostType": "LØNN", + "beløp": 39298.65, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 35171.00 + "inntektspostType": "LØNN", + "beløp": 63992.59, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 36023.00 + "inntektspostType": "LØNN", + "beløp": 40716.79, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 36391.50 + "inntektspostType": "LØNN", + "beløp": 67503.41, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 37434.75 + "inntektspostType": "LØNN", + "beløp": 47480.61, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 2457.85, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 59116.65 + "inntektspostType": "LØNN", + "beløp": 3258, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 29705.30 + "inntektspostType": "LØNN", + "beløp": 9747.75, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 57066.65 + "inntektspostType": "LØNN", + "beløp": 2897.08, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 3136.80 + "inntektspostType": "LØNN", + "beløp": 2481.27, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 12416.50 + "inntektspostType": "LØNN", + "beløp": 7832.08, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974727501" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 10883.7, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 10473.40 + "inntektspostType": "LØNN", + "beløp": 5600, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : "SIGRUN", - "utbetalingsPoster" : [ { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" - }, - "beløp" : 93262.00 + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974725576" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 2577.42, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + } ] + }, { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974732017" + }, + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 9600, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" - }, - "beløp" : 46799.00 + "inntektspostType": "LØNN", + "beløp": 23800, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" - }, - "beløp" : 0.00 + "inntektspostType": "LØNN", + "beløp": 9402, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" - }, - "beløp" : 544200.00 + "inntektspostType": "LØNN", + "beløp": 36400, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" - }, - "beløp" : 547741.00 + "inntektspostType": "LØNN", + "beløp": 10000, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" - }, - "beløp" : 579306.00 + "inntektspostType": "LØNN", + "beløp": 46000, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" - }, - "beløp" : 0.00 + "inntektspostType": "LØNN", + "beløp": 10000, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" - }, - "beløp" : 0.00 + "inntektspostType": "LØNN", + "beløp": 57959, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 34200, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] } ] - }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000058324999" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "arbeidsforholdId": { + "abakusReferanse": "81699674-9917-49e1-8fbc-828f66f855e6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R40274SPLHE0UTL0001" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2014-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 8850.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "sistLønnsendring": "2014-05-01", + "periode": { + "tom": "2018-12-31", + "fom": "2015-05-01" }, - "beløp" : 9000.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "periode": { + "tom": "9999-12-31", + "fom": "2005-01-01" }, - "beløp" : 1080.00 - } ] + "stillingsprosent": 0 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "993316121" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 40631.87 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 43565.21 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 48095.32 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 41880.01 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "arbeidsforholdId": { + "abakusReferanse": "3c5f8bac-670b-4c63-8996-f8d8b508c842", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C5E3C1EE4A4E62A0BFC14320D" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-05-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-05-01" }, - "beløp" : 41701.50 + "stillingsprosent": 90 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "sistLønnsendring": "2018-09-01", + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" }, - "beløp" : 39521.71 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "sistLønnsendring": "2018-10-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-10-01" }, - "beløp" : 36724.01 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "sistLønnsendring": "2018-01-01", + "periode": { + "tom": "2018-04-30", + "fom": "2018-01-01" }, - "beløp" : 41956.51 + "stillingsprosent": 90 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-06-30", + "fom": "2018-05-01" }, - "beløp" : 40404.31 + "stillingsprosent": 90 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "sistLønnsendring": "2018-07-01", + "periode": { + "tom": "2018-08-31", + "fom": "2018-07-01" }, - "beløp" : 35375.35 + "stillingsprosent": 90 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "periode": { + "tom": "9999-12-31", + "fom": "2014-03-01" }, - "beløp" : 42433.99 + "stillingsprosent": 0 + } ], + "permisjoner": [ { + "prosentsats": 100, + "type": "VELFERDSPERMISJON", + "periode": { + "tom": "2018-08-31", + "fom": "2018-05-12" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 49834.69 + "prosentsats": 100, + "type": "PERMISJON", + "periode": { + "tom": "2017-12-31", + "fom": "2017-08-11" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 39298.65 + "prosentsats": 10, + "type": "PERMISJON", + "periode": { + "tom": "2017-01-31", + "fom": "2016-07-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 63992.59 + "prosentsats": 100, + "type": "PERMISJON_MED_FORELDREPENGER", + "periode": { + "tom": "2018-05-11", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "prosentsats": 20, + "type": "PERMISJON", + "periode": { + "tom": "2016-06-30", + "fom": "2016-01-01" + } + } ] + }, { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" + }, + "arbeidsforholdId": { + "abakusReferanse": "13d980c0-f0b5-47bc-9a35-d95d818793ef", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "33" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2004-06-15", + "periode": { + "tom": "2018-12-31", + "fom": "2015-06-01" }, - "beløp" : 40716.79 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "sistLønnsendring": "2004-06-15", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 67503.41 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "periode": { + "tom": "9999-12-31", + "fom": "2015-06-01" }, - "beløp" : 47480.61 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000057080999" + } + }, { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "993316121" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "arbeidsforholdId": { + "abakusReferanse": "b94ccb16-68b3-4b38-8c64-f38640197004", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C5E3C1EE4A4E62DD05137720D" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "2018-04-30", + "fom": "2018-01-01" }, - "beløp" : 2457.85 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-06-30", + "fom": "2018-05-01" }, - "beløp" : 3258.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-07-01" }, - "beløp" : 9747.75 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "periode": { + "tom": "9999-12-31", + "fom": "2009-01-12" }, - "beløp" : 2897.08 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "sistLønnsendring": "2018-07-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-07-01" }, - "beløp" : 2481.27 + "stillingsprosent": 100 + } ], + "permisjoner": [ { + "prosentsats": 40, + "type": "PERMISJON_MED_FORELDREPENGER", + "periode": { + "tom": "2019-03-21", + "fom": "2018-09-28" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 7832.08 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974727501" - }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 10883.70 + "prosentsats": 100, + "type": "PERMISJON", + "periode": { + "tom": "2015-02-01", + "fom": "2015-01-30" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 5600.00 + "prosentsats": 100, + "type": "PERMISJON", + "periode": { + "tom": "2016-11-01", + "fom": "2016-11-01" + } + }, { + "prosentsats": 100, + "type": "PERMISJON", + "periode": { + "tom": "2016-11-22", + "fom": "2016-11-21" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974725576" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 2577.42 - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974732017" + "arbeidsforholdId": { + "abakusReferanse": "55987635-d94b-4c78-8822-1ef89d878b97", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R41447SPLHE0UTL0002" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-02-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 9600.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" + "sistLønnsendring": "2018-02-01", + "periode": { + "tom": "2018-12-31", + "fom": "2018-09-01" }, - "beløp" : 23800.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" + "periode": { + "tom": "9999-12-31", + "fom": "2018-02-01" }, - "beløp" : 9402.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "arbeidsforholdId": { + "abakusReferanse": "0ce3ed01-5787-4d8f-aa4c-0db2dfe0fbb6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R41447SPLHE0UTL0001" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-02-01", + "periode": { + "tom": "2018-08-31", + "fom": "2017-11-01" }, - "beløp" : 36400.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "sistLønnsendring": "2018-02-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-09-01" }, - "beløp" : 10000.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "periode": { + "tom": "2018-02-01", + "fom": "2018-02-01" }, - "beløp" : 46000.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" + }, + "arbeidsforholdId": { + "abakusReferanse": "db19342d-01b2-455a-8a0c-ac55bb94cee6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 10000.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2018-12-31", + "fom": "2017-10-01" }, - "beløp" : 57959.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "periode": { + "tom": "9999-12-31", + "fom": "2017-08-01" }, - "beløp" : 34200.00 - } ] - } ] - } ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057080999" - }, - "ytelser" : [ { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "FP", - "periode" : { - "fom" : "2017-11-10", - "tom" : "2018-05-10" + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": "FRILANSER_OPPDRAGSTAKER", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974727501" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2017-11-10", - "tom" : "2018-05-10" - }, - "utbetalingsgrad" : 100.00, - "andeler" : [ ] + "arbeidsforholdId": { + "abakusReferanse": "38b0f45f-ec01-4037-a107-85a05126f641", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C307E1ED8988150806A1B60D7" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-12-31", + "fom": "2018-03-01" + } + } ], + "permisjoner": [ ] + }, { + "arbeidType": "FRILANSER_OPPDRAGSTAKER", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974732017" + }, + "arbeidsforholdId": { + "abakusReferanse": "04d96aec-5e59-4bd3-b08e-bda0314da9b0", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C20321ED69BC0C3CC6F79E0D1" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2016-08-01" + } + } ], + "permisjoner": [ ] + }, { + "arbeidType": "FRILANSER_OPPDRAGSTAKER", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974725576" + }, + "arbeidsforholdId": { + "abakusReferanse": "de33de61-dd87-409e-89da-90f32d6c1765", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C2F591ED891FF1A599F24C0DB" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-12-31", + "fom": "2018-04-01" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", - "opprinneligIdentDato" : "2017-09-01", - "dekningsgradProsent" : 100.00, - "fordeling" : [ { - "beløp" : 69300.00, - "inntektPeriodeType" : "AARLG" + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000058324999" + } + } ], + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000057080999" + }, + "ytelser": [ { + "ytelseGrunnlag": { + "dekningsgradProsent": 100, + "dagsats": 255, + "fordeling": [ { + "beløp": 69300, + "inntektPeriodeType": "AARLG" }, { - "beløp" : 4182.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - } + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "beløp": 4182, + "inntektPeriodeType": "MNDLG" }, { - "beløp" : 36331.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" - } + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" + }, + "beløp": 36331, + "inntektPeriodeType": "MNDLG" } ], - "dagsats" : 255.00 - } - }, { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "FP", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-11-09" + "arbeidskategori": "KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", + "opprinneligIdentDato": "2017-09-01" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-11-09" - }, - "utbetalingsgrad" : 100.00, - "andeler" : [ ] + "ytelseType": "FP", + "anvisninger": [ { + "utbetalingsgrad": 100, + "andeler": [ ], + "periode": { + "tom": "2018-05-10", + "fom": "2017-11-10" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", - "opprinneligIdentDato" : "2017-09-01", - "dekningsgradProsent" : 100.00, - "fordeling" : [ { - "beløp" : 69300.00, - "inntektPeriodeType" : "AARLG" + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2018-05-10", + "fom": "2017-11-10" + }, + "status": "AVSLU" + }, { + "ytelseGrunnlag": { + "dekningsgradProsent": 100, + "dagsats": 255, + "fordeling": [ { + "beløp": 69300, + "inntektPeriodeType": "AARLG" }, { - "beløp" : 4182.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - } + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "beløp": 4182, + "inntektPeriodeType": "MNDLG" }, { - "beløp" : 36331.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" - } + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" + }, + "beløp": 36331, + "inntektPeriodeType": "MNDLG" } ], - "dagsats" : 255.00 - } + "arbeidskategori": "KOMBINASJON_ARBEIDSTAKER_OG_SELVSTENDIG_NÆRINGSDRIVENDE", + "opprinneligIdentDato": "2017-09-01" + }, + "ytelseType": "FP", + "anvisninger": [ { + "utbetalingsgrad": 100, + "andeler": [ ], + "periode": { + "tom": "2017-11-09", + "fom": "2017-09-01" + } + } ], + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2017-11-09", + "fom": "2017-09-01" + }, + "status": "AVSLU" } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000058324999" + "person": { + "identType": "AKTØRID", + "ident": "1000058324999" }, - "ytelser" : [ { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "FP", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-01" + "ytelser": [ { + "ytelseType": "FP", + "anvisninger": [ ], + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2018-11-01", + "fom": "2018-11-01" }, - "status" : "AVSLU", - "anvisninger" : [ ] + "status": "AVSLU" }, { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "FP", - "periode" : { - "fom" : "2018-09-28", - "tom" : "2019-03-21" + "ytelseType": "FP", + "anvisninger": [ ], + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2019-03-21", + "fom": "2018-09-28" }, - "status" : "AVSLU", - "anvisninger" : [ ] + "status": "AVSLU" } ] - } ] + } ], + "opprettetTidspunkt": "2019-03-06T06:00:28.277Z", + "eksternReferanse": "8a6bc442-a32e-1f94-e053-2880340a2b28" }, - "overstyrtGrunnlag" : { - "opprettetTidspunkt" : "2019-03-06T08:05:04.785Z", - "eksternReferanse" : "8a6bc442-a090-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057080999" - }, - "yrkesaktiviteter" : [ { - "arbeidType" : "NÆRING", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2015-12-15", - "tom" : "9999-12-31" + "koblingReferanse": "88487f4b-f422-2133-e053-2880340a6560", + "overstyrtGrunnlag": { + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "NÆRING", + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2015-12-15" } } ], - "permisjoner" : [ ] + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "arbeidsforholdId" : { - "abakusReferanse" : "81699674-9917-49e1-8fbc-828f66f855e6", - "eksternReferanse" : "V974613522R40274SPLHE0UTL0001", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "81699674-9917-49e1-8fbc-828f66f855e6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R40274SPLHE0UTL0001" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2014-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2014-05-01" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2015-05-01", - "tom" : "2018-12-31" + "sistLønnsendring": "2014-05-01", + "periode": { + "tom": "2018-12-31", + "fom": "2015-05-01" }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2014-05-01" + "stillingsprosent": 0 }, { - "periode" : { - "fom" : "2005-01-01", - "tom" : "9999-12-31" + "beskrivelse": "Aktivitet ok.", + "periode": { + "tom": "9999-12-31", + "fom": "2005-01-01" }, - "stillingsprosent" : 0.00, - "beskrivelse" : "Aktivitet ok." + "stillingsprosent": 0 } ], - "permisjoner" : [ ] - } ] - } ] - }, - "inntektsmeldinger" : { - "inntektsmeldinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "journalpostId" : "446045317", - "innsendingstidspunkt" : "2019-02-26T15:08:41Z", - "mottattDato" : "2019-02-26", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ ], - "startdatoPermisjon" : "2019-03-16", - "erNærRelasjon" : false, - "inntektBeløp" : 791.00, - "kanalreferanse" : "AR308323299", - "kildesystem" : "AltinnPortal", - "refusjonEndringer" : [ ], - "innsendingsårsak" : "NY" - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" - }, - "journalpostId" : "446045439", - "innsendingstidspunkt" : "2019-02-26T15:10:44Z", - "mottattDato" : "2019-02-26", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ ], - "startdatoPermisjon" : "2019-03-17", - "erNærRelasjon" : false, - "inntektBeløp" : 44586.00, - "refusjonsBeløpPerMnd" : 44586.00, - "kanalreferanse" : "AR308323711", - "kildesystem" : "AltinnPortal", - "refusjonOpphører" : "9999-12-31", - "refusjonEndringer" : [ ], - "innsendingsårsak" : "NY" - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" - }, - "journalpostId" : "446280466", - "innsendingstidspunkt" : "2019-03-01T10:29:38Z", - "mottattDato" : "2019-03-01", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ ], - "startdatoPermisjon" : "2019-03-16", - "erNærRelasjon" : false, - "inntektBeløp" : 8256.29, - "kanalreferanse" : "AR308970089", - "kildesystem" : "AltinnPortal", - "refusjonEndringer" : [ ], - "innsendingsårsak" : "NY" - } ] - }, - "oppgittOpptjening" : { - "eksternReferanse" : "8a6bc443-6f71-1f94-e053-2880340a2b28", - "opprettetTidspunkt" : "2019-01-07T14:06:47.605Z", - "arbeidsforhold" : [ ], - "egenNæring" : [ { - "periode" : { - "fom" : "2015-12-15", - "tom" : "9999-12-31" - }, - "virksomhet" : { - "identType" : "ORGNUMMER", - "ident" : "916451504" - }, - "virksomhetType" : "ANNEN", - "regnskapsførerNavn" : null, - "regnskapsførerTlf" : null, - "virksomhetNavn" : null, - "landkode" : "NOR", - "endringDato" : null, - "erVarigEndring" : false, - "endringBegrunnelse" : null, - "bruttoInntekt" : 51150.00, - "erNyoppstartet" : true, - "erNærRelasjon" : false, - "erNyIArbeidslivet" : false - } ], - "annenAktivitet" : [ { - "periode" : { - "fom" : "2015-12-15", - "tom" : "9999-12-31" - }, - "arbeidType" : "FRILANSER" + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000057080999" + } } ], - "frilans" : { - "harInntektFraFosterhjem" : false, - "erNyoppstartet" : false, - "erNærRelasjon" : false, - "frilansoppdrag" : [ ] - } + "opprettetTidspunkt": "2019-03-06T08:05:04.785Z", + "eksternReferanse": "8a6bc442-a090-1f94-e053-2880340a2b28" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974725576" + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974725576" }, - "arbeidsforholdId" : { - "abakusReferanse" : "de33de61-dd87-409e-89da-90f32d6c1765", - "eksternReferanse" : "0050568C2F591ED891FF1A599F24C0DB", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "de33de61-dd87-409e-89da-90f32d6c1765", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C2F591ED891FF1A599F24C0DB" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974732017" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974732017" }, - "arbeidsforholdId" : { - "abakusReferanse" : "04d96aec-5e59-4bd3-b08e-bda0314da9b0", - "eksternReferanse" : "0050568C20321ED69BC0C3CC6F79E0D1", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "04d96aec-5e59-4bd3-b08e-bda0314da9b0", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C20321ED69BC0C3CC6F79E0D1" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "arbeidsforholdId" : { - "abakusReferanse" : "0ce3ed01-5787-4d8f-aa4c-0db2dfe0fbb6", - "eksternReferanse" : "V974613522R41447SPLHE0UTL0001", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "0ce3ed01-5787-4d8f-aa4c-0db2dfe0fbb6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R41447SPLHE0UTL0001" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "arbeidsforholdId" : { - "abakusReferanse" : "81699674-9917-49e1-8fbc-828f66f855e6", - "eksternReferanse" : "V974613522R40274SPLHE0UTL0001", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "81699674-9917-49e1-8fbc-828f66f855e6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R40274SPLHE0UTL0001" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "arbeidsforholdId" : { - "abakusReferanse" : "13d980c0-f0b5-47bc-9a35-d95d818793ef", - "eksternReferanse" : "33", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "13d980c0-f0b5-47bc-9a35-d95d818793ef", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "33" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" }, - "arbeidsforholdId" : { - "abakusReferanse" : "55987635-d94b-4c78-8822-1ef89d878b97", - "eksternReferanse" : "V974613522R41447SPLHE0UTL0002", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "55987635-d94b-4c78-8822-1ef89d878b97", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974613522R41447SPLHE0UTL0002" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "993316121" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "993316121" }, - "arbeidsforholdId" : { - "abakusReferanse" : "b94ccb16-68b3-4b38-8c64-f38640197004", - "eksternReferanse" : "0050568C5E3C1EE4A4E62DD05137720D", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "b94ccb16-68b3-4b38-8c64-f38640197004", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C5E3C1EE4A4E62DD05137720D" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "arbeidsforholdId" : { - "abakusReferanse" : "3c5f8bac-670b-4c63-8996-f8d8b508c842", - "eksternReferanse" : "0050568C5E3C1EE4A4E62A0BFC14320D", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "3c5f8bac-670b-4c63-8996-f8d8b508c842", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C5E3C1EE4A4E62A0BFC14320D" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974727501" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974727501" }, - "arbeidsforholdId" : { - "abakusReferanse" : "38b0f45f-ec01-4037-a107-85a05126f641", - "eksternReferanse" : "0050568C307E1ED8988150806A1B60D7", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "38b0f45f-ec01-4037-a107-85a05126f641", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0050568C307E1ED8988150806A1B60D7" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "arbeidsforholdId" : { - "abakusReferanse" : "db19342d-01b2-455a-8a0c-ac55bb94cee6", - "eksternReferanse" : "1", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "db19342d-01b2-455a-8a0c-ac55bb94cee6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1" } } ], - "overstyringer" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974719525" + "overstyringer": [ { + "overstyrtePerioder": [ { + "tom": "9999-12-31", + "fom": "2014-03-01" + } ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974719525" }, - "arbeidsforholdHandlingType" : "BRUK", - "overstyrtePerioder" : [ { - "fom" : "2014-03-01", - "tom" : "9999-12-31" - } ] + "arbeidsforholdHandlingType": "BRUK" }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973686682" - }, - "arbeidsforholdHandlingType" : "BRUK", - "overstyrtePerioder" : [ { - "fom" : "2017-08-01", - "tom" : "9999-12-31" + "overstyrtePerioder": [ { + "tom": "9999-12-31", + "fom": "2017-08-01" }, { - "fom" : "2015-06-01", - "tom" : "9999-12-31" - } ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974613522" + "tom": "9999-12-31", + "fom": "2015-06-01" + } ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973686682" }, - "arbeidsforholdHandlingType" : "BRUK", - "overstyrtePerioder" : [ { - "fom" : "2018-02-01", - "tom" : "2018-02-01" + "arbeidsforholdHandlingType": "BRUK" + }, { + "overstyrtePerioder": [ { + "tom": "2018-02-01", + "fom": "2018-02-01" }, { - "fom" : "2018-02-01", - "tom" : "9999-12-31" + "tom": "9999-12-31", + "fom": "2018-02-01" }, { - "fom" : "2005-01-01", - "tom" : "9999-12-31" - } ] + "tom": "9999-12-31", + "fom": "2005-01-01" + } ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974613522" + }, + "arbeidsforholdHandlingType": "BRUK" } ] } -} +} \ No newline at end of file diff --git a/kontrakt/src/test/resources/iay_case_002.json b/kontrakt/src/test/resources/iay_case_002.json index 2d3d80b07..998fde598 100644 --- a/kontrakt/src/test/resources/iay_case_002.json +++ b/kontrakt/src/test/resources/iay_case_002.json @@ -1,512 +1,512 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057870419" + "person": { + "identType": "AKTØRID", + "ident": "1000057870419" }, - "grunnlagTidspunkt" : "2019-03-07T08:52:40.113Z", - "grunnlagReferanse" : "8abb7316-9ecb-0abc-e053-2880340a57a0", - "koblingReferanse" : "88487f4c-08c5-2133-e053-2880340a6560", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-03-07T08:52:40.112Z", - "eksternReferanse" : "8a6bc442-61dc-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000010021763" + "grunnlagTidspunkt": "2019-03-07T08:52:40.113Z", + "grunnlagReferanse": "8abb7316-9ecb-0abc-e053-2880340a57a0", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000010021763" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "996437833" + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "996437833" }, - "arbeidsforholdId" : { - "abakusReferanse" : "47b6e387-3b0b-41ee-865d-fbe77cfe35f7", - "eksternReferanse" : "7-20150101-1", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2016-01-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2016-01-01" - }, { - "periode" : { - "fom" : "2016-01-01", - "tom" : "2017-11-16" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2016-01-01" - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 46361, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 32400, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 32500, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 42500, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18000, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 35577.6, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "919321784" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "a12807c6-447e-4597-9ccc-d3aca1b777a9", - "eksternReferanse" : "1", - "eksternReferanseSystem" : "AAREGISTERET" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "919321784" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-08-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-06-20" - }, { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-06-20" - }, { - "periode" : { - "fom" : "2017-06-20", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 44875, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 57000, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 44062, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40625, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7500, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 36750, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 8750, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 20000, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 16125, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 27170, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 63125, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 61100, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 68125, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 45750, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 93187, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 77866, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057870419" + "person": { + "identType": "AKTØRID", + "ident": "1000057870419" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "919321784" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "a12807c6-447e-4597-9ccc-d3aca1b777a9", - "eksternReferanse" : "1", - "eksternReferanseSystem" : "AAREGISTERET" + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "972213489" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-11-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-11-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 20.00, - "sistLønnsendring" : "2017-11-01" - }, { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 20.00, - "sistLønnsendring" : "2017-11-01" - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 9991.69, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 8659.46, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 9325.58, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 5675.28, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "972213489" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "64155bcf-1cc3-499c-ab51-e9188e85b650", - "eksternReferanse" : "836984684037006315775", - "eksternReferanseSystem" : "AAREGISTERET" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "919321784" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-06-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-06-21" - }, { - "periode" : { - "fom" : "2017-06-21", - "tom" : "2018-02-28" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-06-21" - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 20000, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 6500, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7150, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 7312, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 6500, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14624, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 9352, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] } ] } ], - "inntekter" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000010021763" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "996437833" + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "996437833" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 46361.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 32400.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 32500.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" + "arbeidsforholdId": { + "abakusReferanse": "47b6e387-3b0b-41ee-865d-fbe77cfe35f7", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "7-20150101-1" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2016-01-01", + "periode": { + "tom": "2017-12-31", + "fom": "2016-01-01" }, - "beløp" : 42500.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" + "periode": { + "tom": "2017-11-16", + "fom": "2016-01-01" }, - "beløp" : 18000.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" + "sistLønnsendring": "2016-01-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" }, - "beløp" : 35577.60 - } ] + "stillingsprosent": 100 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "919321784" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "919321784" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 44875.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 57000.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 44062.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 40625.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 7500.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 36750.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 8750.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 20000.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 16125.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 27170.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 63125.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 61100.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 68125.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "arbeidsforholdId": { + "abakusReferanse": "a12807c6-447e-4597-9ccc-d3aca1b777a9", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-06-20", + "periode": { + "tom": "2018-12-31", + "fom": "2017-08-01" }, - "beløp" : 45750.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "sistLønnsendring": "2017-06-20", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 93187.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "periode": { + "tom": "9999-12-31", + "fom": "2017-06-20" }, - "beløp" : 77866.00 - } ] - } ] + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000010021763" + } }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057870419" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "972213489" + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "919321784" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 9991.69 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" + "arbeidsforholdId": { + "abakusReferanse": "a12807c6-447e-4597-9ccc-d3aca1b777a9", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2017-11-01" }, - "beløp" : 8659.46 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" + "sistLønnsendring": "2017-11-01", + "periode": { + "tom": "2018-12-31", + "fom": "2017-11-01" }, - "beløp" : 9325.58 + "stillingsprosent": 20 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" + "sistLønnsendring": "2017-11-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 5675.28 - } ] + "stillingsprosent": 20 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "919321784" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "972213489" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 20000.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 6500.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 7150.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 7312.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "arbeidsforholdId": { + "abakusReferanse": "64155bcf-1cc3-499c-ab51-e9188e85b650", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "836984684037006315775" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-06-21", + "periode": { + "tom": "2017-12-31", + "fom": "2017-06-01" }, - "beløp" : 6500.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "periode": { + "tom": "2018-02-28", + "fom": "2017-06-21" }, - "beløp" : 14624.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "sistLønnsendring": "2017-06-21", + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" }, - "beløp" : 9352.00 - } ] - } ] + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000057870419" + } } ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000010021763" + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000010021763" }, - "ytelser" : [ ] + "ytelser": [ ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000057870419" + "person": { + "identType": "AKTØRID", + "ident": "1000057870419" }, - "ytelser" : [ ] - } ] + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-03-07T08:52:40.112Z", + "eksternReferanse": "8a6bc442-61dc-1f94-e053-2880340a2b28" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "919321784" + "koblingReferanse": "88487f4c-08c5-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "919321784" }, - "arbeidsforholdId" : { - "abakusReferanse" : "a12807c6-447e-4597-9ccc-d3aca1b777a9", - "eksternReferanse" : "1", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "a12807c6-447e-4597-9ccc-d3aca1b777a9", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "996437833" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "996437833" }, - "arbeidsforholdId" : { - "abakusReferanse" : "47b6e387-3b0b-41ee-865d-fbe77cfe35f7", - "eksternReferanse" : "7-20150101-1", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "47b6e387-3b0b-41ee-865d-fbe77cfe35f7", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "7-20150101-1" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "972213489" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "972213489" }, - "arbeidsforholdId" : { - "abakusReferanse" : "64155bcf-1cc3-499c-ab51-e9188e85b650", - "eksternReferanse" : "836984684037006315775", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "64155bcf-1cc3-499c-ab51-e9188e85b650", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "836984684037006315775" } } ], - "overstyringer" : [ ] + "overstyringer": [ ] } -} +} \ No newline at end of file diff --git a/kontrakt/src/test/resources/iay_case_003.json b/kontrakt/src/test/resources/iay_case_003.json index de2325802..1dac7de03 100644 --- a/kontrakt/src/test/resources/iay_case_003.json +++ b/kontrakt/src/test/resources/iay_case_003.json @@ -1,693 +1,693 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000016519934" + "oppgittOpptjening": { + "annenAktivitet": [ ], + "arbeidsforhold": [ ], + "opprettetTidspunkt": "2019-01-02T15:30:13.228Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": false, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "992254025" + }, + "virksomhetType": "ANNEN", + "periode": { + "tom": "9999-12-31", + "fom": "2008-02-16" + }, + "bruttoInntekt": 0, + "landkode": "NOR", + "erNyoppstartet": false, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": null, + "endringDato": null + } ], + "eksternReferanse": "8a6bc443-6f65-1f94-e053-2880340a2b28" }, - "grunnlagTidspunkt" : "2019-02-11T09:39:32.557Z", - "grunnlagReferanse" : "8abb7315-b003-0abc-e053-2880340a57a0", - "koblingReferanse" : "88487f4b-f4df-2133-e053-2880340a6560", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-02-11T09:39:32.555Z", - "eksternReferanse" : "8a6bc441-d26e-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000016519934" + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "mottattDato": "2019-02-04", + "refusjonEndringer": [ ], + "innsendingstidspunkt": "2019-02-04T15:20:56Z", + "refusjonsBeløpPerMnd": 41217.49, + "naturalytelser": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974610752" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974610752" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "400b5897-b5e9-468d-99b2-c94f57bbddc8", - "eksternReferanse" : "0001-0001-20100801", - "eksternReferanseSystem" : "AAREGISTERET" + "erNærRelasjon": false, + "utsettelsePerioder": [ { + "utsettelseÅrsak": "LOVBESTEMT_FERIE", + "periode": { + "tom": "2019-07-29", + "fom": "2019-07-01" + } + } ], + "inntektBeløp": 41507.57, + "startdatoPermisjon": "2019-02-28", + "refusjonOpphører": "9999-12-31", + "journalpostId": "444526385", + "innsendingsårsak": "NY" + } ] + }, + "person": { + "identType": "AKTØRID", + "ident": "1000016519934" + }, + "grunnlagTidspunkt": "2019-02-11T09:39:32.557Z", + "grunnlagReferanse": "8abb7315-b003-0abc-e053-2880340a57a0", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000016519934" + }, + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974610752" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-06-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-06-01" - }, { - "periode" : { - "fom" : "2017-06-01", - "tom" : "2017-09-30" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-07-01" - }, { - "periode" : { - "fom" : "2010-08-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-08-01" - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-05-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-08-01" - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 41291.19, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41291.19, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41291.19, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41291.19, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 42161.43, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 39401.51, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 88476.77, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40840.66, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40541.19, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41291.19, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 42679.64, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41333.77, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + } ] + }, { + "inntektsKilde": "SIGRUN", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 3203, + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" + } + }, { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 2930, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 9078, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 537604, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 499003, + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" + } + }, { + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 468875, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + }, { + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + } ] } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000047286886" + "person": { + "identType": "AKTØRID", + "ident": "1000047286886" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973857622" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "4fcb64d4-7733-4a19-b9a7-95ea128f2255", - "eksternReferanse" : "0001-0001-20180801", - "eksternReferanseSystem" : "AAREGISTERET" + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974595060" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-10-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-11-01" - }, { - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-09-30" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-08-01" - }, { - "periode" : { - "fom" : "2018-08-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 14725.13, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 19118.94, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 13305.13, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14725.13, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14701.93, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14701.93, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14701.93, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14701.93, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 14701.93, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 15446.61, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 15068.6, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "981598482" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "981598482" }, - "arbeidsforholdId" : { - "abakusReferanse" : "f12bcc10-584a-4e0d-9849-24b4e42c5d59", - "eksternReferanse" : "975577414001169208", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2011-09-01", - "tom" : "2018-06-30" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" - }, - "stillingsprosent" : 50.00, - "sistLønnsendring" : "2016-05-01" - }, { - "periode" : { - "fom" : "2018-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 50.00, - "sistLønnsendring" : "2016-05-01" - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18965, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 18809, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 34651, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974595060" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "05290652-4a6a-4f94-9491-7eb61138df7e", - "eksternReferanse" : "V974595060R89887S25107962L0002", - "eksternReferanseSystem" : "AAREGISTERET" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973857622" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-06-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 40.00, - "sistLønnsendring" : "2017-08-01" - }, { - "periode" : { - "fom" : "2017-08-01", - "tom" : "2018-07-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 40440.37, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41731.58, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 44661.61, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41406.88, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40823.7, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 36257.03, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + } ] } ] } ], - "inntekter" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000016519934" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974610752" + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974610752" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 41291.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 41291.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 41291.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 41291.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 42161.43 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 39401.51 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 88476.77 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 40840.66 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 40541.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 41291.19 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 42679.64 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 41333.77 - } ] - }, { - "arbeidsgiver" : null, - "inntektsKilde" : "SIGRUN", - "utbetalingsPoster" : [ { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" - }, - "beløp" : 3203.00 - }, { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" - }, - "beløp" : 2930.00 - }, { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" - }, - "beløp" : 9078.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" + "arbeidsforholdId": { + "abakusReferanse": "400b5897-b5e9-468d-99b2-c94f57bbddc8", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0001-0001-20100801" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-06-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-06-01" }, - "beløp" : 537604.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" + "sistLønnsendring": "2017-07-01", + "periode": { + "tom": "2017-09-30", + "fom": "2017-06-01" }, - "beløp" : 499003.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" + "periode": { + "tom": "9999-12-31", + "fom": "2010-08-01" }, - "beløp" : 0.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-10-01" }, - "beløp" : 468875.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "2018-05-31", + "fom": "2018-01-01" }, - "beløp" : 0.00 - } ] - } ] + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000016519934" + } }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000047286886" - }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974595060" + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973857622" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 14725.13 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 19118.94 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 13305.13 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 14725.13 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 14701.93 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 14701.93 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 14701.93 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 14701.93 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "arbeidsforholdId": { + "abakusReferanse": "4fcb64d4-7733-4a19-b9a7-95ea128f2255", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0001-0001-20180801" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-11-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-10-01" }, - "beløp" : 14701.93 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "sistLønnsendring": "2018-08-01", + "periode": { + "tom": "2018-09-30", + "fom": "2018-07-01" }, - "beløp" : 15446.61 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "periode": { + "tom": "9999-12-31", + "fom": "2018-08-01" }, - "beløp" : 15068.60 - } ] + "stillingsprosent": 0 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "981598482" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "981598482" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 18965.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 18809.00 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "arbeidsforholdId": { + "abakusReferanse": "f12bcc10-584a-4e0d-9849-24b4e42c5d59", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "975577414001169208" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-06-30", + "fom": "2011-09-01" }, - "beløp" : 18809.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "sistLønnsendring": "2016-05-01", + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" }, - "beløp" : 18809.00 + "stillingsprosent": 50 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "sistLønnsendring": "2016-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2018-01-01" }, - "beløp" : 34651.00 - } ] + "stillingsprosent": 50 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973857622" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974595060" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 40440.37 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 41731.58 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 44661.61 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 41406.88 - }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "arbeidsforholdId": { + "abakusReferanse": "05290652-4a6a-4f94-9491-7eb61138df7e", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974595060R89887S25107962L0002" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-08-01", + "periode": { + "tom": "9999-12-31", + "fom": "2017-06-01" }, - "beløp" : 40823.70 + "stillingsprosent": 40 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "periode": { + "tom": "2018-07-31", + "fom": "2017-08-01" }, - "beløp" : 36257.03 - } ] - } ] + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000047286886" + } } ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000016519934" + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000016519934" }, - "ytelser" : [ ] + "ytelser": [ ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000047286886" - }, - "ytelser" : [ ] - } ] - }, - "inntektsmeldinger" : { - "inntektsmeldinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974610752" - }, - "journalpostId" : "444526385", - "innsendingstidspunkt" : "2019-02-04T15:20:56Z", - "mottattDato" : "2019-02-04", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ { - "periode" : { - "fom" : "2019-07-01", - "tom" : "2019-07-29" - }, - "utsettelseÅrsak" : "LOVBESTEMT_FERIE" - } ], - "startdatoPermisjon" : "2019-02-28", - "erNærRelasjon" : false, - "inntektBeløp" : 41507.57, - "refusjonsBeløpPerMnd" : 41217.49, - "refusjonOpphører" : "9999-12-31", - "refusjonEndringer" : [ ], - "innsendingsårsak" : "NY" - } ] - }, - "oppgittOpptjening" : { - "eksternReferanse" : "8a6bc443-6f65-1f94-e053-2880340a2b28", - "opprettetTidspunkt" : "2019-01-02T15:30:13.228Z", - "arbeidsforhold" : [ ], - "egenNæring" : [ { - "periode" : { - "fom" : "2008-02-16", - "tom" : "9999-12-31" - }, - "virksomhet" : { - "identType" : "ORGNUMMER", - "ident" : "992254025" + "person": { + "identType": "AKTØRID", + "ident": "1000047286886" }, - "virksomhetType" : "ANNEN", - "regnskapsførerNavn" : null, - "regnskapsførerTlf" : null, - "virksomhetNavn" : null, - "landkode" : "NOR", - "endringDato" : null, - "erVarigEndring" : false, - "endringBegrunnelse" : null, - "bruttoInntekt" : 0.00, - "erNyoppstartet" : false, - "erNærRelasjon" : false, - "erNyIArbeidslivet" : false + "ytelser": [ ] } ], - "annenAktivitet" : [ ] + "opprettetTidspunkt": "2019-02-11T09:39:32.555Z", + "eksternReferanse": "8a6bc441-d26e-1f94-e053-2880340a2b28" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974610752" + "koblingReferanse": "88487f4b-f4df-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974610752" }, - "arbeidsforholdId" : { - "abakusReferanse" : "400b5897-b5e9-468d-99b2-c94f57bbddc8", - "eksternReferanse" : "0001-0001-20100801", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "400b5897-b5e9-468d-99b2-c94f57bbddc8", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0001-0001-20100801" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "973857622" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "973857622" }, - "arbeidsforholdId" : { - "abakusReferanse" : "4fcb64d4-7733-4a19-b9a7-95ea128f2255", - "eksternReferanse" : "0001-0001-20180801", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "4fcb64d4-7733-4a19-b9a7-95ea128f2255", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "0001-0001-20180801" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "974595060" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "974595060" }, - "arbeidsforholdId" : { - "abakusReferanse" : "05290652-4a6a-4f94-9491-7eb61138df7e", - "eksternReferanse" : "V974595060R89887S25107962L0002", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "05290652-4a6a-4f94-9491-7eb61138df7e", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V974595060R89887S25107962L0002" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "981598482" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "981598482" }, - "arbeidsforholdId" : { - "abakusReferanse" : "f12bcc10-584a-4e0d-9849-24b4e42c5d59", - "eksternReferanse" : "975577414001169208", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "f12bcc10-584a-4e0d-9849-24b4e42c5d59", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "975577414001169208" } } ], - "overstyringer" : [ ] + "overstyringer": [ ] } -} +} \ No newline at end of file diff --git a/kontrakt/src/test/resources/iay_case_004.json b/kontrakt/src/test/resources/iay_case_004.json index 559844eae..5ba73cb3c 100644 --- a/kontrakt/src/test/resources/iay_case_004.json +++ b/kontrakt/src/test/resources/iay_case_004.json @@ -1,1133 +1,1133 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000033071172" - }, - "grunnlagTidspunkt" : "2019-03-14T09:37:20.393Z", - "grunnlagReferanse" : "8abb7316-f8a8-0abc-e053-2880340a57a0", - "koblingReferanse" : "88487f4c-2de5-2133-e053-2880340a6560", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-03-14T07:19:50.276Z", - "eksternReferanse" : "8a6bc442-d4b9-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000065394605" + "oppgittOpptjening": { + "annenAktivitet": [ ], + "arbeidsforhold": [ ], + "opprettetTidspunkt": "2018-12-11T10:00:59.906Z", + "egenNæring": [ { + "regnskapsførerNavn": null, + "virksomhetNavn": null, + "regnskapsførerTlf": null, + "erNyIArbeidslivet": true, + "virksomhet": { + "identType": "ORGNUMMER", + "ident": "820535022" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "887907552" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "4f373bfe-de50-4f74-bc96-178d2e3cf7d6", - "eksternReferanse" : "V887907552R56735S9009L0001", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2016-06-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2016-06-01" - }, { - "periode" : { - "fom" : "2016-06-01", - "tom" : "2018-03-31" - }, - "stillingsprosent" : 0.00 - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "879591422" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "a6162769-97d1-4964-933e-030c6718b775", - "eksternReferanse" : "V879591422R50001131S022801L0006", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" - }, { - "periode" : { - "fom" : "2018-04-03", - "tom" : "2019-04-02" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2015-12-01", - "tom" : "2018-05-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-04-03" - }, { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "882916952" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "6510945e-2862-4db4-a872-d5aa77a87eaf", - "eksternReferanse" : "1096", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2011-11-02", - "tom" : "2018-01-24" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2017-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 0.00, - "sistLønnsendring" : "2011-11-02" - } ], - "permisjoner" : [ ] - }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "976172035" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "f0d162ad-00e4-4e9c-a1fc-ad924ed6f6b3", - "eksternReferanse" : "V976172035R2121L0001", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "FRILANSER_OPPDRAGSTAKER", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2015-10-01", - "tom" : "2017-07-31" - } - }, { - "periode" : { - "fom" : "2015-10-01", - "tom" : "9999-12-31" - } - } ], - "permisjoner" : [ ] - } ] - }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000033071172" + "virksomhetType": "ANNEN", + "periode": { + "tom": "9999-12-31", + "fom": "2018-03-02" }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - }, - "arbeidsforholdId" : { - "abakusReferanse" : "241df316-7dec-43ab-9fc3-f3c1eb87f223", - "eksternReferanse" : "V979588755R50136269SS146856L0005", - "eksternReferanseSystem" : "AAREGISTERET" - }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-05-01" - }, { - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-08-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" - }, { - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" - }, { - "periode" : { - "fom" : "2017-06-01", - "tom" : "2018-04-30" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-05-01" - }, { - "periode" : { - "fom" : "2017-02-20", - "tom" : "2019-01-20" - }, - "stillingsprosent" : 0.00 - }, { - "periode" : { - "fom" : "2019-01-01", - "tom" : "9999-12-31" - }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2018-05-01" - } ], - "permisjoner" : [ ] - } ] + "bruttoInntekt": 45461, + "landkode": "NOR", + "erNyoppstartet": true, + "erVarigEndring": false, + "erNærRelasjon": false, + "endringBegrunnelse": null, + "endringDato": null } ], - "inntekter" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000065394605" + "eksternReferanse": "8a6bc443-70cb-1f94-e053-2880340a2b28" + }, + "inntektsmeldinger": { + "inntektsmeldinger": [ { + "graderinger": [ ], + "mottattDato": "2019-01-21", + "refusjonEndringer": [ ], + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "879591422" + "erNærRelasjon": false, + "innsendingstidspunkt": "2019-01-21T11:51:37.089476Z", + "utsettelsePerioder": [ ], + "inntektBeløp": 41333.33, + "startdatoPermisjon": "2019-01-21", + "naturalytelser": [ ], + "journalpostId": "443545447", + "innsendingsårsak": "ENDRING" + } ] + }, + "person": { + "identType": "AKTØRID", + "ident": "1000033071172" + }, + "grunnlagTidspunkt": "2019-03-14T09:37:20.393Z", + "grunnlagReferanse": "8abb7316-f8a8-0abc-e053-2880340a57a0", + "registerGrunnlag": { + "inntekter": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000065394605" + }, + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "879591422" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 46410.08 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 46410.08, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 48615.00 + "inntektspostType": "LØNN", + "beløp": 48615, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 13336.21 + "inntektspostType": "LØNN", + "beløp": 13336.21, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 41898.45 + "inntektspostType": "LØNN", + "beløp": 41898.45, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 44197.23 + "inntektspostType": "LØNN", + "beløp": 44197.23, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 44595.56 + "inntektspostType": "LØNN", + "beløp": 44595.56, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 48621.48 + "inntektspostType": "LØNN", + "beløp": 48621.48, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 47773.34 + "inntektspostType": "LØNN", + "beløp": 47773.34, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 48615.00 + "inntektspostType": "LØNN", + "beløp": 48615, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 49456.66 + "inntektspostType": "LØNN", + "beløp": 49456.66, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 48615.00 + "inntektspostType": "LØNN", + "beløp": 48615, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } } ] } ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000033071172" + "person": { + "identType": "AKTØRID", + "ident": "1000033071172" }, - "utbetalinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979590660" + "utbetalinger": [ { + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979590660" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 37754.64 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 37754.64, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : -37754.61 + "inntektspostType": "LØNN", + "beløp": -37754.61, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } } ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 5240.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "YTELSE", + "beløp": 5240, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" + }, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "inntektspostType": "YTELSE", + "beløp": 2358, + "ytelseType": { + "kodeverk": "NÆRINGSINNTEKT_TYPE", + "kode": "SYKEPENGER" }, - "beløp" : 2358.00, - "ytelseType" : { - "kode" : "SYKEPENGER", - "kodeverk" : "NÆRINGSINNTEKT_TYPE" + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" + "inntektspostType": "YTELSE", + "beløp": 38160, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 38160.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" } }, { - "inntektspostType" : "YTELSE", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" + "inntektspostType": "YTELSE", + "beløp": 17172, + "ytelseType": { + "kodeverk": "YTELSE_FRA_OFFENTLIGE", + "kode": "FORELDREPENGER" }, - "beløp" : 17172.00, - "ytelseType" : { - "kode" : "FORELDREPENGER", - "kodeverk" : "YTELSE_FRA_OFFENTLIGE" + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" + "inntektsKilde": "INNTEKT_OPPTJENING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" }, - "inntektsKilde" : "INNTEKT_OPPTJENING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-01-01", - "tom" : "2019-01-31" - }, - "beløp" : 26765.41 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 26765.41, + "periode": { + "tom": "2019-01-31", + "fom": "2019-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-08-01", - "tom" : "2017-08-31" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-08-31", + "fom": "2017-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 41439.96 + "inntektspostType": "LØNN", + "beløp": 41439.96, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 27801.52 + "inntektspostType": "LØNN", + "beløp": 27801.52, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2019-02-01", - "tom" : "2019-02-28" - }, - "beløp" : 69365.10 + "inntektspostType": "LØNN", + "beløp": 69365.1, + "periode": { + "tom": "2019-02-28", + "fom": "2019-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 47989.68 + "inntektspostType": "LØNN", + "beløp": 47989.68, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 42156.66 + "inntektspostType": "LØNN", + "beløp": 42156.66, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979590660" + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979590660" }, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 37754.64 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 37754.64, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : -37754.61 + "inntektspostType": "LØNN", + "beløp": -37754.61, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" + "inntektsKilde": "INNTEKT_SAMMENLIGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" }, - "inntektsKilde" : "INNTEKT_SAMMENLIGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 41440.00 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-08-01", - "tom" : "2017-08-31" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-08-31", + "fom": "2017-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 41439.96 + "inntektspostType": "LØNN", + "beløp": 41439.96, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 27801.52 + "inntektspostType": "LØNN", + "beløp": 27801.52, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 40725.00 + "inntektspostType": "LØNN", + "beløp": 40725, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" - }, - "beløp" : 40723.34 + "inntektspostType": "LØNN", + "beløp": 40723.34, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" - }, - "beløp" : 41440.00 + "inntektspostType": "LØNN", + "beløp": 41440, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" - }, - "beløp" : 47989.68 + "inntektspostType": "LØNN", + "beløp": 47989.68, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" - }, - "beløp" : 42156.66 + "inntektspostType": "LØNN", + "beløp": 42156.66, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979590660" + "inntektsKilde": "INNTEKT_BEREGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979590660" }, - "inntektsKilde" : "INNTEKT_BEREGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 37754.64 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 37754.64, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : -37754.61 + "inntektspostType": "LØNN", + "beløp": -37754.61, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } } ] }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" + "inntektsKilde": "INNTEKT_BEREGNING", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" }, - "inntektsKilde" : "INNTEKT_BEREGNING", - "utbetalingsPoster" : [ { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-10-01", - "tom" : "2018-10-31" - }, - "beløp" : 41333.33 + "utbetalingsPoster": [ { + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-10-31", + "fom": "2018-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-11-01", - "tom" : "2018-11-30" - }, - "beløp" : 41333.33 + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-11-30", + "fom": "2018-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-08-01", - "tom" : "2017-08-31" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2017-08-31", + "fom": "2017-08-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-11-01", - "tom" : "2017-11-30" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2017-11-30", + "fom": "2017-11-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-09-01", - "tom" : "2018-09-30" - }, - "beløp" : 41333.33 + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-09-30", + "fom": "2018-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-12-01", - "tom" : "2018-12-31" - }, - "beløp" : 41333.33 + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-12-31", + "fom": "2018-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-10-01", - "tom" : "2017-10-31" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2017-10-31", + "fom": "2017-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-09-01", - "tom" : "2017-09-30" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2017-09-30", + "fom": "2017-09-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-12-01", - "tom" : "2017-12-31" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2017-12-31", + "fom": "2017-12-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-01-01", - "tom" : "2018-01-31" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2018-01-31", + "fom": "2018-01-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-04-01", - "tom" : "2018-04-30" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2018-04-30", + "fom": "2018-04-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-03-01", - "tom" : "2018-03-31" - }, - "beløp" : 40616.67 + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2018-03-31", + "fom": "2018-03-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 40616.67, + "periode": { + "tom": "2018-02-28", + "fom": "2018-02-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-08-31", + "fom": "2018-08-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 41333.33, + "periode": { + "tom": "2018-06-30", + "fom": "2018-06-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-05-01", - "tom" : "2018-05-31" + "inntektspostType": "LØNN", + "beløp": 42049.99, + "periode": { + "tom": "2018-07-31", + "fom": "2018-07-01" + } + } ] + }, { + "inntektsKilde": "SIGRUN", + "arbeidsgiver": null, + "utbetalingsPoster": [ { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 0, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "SELVSTENDIG_NÆRINGSDRIVENDE", + "beløp": 0, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 1111329, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 472704, + "periode": { + "tom": "2017-12-31", + "fom": "2017-01-01" + } + }, { + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2016-12-31", + "fom": "2016-01-01" + } + }, { + "inntektspostType": "LØNN", + "beløp": 394137, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + }, { + "inntektspostType": "NÆRING_FISKE_FANGST_FAMBARNEHAGE", + "beløp": 0, + "periode": { + "tom": "2015-12-31", + "fom": "2015-01-01" + } + } ] + } ] + } ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "887907552" + }, + "arbeidsforholdId": { + "abakusReferanse": "4f373bfe-de50-4f74-bc96-178d2e3cf7d6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V887907552R56735S9009L0001" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2016-06-01", + "periode": { + "tom": "9999-12-31", + "fom": "2016-06-01" }, - "beløp" : 40616.67 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-02-01", - "tom" : "2018-02-28" + "periode": { + "tom": "2018-03-31", + "fom": "2016-06-01" + }, + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "879591422" + }, + "arbeidsforholdId": { + "abakusReferanse": "a6162769-97d1-4964-933e-030c6718b775", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V879591422R50001131S022801L0006" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-12-31", + "fom": "2018-06-01" }, - "beløp" : 40616.67 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-08-01", - "tom" : "2018-08-31" + "periode": { + "tom": "2019-04-02", + "fom": "2018-04-03" }, - "beløp" : 41333.33 + "stillingsprosent": 0 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-06-01", - "tom" : "2018-06-30" + "sistLønnsendring": "2018-04-03", + "periode": { + "tom": "2018-05-31", + "fom": "2015-12-01" }, - "beløp" : 41333.33 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2018-07-01", - "tom" : "2018-07-31" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" }, - "beløp" : 42049.99 - } ] + "stillingsprosent": 100 + } ], + "permisjoner": [ ] }, { - "arbeidsgiver" : null, - "inntektsKilde" : "SIGRUN", - "utbetalingsPoster" : [ { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "882916952" + }, + "arbeidsforholdId": { + "abakusReferanse": "6510945e-2862-4db4-a872-d5aa77a87eaf", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1096" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2018-01-24", + "fom": "2011-11-02" }, - "beløp" : 0.00 + "stillingsprosent": 0 }, { - "inntektspostType" : "SELVSTENDIG_NÆRINGSDRIVENDE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" + "sistLønnsendring": "2011-11-02", + "periode": { + "tom": "9999-12-31", + "fom": "2017-01-01" }, - "beløp" : 0.00 + "stillingsprosent": 0 + } ], + "permisjoner": [ ] + }, { + "arbeidType": "FRILANSER_OPPDRAGSTAKER", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "976172035" + }, + "arbeidsforholdId": { + "abakusReferanse": "f0d162ad-00e4-4e9c-a1fc-ad924ed6f6b3", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V976172035R2121L0001" + }, + "aktivitetsAvtaler": [ { + "periode": { + "tom": "2017-07-31", + "fom": "2015-10-01" + } }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" + "periode": { + "tom": "9999-12-31", + "fom": "2015-10-01" + } + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000065394605" + } + }, { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" + }, + "arbeidsforholdId": { + "abakusReferanse": "241df316-7dec-43ab-9fc3-f3c1eb87f223", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V979588755R50136269SS146856L0005" + }, + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-05-01", + "periode": { + "tom": "2018-05-31", + "fom": "2018-05-01" }, - "beløp" : 1111329.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2017-01-01", - "tom" : "2017-12-31" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-08-31", + "fom": "2018-06-01" }, - "beløp" : 472704.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2016-01-01", - "tom" : "2016-12-31" + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "2018-12-31", + "fom": "2018-09-01" }, - "beløp" : 0.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "LØNN", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" + "sistLønnsendring": "2017-05-01", + "periode": { + "tom": "2018-04-30", + "fom": "2017-06-01" }, - "beløp" : 394137.00 + "stillingsprosent": 100 }, { - "inntektspostType" : "NÆRING_FISKE_FANGST_FAMBARNEHAGE", - "periode" : { - "fom" : "2015-01-01", - "tom" : "2015-12-31" + "periode": { + "tom": "2019-01-20", + "fom": "2017-02-20" }, - "beløp" : 0.00 - } ] - } ] + "stillingsprosent": 0 + }, { + "sistLønnsendring": "2018-05-01", + "periode": { + "tom": "9999-12-31", + "fom": "2019-01-01" + }, + "stillingsprosent": 100 + } ], + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000033071172" + } } ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000065394605" + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000065394605" }, - "ytelser" : [ ] + "ytelser": [ ] }, { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000033071172" + "person": { + "identType": "AKTØRID", + "ident": "1000033071172" }, - "ytelser" : [ { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "SP", - "periode" : { - "fom" : "2018-11-08", - "tom" : "2018-12-17" + "ytelser": [ { + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" + }, + "beløp": 41333, + "inntektPeriodeType": "MNDLG" + } ], + "arbeidskategori": "ARBEIDSTAKER" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2018-11-08", - "tom" : "2018-12-17" - }, - "utbetalingsgrad" : 80.00, - "andeler" : [ ] + "ytelseType": "SP", + "anvisninger": [ { + "utbetalingsgrad": 80, + "andeler": [ ], + "periode": { + "tom": "2018-12-17", + "fom": "2018-11-08" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "ARBEIDSTAKER", - "fordeling" : [ { - "beløp" : 41333.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - } - } ] - } + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2018-12-17", + "fom": "2018-11-08" + }, + "status": "AVSLU" }, { - "fagsystem" : "FPSAK", - "ytelseType" : "FP", - "periode" : { - "fom" : "2019-05-27", - "tom" : "2019-09-13" + "saksnummer": "137482921", + "ytelseGrunnlag": { + "dekningsgradProsent": 100, + "fordeling": [ { + "beløp": 68220.61, + "inntektPeriodeType": "AARLG" + } ] }, - "status" : "UBEH", - "saksnummer" : "137482921", - "anvisninger" : [ { - "periode" : { - "fom" : "2019-02-11", - "tom" : "2019-03-22" - }, - "andeler" : [ ] + "ytelseType": "FP", + "anvisninger": [ { + "andeler": [ ], + "periode": { + "tom": "2019-03-22", + "fom": "2019-02-11" + } }, { - "periode" : { - "fom" : "2019-01-21", - "tom" : "2019-02-08" - }, - "andeler" : [ ] + "andeler": [ ], + "periode": { + "tom": "2019-02-08", + "fom": "2019-01-21" + } }, { - "periode" : { - "fom" : "2019-05-27", - "tom" : "2019-09-13" - }, - "andeler" : [ ] + "andeler": [ ], + "periode": { + "tom": "2019-09-13", + "fom": "2019-05-27" + } }, { - "periode" : { - "fom" : "2019-03-23", - "tom" : "2019-05-24" - }, - "andeler" : [ ] + "andeler": [ ], + "periode": { + "tom": "2019-05-24", + "fom": "2019-03-23" + } } ], - "ytelseGrunnlag" : { - "dekningsgradProsent" : 100.00, - "fordeling" : [ { - "beløp" : 68220.61, - "inntektPeriodeType" : "AARLG" - } ] - } + "fagsystem": "FPSAK", + "periode": { + "tom": "2019-09-13", + "fom": "2019-05-27" + }, + "status": "UBEH" }, { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "SVP", - "periode" : { - "fom" : "2018-10-18", - "tom" : "2018-11-07" + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" + }, + "beløp": 41333, + "inntektPeriodeType": "MNDLG" + } ], + "arbeidskategori": "ARBEIDSTAKER", + "opprinneligIdentDato": "2018-10-18" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2018-10-18", - "tom" : "2018-11-07" - }, - "utbetalingsgrad" : 40.00, - "andeler" : [ ] + "ytelseType": "SVP", + "anvisninger": [ { + "utbetalingsgrad": 40, + "andeler": [ ], + "periode": { + "tom": "2018-11-07", + "fom": "2018-10-18" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "ARBEIDSTAKER", - "opprinneligIdentDato" : "2018-10-18", - "fordeling" : [ { - "beløp" : 41333.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - } - } ] - } + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2018-11-07", + "fom": "2018-10-18" + }, + "status": "AVSLU" }, { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "SP", - "periode" : { - "fom" : "2018-06-19", - "tom" : "2018-07-23" + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" + }, + "beløp": 41333, + "inntektPeriodeType": "MNDLG" + } ], + "arbeidskategori": "ARBEIDSTAKER" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2018-07-03", - "tom" : "2018-07-23" - }, - "utbetalingsgrad" : 100.00, - "andeler" : [ ] + "ytelseType": "SP", + "anvisninger": [ { + "utbetalingsgrad": 100, + "andeler": [ ], + "periode": { + "tom": "2018-07-23", + "fom": "2018-07-03" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "ARBEIDSTAKER", - "fordeling" : [ { - "beløp" : 41333.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - } - } ] - } + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2018-07-23", + "fom": "2018-06-19" + }, + "status": "AVSLU" }, { - "fagsystem" : "INFOTRYGD", - "ytelseType" : "SVP", - "periode" : { - "fom" : "2018-12-18", - "tom" : "2019-01-18" + "ytelseGrunnlag": { + "fordeling": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" + }, + "beløp": 41333, + "inntektPeriodeType": "MNDLG" + } ], + "arbeidskategori": "ARBEIDSTAKER", + "opprinneligIdentDato": "2018-12-18" }, - "status" : "AVSLU", - "anvisninger" : [ { - "periode" : { - "fom" : "2018-12-18", - "tom" : "2019-01-18" - }, - "utbetalingsgrad" : 40.00, - "andeler" : [ ] + "ytelseType": "SVP", + "anvisninger": [ { + "utbetalingsgrad": 40, + "andeler": [ ], + "periode": { + "tom": "2019-01-18", + "fom": "2018-12-18" + } } ], - "ytelseGrunnlag" : { - "arbeidskategori" : "ARBEIDSTAKER", - "opprinneligIdentDato" : "2018-12-18", - "fordeling" : [ { - "beløp" : 41333.00, - "inntektPeriodeType" : "MNDLG", - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - } - } ] - } + "fagsystem": "INFOTRYGD", + "periode": { + "tom": "2019-01-18", + "fom": "2018-12-18" + }, + "status": "AVSLU" } ] - } ] + } ], + "opprettetTidspunkt": "2019-03-14T07:19:50.276Z", + "eksternReferanse": "8a6bc442-d4b9-1f94-e053-2880340a2b28" }, - "overstyrtGrunnlag" : { - "opprettetTidspunkt" : "2019-03-14T09:37:20.393Z", - "eksternReferanse" : "8a6bc442-d77c-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000033071172" - }, - "yrkesaktiviteter" : [ { - "arbeidType" : "NÆRING", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2018-03-02", - "tom" : "9999-12-31" + "koblingReferanse": "88487f4c-2de5-2133-e053-2880340a6560", + "overstyrtGrunnlag": { + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "NÆRING", + "aktivitetsAvtaler": [ { + "periode": { + "tom": "9999-12-31", + "fom": "2018-03-02" } } ], - "permisjoner" : [ ] - } ] - } ] - }, - "inntektsmeldinger" : { - "inntektsmeldinger" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" - }, - "journalpostId" : "443545447", - "innsendingstidspunkt" : "2019-01-21T11:51:37.089476Z", - "mottattDato" : "2019-01-21", - "graderinger" : [ ], - "naturalytelser" : [ ], - "utsettelsePerioder" : [ ], - "startdatoPermisjon" : "2019-01-21", - "erNærRelasjon" : false, - "inntektBeløp" : 41333.33, - "refusjonEndringer" : [ ], - "innsendingsårsak" : "ENDRING" - } ] - }, - "oppgittOpptjening" : { - "eksternReferanse" : "8a6bc443-70cb-1f94-e053-2880340a2b28", - "opprettetTidspunkt" : "2018-12-11T10:00:59.906Z", - "arbeidsforhold" : [ ], - "egenNæring" : [ { - "periode" : { - "fom" : "2018-03-02", - "tom" : "9999-12-31" - }, - "virksomhet" : { - "identType" : "ORGNUMMER", - "ident" : "820535022" - }, - "virksomhetType" : "ANNEN", - "regnskapsførerNavn" : null, - "regnskapsførerTlf" : null, - "virksomhetNavn" : null, - "landkode" : "NOR", - "endringDato" : null, - "erVarigEndring" : false, - "endringBegrunnelse" : null, - "bruttoInntekt" : 45461.00, - "erNyoppstartet" : true, - "erNærRelasjon" : false, - "erNyIArbeidslivet" : true + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000033071172" + } } ], - "annenAktivitet" : [ ] + "opprettetTidspunkt": "2019-03-14T09:37:20.393Z", + "eksternReferanse": "8a6bc442-d77c-1f94-e053-2880340a2b28" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "882916952" + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "882916952" }, - "arbeidsforholdId" : { - "abakusReferanse" : "6510945e-2862-4db4-a872-d5aa77a87eaf", - "eksternReferanse" : "1096", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "6510945e-2862-4db4-a872-d5aa77a87eaf", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "1096" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "887907552" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "887907552" }, - "arbeidsforholdId" : { - "abakusReferanse" : "4f373bfe-de50-4f74-bc96-178d2e3cf7d6", - "eksternReferanse" : "V887907552R56735S9009L0001", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "4f373bfe-de50-4f74-bc96-178d2e3cf7d6", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V887907552R56735S9009L0001" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "979588755" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "979588755" }, - "arbeidsforholdId" : { - "abakusReferanse" : "241df316-7dec-43ab-9fc3-f3c1eb87f223", - "eksternReferanse" : "V979588755R50136269SS146856L0005", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "241df316-7dec-43ab-9fc3-f3c1eb87f223", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V979588755R50136269SS146856L0005" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "976172035" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "976172035" }, - "arbeidsforholdId" : { - "abakusReferanse" : "f0d162ad-00e4-4e9c-a1fc-ad924ed6f6b3", - "eksternReferanse" : "V976172035R2121L0001", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "f0d162ad-00e4-4e9c-a1fc-ad924ed6f6b3", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V976172035R2121L0001" } }, { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "879591422" + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "879591422" }, - "arbeidsforholdId" : { - "abakusReferanse" : "a6162769-97d1-4964-933e-030c6718b775", - "eksternReferanse" : "V879591422R50001131S022801L0006", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "a6162769-97d1-4964-933e-030c6718b775", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "V879591422R50001131S022801L0006" } } ], - "overstyringer" : [ ] + "overstyringer": [ ] } -} +} \ No newline at end of file diff --git a/kontrakt/src/test/resources/iay_case_005.json b/kontrakt/src/test/resources/iay_case_005.json index f0e77838a..b9186df4a 100644 --- a/kontrakt/src/test/resources/iay_case_005.json +++ b/kontrakt/src/test/resources/iay_case_005.json @@ -1,68 +1,68 @@ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000017554179" + "person": { + "identType": "AKTØRID", + "ident": "1000017554179" }, - "grunnlagTidspunkt" : "2019-01-15T13:30:29.378Z", - "grunnlagReferanse" : "8abb7314-cf49-0abc-e053-2880340a57a0", - "koblingReferanse" : "88487f4b-f153-2133-e053-2880340a6560", - "registerGrunnlag" : { - "opprettetTidspunkt" : "2019-01-15T13:30:29.377Z", - "eksternReferanse" : "8a6bc440-f67e-1f94-e053-2880340a2b28", - "arbeid" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000017554179" - }, - "yrkesaktiviteter" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "918628053" + "grunnlagTidspunkt": "2019-01-15T13:30:29.378Z", + "grunnlagReferanse": "8abb7314-cf49-0abc-e053-2880340a57a0", + "registerGrunnlag": { + "inntekter": [ ], + "arbeid": [ { + "yrkesaktiviteter": [ { + "arbeidType": "ORDINÆRT_ARBEIDSFORHOLD", + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "918628053" }, - "arbeidsforholdId" : { - "abakusReferanse" : "f1dfba7b-0b24-4d06-b77c-cdfb9350158d", - "eksternReferanse" : "4", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "f1dfba7b-0b24-4d06-b77c-cdfb9350158d", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "4" }, - "arbeidType" : "ORDINÆRT_ARBEIDSFORHOLD", - "aktivitetsAvtaler" : [ { - "periode" : { - "fom" : "2017-12-01", - "tom" : "9999-12-31" + "aktivitetsAvtaler": [ { + "sistLønnsendring": "2017-10-01", + "periode": { + "tom": "9999-12-31", + "fom": "2017-12-01" }, - "stillingsprosent" : 100.00, - "sistLønnsendring" : "2017-10-01" + "stillingsprosent": 100 }, { - "periode" : { - "fom" : "2017-10-01", - "tom" : "2018-06-12" + "periode": { + "tom": "2018-06-12", + "fom": "2017-10-01" }, - "stillingsprosent" : 0.00 + "stillingsprosent": 0 } ], - "permisjoner" : [ ] - } ] + "permisjoner": [ ] + } ], + "person": { + "identType": "AKTØRID", + "ident": "1000017554179" + } } ], - "inntekter" : [ ], - "ytelser" : [ { - "person" : { - "identType" : "AKTØRID", - "ident" : "1000017554179" + "ytelser": [ { + "person": { + "identType": "AKTØRID", + "ident": "1000017554179" }, - "ytelser" : [ ] - } ] + "ytelser": [ ] + } ], + "opprettetTidspunkt": "2019-01-15T13:30:29.377Z", + "eksternReferanse": "8a6bc440-f67e-1f94-e053-2880340a2b28" }, - "arbeidsforholdInformasjon" : { - "referanser" : [ { - "arbeidsgiver" : { - "identType" : "ORGNUMMER", - "ident" : "918628053" + "koblingReferanse": "88487f4b-f153-2133-e053-2880340a6560", + "arbeidsforholdInformasjon": { + "referanser": [ { + "arbeidsgiver": { + "identType": "ORGNUMMER", + "ident": "918628053" }, - "arbeidsforholdId" : { - "abakusReferanse" : "f1dfba7b-0b24-4d06-b77c-cdfb9350158d", - "eksternReferanse" : "4", - "eksternReferanseSystem" : "AAREGISTERET" + "arbeidsforholdId": { + "abakusReferanse": "f1dfba7b-0b24-4d06-b77c-cdfb9350158d", + "eksternReferanseSystem": "AAREGISTERET", + "eksternReferanse": "4" } } ], - "overstyringer" : [ ] + "overstyringer": [ ] } -} +} \ No newline at end of file diff --git a/migreringer/pom.xml b/migreringer/pom.xml index 669159715..dca2172e2 100644 --- a/migreringer/pom.xml +++ b/migreringer/pom.xml @@ -1,7 +1,5 @@ - + 4.0.0 @@ -57,6 +55,12 @@ org.apache.maven.plugins maven-remote-resources-plugin + + + **/*.sql + **/*.SQL + + @@ -64,12 +68,6 @@ - - - **/*.sql - **/*.SQL - - org.apache.maven.plugins diff --git a/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/JpaExtension.java b/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/JpaExtension.java index 8d52a52dc..f461b6db1 100644 --- a/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/JpaExtension.java +++ b/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/JpaExtension.java @@ -1,21 +1,20 @@ package no.nav.foreldrepenger.abakus.dbstoette; - import no.nav.foreldrepenger.konfig.Environment; import no.nav.vedtak.felles.testutilities.db.EntityManagerAwareExtension; - import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.utility.DockerImageName; public class JpaExtension extends EntityManagerAwareExtension { - private static final String TEST_DB_CONTAINER = Environment.current().getProperty("testcontainer.test.db", String.class, "postgres:17-alpine"); + private static final String TEST_DB_CONTAINER = + Environment.current().getProperty("testcontainer.test.db", String.class, "postgres:17-alpine"); private static final PostgreSQLContainer TEST_DATABASE; static { TEST_DATABASE = new PostgreSQLContainer<>(DockerImageName.parse(TEST_DB_CONTAINER)).withReuse(true); TEST_DATABASE.start(); - TestDatabaseInit.settOppDatasourceOgMigrer(TEST_DATABASE.getJdbcUrl(), TEST_DATABASE.getUsername(), TEST_DATABASE.getPassword()); + TestDatabaseInit.settOppDatasourceOgMigrer( + TEST_DATABASE.getJdbcUrl(), TEST_DATABASE.getUsername(), TEST_DATABASE.getPassword()); } - } diff --git a/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/TestDatabaseInit.java b/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/TestDatabaseInit.java index f1f3fc99f..c894b410b 100644 --- a/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/TestDatabaseInit.java +++ b/migreringer/src/test/java/no/nav/foreldrepenger/abakus/dbstoette/TestDatabaseInit.java @@ -1,25 +1,17 @@ package no.nav.foreldrepenger.abakus.dbstoette; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; import java.io.File; -import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; - import javax.naming.NamingException; import javax.sql.DataSource; - -import no.nav.foreldrepenger.konfig.Environment; - import org.eclipse.jetty.plus.jndi.EnvEntry; import org.flywaydb.core.Flyway; import org.flywaydb.core.api.FlywayException; -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; - -/** - * Initielt skjemaoppsett + migrering av unittest-skjemaer - */ +/** Initielt skjemaoppsett + migrering av unittest-skjemaer */ public final class TestDatabaseInit { private static final AtomicBoolean GUARD_UNIT_TEST_SKJEMAER = new AtomicBoolean(); private static final String DB_SCRIPT_LOCATION = "/db/migration/defaultDS/"; @@ -29,11 +21,11 @@ public static void settOppDatasourceOgMigrer(String jdbcUrl, String username, St settJdniOppslag(ds); if (GUARD_UNIT_TEST_SKJEMAER.compareAndSet(false, true)) { var flyway = Flyway.configure() - .dataSource(ds) - .locations(getScriptLocation()) - .baselineOnMigrate(true) - .cleanDisabled(false) - .load(); + .dataSource(ds) + .locations(getScriptLocation()) + .baselineOnMigrate(true) + .cleanDisabled(false) + .load(); try { flyway.migrate(); } catch (FlywayException fwe) { @@ -70,7 +62,8 @@ private static void settJdniOppslag(DataSource dataSource) { try { new EnvEntry("jdbc/defaultDS", dataSource); // NOSONAR } catch (NamingException e) { - throw new IllegalStateException("Feil under registrering av JDNI-entry for default datasource", e); // NOSONAR + throw new IllegalStateException( + "Feil under registrering av JDNI-entry for default datasource", e); // NOSONAR } } diff --git a/pom.xml b/pom.xml index 6563077ad..e3107c9a6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,6 @@ - - 4.0.0 + + 4.0.0 no.nav.foreldrepenger.felles @@ -10,24 +8,24 @@ 3.6.3 - no.nav.foreldrepenger.abakus - fpabakus - 1.0-SNAPSHOT - pom - Abakus :: Root + no.nav.foreldrepenger.abakus + fpabakus + 1.0-SNAPSHOT + pom + Abakus :: Root - - felles - prosesstask - migreringer - kodeverk - kontrakt + + felles + prosesstask + migreringer + kodeverk + kontrakt kontrakt-vedtak - domenetjenester - web + domenetjenester + web - + ${project.artifactId} fp-abakus @@ -35,9 +33,9 @@ 21 - 7.4.9 - 5.1.2 - 9.2.2 + 7.4.9 + 5.1.2 + 9.2.2 2.7.1 2.43.0 @@ -45,52 +43,52 @@ true - + - - - + + no.nav.foreldrepenger.felles fp-bom 3.6.3 - import pom + import - - no.nav.foreldrepenger.felles - felles - ${felles.version} - import - pom - - - no.nav.foreldrepenger.felles.integrasjon - felles-integrasjon-pom - ${felles.version} - import - pom - + + no.nav.foreldrepenger.felles + felles + ${felles.version} + pom + import + + + no.nav.foreldrepenger.felles.integrasjon + felles-integrasjon-pom + ${felles.version} + pom + import + no.nav.vedtak.prosesstask prosesstask-root ${prosesstask.version} - import pom + import - - no.nav.foreldrepenger.kontrakter - fp-kontrakter-root - ${kontrakter.version} - import - pom - + + no.nav.foreldrepenger.kontrakter + fp-kontrakter-root + ${kontrakter.version} + pom + import + no.nav.foreldrepenger.kontrakter @@ -104,68 +102,67 @@ ${tidsserie.version} - - - no.nav.foreldrepenger.abakus - felles - ${project.version} - - - no.nav.foreldrepenger.abakus - abakus-kodeverk - ${project.version} - + + no.nav.foreldrepenger.abakus + felles + ${project.version} + + + no.nav.foreldrepenger.abakus + abakus-kodeverk + ${project.version} + no.nav.foreldrepenger.abakus abakus-vedtak ${project.version} - - no.nav.foreldrepenger.abakus - abakus-kontrakt - ${project.version} - - - no.nav.foreldrepenger.abakus - kobling - ${project.version} - - - no.nav.foreldrepenger.abakus - iay - ${project.version} - - - no.nav.foreldrepenger.abakus - prosesstask - ${project.version} - - - no.nav.foreldrepenger.abakus - vedtak - ${project.version} - - - no.nav.foreldrepenger.abakus - lonnskomp - ${project.version} - - - no.nav.foreldrepenger.abakus - migreringer - ${project.version} - - - no.nav.foreldrepenger.abakus - migreringer - ${project.version} - test-jar - - - no.nav.foreldrepenger.abakus - web - ${project.version} - + + no.nav.foreldrepenger.abakus + abakus-kontrakt + ${project.version} + + + no.nav.foreldrepenger.abakus + kobling + ${project.version} + + + no.nav.foreldrepenger.abakus + iay + ${project.version} + + + no.nav.foreldrepenger.abakus + prosesstask + ${project.version} + + + no.nav.foreldrepenger.abakus + vedtak + ${project.version} + + + no.nav.foreldrepenger.abakus + lonnskomp + ${project.version} + + + no.nav.foreldrepenger.abakus + migreringer + ${project.version} + + + no.nav.foreldrepenger.abakus + migreringer + ${project.version} + test-jar + + + no.nav.foreldrepenger.abakus + web + ${project.version} + @@ -194,22 +191,22 @@ ${felles.version} - - - no.nav.tjenester - aordningen-inntektsinformasjon-v1 - 1.7 - + + + no.nav.tjenester + aordningen-inntektsinformasjon-v1 + 1.7 + - + org.apache.commons commons-compress - test [1.26.0,) + test org.testcontainers diff --git a/prosesstask/pom.xml b/prosesstask/pom.xml index 6a0a89ea7..15dee3873 100644 --- a/prosesstask/pom.xml +++ b/prosesstask/pom.xml @@ -1,46 +1,44 @@ - - - 4.0.0 + + + 4.0.0 - - no.nav.foreldrepenger.abakus - fpabakus - 1.0-SNAPSHOT - + + no.nav.foreldrepenger.abakus + fpabakus + 1.0-SNAPSHOT + - prosesstask - Abakus :: Prosesstask - jar + prosesstask + jar + Abakus :: Prosesstask - - - - no.nav.foreldrepenger.felles - felles-db - provided - - - no.nav.foreldrepenger.felles - felles-log - - - no.nav.foreldrepenger.felles - felles-feil - + + + + no.nav.foreldrepenger.felles + felles-db + provided + + + no.nav.foreldrepenger.felles + felles-log + + + no.nav.foreldrepenger.felles + felles-feil + no.nav.vedtak.prosesstask prosesstask-kontekst - - - no.nav.foreldrepenger.felles - felles-testutilities - test - + + + no.nav.foreldrepenger.felles + felles-testutilities + test + - + diff --git a/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/CleanNextBucketBatchTask.java b/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/CleanNextBucketBatchTask.java index 7785a2dc4..d5e55a62b 100644 --- a/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/CleanNextBucketBatchTask.java +++ b/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/CleanNextBucketBatchTask.java @@ -2,14 +2,12 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.vedtak.felles.prosesstask.api.ProsessTask; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped @ProsessTask(value = "partition.cleanBucket", cronExpression = "0 0 7 1 * *", maxFailedRuns = 1) diff --git "a/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/Rekj\303\270rFeiledeTasksBatchTask.java" "b/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/Rekj\303\270rFeiledeTasksBatchTask.java" index 202c30544..f5dca5c15 100644 --- "a/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/Rekj\303\270rFeiledeTasksBatchTask.java" +++ "b/prosesstask/src/main/java/no/nav/abakus/prosesstask/batch/Rekj\303\270rFeiledeTasksBatchTask.java" @@ -2,14 +2,12 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import no.nav.vedtak.felles.prosesstask.api.ProsessTask; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationScoped @ProsessTask(value = "retry.feilendeTasks", cronExpression = "0 30 6,8,10,12,14,16,18 * * *", maxFailedRuns = 1) diff --git a/troubleshooting/taskmanager-polling.md b/troubleshooting/taskmanager-polling.md index 69bfc6d05..051db3bbb 100644 --- a/troubleshooting/taskmanager-polling.md +++ b/troubleshooting/taskmanager-polling.md @@ -2,7 +2,7 @@ ### SQL Error: 0, SQLState: 40001 -Forekommer ved polling da en rad ligger i ScrollableResults, men har blitt flyttet til en annen partisjon(partisjon per status på taskene) av en annen transaksjon(en annen pod som har prosessert tasken). +Forekommer ved polling da en rad ligger i ScrollableResults, men har blitt flyttet til en annen partisjon(partisjon per status på taskene) av en annen transaksjon(en annen pod som har prosessert tasken). ``` org.hibernate.exception.LockAcquisitionException: could not advance using next() @@ -46,3 +46,4 @@ Caused by: org.postgresql.util.PSQLException: ERROR: tuple to be locked was alre at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:100) ... 25 common frames omitted ``` + diff --git a/web/pom.xml b/web/pom.xml index 6b289fb9e..7698a5853 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -1,6 +1,5 @@ - + 4.0.0 @@ -51,7 +50,6 @@ felles-abac-kontekst - @@ -191,7 +189,8 @@ jandex
    - + + no.nav.foreldrepenger.abakus migreringer @@ -236,10 +235,10 @@ copy-dependencies - package copy-dependencies + package ${project.basedir}/target/lib/ runtime diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/IndexClasses.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/IndexClasses.java index 60a7bc5ca..250cf8bc5 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/IndexClasses.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/IndexClasses.java @@ -14,7 +14,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Predicate; - import org.jboss.jandex.AnnotationTarget.Kind; import org.jboss.jandex.ClassInfo; import org.jboss.jandex.DotName; @@ -49,13 +48,14 @@ public static IndexClasses getIndexFor(final URI location) { public Index getIndex() { - if ("file".equals(scanLocation.getScheme()) && scanLocation.getSchemeSpecificPart().contains("/target/")) { - // må regenerere index fra fil system i IDE ved å scanne dir, ellers kan den mulig være utdatert (når kjører Jetty i IDE f.eks) + if ("file".equals(scanLocation.getScheme()) + && scanLocation.getSchemeSpecificPart().contains("/target/")) { + // må regenerere index fra fil system i IDE ved å scanne dir, ellers kan den mulig være utdatert (når kjører + // Jetty i IDE f.eks) return scanIndexFromFilesystem(scanLocation); } else { return getPersistedJandexIndex(scanLocation); } - } private Index scanIndexFromFilesystem(URI location) { @@ -69,7 +69,8 @@ private Index scanIndexFromFilesystem(URI location) { try (var newInputStream = Files.newInputStream(f, StandardOpenOption.READ)) { indexer.index(newInputStream); } catch (IOException e) { - throw new IllegalStateException("Fikk ikke indeksert klasse " + f + ", kan ikke scanne klasser", e); + throw new IllegalStateException( + "Fikk ikke indeksert klasse " + f + ", kan ikke scanne klasser", e); } } }); @@ -98,19 +99,25 @@ private URL getJandexIndexUrl(URI location) { classLoaders.add(getClass().getClassLoader()); classLoaders.add(Thread.currentThread().getContextClassLoader()); - return classLoaders.stream().flatMap(cl -> { - try { - return Collections.list(cl.getResources("META-INF/" + jandexIndexFileName)).stream(); - } catch (IOException e2) { - throw new IllegalArgumentException("Kan ikke lese jandex index fil", e2); - } - }).filter(url -> { - try { - return String.valueOf(url.toURI()).startsWith(uriString) || String.valueOf(url.toURI().getSchemeSpecificPart()).startsWith(uriString); - } catch (URISyntaxException e1) { - throw new IllegalArgumentException("Kan ikke scanne URI", e1); - } - }).findFirst().orElseThrow(() -> new IllegalStateException("Fant ikke jandex index for location=" + location)); + return classLoaders.stream() + .flatMap(cl -> { + try { + return Collections.list(cl.getResources("META-INF/" + jandexIndexFileName)).stream(); + } catch (IOException e2) { + throw new IllegalArgumentException("Kan ikke lese jandex index fil", e2); + } + }) + .filter(url -> { + try { + return String.valueOf(url.toURI()).startsWith(uriString) + || String.valueOf(url.toURI().getSchemeSpecificPart()) + .startsWith(uriString); + } catch (URISyntaxException e1) { + throw new IllegalArgumentException("Kan ikke scanne URI", e1); + } + }) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Fant ikke jandex index for location=" + location)); } public List> getClassesWithAnnotation(Class annotationClass) { diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/ConstraintViolationMapper.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/ConstraintViolationMapper.java index 6769633f8..c8abf08ba 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/ConstraintViolationMapper.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/ConstraintViolationMapper.java @@ -1,20 +1,17 @@ package no.nav.foreldrepenger.abakus.app.exceptions; -import java.util.ArrayList; -import java.util.Collection; - import jakarta.validation.ConstraintViolationException; import jakarta.validation.Path; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.ext.ExceptionMapper; - +import java.util.ArrayList; +import java.util.Collection; +import no.nav.vedtak.exception.VLException; import org.hibernate.validator.internal.engine.path.PathImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import no.nav.vedtak.exception.VLException; - public class ConstraintViolationMapper implements ExceptionMapper { private static final Logger LOG = LoggerFactory.getLogger(ConstraintViolationMapper.class); @@ -36,11 +33,13 @@ public Response toResponse(ConstraintViolationException exception) { feil = FeltValideringFeil.feltverdiKanIkkeValideres(feltNavn); } LOG.warn(feil.getMessage()); - return Response.status(Response.Status.BAD_REQUEST).entity(new FeilDto(feil.getMessage(), feilene)).type(MediaType.APPLICATION_JSON).build(); + return Response.status(Response.Status.BAD_REQUEST) + .entity(new FeilDto(feil.getMessage(), feilene)) + .type(MediaType.APPLICATION_JSON) + .build(); } private String getFeltNavn(Path propertyPath) { return propertyPath instanceof PathImpl pi ? pi.getLeafNode().toString() : null; } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeilDto.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeilDto.java index e3430bdef..cfd22ed50 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeilDto.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeilDto.java @@ -22,5 +22,4 @@ public FeilDto(String feilmelding, Collection feltFeil) { public FeilDto(String feilmelding) { this(GENERELL_FEIL, feilmelding, emptyList()); } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltFeilDto.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltFeilDto.java index 11f13cfaf..491020ff2 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltFeilDto.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltFeilDto.java @@ -1,5 +1,3 @@ package no.nav.foreldrepenger.abakus.app.exceptions; -public record FeltFeilDto(String navn, String melding) { - -} +public record FeltFeilDto(String navn, String melding) {} diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltValideringFeil.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltValideringFeil.java index acf6bb34f..da488859b 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltValideringFeil.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/FeltValideringFeil.java @@ -1,25 +1,25 @@ package no.nav.foreldrepenger.abakus.app.exceptions; -import java.util.List; - import jakarta.validation.ConstraintViolationException; - +import java.util.List; import no.nav.vedtak.exception.FunksjonellException; import no.nav.vedtak.exception.TekniskException; class FeltValideringFeil { - private FeltValideringFeil() { - } + private FeltValideringFeil() {} static FunksjonellException feltverdiKanIkkeValideres(List feltnavn) { - return new FunksjonellException("FP-328673", - String.format("Det oppstod en valideringsfeil på felt %s. Vennligst kontroller at alle feltverdier er korrekte.", feltnavn), - "Kontroller at alle feltverdier er korrekte"); + return new FunksjonellException( + "FP-328673", + String.format( + "Det oppstod en valideringsfeil på felt %s. Vennligst kontroller at alle feltverdier er korrekte.", + feltnavn), + "Kontroller at alle feltverdier er korrekte"); } static TekniskException feilUnderValideringAvContraints(ConstraintViolationException feltnavn) { - return new TekniskException("FP-232342", "Det oppsto en teknisk feil under validering av contraints.", feltnavn); + return new TekniskException( + "FP-232342", "Det oppsto en teknisk feil under validering av contraints.", feltnavn); } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapper.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapper.java index 503acef7c..de3608577 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapper.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapper.java @@ -4,16 +4,14 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; - import no.nav.vedtak.exception.FunksjonellException; import no.nav.vedtak.exception.ManglerTilgangException; import no.nav.vedtak.felles.jpa.TomtResultatException; import no.nav.vedtak.log.mdc.MDCOperations; import no.nav.vedtak.log.util.LoggerUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; @Provider public class GeneralRestExceptionMapper implements ExceptionMapper { @@ -22,20 +20,23 @@ public class GeneralRestExceptionMapper implements ExceptionMapper { private static Response handleTomtResultatFeil(String feilmelding) { return Response.status(Response.Status.NOT_FOUND) - .entity(new FeilDto(FeilType.TOMT_RESULTAT_FEIL, feilmelding)) - .type(MediaType.APPLICATION_JSON) - .build(); + .entity(new FeilDto(FeilType.TOMT_RESULTAT_FEIL, feilmelding)) + .type(MediaType.APPLICATION_JSON) + .build(); } private static Response serverError(String feilmelding) { - return Response.serverError().entity(new FeilDto(FeilType.GENERELL_FEIL, feilmelding)).type(MediaType.APPLICATION_JSON).build(); + return Response.serverError() + .entity(new FeilDto(FeilType.GENERELL_FEIL, feilmelding)) + .type(MediaType.APPLICATION_JSON) + .build(); } private static Response ikkeTilgang(String feilmelding) { return Response.status(Response.Status.FORBIDDEN) - .entity(new FeilDto(FeilType.MANGLER_TILGANG_FEIL, feilmelding)) - .type(MediaType.APPLICATION_JSON) - .build(); + .entity(new FeilDto(FeilType.MANGLER_TILGANG_FEIL, feilmelding)) + .type(MediaType.APPLICATION_JSON) + .build(); } private static String getExceptionFullFeilmelding(Throwable feil) { @@ -43,9 +44,11 @@ private static String getExceptionFullFeilmelding(Throwable feil) { var feilbeskrivelse = getExceptionMelding(feil); if (feil instanceof FunksjonellException fe) { var løsningsforslag = getTextForField(fe.getLøsningsforslag()); - return String.format("Det oppstod en feil: %s - %s. Referanse-id: %s", feilbeskrivelse, løsningsforslag, callId); + return String.format( + "Det oppstod en feil: %s - %s. Referanse-id: %s", feilbeskrivelse, løsningsforslag, callId); } - return String.format("Det oppstod en serverfeil: %s. Meld til support med referanse-id: %s", feilbeskrivelse, callId); + return String.format( + "Det oppstod en serverfeil: %s. Meld til support med referanse-id: %s", feilbeskrivelse, callId); } private static void loggTilApplikasjonslogg(Throwable feil) { @@ -76,5 +79,4 @@ public Response toResponse(Throwable feil) { MDC.remove("prosess"); } } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapper.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapper.java index 6ce6bdb02..678cf41c0 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapper.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapper.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.app.exceptions; +import com.fasterxml.jackson.databind.JsonMappingException; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.ext.ExceptionMapper; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.JsonMappingException; - public class JsonMappingExceptionMapper implements ExceptionMapper { private static final Logger LOG = LoggerFactory.getLogger(JsonMappingExceptionMapper.class); @@ -17,10 +15,9 @@ public class JsonMappingExceptionMapper implements ExceptionMapper { private static final Logger LOG = LoggerFactory.getLogger(JsonParseExceptionMapper.class); @@ -17,10 +15,8 @@ public class JsonParseExceptionMapper implements ExceptionMapper livenessAware, - @Any Instance readinessAware) { + public HealthCheckRestService( + ApplicationServiceStarter starter, + @Any Instance livenessAware, + @Any Instance readinessAware) { this(starter, livenessAware.stream().toList(), readinessAware.stream().toList()); } - public HealthCheckRestService(ApplicationServiceStarter starter, List live, List ready) { + public HealthCheckRestService( + ApplicationServiceStarter starter, List live, List ready) { this.starter = starter; this.live = live; this.ready = ready; diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/jackson/JacksonJsonConfig.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/jackson/JacksonJsonConfig.java index e48959cc7..c23c2e8ed 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/jackson/JacksonJsonConfig.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/jackson/JacksonJsonConfig.java @@ -1,18 +1,16 @@ package no.nav.foreldrepenger.abakus.app.jackson; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; - import jakarta.ws.rs.ext.ContextResolver; import jakarta.ws.rs.ext.Provider; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; import no.nav.abakus.iaygrunnlag.v1.InntektArbeidYtelseGrunnlagDto; import no.nav.foreldrepenger.abakus.app.IndexClasses; @@ -21,9 +19,7 @@ public class JacksonJsonConfig implements ContextResolver { private final ObjectMapper objectMapper; - /** - * Default instance for Jax-rs application. Genererer ikke navn som del av output for kodeverk. - */ + /** Default instance for Jax-rs application. Genererer ikke navn som del av output for kodeverk. */ public JacksonJsonConfig() { objectMapper = new ObjectMapper(); objectMapper.registerModule(new Jdk8Module()); @@ -38,9 +34,7 @@ public static List> getKontraktLokasjoner() { return List.of(JacksonJsonConfig.class, InntektArbeidYtelseGrunnlagDto.class); } - /** - * Scan subtyper dynamisk fra utvalgte jar/war slik at superklasse slipper å deklarere @JsonSubtypes. - */ + /** Scan subtyper dynamisk fra utvalgte jar/war slik at superklasse slipper å deklarere @JsonSubtypes. */ private static List> getJsonTypeNameClasses(URI classLocation) { var indexClasses = IndexClasses.getIndexFor(classLocation); return indexClasses.getClassesWithAnnotation(JsonTypeName.class); @@ -48,13 +42,19 @@ private static List> getJsonTypeNameClasses(URI classLocation) { private void registerSubTypesDynamically() { // avled code location fra klassene - getKontraktLokasjoner().stream().map(c -> { - try { - return c.getProtectionDomain().getCodeSource().getLocation().toURI(); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("Ikke en URI for klasse: " + c, e); - } - }).distinct().forEach(uri -> getObjectMapper().registerSubtypes(getJsonTypeNameClasses(uri))); + getKontraktLokasjoner().stream() + .map(c -> { + try { + return c.getProtectionDomain() + .getCodeSource() + .getLocation() + .toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Ikke en URI for klasse: " + c, e); + } + }) + .distinct() + .forEach(uri -> getObjectMapper().registerSubtypes(getJsonTypeNameClasses(uri))); } public ObjectMapper getObjectMapper() { @@ -65,5 +65,4 @@ public ObjectMapper getObjectMapper() { public ObjectMapper getContext(Class type) { return objectMapper; } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ApiConfig.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ApiConfig.java index 3468c38a6..08d1c05fd 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ApiConfig.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ApiConfig.java @@ -1,15 +1,9 @@ package no.nav.foreldrepenger.abakus.app.konfig; +import jakarta.ws.rs.ApplicationPath; import java.util.HashMap; import java.util.Map; import java.util.Set; - -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.server.ServerProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.ws.rs.ApplicationPath; import no.nav.foreldrepenger.abakus.app.exceptions.ConstraintViolationMapper; import no.nav.foreldrepenger.abakus.app.exceptions.GeneralRestExceptionMapper; import no.nav.foreldrepenger.abakus.app.exceptions.JsonMappingExceptionMapper; @@ -21,6 +15,10 @@ import no.nav.foreldrepenger.abakus.iay.tjeneste.OppgittOpptjeningRestTjeneste; import no.nav.foreldrepenger.abakus.registerdata.tjeneste.RegisterdataRestTjeneste; import no.nav.foreldrepenger.abakus.vedtak.tjeneste.YtelseRestTjeneste; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.server.ServerProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationPath(ApiConfig.API_URI) public class ApiConfig extends ResourceConfig { @@ -46,12 +44,13 @@ public ApiConfig() { private Set> getApplicationClasses() { // eksponert grensesnitt - return Set.of(RegisterdataRestTjeneste.class, - InntektsmeldingerRestTjeneste.class, - OppgittOpptjeningRestTjeneste.class, - GrunnlagRestTjeneste.class, - ArbeidsforholdRestTjeneste.class, - YtelseRestTjeneste.class); + return Set.of( + RegisterdataRestTjeneste.class, + InntektsmeldingerRestTjeneste.class, + OppgittOpptjeningRestTjeneste.class, + GrunnlagRestTjeneste.class, + ArbeidsforholdRestTjeneste.class, + YtelseRestTjeneste.class); } void registerExceptionMappers() { @@ -68,5 +67,4 @@ private Map getApplicationProperties() { properties.put(ServerProperties.PROCESSING_RESPONSE_ERRORS_ENABLED, true); return properties; } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/AuthenticationFilter.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/AuthenticationFilter.java index 7c18e1e3b..91fcc539b 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/AuthenticationFilter.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/AuthenticationFilter.java @@ -31,5 +31,4 @@ public void filter(ContainerRequestContext req, ContainerResponseContext res) { public void filter(ContainerRequestContext req) { AuthenticationFilterDelegate.validerSettKontekst(resourceinfo, req); } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/EksternApiConfig.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/EksternApiConfig.java index 9a92d8ac2..5cbef0419 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/EksternApiConfig.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/EksternApiConfig.java @@ -1,21 +1,19 @@ package no.nav.foreldrepenger.abakus.app.konfig; +import jakarta.ws.rs.ApplicationPath; import java.util.HashMap; import java.util.Map; import java.util.Set; - -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.server.ServerProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.ws.rs.ApplicationPath; import no.nav.foreldrepenger.abakus.app.exceptions.ConstraintViolationMapper; import no.nav.foreldrepenger.abakus.app.exceptions.GeneralRestExceptionMapper; import no.nav.foreldrepenger.abakus.app.exceptions.JsonMappingExceptionMapper; import no.nav.foreldrepenger.abakus.app.exceptions.JsonParseExceptionMapper; import no.nav.foreldrepenger.abakus.app.jackson.JacksonJsonConfig; import no.nav.foreldrepenger.abakus.app.rest.ekstern.EksternDelingAvYtelserRestTjeneste; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.server.ServerProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationPath(EksternApiConfig.API_URI) public class EksternApiConfig extends ResourceConfig { @@ -58,5 +56,4 @@ private Map getApplicationProperties() { properties.put(ServerProperties.PROCESSING_RESPONSE_ERRORS_ENABLED, true); return properties; } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ForvaltningApiConfig.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ForvaltningApiConfig.java index cef816df7..5449e2c78 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ForvaltningApiConfig.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/ForvaltningApiConfig.java @@ -1,17 +1,5 @@ package no.nav.foreldrepenger.abakus.app.konfig; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.server.ServerProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; import io.swagger.v3.oas.integration.GenericOpenApiContextBuilder; import io.swagger.v3.oas.integration.OpenApiConfigurationException; @@ -20,6 +8,11 @@ import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.servers.Server; import jakarta.ws.rs.ApplicationPath; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import no.nav.foreldrepenger.abakus.app.exceptions.ConstraintViolationMapper; import no.nav.foreldrepenger.abakus.app.exceptions.GeneralRestExceptionMapper; import no.nav.foreldrepenger.abakus.app.exceptions.JsonMappingExceptionMapper; @@ -29,6 +22,10 @@ import no.nav.foreldrepenger.konfig.Environment; import no.nav.vedtak.exception.TekniskException; import no.nav.vedtak.felles.prosesstask.rest.ProsessTaskRestTjeneste; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.server.ServerProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationPath(ForvaltningApiConfig.API_URI) public class ForvaltningApiConfig extends ResourceConfig { @@ -63,16 +60,22 @@ void registerExceptionMappers() { private void registerOpenApi() { var oas = new OpenAPI(); - var info = new Info().title(ENV.getNaisAppName()) - .version(Optional.ofNullable(ENV.imageName()).orElse("1.0")) - .description("REST grensesnitt for FP-Abakus."); + var info = new Info() + .title(ENV.getNaisAppName()) + .version(Optional.ofNullable(ENV.imageName()).orElse("1.0")) + .description("REST grensesnitt for FP-Abakus."); oas.info(info).addServersItem(new Server().url(ENV.getProperty("context.path", "/fpabakus"))); - var oasConfig = new SwaggerConfiguration().openAPI(oas) - .prettyPrint(true) - .resourceClasses(getApplicationClasses().stream().map(Class::getName).collect(Collectors.toSet())); + var oasConfig = new SwaggerConfiguration() + .openAPI(oas) + .prettyPrint(true) + .resourceClasses( + getApplicationClasses().stream().map(Class::getName).collect(Collectors.toSet())); try { - new GenericOpenApiContextBuilder<>().openApiConfiguration(oasConfig).buildContext(true).read(); + new GenericOpenApiContextBuilder<>() + .openApiConfiguration(oasConfig) + .buildContext(true) + .read(); } catch (OpenApiConfigurationException e) { throw new TekniskException("OPEN-API", e.getMessage(), e); } @@ -91,5 +94,4 @@ private Map getApplicationProperties() { properties.put(ServerProperties.PROCESSING_RESPONSE_ERRORS_ENABLED, true); return properties; } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/InternalApiConfig.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/InternalApiConfig.java index 9ce4009d2..ee7c7fc73 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/InternalApiConfig.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/konfig/InternalApiConfig.java @@ -1,12 +1,11 @@ package no.nav.foreldrepenger.abakus.app.konfig; -import org.glassfish.jersey.server.ResourceConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jakarta.ws.rs.ApplicationPath; import no.nav.foreldrepenger.abakus.app.healthcheck.HealthCheckRestService; import no.nav.foreldrepenger.abakus.app.metrics.PrometheusRestService; +import org.glassfish.jersey.server.ResourceConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ApplicationPath(InternalApiConfig.API_URI) public class InternalApiConfig extends ResourceConfig { diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/metrics/PrometheusRestService.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/metrics/PrometheusRestService.java index 2d9c83ccc..264495378 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/metrics/PrometheusRestService.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/metrics/PrometheusRestService.java @@ -1,6 +1,5 @@ package no.nav.foreldrepenger.abakus.app.metrics; - import static jakarta.ws.rs.core.MediaType.TEXT_PLAIN; import static no.nav.vedtak.log.metrics.MetricsUtil.REGISTRY; diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/rest/ekstern/EksternDelingAvYtelserRestTjeneste.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/rest/ekstern/EksternDelingAvYtelserRestTjeneste.java index 7f2895878..d3909683b 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/rest/ekstern/EksternDelingAvYtelserRestTjeneste.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/rest/ekstern/EksternDelingAvYtelserRestTjeneste.java @@ -1,17 +1,5 @@ package no.nav.foreldrepenger.abakus.app.rest.ekstern; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.ArraySchema; @@ -32,6 +20,14 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; import no.nav.abakus.vedtak.ytelse.Aktør; import no.nav.abakus.vedtak.ytelse.Desimaltall; import no.nav.abakus.vedtak.ytelse.Periode; @@ -64,6 +60,8 @@ import no.nav.vedtak.sikkerhet.abac.beskyttet.ActionType; import no.nav.vedtak.sikkerhet.abac.beskyttet.AvailabilityType; import no.nav.vedtak.sikkerhet.abac.beskyttet.ResourceType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @OpenAPIDefinition(tags = @Tag(name = "ytelse"), servers = @Server()) @Path("/ytelse/v1") @@ -73,26 +71,27 @@ public class EksternDelingAvYtelserRestTjeneste { private static final Logger LOG = LoggerFactory.getLogger(EksternDelingAvYtelserRestTjeneste.class); - private static final Set K9_INFOTRYGD_YTELSER = Set.of(Ytelser.PLEIEPENGER_NÆRSTÅENDE, Ytelser.OPPLÆRINGSPENGER, - Ytelser.PLEIEPENGER_SYKT_BARN); + private static final Set K9_INFOTRYGD_YTELSER = + Set.of(Ytelser.PLEIEPENGER_NÆRSTÅENDE, Ytelser.OPPLÆRINGSPENGER, Ytelser.PLEIEPENGER_SYKT_BARN); private VedtakYtelseRepository ytelseRepository; private AktørTjeneste aktørTjeneste; private InfotrygdPSGrunnlag infotrygdPSGrunnlag; - public EksternDelingAvYtelserRestTjeneste() { - } // CDI Ctor + public EksternDelingAvYtelserRestTjeneste() {} // CDI Ctor @Inject - public EksternDelingAvYtelserRestTjeneste(VedtakYtelseRepository ytelseRepository, - @PS InfotrygdPSGrunnlag infotrygdPSGrunnlag, - AktørTjeneste aktørTjeneste) { + public EksternDelingAvYtelserRestTjeneste( + VedtakYtelseRepository ytelseRepository, + @PS InfotrygdPSGrunnlag infotrygdPSGrunnlag, + AktørTjeneste aktørTjeneste) { this.ytelseRepository = ytelseRepository; this.aktørTjeneste = aktørTjeneste; this.infotrygdPSGrunnlag = infotrygdPSGrunnlag; } - private static ArbeidsgiverIdent mapArbeidsgiverIdent(no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver arbeidsgiver) { + private static ArbeidsgiverIdent mapArbeidsgiverIdent( + no.nav.foreldrepenger.abakus.domene.iay.Arbeidsgiver arbeidsgiver) { if (arbeidsgiver == null) { return null; } @@ -103,19 +102,33 @@ private static ArbeidsgiverIdent mapArbeidsgiverIdent(no.nav.foreldrepenger.abak @Path("/hent-ytelse-vedtak") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @Operation(tags = "ytelse", - description = "Henter alle vedtak for en gitt person, evt med periode etter en fom" - ) - @RequestBody(required = true, description = "Vi godkjenner både aktørid og fnr som gyldig ident.", content = @Content(schema = @Schema(implementation = VedtakForPeriodeRequest.class))) - @ApiResponses(value = { - @ApiResponse( - responseCode = "200", - description = "Liste med vedtak som matcher kriteriene.", - content = @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = YtelseV1.class))))} - ) - @BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.APPLIKASJON, availabilityType = AvailabilityType.ALL) + @Operation(tags = "ytelse", description = "Henter alle vedtak for en gitt person, evt med periode etter en fom") + @RequestBody( + required = true, + description = "Vi godkjenner både aktørid og fnr som gyldig ident.", + content = @Content(schema = @Schema(implementation = VedtakForPeriodeRequest.class))) + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "Liste med vedtak som matcher kriteriene.", + content = + @Content( + mediaType = "application/json", + array = @ArraySchema(schema = @Schema(implementation = YtelseV1.class)))) + }) + @BeskyttetRessurs( + actionType = ActionType.READ, + resourceType = ResourceType.APPLIKASJON, + availabilityType = AvailabilityType.ALL) @SuppressWarnings("findsecbugs:JAXRS_ENDPOINT") - public List hentVedtakYtelse(@NotNull @TilpassetAbacAttributt(supplierClass = EksternDelingAvYtelserRestTjeneste.VedtakForPeriodeRequestAbacDataSupplier.class) @Valid VedtakForPeriodeRequest request) { + public List hentVedtakYtelse( + @NotNull + @TilpassetAbacAttributt( + supplierClass = + EksternDelingAvYtelserRestTjeneste.VedtakForPeriodeRequestAbacDataSupplier.class) + @Valid + VedtakForPeriodeRequest request) { LOG.info("ABAKUS VEDTAK ekstern /hent-ytelse-vedtak for ytelser {}", request.getYtelser()); if (request.getYtelser().isEmpty()) { @@ -123,23 +136,24 @@ public List hentVedtakYtelse(@NotNull @TilpassetAbacAttributt(supplierCl } Set aktørIder = utledAktørIdFraRequest(request.getIdent()); - var periode = IntervallEntitet.fraOgMedTilOgMed(request.getPeriode().getFom(), request.getPeriode().getTom()); + var periode = IntervallEntitet.fraOgMedTilOgMed( + request.getPeriode().getFom(), request.getPeriode().getTom()); var ytelser = new ArrayList(); for (AktørId aktørId : aktørIder) { - ytelser.addAll(ytelseRepository.hentYtelserForIPeriode(aktørId, periode) - .stream() - .filter(it -> request.getYtelser().contains(ConvertToYtelseV1.mapYtelser(it.getYtelseType()))) - .map(ConvertToYtelseV1::convert) - .toList()); + ytelser.addAll(ytelseRepository.hentYtelserForIPeriode(aktørId, periode).stream() + .filter(it -> request.getYtelser().contains(ConvertToYtelseV1.mapYtelser(it.getYtelseType()))) + .map(ConvertToYtelseV1::convert) + .toList()); } ytelser.addAll(hentVedtakYtelseInfotrygdK9Intern(request)); return ytelser; } - public List hentVedtakYtelseInfotrygdK9Intern(VedtakForPeriodeRequest request) { - if (request.getYtelser().isEmpty() || K9_INFOTRYGD_YTELSER.stream().noneMatch(y -> request.getYtelser().contains(y))) { + if (request.getYtelser().isEmpty() + || K9_INFOTRYGD_YTELSER.stream() + .noneMatch(y -> request.getYtelser().contains(y))) { return List.of(); } @@ -150,16 +164,19 @@ public List hentVedtakYtelseInfotrygdK9Intern(VedtakForPeriodeRequest re var aktørId = aktørIdOpt.orElseThrow(); var identer = utledPersonIdentFraRequest(request.getIdent()); - var periode = IntervallEntitet.fraOgMedTilOgMed(request.getPeriode().getFom(), request.getPeriode().getTom()); + var periode = IntervallEntitet.fraOgMedTilOgMed( + request.getPeriode().getFom(), request.getPeriode().getTom()); var fnr = identer.stream().map(PersonIdent::getIdent).toList(); - var inforequest = new GrunnlagRequest(fnr, Tid.fomEllerMin(periode.getFomDato()), Tid.tomEllerMax(periode.getTomDato())); + var inforequest = + new GrunnlagRequest(fnr, Tid.fomEllerMin(periode.getFomDato()), Tid.tomEllerMax(periode.getTomDato())); var infotrygdYtelser = infotrygdPSGrunnlag.hentGrunnlagFailSoft(inforequest); - var mappedYtelser = InnhentingInfotrygdTjeneste.mapTilInfotrygdYtelseGrunnlag(infotrygdYtelser, periode.getFomDato()) - .stream() - .map(InfotrygdgrunnlagYtelseMapper::oversettInfotrygdYtelseGrunnlagTilYtelse) - .map(it -> ytelseTilYtelse(aktørId, it)) - .filter(it -> request.getYtelser().contains(it.getYtelse())) - .toList(); + var mappedYtelser = + InnhentingInfotrygdTjeneste.mapTilInfotrygdYtelseGrunnlag(infotrygdYtelser, periode.getFomDato()) + .stream() + .map(InfotrygdgrunnlagYtelseMapper::oversettInfotrygdYtelseGrunnlagTilYtelse) + .map(it -> ytelseTilYtelse(aktørId, it)) + .filter(it -> request.getYtelser().contains(it.getYtelse())) + .toList(); var ytelser = new ArrayList(mappedYtelser); return ytelser; } @@ -181,7 +198,6 @@ public List hentVedtakYtelseInfotrygdK9Intern(VedtakForPeriodeRequest re private Set utledPersonIdentFraRequest(Aktør aktør) { if (aktør.erAktørId()) { return aktørTjeneste.hentPersonIdenterForAktør(new AktørId(aktør.getVerdi())); - } return Set.of(new PersonIdent(aktør.getVerdi())); } @@ -191,17 +207,24 @@ private YtelseV1 ytelseTilYtelse(AktørId aktørId, no.nav.foreldrepenger.abakus var aktør = new Aktør(); aktør.setVerdi(aktørId.getId()); ytelse.setAktør(aktør); - ytelse.setVedtattTidspunkt(Optional.ofNullable(vedtak.getVedtattTidspunkt()).orElseGet(LocalDateTime::now)); + ytelse.setVedtattTidspunkt( + Optional.ofNullable(vedtak.getVedtattTidspunkt()).orElseGet(LocalDateTime::now)); ytelse.setYtelse(ConvertToYtelseV1.mapYtelser(vedtak.getRelatertYtelseType())); Optional.ofNullable(vedtak.getSaksreferanse()).map(Saksnummer::getVerdi).ifPresent(ytelse::setSaksnummer); ytelse.setYtelseStatus(ConvertToYtelseV1.mapStatus(vedtak.getStatus())); ytelse.setKildesystem(ConvertToYtelseV1.mapKildesystem(vedtak.getKilde())); ytelse.setVedtakReferanse(UUID.randomUUID().toString()); // NotNull i kontrakt var periode = new Periode(); - periode.setFom(Optional.ofNullable(vedtak.getPeriode()).map(IntervallEntitet::getFomDato).orElseGet(LocalDate::now)); - periode.setTom(Optional.ofNullable(vedtak.getPeriode()).map(IntervallEntitet::getTomDato).orElseGet(LocalDate::now)); + periode.setFom(Optional.ofNullable(vedtak.getPeriode()) + .map(IntervallEntitet::getFomDato) + .orElseGet(LocalDate::now)); + periode.setTom(Optional.ofNullable(vedtak.getPeriode()) + .map(IntervallEntitet::getTomDato) + .orElseGet(LocalDate::now)); ytelse.setPeriode(periode); - var anvist = vedtak.getYtelseAnvist().stream().map(this::mapLagretInfotrygdAnvist).toList(); + var anvist = vedtak.getYtelseAnvist().stream() + .map(this::mapLagretInfotrygdAnvist) + .toList(); ytelse.setAnvist(anvist); return ytelse; } @@ -214,21 +237,31 @@ private Anvisning mapLagretInfotrygdAnvist(no.nav.foreldrepenger.abakus.domene.i anvisning.setPeriode(periode); anvist.getBeløp().map(Beløp::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setBeløp); anvist.getDagsats().map(Beløp::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setDagsats); - anvist.getUtbetalingsgradProsent().map(Stillingsprosent::getVerdi).map(Desimaltall::new).ifPresent(anvisning::setUtbetalingsgrad); + anvist.getUtbetalingsgradProsent() + .map(Stillingsprosent::getVerdi) + .map(Desimaltall::new) + .ifPresent(anvisning::setUtbetalingsgrad); anvisning.setAndeler(mapInfotrygdAndeler(anvist)); return anvisning; } private List mapInfotrygdAndeler(no.nav.foreldrepenger.abakus.domene.iay.YtelseAnvist anvist) { - return anvist.getYtelseAnvistAndeler() - .stream() - .map(a -> new AnvistAndel(a.getArbeidsgiver().map(EksternDelingAvYtelserRestTjeneste::mapArbeidsgiverIdent).orElse(null), - a.getArbeidsforholdRef().getReferanse(), new Desimaltall(a.getDagsats().getVerdi()), - a.getUtbetalingsgradProsent() == null ? null : new Desimaltall(a.getUtbetalingsgradProsent().getVerdi()), - a.getRefusjonsgradProsent() == null ? null : new Desimaltall(a.getRefusjonsgradProsent().getVerdi()), - ConvertToYtelseV1.fraInntektskategori(a.getInntektskategori()))) - .toList(); + return anvist.getYtelseAnvistAndeler().stream() + .map(a -> new AnvistAndel( + a.getArbeidsgiver() + .map(EksternDelingAvYtelserRestTjeneste::mapArbeidsgiverIdent) + .orElse(null), + a.getArbeidsforholdRef().getReferanse(), + new Desimaltall(a.getDagsats().getVerdi()), + a.getUtbetalingsgradProsent() == null + ? null + : new Desimaltall(a.getUtbetalingsgradProsent().getVerdi()), + a.getRefusjonsgradProsent() == null + ? null + : new Desimaltall(a.getRefusjonsgradProsent().getVerdi()), + ConvertToYtelseV1.fraInntektskategori(a.getInntektskategori()))) + .toList(); } public static class VedtakForPeriodeRequestAbacDataSupplier implements Function { @@ -240,9 +273,10 @@ public VedtakForPeriodeRequestAbacDataSupplier() { @Override public AbacDataAttributter apply(Object obj) { var req = (VedtakForPeriodeRequest) obj; - var attributeType = req.getIdent().erAktørId() ? StandardAbacAttributtType.AKTØR_ID : StandardAbacAttributtType.FNR; - return AbacDataAttributter.opprett().leggTil(attributeType, req.getIdent().getVerdi()); + var attributeType = + req.getIdent().erAktørId() ? StandardAbacAttributtType.AKTØR_ID : StandardAbacAttributtType.FNR; + return AbacDataAttributter.opprett() + .leggTil(attributeType, req.getIdent().getVerdi()); } } - } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarter.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarter.java index acfc61263..75a1f8b0a 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarter.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarter.java @@ -2,24 +2,19 @@ import static java.util.concurrent.CompletableFuture.runAsync; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.Any; +import jakarta.enterprise.inject.Instance; +import jakarta.inject.Inject; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; - import no.nav.vedtak.server.Controllable; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.Any; -import jakarta.enterprise.inject.Instance; -import jakarta.inject.Inject; - -/** - * Initialiserer applikasjontjenester som implementer AppServiceHandler - */ +/** Initialiserer applikasjontjenester som implementer AppServiceHandler */ @ApplicationScoped public class ApplicationServiceStarter { @@ -46,23 +41,29 @@ public ApplicationServiceStarter(@Any Instance services) { public void startServices() { // Services LOGGER.info("Starter {} services", services.size()); - CompletableFuture.allOf(services.stream().map(service -> runAsync(service::start)).toArray(CompletableFuture[]::new)).join(); + CompletableFuture.allOf(services.stream() + .map(service -> runAsync(service::start)) + .toArray(CompletableFuture[]::new)) + .join(); LOGGER.info("Startet {} services", services.size()); } public void stopServices() { LOGGER.info("Stopper {} services", services.size()); - CompletableFuture.allOf(services.stream().map(service -> runAsync(service::stop)).toArray(CompletableFuture[]::new)) - .orTimeout(31, TimeUnit.SECONDS) - .join(); + CompletableFuture.allOf(services.stream() + .map(service -> runAsync(service::stop)) + .toArray(CompletableFuture[]::new)) + .orTimeout(31, TimeUnit.SECONDS) + .join(); LOGGER.info("Stoppet {} services", services.size()); } @Override public String toString() { - return getClass().getSimpleName() + " [services=" + services.stream() - .map(Object::getClass) - .map(Class::getSimpleName) - .collect(Collectors.joining(", ")) + "]"; + return getClass().getSimpleName() + " [services=" + + services.stream() + .map(Object::getClass) + .map(Class::getSimpleName) + .collect(Collectors.joining(", ")) + "]"; } } diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ServiceStarterListener.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ServiceStarterListener.java index 1c1682d07..2e4462e0f 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ServiceStarterListener.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/tjenester/ServiceStarterListener.java @@ -4,9 +4,7 @@ import jakarta.servlet.ServletContextEvent; import jakarta.servlet.ServletContextListener; -/** - * Starter interne applikasjontjenester - */ +/** Starter interne applikasjontjenester */ public class ServiceStarterListener implements ServletContextListener { @Override diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVasker.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVasker.java index fbf60e3ad..54aee59b2 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVasker.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVasker.java @@ -2,8 +2,7 @@ class BegrunnelseVasker { - private BegrunnelseVasker() { - } + private BegrunnelseVasker() {} public static String vask(String uvasket) { return uvasket.replace("\n", "").replace("\r", "").replace("\u00a0", " "); diff --git "a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ByttAkt\303\270rRequest.java" "b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ByttAkt\303\270rRequest.java" index 820275c37..19e6ce6d6 100644 --- "a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ByttAkt\303\270rRequest.java" +++ "b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ByttAkt\303\270rRequest.java" @@ -5,19 +5,19 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - -import no.nav.abakus.vedtak.ytelse.Aktør; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import no.nav.abakus.vedtak.ytelse.Aktør; - -/** - * Input request for å bytte en utgått aktørid med en aktiv - */ +/** Input request for å bytte en utgått aktørid med en aktiv */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class ByttAktørRequest { @JsonProperty(value = "utgatt", required = true) diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/EliminerInntektsmeldingRequest.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/EliminerInntektsmeldingRequest.java index f1e90a6e9..73d168f92 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/EliminerInntektsmeldingRequest.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/EliminerInntektsmeldingRequest.java @@ -1,23 +1,23 @@ package no.nav.foreldrepenger.abakus.app.vedlikehold; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; - +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import no.nav.abakus.iaygrunnlag.UuidDto; - -/** - * Input request for å bytte en utgått aktørid med en aktiv - */ +/** Input request for å bytte en utgått aktørid med en aktiv */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(value = Include.NON_ABSENT, content = Include.NON_EMPTY) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE) +@JsonAutoDetect( + fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE) public class EliminerInntektsmeldingRequest { @JsonProperty(value = "eksternReferanse", required = true) diff --git a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ForvaltningRestTjeneste.java b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ForvaltningRestTjeneste.java index 73173343f..2bb041853 100644 --- a/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ForvaltningRestTjeneste.java +++ b/web/src/main/java/no/nav/foreldrepenger/abakus/app/vedlikehold/ForvaltningRestTjeneste.java @@ -2,9 +2,6 @@ import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON; -import java.util.List; -import java.util.function.Function; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; import jakarta.enterprise.context.ApplicationScoped; @@ -18,6 +15,8 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.Response; +import java.util.List; +import java.util.function.Function; import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlagBuilder; import no.nav.foreldrepenger.abakus.domene.iay.InntektsmeldingAggregat; import no.nav.foreldrepenger.abakus.domene.iay.søknad.OppgittOpptjening; @@ -58,23 +57,34 @@ public ForvaltningRestTjeneste(EntityManager entityManager, InntektArbeidYtelseT @Path("/settVarigEndring") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) - @Operation(description = "Setter oppgitt opptjening til å være varig endring", tags = "FORVALTNING", responses = {@ApiResponse(responseCode = "200", description = "Forekomster av utgått aktørid erstattet.")}) + @Operation( + description = "Setter oppgitt opptjening til å være varig endring", + tags = "FORVALTNING", + responses = {@ApiResponse(responseCode = "200", description = "Forekomster av utgått aktørid erstattet.")}) @BeskyttetRessurs(actionType = ActionType.UPDATE, resourceType = ResourceType.FAGSAK) - public Response setVarigEndring(@TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AbacDataSupplier.class) @NotNull @Valid VarigEndringRequest request) { + public Response setVarigEndring( + @TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AbacDataSupplier.class) @NotNull @Valid + VarigEndringRequest request) { var oppgittOpptjeningEksternReferanse = request.getEksternReferanse().toUuidReferanse(); var org = new OrgNummer(request.getOrgnummer()); - OppgittOpptjening oppgittOpptjening = iayTjeneste.hentOppgittOpptjeningFor(oppgittOpptjeningEksternReferanse).orElseThrow(); - var næring = oppgittOpptjening.getEgenNæring().stream().filter(n -> n.getOrgnummer().equals(org)).findFirst().orElseThrow(); + OppgittOpptjening oppgittOpptjening = iayTjeneste + .hentOppgittOpptjeningFor(oppgittOpptjeningEksternReferanse) + .orElseThrow(); + var næring = oppgittOpptjening.getEgenNæring().stream() + .filter(n -> n.getOrgnummer().equals(org)) + .findFirst() + .orElseThrow(); if (næring.getVarigEndring()) { throw new IllegalArgumentException("Allerede varig endring"); } - int antall = entityManager.createNativeQuery( - "UPDATE iay_egen_naering SET varig_endring = 'J', endring_dato = :edato , brutto_inntekt = :belop, begrunnelse = :begr WHERE id = :enid") - .setParameter("edato", request.getEndringDato()) - .setParameter("belop", request.getBruttoInntekt()) - .setParameter("begr", request.getEndringBegrunnelse()) - .setParameter("enid", næring.getId()) - .executeUpdate(); + int antall = entityManager + .createNativeQuery( + "UPDATE iay_egen_naering SET varig_endring = 'J', endring_dato = :edato , brutto_inntekt = :belop, begrunnelse = :begr WHERE id = :enid") + .setParameter("edato", request.getEndringDato()) + .setParameter("belop", request.getBruttoInntekt()) + .setParameter("begr", request.getEndringBegrunnelse()) + .setParameter("enid", næring.getId()) + .executeUpdate(); return Response.ok(antall).build(); } @@ -82,75 +92,100 @@ public Response setVarigEndring(@TilpassetAbacAttributt(supplierClass = Forvaltn @Path("/eliminerInntektsmelding") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) - @Operation(description = "Fjerner angitt inntektsmelding/journalpost fra grunnlag", tags = "FORVALTNING", responses = {@ApiResponse(responseCode = "200", description = "Inntektsmelding eliminert.")}) + @Operation( + description = "Fjerner angitt inntektsmelding/journalpost fra grunnlag", + tags = "FORVALTNING", + responses = {@ApiResponse(responseCode = "200", description = "Inntektsmelding eliminert.")}) @BeskyttetRessurs(actionType = ActionType.UPDATE, resourceType = ResourceType.FAGSAK) - public Response eliminerInntektsmelding(@TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AbacDataSupplier.class) @NotNull @Valid EliminerInntektsmeldingRequest request) { - var koblingReferanse = new KoblingReferanse(request.getEksternReferanse().toUuidReferanse()); + public Response eliminerInntektsmelding( + @TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AbacDataSupplier.class) @NotNull @Valid + EliminerInntektsmeldingRequest request) { + var koblingReferanse = + new KoblingReferanse(request.getEksternReferanse().toUuidReferanse()); var journalpost = new JournalpostId(request.getJournalpostId()); var eksisterende = iayTjeneste.hentGrunnlagFor(koblingReferanse).orElseThrow(); var grunnlagBuilder = InntektArbeidYtelseGrunnlagBuilder.oppdatere(eksisterende); - var sammeJpId = eksisterende.getInntektsmeldinger() - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .orElse(List.of()) - .stream() - .filter(im -> journalpost.equals(im.getJournalpostId())) - .findFirst(); + var sammeJpId = + eksisterende + .getInntektsmeldinger() + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .orElse(List.of()) + .stream() + .filter(im -> journalpost.equals(im.getJournalpostId())) + .findFirst(); if (sammeJpId.isEmpty()) { throw new IllegalArgumentException("Fant ingen inntektsmelding med angitt journalpostID"); } - var beholdIM = eksisterende.getInntektsmeldinger() - .map(InntektsmeldingAggregat::getInntektsmeldinger) - .orElse(List.of()) - .stream() - .filter(im -> !journalpost.equals(im.getJournalpostId())) - .toList(); + var beholdIM = + eksisterende + .getInntektsmeldinger() + .map(InntektsmeldingAggregat::getInntektsmeldinger) + .orElse(List.of()) + .stream() + .filter(im -> !journalpost.equals(im.getJournalpostId())) + .toList(); grunnlagBuilder.setInntektsmeldinger(new InntektsmeldingAggregat(beholdIM)); iayTjeneste.lagre(koblingReferanse, grunnlagBuilder); return Response.ok().build(); } - @POST @Path("/oppdaterAktoerId") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) - @Operation(description = "MERGE: Oppdaterer aktørid for bruker i nødvendige tabeller", tags = "FORVALTNING", responses = {@ApiResponse(responseCode = "200", description = "Forekomster av utgått aktørid erstattet.")}) + @Operation( + description = "MERGE: Oppdaterer aktørid for bruker i nødvendige tabeller", + tags = "FORVALTNING", + responses = {@ApiResponse(responseCode = "200", description = "Forekomster av utgått aktørid erstattet.")}) @BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.DRIFT) - public Response oppdaterAktoerId(@TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AktørRequestAbacDataSupplier.class) @NotNull @Valid ByttAktørRequest request) { - int antall = oppdaterAktørIdFor(request.getUtgåttAktør().getVerdi(), request.getGyldigAktør().getVerdi()); + public Response oppdaterAktoerId( + @TilpassetAbacAttributt(supplierClass = ForvaltningRestTjeneste.AktørRequestAbacDataSupplier.class) + @NotNull + @Valid + ByttAktørRequest request) { + int antall = oppdaterAktørIdFor( + request.getUtgåttAktør().getVerdi(), request.getGyldigAktør().getVerdi()); return Response.ok(antall).build(); } private int oppdaterAktørIdFor(String gammel, String gjeldende) { int antall = 0; - antall += entityManager.createNativeQuery("UPDATE kobling SET bruker_aktoer_id = :gjeldende WHERE bruker_aktoer_id = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE kobling SET bruker_aktoer_id = :gjeldende WHERE bruker_aktoer_id = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE kobling SET annen_part_aktoer_id = :gjeldende WHERE annen_part_aktoer_id = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE iay_aktoer_inntekt SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE iay_aktoer_arbeid SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE iay_aktoer_ytelse SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); - antall += entityManager.createNativeQuery("UPDATE vedtak_ytelse SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") - .setParameter(GJELDENDE, gjeldende) - .setParameter(GAMMEL, gammel) - .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE kobling SET bruker_aktoer_id = :gjeldende WHERE bruker_aktoer_id = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE kobling SET bruker_aktoer_id = :gjeldende WHERE bruker_aktoer_id = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery( + "UPDATE kobling SET annen_part_aktoer_id = :gjeldende WHERE annen_part_aktoer_id = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE iay_aktoer_inntekt SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE iay_aktoer_arbeid SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE iay_aktoer_ytelse SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); + antall += entityManager + .createNativeQuery("UPDATE vedtak_ytelse SET AKTOER_ID = :gjeldende WHERE AKTOER_ID = :gammel") + .setParameter(GJELDENDE, gjeldende) + .setParameter(GAMMEL, gammel) + .executeUpdate(); entityManager.flush(); return antall; } @@ -172,10 +207,12 @@ public static class AktørRequestAbacDataSupplier implements Function> KONTRAKT_LOKASJONER = JacksonJsonConfig.getKontraktLokasjoner(); @@ -32,18 +29,23 @@ static Stream provideArguments() { List params = new ArrayList<>(); // avled code location fra klassene - KONTRAKT_LOKASJONER.stream().map(c -> { - try { - return c.getProtectionDomain().getCodeSource().getLocation().toURI(); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("Ikke en URI for klasse: " + c, e); - } - }).distinct().forEach(uri -> { - IndexClasses.getIndexFor(uri) - .getClasses(ci -> ci.name().toString().endsWith("Dto"), c -> !c.isInterface()) - .forEach(c -> params.add(Arguments.of(c.getName(), c))); - - }); + KONTRAKT_LOKASJONER.stream() + .map(c -> { + try { + return c.getProtectionDomain() + .getCodeSource() + .getLocation() + .toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Ikke en URI for klasse: " + c, e); + } + }) + .distinct() + .forEach(uri -> { + IndexClasses.getIndexFor(uri) + .getClasses(ci -> ci.name().toString().endsWith("Dto"), c -> !c.isInterface()) + .forEach(c -> params.add(Arguments.of(c.getName(), c))); + }); return params.stream(); } @@ -57,12 +59,12 @@ static Stream provideArguments() { private void sjekkJsonProperties(Class c) throws IntrospectionException { var fields = Arrays.asList(c.getDeclaredFields()); var fieldNames = fields.stream() - .filter(f -> !f.isSynthetic() && !Modifier.isStatic(f.getModifiers())) - .filter(f -> f.getAnnotation(JsonProperty.class) == null) - .filter(f -> f.getAnnotation(JsonValue.class) == null) - .filter(f -> f.getAnnotation(JsonIgnore.class) == null) - .map(Field::getName) - .collect(Collectors.toSet()); + .filter(f -> !f.isSynthetic() && !Modifier.isStatic(f.getModifiers())) + .filter(f -> f.getAnnotation(JsonProperty.class) == null) + .filter(f -> f.getAnnotation(JsonValue.class) == null) + .filter(f -> f.getAnnotation(JsonIgnore.class) == null) + .map(Field::getName) + .collect(Collectors.toSet()); if (!fieldNames.isEmpty()) { for (var prop : Introspector.getBeanInfo(c, c.getSuperclass()).getPropertyDescriptors()) { @@ -70,11 +72,13 @@ private void sjekkJsonProperties(Class c) throws IntrospectionException { var readName = prop.getReadMethod(); var propName = prop.getName(); if (!SKIPPED.contains(propName)) { - if (readName.getAnnotation(JsonIgnore.class) == null && readName.getAnnotation(JsonProperty.class) == null) { + if (readName.getAnnotation(JsonIgnore.class) == null + && readName.getAnnotation(JsonProperty.class) == null) { Assertions.assertThat(propName) - .as("Gettere er ikke samstemt med felt i klasse, sørg for matchende bean navn og return type eller bruk @JsonProperty/@JsonIgnore/@JsonValue til å sette navn for json struktur: " - + c.getName()) - .isIn(fieldNames); + .as( + "Gettere er ikke samstemt med felt i klasse, sørg for matchende bean navn og return type eller bruk @JsonProperty/@JsonIgnore/@JsonValue til å sette navn for json struktur: " + + c.getName()) + .isIn(fieldNames); } } } @@ -83,16 +87,17 @@ private void sjekkJsonProperties(Class c) throws IntrospectionException { var readName = prop.getWriteMethod(); var propName = prop.getName(); if (!SKIPPED.contains(propName)) { - if (readName.getAnnotation(JsonIgnore.class) == null && readName.getAnnotation(JsonProperty.class) == null) { + if (readName.getAnnotation(JsonIgnore.class) == null + && readName.getAnnotation(JsonProperty.class) == null) { Assertions.assertThat(propName) - .as("Settere er ikke samstemt med felt i klasse, sørg for matchende bean navn og return type eller bruk @JsonProperty/@JsonIgnore/@JsonValue til å sette navn for json struktur: " - + c.getName()) - .isIn(fieldNames); + .as( + "Settere er ikke samstemt med felt i klasse, sørg for matchende bean navn og return type eller bruk @JsonProperty/@JsonIgnore/@JsonValue til å sette navn for json struktur: " + + c.getName()) + .isIn(fieldNames); } } } } } } - } diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/database/SjekkDbStrukturTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/database/SjekkDbStrukturTest.java index aecacc025..09f244daf 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/database/SjekkDbStrukturTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/database/SjekkDbStrukturTest.java @@ -5,25 +5,21 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; - import no.nav.foreldrepenger.abakus.dbstoette.JpaExtension; - +import no.nav.vedtak.felles.testutilities.db.EntityManagerAwareTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import no.nav.vedtak.felles.testutilities.db.EntityManagerAwareTest; - -/** - * Tester at alle migreringer følger standarder for navn og god praksis. - */ +/** Tester at alle migreringer følger standarder for navn og god praksis. */ @ExtendWith(JpaExtension.class) public class SjekkDbStrukturTest extends EntityManagerAwareTest { @Test @DisplayName("Test at alle tabeller er kommentert.") void sjekk_at_alle_tabeller_er_dokumentert() { - var sql = """ + var sql = + """ SELECT t.table_name FROM @@ -45,7 +41,8 @@ AND obj_description(c.oid) IS NULL @Test @DisplayName("Test at alle kolonner er kommentert. Bortsett fra PK og FK kolonner.") void sjekk_at_alle_relevante_kolonner_er_dokumentert() { - var sql = """ + var sql = + """ SELECT c.table_name||'.'||c.column_name FROM pg_catalog.pg_statio_all_tables as st right join pg_catalog.pg_description pgd on (pgd.objoid=st.relid) @@ -74,18 +71,22 @@ WHERE constraint_type IN ('FOREIGN KEY', 'PRIMARY KEY') var query = getEntityManager().createNativeQuery(sql, String.class); var avvik = query.getResultStream().map(row -> "\n" + row).toList(); - var hjelpetekst = """ + var hjelpetekst = + """ Du har nylig lagt til en ny tabell eller kolonne som ikke er dokumentert ihht. gjeldende regler for dokumentasjon. Vennligst gå over SQL-skriptene og dokumenter tabellene på korrekt måte. """; - assertThat(avvik).withFailMessage("Mangler dokumentasjon for %s kolonner. %s\n\n%s", avvik.size(), avvik, hjelpetekst).isEmpty(); + assertThat(avvik) + .withFailMessage("Mangler dokumentasjon for %s kolonner. %s\n\n%s", avvik.size(), avvik, hjelpetekst) + .isEmpty(); } @Test @DisplayName("Test at alle primary keys har navn med pk_ prefix.") void skal_ha_primary_key_i_hver_tabell_som_begynner_med_PK() { - var sql = """ + var sql = + """ SELECT t.table_name FROM @@ -110,14 +111,16 @@ AND t.table_name NOT IN ( var avvik = query.getResultList(); var tekst = avvik.stream().collect(Collectors.joining("\n")); var sz = avvik.size(); - var feilTekst = "Feil eller mangelende definisjon av primary key (skal hete 'PK_'). Antall feil = %s \n\nTabell:\n%s"; + var feilTekst = + "Feil eller mangelende definisjon av primary key (skal hete 'PK_'). Antall feil = %s \n\nTabell:\n%s"; assertThat(avvik).withFailMessage(feilTekst, sz, tekst).isEmpty(); } @Test @DisplayName("Test at alle foreign keys har navn med fk_ prefix.") void skal_ha_alle_foreign_keys_begynne_med_FK() { - var sql = """ + var sql = + """ SELECT table_name, constraint_name @@ -132,16 +135,18 @@ void skal_ha_alle_foreign_keys_begynne_med_FK() { var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); - var feilTekst = "Feil eller mangelende definisjon av foreign key (skal hete 'FK__'). Antall feil = %s\n\nTabell, Foreign Key\n%s"; + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); + var feilTekst = + "Feil eller mangelende definisjon av foreign key (skal hete 'FK__'). Antall feil = %s\n\nTabell, Foreign Key\n%s"; assertThat(rowList).withFailMessage(feilTekst, rowList.size(), tekst).isEmpty(); } @Test @DisplayName("Test at indexer har riktige prefix: pk_, uidx_, idx_, chk_") void skal_ha_korrekt_index_navn() { - var sql = """ + var sql = + """ SELECT t.relname AS table_name, i.relname AS index_name, @@ -174,17 +179,19 @@ void skal_ha_korrekt_index_navn() { var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); - var feilTekst = "Feil navngiving av index. Primary Keys skal ha prefiks PK_, andre unike indekser prefiks UIDX_, vanlige indekser prefiks IDX_, unique constraints CHK_. Antall feil=%s\n\nTabell, Index, Kolonne\n%s"; + var feilTekst = + "Feil navngiving av index. Primary Keys skal ha prefiks PK_, andre unike indekser prefiks UIDX_, vanlige indekser prefiks IDX_, unique constraints CHK_. Antall feil=%s\n\nTabell, Index, Kolonne\n%s"; assertThat(rowList).withFailMessage(feilTekst, rowList.size(), tekst).isEmpty(); } @Test @DisplayName("Test at alle FK har like datatype for kolonne på hver side.") void skal_ha_samme_data_type_for_begge_sider_av_en_FK() { - var sql = """ + var sql = + """ SELECT t1.relname, cs1.column_name, @@ -234,19 +241,23 @@ void skal_ha_samme_data_type_for_begge_sider_av_en_FK() { var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); var feilTekst = "Forskjellig datatype for kolonne på hver side av en FK. Antall feil=%s"; - var cols = ".\n\nTABELL, KOL_A, KOL_A_DATA_TYPE, KOL_A_CHAR_LENGTH, KOL_A_CHAR_USED, KOL_B, KOL_B_DATA_TYPE, KOL_B_CHAR_LENGTH, KOL_B_CHAR_USED\n%s"; + var cols = + ".\n\nTABELL, KOL_A, KOL_A_DATA_TYPE, KOL_A_CHAR_LENGTH, KOL_A_CHAR_USED, KOL_B, KOL_B_DATA_TYPE, KOL_B_CHAR_LENGTH, KOL_B_CHAR_USED\n%s"; - assertThat(rowList).withFailMessage(feilTekst + cols, rowList.size(), tekst).isEmpty(); + assertThat(rowList) + .withFailMessage(feilTekst + cols, rowList.size(), tekst) + .isEmpty(); } @Test @DisplayName("Test at real, float, double precision datatyper ikke brukes.") void skal_ikke_bruke_FLOAT_REAL_eller_DOUBLEPRECISION() { - var sql = """ + var sql = + """ SELECT table_name, column_name, @@ -258,14 +269,14 @@ void skal_ikke_bruke_FLOAT_REAL_eller_DOUBLEPRECISION() { AND data_type IN ('real', 'double precision', 'float'); """; - var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); - var feilTekst = "Feil bruk av datatype, skal ikke ha REAL/FLOAT eller DOUBLE PRECISION (bruk NUMBER for alle desimaltall, spesielt der penger representeres). Antall feil=%s\n\nTabell, Kolonne, Datatype\n%s"; + var feilTekst = + "Feil bruk av datatype, skal ikke ha REAL/FLOAT eller DOUBLE PRECISION (bruk NUMBER for alle desimaltall, spesielt der penger representeres). Antall feil=%s\n\nTabell, Kolonne, Datatype\n%s"; assertThat(rowList).withFailMessage(feilTekst, rowList.size(), tekst).isEmpty(); } @@ -273,7 +284,8 @@ void skal_ikke_bruke_FLOAT_REAL_eller_DOUBLEPRECISION() { @Test @DisplayName("Test at alle FK kolonner har en unik index.") void sjekk_at_alle_FK_kolonner_har_fornuftig_indekser() { - var sql = """ + var sql = + """ SELECT uc.table_name, uc.constraint_name, @@ -315,8 +327,8 @@ AND EXISTS ( var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); var feilTekst = "Kolonner som inngår i Foreign Keys skal ha indeker.\nMangler indekser for %s foreign keys\n%s"; @@ -326,7 +338,8 @@ AND EXISTS ( @Test @DisplayName("Test at alle unike indekser har en uidx_ prefiks.") void sjekk_at_alle_unke_indexer_starter_med_uidx_prefiks() { - var sql = """ + var sql = + """ SELECT tbl.relname AS table_name, idx.relname AS index_name @@ -349,13 +362,12 @@ void sjekk_at_alle_unke_indexer_starter_med_uidx_prefiks() { var query = getEntityManager().createNativeQuery(sql, Object[].class); List rowList = query.getResultList(); var tekst = rowList.stream() - .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) - .collect(Collectors.joining("\n")); + .map(row -> Arrays.stream(row).map(String.class::cast).collect(Collectors.joining(", "))) + .collect(Collectors.joining("\n")); - var feilTekst = "Indekser som er unike skal ha navn som starter med uidx_. Antall feil: %s\n\nTabell, Index\n%s"; + var feilTekst = + "Indekser som er unike skal ha navn som starter med uidx_. Antall feil: %s\n\nTabell, Index\n%s"; assertThat(rowList).withFailMessage(feilTekst, rowList.size(), tekst).isEmpty(); } - } - diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapperTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapperTest.java index ead10f3e3..fc382c306 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapperTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/GeneralRestExceptionMapperTest.java @@ -2,20 +2,18 @@ import static org.assertj.core.api.Assertions.assertThat; +import ch.qos.logback.classic.Level; import jakarta.ws.rs.core.Response; - +import no.nav.vedtak.exception.FunksjonellException; +import no.nav.vedtak.exception.ManglerTilgangException; +import no.nav.vedtak.exception.TekniskException; +import no.nav.vedtak.log.util.MemoryAppender; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.Execution; import org.junit.jupiter.api.parallel.ExecutionMode; -import ch.qos.logback.classic.Level; -import no.nav.vedtak.exception.FunksjonellException; -import no.nav.vedtak.exception.ManglerTilgangException; -import no.nav.vedtak.exception.TekniskException; -import no.nav.vedtak.log.util.MemoryAppender; - @Execution(ExecutionMode.SAME_THREAD) class GeneralRestExceptionMapperTest { @@ -55,7 +53,8 @@ void skalIkkeMappeManglerTilgangFeil() { assertThat(feilDto.type()).isEqualTo(FeilType.MANGLER_TILGANG_FEIL); assertThat(feilDto.feilmelding()).contains("ManglerTilgangFeilmeldingKode"); - assertThat(logSniffer.search("ManglerTilgangFeilmeldingKode", Level.WARN)).isEmpty(); + assertThat(logSniffer.search("ManglerTilgangFeilmeldingKode", Level.WARN)) + .isEmpty(); } @Test @@ -126,5 +125,4 @@ void skalMappeGenerellFeil() { assertThat(feilDto.feilmelding()).contains(feilmelding); assertThat(logSniffer.search(feilmelding, Level.WARN)).hasSize(1); } - } diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapperTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapperTest.java index 93f140ca6..b6a531d80 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapperTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/exceptions/JsonMappingExceptionMapperTest.java @@ -2,9 +2,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import org.junit.jupiter.api.Test; - import com.fasterxml.jackson.databind.exc.InvalidTypeIdException; +import org.junit.jupiter.api.Test; class JsonMappingExceptionMapperTest { diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/healthcheck/HealthCheckRestServiceTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/healthcheck/HealthCheckRestServiceTest.java index 77ef94c59..948c66fc6 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/healthcheck/HealthCheckRestServiceTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/healthcheck/HealthCheckRestServiceTest.java @@ -7,18 +7,13 @@ import static org.mockito.Mockito.when; import java.util.List; - +import no.nav.foreldrepenger.abakus.app.tjenester.ApplicationServiceStarter; import no.nav.vedtak.server.LivenessAware; - import no.nav.vedtak.server.ReadinessAware; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; - -import no.nav.foreldrepenger.abakus.app.tjenester.ApplicationServiceStarter; - import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) @@ -30,6 +25,7 @@ class HealthCheckRestServiceTest { @Mock private LivenessAware kafka; + @Mock private ReadinessAware db; diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiAbacTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiAbacTest.java index d4b79bda5..a145d80ae 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiAbacTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiAbacTest.java @@ -2,22 +2,19 @@ import static org.assertj.core.api.Fail.fail; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.Request; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.util.Arrays; import java.util.Collection; import java.util.UUID; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.ws.rs.core.Request; - -import org.junit.jupiter.api.Test; - import no.nav.vedtak.sikkerhet.abac.AbacDto; import no.nav.vedtak.sikkerhet.abac.BeskyttetRessurs; import no.nav.vedtak.sikkerhet.abac.TilpassetAbacAttributt; import no.nav.vedtak.sikkerhet.abac.beskyttet.ActionType; import no.nav.vedtak.sikkerhet.abac.beskyttet.ResourceType; +import org.junit.jupiter.api.Test; class RestApiAbacTest { @@ -25,8 +22,8 @@ class RestApiAbacTest { /** * IKKE ignorer denne testen, sikrer at REST-endepunkter får tilgangskontroll - *

    - * Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her * + * + *

    Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her * */ @Test void test_at_alle_restmetoder_er_annotert_med_BeskyttetRessurs() throws Exception { @@ -46,8 +43,8 @@ void sjekk_at_ingen_metoder_er_annotert_med_dummy_verdier() { /** * IKKE ignorer denne testen, helper til med at input til tilgangskontroll blir riktig - *

    - * Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her * + * + *

    Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her * */ @Test void test_at_minst_en_input_parametre_til_restmetoder_implementer_AbacDto() { @@ -59,17 +56,26 @@ void test_at_minst_en_input_parametre_til_restmetoder_implementer_AbacDto() { if (Collection.class.isAssignableFrom(parameter.getType())) { var type = (ParameterizedType) parameter.getParameterizedType(); - @SuppressWarnings("rawtypes") Class aClass = (Class) (type.getActualTypeArguments()[0]); - if (!AbacDto.class.isAssignableFrom(aClass) && !parameter.isAnnotationPresent(TilpassetAbacAttributt.class) - && !IgnorerteInputTyper.ignore(aClass)) { - feilmeldinger.append(String.format(feilmelding, restMethode.getDeclaringClass().getSimpleName(), restMethode.getName(), - aClass.getSimpleName())); + @SuppressWarnings("rawtypes") + Class aClass = (Class) (type.getActualTypeArguments()[0]); + if (!AbacDto.class.isAssignableFrom(aClass) + && !parameter.isAnnotationPresent(TilpassetAbacAttributt.class) + && !IgnorerteInputTyper.ignore(aClass)) { + feilmeldinger.append(String.format( + feilmelding, + restMethode.getDeclaringClass().getSimpleName(), + restMethode.getName(), + aClass.getSimpleName())); } } else { - if (!AbacDto.class.isAssignableFrom(parameter.getType()) && !parameter.isAnnotationPresent(TilpassetAbacAttributt.class) - && !IgnorerteInputTyper.ignore(parameter.getType())) { - feilmeldinger.append(String.format(feilmelding, restMethode.getDeclaringClass().getSimpleName(), restMethode.getName(), - parameter.getType().getSimpleName())); + if (!AbacDto.class.isAssignableFrom(parameter.getType()) + && !parameter.isAnnotationPresent(TilpassetAbacAttributt.class) + && !IgnorerteInputTyper.ignore(parameter.getType())) { + feilmeldinger.append(String.format( + feilmelding, + restMethode.getDeclaringClass().getSimpleName(), + restMethode.getName(), + parameter.getType().getSimpleName())); } } } @@ -83,15 +89,15 @@ void test_at_minst_en_input_parametre_til_restmetoder_implementer_AbacDto() { var klasse = metode.getDeclaringClass(); var annotation = metode.getAnnotation(BeskyttetRessurs.class); if (annotation != null && annotation.actionType() == ActionType.DUMMY) { - fail(klasse.getSimpleName() + "." + metode.getName() + " Ikke bruk DUMMY-verdi for " + ActionType.class.getSimpleName()); - } else if (annotation != null && annotation.resourceType() == ResourceType.DUMMY) { + fail(klasse.getSimpleName() + "." + metode.getName() + " Ikke bruk DUMMY-verdi for " + + ActionType.class.getSimpleName()); + } else if (annotation != null + && annotation.resourceType() == ResourceType.DUMMY) { fail(klasse.getSimpleName() + "." + metode.getName() + " En verdi for resource må være satt!"); } } - /** - * Disse typene slipper naturligvis krav om impl av {@link AbacDto} - */ + /** Disse typene slipper naturligvis krav om impl av {@link AbacDto} */ enum IgnorerteInputTyper { BOOLEAN(Boolean.class), SERVLET(HttpServletRequest.class), diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiInputValideringAnnoteringTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiInputValideringAnnoteringTest.java index 80496cb16..d7ee88e3b 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiInputValideringAnnoteringTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiInputValideringAnnoteringTest.java @@ -2,41 +2,44 @@ import static org.assertj.core.api.Assertions.assertThat; +import jakarta.validation.Valid; +import jakarta.ws.rs.core.Context; import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.function.Function; - -import jakarta.validation.Valid; -import jakarta.ws.rs.core.Context; - import org.junit.jupiter.api.Test; - class RestApiInputValideringAnnoteringTest extends RestApiTester { - private Function printKlasseOgMetodeNavn = (method -> String.format("%s.%s", method.getDeclaringClass(), method.getName())); + private Function printKlasseOgMetodeNavn = + (method -> String.format("%s.%s", method.getDeclaringClass(), method.getName())); /** * IKKE ignorer eller fjern denne testen, den sørger for at inputvalidering er i orden for REST-grensesnittene - *

    - * Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her + * + *

    Kontakt Team Humle hvis du trenger hjelp til å endre koden din slik at den går igjennom her */ @Test - void alle_felter_i_objekter_som_brukes_som_inputDTO_skal_enten_ha_valideringsannotering_eller_være_av_godkjent_type() throws Exception { + void + alle_felter_i_objekter_som_brukes_som_inputDTO_skal_enten_ha_valideringsannotering_eller_være_av_godkjent_type() + throws Exception { for (Method method : finnAlleRestMetoder()) { for (int i = 0; i < method.getParameterCount(); i++) { Parameter parameter = method.getParameters()[i]; if (parameter.getType().isEnum()) { continue; } - assertThat(method.getParameterTypes()[i].isAssignableFrom(String.class) && !parameter.isAnnotationPresent( - jakarta.validation.constraints.Pattern.class)).as( - "REST-metoder skal ikke har parameter som er String eller mer generelt uten at @Pattern brukes. Bruk DTO-er og valider. " - + printKlasseOgMetodeNavn.apply(method)).isFalse(); - assertThat(isRequiredAnnotationPresent(parameter)).as( - "Alle parameter for REST-metoder skal være annotert med @Valid. Var ikke det for " + printKlasseOgMetodeNavn.apply(method)) - .withFailMessage("Fant parametere som mangler @Valid annotation '" + parameter.toString() + "'") - .isTrue(); + assertThat(method.getParameterTypes()[i].isAssignableFrom(String.class) + && !parameter.isAnnotationPresent(jakarta.validation.constraints.Pattern.class)) + .as( + "REST-metoder skal ikke har parameter som er String eller mer generelt uten at @Pattern brukes. Bruk DTO-er og valider. " + + printKlasseOgMetodeNavn.apply(method)) + .isFalse(); + assertThat(isRequiredAnnotationPresent(parameter)) + .as("Alle parameter for REST-metoder skal være annotert med @Valid. Var ikke det for " + + printKlasseOgMetodeNavn.apply(method)) + .withFailMessage("Fant parametere som mangler @Valid annotation '" + parameter.toString() + "'") + .isTrue(); } } } @@ -49,5 +52,4 @@ private boolean isRequiredAnnotationPresent(Parameter parameter) { } return true; } - } diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiTester.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiTester.java index d62101057..6003cb7c7 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiTester.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/konfig/RestApiTester.java @@ -1,5 +1,8 @@ package no.nav.foreldrepenger.abakus.app.konfig; +import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Application; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -8,11 +11,6 @@ import java.util.List; import java.util.stream.Collectors; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Application; - -import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; - public class RestApiTester { static final List> UNNTATT = Collections.singletonList(OpenApiResource.class); @@ -36,10 +34,9 @@ static Collection> finnAlleRestTjenester() { } static Collection> finnAlleRestTjenester(Application config) { - return config.getClasses() - .stream() - .filter(c -> c.getAnnotation(Path.class) != null) - .filter(c -> !UNNTATT.contains(c)) - .collect(Collectors.toList()); + return config.getClasses().stream() + .filter(c -> c.getAnnotation(Path.class) != null) + .filter(c -> !UNNTATT.contains(c)) + .collect(Collectors.toList()); } } diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarterTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarterTest.java index d4dc0f7b2..9b8ec3f56 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarterTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/tjenester/ApplicationServiceStarterTest.java @@ -3,14 +3,12 @@ import static org.mockito.Mockito.verify; import no.nav.vedtak.server.Controllable; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; - @ExtendWith(MockitoExtension.class) class ApplicationServiceStarterTest { diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVaskerTest.java b/web/src/test/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVaskerTest.java index df9e52a93..dad0912c3 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVaskerTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/app/vedlikehold/BegrunnelseVaskerTest.java @@ -9,12 +9,13 @@ class BegrunnelseVaskerTest { @Test void skal_vaske_begrunnelse() { - var uvasket = - "Gått fra \n" + "usammenhengende vikariater med varierende arbeidsomfang,til fast kontrakt med mer stabil og \n" + "høyere inntekt."; + var uvasket = "Gått fra \n" + + "usammenhengende vikariater med varierende arbeidsomfang,til fast kontrakt med mer stabil og \n" + + "høyere inntekt."; - - var forventet = - "Gått fra " + "usammenhengende vikariater med varierende arbeidsomfang,til fast kontrakt med mer stabil og " + "høyere inntekt."; + var forventet = "Gått fra " + + "usammenhengende vikariater med varierende arbeidsomfang,til fast kontrakt med mer stabil og " + + "høyere inntekt."; var vasket = BegrunnelseVasker.vask(uvasket); diff --git a/web/src/test/java/no/nav/foreldrepenger/abakus/jetty/JettyDevServer.java b/web/src/test/java/no/nav/foreldrepenger/abakus/jetty/JettyDevServer.java index 523da7680..85b1dbfcd 100644 --- a/web/src/test/java/no/nav/foreldrepenger/abakus/jetty/JettyDevServer.java +++ b/web/src/test/java/no/nav/foreldrepenger/abakus/jetty/JettyDevServer.java @@ -1,14 +1,12 @@ package no.nav.foreldrepenger.abakus.jetty; +import javax.naming.NamingException; +import no.nav.foreldrepenger.konfig.Environment; import org.flywaydb.core.Flyway; import org.flywaydb.core.api.FlywayException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import no.nav.foreldrepenger.konfig.Environment; - -import javax.naming.NamingException; - public class JettyDevServer extends JettyServer { private static final Environment ENV = Environment.current(); @@ -37,11 +35,11 @@ void migrerDatabaser() { LOG.info("Migreringer feilet, cleaner og prøver på nytt for lokal db."); try (var migreringDs = DatasourceUtil.createDatasource(DatasourceRole.ADMIN, 2)) { var flyway = Flyway.configure() - .dataSource(migreringDs) - .locations("classpath:/db/migration/") - .baselineOnMigrate(true) - .cleanDisabled(false) - .load(); + .dataSource(migreringDs) + .locations("classpath:/db/migration/") + .baselineOnMigrate(true) + .cleanDisabled(false) + .load(); flyway.clean(); } catch (FlywayException fwe) { throw new IllegalStateException("Migrering feiler.", fwe);