From f0c8c8dcd642c34de9bded0e4307e9211fe40c7e Mon Sep 17 00:00:00 2001 From: halvor Date: Mon, 22 Jan 2024 12:21:48 +0100 Subject: [PATCH 01/24] =?UTF-8?q?Ikke=20rekj=C3=B8r=20grensesnittavstemmin?= =?UTF-8?q?g=20ved=20samme=20avstemmingId=20dersom=20forrige=20gikk=20OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- ...ereKj\303\270rteGrensesnittavstemminger.kt" | 10 ++++++++++ ...270rteGrensesnittavstemmingerRepository.kt" | 13 +++++++++++++ .../service/GrensesnittavstemmingService.kt | 18 +++++++++++++++++- ...dligere_kjoerte_grensesnittavstemminger.sql | 4 ++++ 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 "src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemminger.kt" create mode 100644 "src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemmingerRepository.kt" create mode 100644 src/main/resources/db/migration/V013__opprett_tidligere_kjoerte_grensesnittavstemminger.sql diff --git a/pom.xml b/pom.xml index 47d8f2d2..ced8cfbc 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ 1.9.0 no.nav.familie.oppdrag.LauncherKt 2.20230508082643_6b28bd8 - 3.0_20230808083340_ced4750 + 3.0_20240122110213_5591a29 3.1.2 ${SONAR_LOGIN} - 2022.0.4 + 2023.0.0 1.18.3 1.0_20230718100517_1e1beb0 - 2.2.0 + 2.3.0 From 27591adb7faf5cfa57c2595f83173725d0d46703 Mon Sep 17 00:00:00 2001 From: Henning Ivan Solberg Date: Wed, 24 Jan 2024 13:56:16 +0100 Subject: [PATCH 12/24] lagt inn codeql (#662) --- .github/workflows/codeql.yml | 90 ++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..9029b8f5 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,90 @@ +#For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "main" ] + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + # required for all workflows + security-events: write + + # only required for workflows in private repositories + actions: read + contents: read + + strategy: + fail-fast: false + matrix: + language: [ 'java-kotlin' ] + # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] + # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both + # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Sett opp java + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: 'temurin' + cache: 'maven' + - name: Bygg med maven + env: + GITHUB_USERNAME: x-access-token + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: mvn -B --no-transfer-progress package --settings .m2/maven-settings.xml -DtrimStackTrace=false --file pom.xml -Dchangelist= -Dsha1=-$TIMESTAMP-$(echo $GITHUB_SHA | cut -c1-7) + + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" From c60112fe74a16c83983bcac29f8b3d33e922aa6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:34:48 +0000 Subject: [PATCH 13/24] Bump testcontainers.version from 1.18.3 to 1.19.3 (#659) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps `testcontainers.version` from 1.18.3 to 1.19.3. Updates `org.testcontainers:testcontainers` from 1.18.3 to 1.19.3 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.3) Updates `org.testcontainers:postgresql` from 1.18.3 to 1.19.3 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.3) Updates `org.testcontainers:junit-jupiter` from 1.18.3 to 1.19.3 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.3) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers dependency-type: direct:development update-type: version-update:semver-minor - dependency-name: org.testcontainers:postgresql dependency-type: direct:development update-type: version-update:semver-minor - dependency-name: org.testcontainers:junit-jupiter dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b884a695..f3412ac2 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ ${SONAR_LOGIN} 2023.0.0 - 1.18.3 + 1.19.3 1.0_20230718100517_1e1beb0 2.3.0 From 76f30614c6c26529ad04d8d8b336578eb01ba35e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:50:34 +0000 Subject: [PATCH 14/24] Bump nais/deploy from 1 to 2 (#653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [nais/deploy](https://github.com/nais/deploy) from 1 to 2. - [Release notes](https://github.com/nais/deploy/releases) - [Commits](https://github.com/nais/deploy/compare/v1...v2) --- updated-dependencies: - dependency-name: nais/deploy dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- .github/workflows/build-and-deploy-preprod.yml | 2 +- .github/workflows/build-and-deploy-prod.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index f9bc4764..5fe5527e 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -51,7 +51,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Deploy til dev-fss team namespace - uses: nais/deploy/actions/deploy@v1 + uses: nais/deploy/actions/deploy@v2 env: APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }} CLUSTER: dev-fss diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index 039324cd..d23c1679 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -51,13 +51,13 @@ jobs: steps: - uses: actions/checkout@v3 - name: Deploy til dev-fss team namespace - uses: nais/deploy/actions/deploy@v1 + uses: nais/deploy/actions/deploy@v2 env: APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }} CLUSTER: dev-fss RESOURCE: app-preprod.yaml - name: Deploy til prod-fss team namespace - uses: nais/deploy/actions/deploy@v1 + uses: nais/deploy/actions/deploy@v2 env: APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }} CLUSTER: prod-fss From 13187a1f40bd5af77ab71738c2b48b71592efdd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:56:10 +0000 Subject: [PATCH 15/24] Bump actions/checkout from 3 to 4 (#632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- .github/workflows/build-and-deploy-preprod.yml | 4 ++-- .github/workflows/build-and-deploy-prod.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index 5fe5527e..c98804b7 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -14,7 +14,7 @@ jobs: permissions: packages: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-java@v3 @@ -49,7 +49,7 @@ jobs: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Deploy til dev-fss team namespace uses: nais/deploy/actions/deploy@v2 env: diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index d23c1679..ca91e931 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -13,7 +13,7 @@ jobs: permissions: packages: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-java@v3 @@ -49,7 +49,7 @@ jobs: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Deploy til dev-fss team namespace uses: nais/deploy/actions/deploy@v2 env: From 7db21938e64556c44a76f0c0662b29028c0d12d6 Mon Sep 17 00:00:00 2001 From: Henning Ivan Solberg Date: Wed, 24 Jan 2024 16:11:19 +0100 Subject: [PATCH 16/24] bruker autobuild (#663) --- .github/workflows/codeql.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9029b8f5..26771f6e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -61,17 +61,8 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). # If this step fails, then you should remove it and run the build manually (see below) - - name: Sett opp java - uses: actions/setup-java@v4 - with: - java-version: 21 - distribution: 'temurin' - cache: 'maven' - - name: Bygg med maven - env: - GITHUB_USERNAME: x-access-token - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: mvn -B --no-transfer-progress package --settings .m2/maven-settings.xml -DtrimStackTrace=false --file pom.xml -Dchangelist= -Dsha1=-$TIMESTAMP-$(echo $GITHUB_SHA | cut -c1-7) + - name: Autobuild + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. From 15baa9074ae7b737f059ad14826cae6af6f9fb20 Mon Sep 17 00:00:00 2001 From: Henning Ivan Solberg Date: Thu, 25 Jan 2024 07:40:08 +0100 Subject: [PATCH 17/24] =?UTF-8?q?reverter=20autobuild,=20pga=20problemer?= =?UTF-8?q?=20med=20=C3=A5=20f=C3=A5=20tak=20i=20deps=20(#664)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/codeql.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 26771f6e..91cd4d6f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -61,8 +61,17 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 + - name: Sett opp java + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: 'temurin' + cache: 'maven' + - name: Bygg med maven + env: + GITHUB_USERNAME: x-access-token + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: mvn -B --no-transfer-progress compile --settings .m2/maven-settings.xml # ℹ️ Command-line programs to run using the OS shell. From d0cddb303a1a12a58eb24aebf829a084089c83b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 08:21:24 +0000 Subject: [PATCH 18/24] Bump kotlin.version from 1.9.0 to 1.9.22 + JDK21 (#660) Bump kotlin.version from 1.9.0 to 1.9.22 + JDK21 --- .github/workflows/build-and-deploy-preprod.yml | 2 +- .github/workflows/build-and-deploy-prod.yml | 2 +- Dockerfile | 2 +- pom.xml | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index c98804b7..d4af0e86 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -19,7 +19,7 @@ jobs: persist-credentials: false - uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 21 distribution: 'temurin' cache: 'maven' - name: Bygg med maven + sonar diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index ca91e931..604a6fe0 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -18,7 +18,7 @@ jobs: persist-credentials: false - uses: actions/setup-java@v3 with: - java-version: 17 + java-version: 21 distribution: 'temurin' cache: 'maven' - name: Bygg med maven diff --git a/Dockerfile b/Dockerfile index 9cc2e037..852b86a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/navikt/baseimages/temurin:17-appdynamics +FROM ghcr.io/navikt/baseimages/temurin:21-appdynamics ENV APPD_ENABLED=true ENV APP_NAME=familie-oppdrag diff --git a/pom.xml b/pom.xml index f3412ac2..18317d14 100644 --- a/pom.xml +++ b/pom.xml @@ -18,8 +18,8 @@ 1.0 -SNAPSHOT - 17 - 1.9.0 + 21 + 1.9.22 no.nav.familie.oppdrag.LauncherKt 2.20230508082643_6b28bd8 3.0_20240122110213_5591a29 From 660f2d27eb7e56e5dff635d27b8de7f1da61ca95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:55:17 +0100 Subject: [PATCH 19/24] Bump actions/setup-java from 3 to 4 (#651) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- .github/workflows/build-and-deploy-preprod.yml | 2 +- .github/workflows/build-and-deploy-prod.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index d4af0e86..f9523204 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v4 with: persist-credentials: false - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 21 distribution: 'temurin' diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index 604a6fe0..267cba64 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v4 with: persist-credentials: false - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 21 distribution: 'temurin' From 10d727fbfa40c77bf3afcd5eea9dedf42eae9c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig=20Str=C3=B8m?= Date: Thu, 25 Jan 2024 10:37:16 +0100 Subject: [PATCH 20/24] Bumper ktlint (#665) * Bumper ktlint * ktlint autofikser * Star import ktlint * standard:value-argument-comment * ktlint: standard:property-naming * ktlint: standard:function-naming * ktlint: standard:max-line-length --- pom.xml | 6 +- .../oppdrag/avstemming/AvstemmingMapper.kt | 1 - .../oppdrag/avstemming/AvstemmingSender.kt | 1 + .../oppdrag/avstemming/AvstemmingSenderMQ.kt | 8 +- .../familie/oppdrag/common/RessursUtils.kt | 33 +-- .../oppdrag/common/SOAPFaultExceptionUtil.kt | 7 +- .../oppdrag/config/ApiExceptionHandler.kt | 5 +- .../oppdrag/config/ApplicationConfig.kt | 9 +- .../oppdrag/config/DatabaseConfiguration.kt | 5 - .../familie/oppdrag/config/FlywayConfig.kt | 5 +- .../familie/oppdrag/config/OppdragMQConfig.kt | 1 - .../familie/oppdrag/config/ServiceConfig.kt | 3 +- .../familie/oppdrag/config/SwaggerConfig.kt | 1 - .../oppdrag/config/VaultHikariConfig.kt | 1 - .../config/\303\230konomiClientConfig.kt" | 38 ++-- .../oppdrag/domene/OppdragIdMapping.kt | 11 +- .../GrensesnittavstemmingMapper.kt | 25 ++- .../JaxbGrensesnittAvstemmingsdata.kt | 1 - .../nav/familie/oppdrag/iverksetting/Jaxb.kt | 62 +++--- .../oppdrag/iverksetting/OppdragMapper.kt | 70 ++++--- .../oppdrag/iverksetting/OppdragMottaker.kt | 22 +- .../oppdrag/iverksetting/OppdragSenderMQ.kt | 1 - .../iverksetting/OppdragSkjemaConstants.kt | 1 - .../JaxbKonsistensavstemming.kt | 8 +- .../KonsistensavstemmingConstants.kt | 1 - .../KonsistensavstemmingMapper.kt | 33 +-- .../repository/InsertUpdateRepository.kt | 3 +- .../repository/InsertUpdateRepositoryImpl.kt | 1 - .../repository/Kvitteringsinformasjon.kt | 6 +- ...omlagringKonsistensavstemmingRepository.kt | 5 +- .../oppdrag/repository/OppdragLager.kt | 8 +- .../repository/OppdragLagerRepository.kt | 33 ++- .../repository/OppdragLagerRepositoryJdbc.kt | 198 +++++++++++------- .../repository/OppdragTilAvstemming.kt | 6 +- .../oppdrag/repository/RepositoryInterface.kt | 1 - .../oppdrag/repository/SimuleringLager.kt | 1 - .../repository/SimuleringLagerRepository.kt | 7 +- .../repository/SimuleringLagerTjeneste.kt | 10 +- .../repository/SimuleringLagerTjenesteE2E.kt | 7 +- .../repository/SimuleringLagerTjenesteImpl.kt | 7 +- ...igereKj\303\270rtGrensesnittavstemming.kt" | 6 +- ...70rteGrensesnittavstemmingerRepository.kt" | 6 +- .../oppdrag/rest/AvstemmingController.kt | 6 +- .../familie/oppdrag/rest/OppdragController.kt | 1 - .../oppdrag/rest/SimuleringController.kt | 5 +- .../oppdrag/rest/TilbakekrevingController.kt | 1 - .../service/GrensesnittavstemmingService.kt | 99 ++++----- .../service/KonsistensavstemmingService.kt | 68 +++--- ...ellomlagringKonsistensavstemmingService.kt | 26 ++- .../familie/oppdrag/service/OppdragService.kt | 9 +- .../oppdrag/service/OppdragServiceE2E.kt | 8 +- .../oppdrag/service/OppdragServiceImpl.kt | 9 +- .../SimulerBeregningRequestMapper.kt | 23 +- .../SimuleringResultatTransformer.kt | 33 +-- .../oppdrag/simulering/SimuleringSender.kt | 1 - .../simulering/SimuleringSenderImpl.kt | 1 - .../oppdrag/simulering/SimuleringTjeneste.kt | 2 +- .../simulering/SimuleringTjenesteImpl.kt | 83 ++++---- .../tilbakekreving/\303\230konomiClient.kt" | 1 - .../nav/familie/oppdrag/tss/TssController.kt | 23 +- .../nav/familie/oppdrag/tss/TssException.kt | 19 +- .../no/nav/familie/oppdrag/tss/TssMQClient.kt | 125 ++++++----- .../familie/oppdrag/tss/TssOppslagService.kt | 49 ++++- .../familie/oppdrag/tss/TssSamhandlerIdent.kt | 4 +- .../no/nav/familie/oppdrag/DevLauncher.kt | 5 +- .../nav/familie/oppdrag/DevPsqlMqLauncher.kt | 18 +- .../avstemming/AvstemmingMQSenderTest.kt | 27 +-- .../GrensesnittavstemmingIdTest.kt | 31 ++- .../GrensesnittavstemmingMapperTest.kt | 21 +- .../familie/oppdrag/iverksetting/JaxbTest.kt | 81 ++++--- .../iverksetting/KontraktTilOppdragTest.kt | 133 ++++++------ .../iverksetting/OppdragMQMottakTest.kt | 23 +- .../iverksetting/OppdragMQSenderTest.kt | 114 +++++----- .../KonsistensavstemmingMapperTest.kt | 90 ++++---- .../KonsistensavstemmingServiceTest.kt | 111 +++++----- ...gringKonsistensavstemmingRepositoryTest.kt | 28 +-- .../OppdragLagerRepositoryJdbcTest.kt | 77 +++---- .../oppdrag/repository/OppdragStatusTest.kt | 1 - .../rest/OppdragControllerIntegrationTest.kt | 14 +- .../oppdrag/rest/OppdragControllerTest.kt | 54 ++--- .../GrensesnittavstemmingServiceTest.kt | 63 +++--- ...mlagringKonsistensavstemmingServiceTest.kt | 8 +- .../simulering/SimuleringTjenesteImplTest.kt | 62 +++--- .../oppdrag/simulering/mock/Periode.kt | 11 +- .../simulering/mock/PeriodeGenerator.kt | 25 ++- .../oppdrag/simulering/mock/PeriodeType.kt | 5 +- .../simulering/mock/SimuleringGenerator.kt | 126 ++++++----- .../mock/SimuleringGeneratorTest.kt | 46 +++- .../simulering/mock/SimuleringSenderMock.kt | 1 - .../oppdrag/simulering/util/ClientMocks.kt | 1 - .../simulering/util/SimuleringTestUtils.kt | 25 ++- .../oppdrag/tss/TssOppslagServiceTest.kt | 52 +++-- .../nav/familie/oppdrag/util/ContainerTest.kt | 13 +- .../util/TestOppdragMedAvstemmingsdato.kt | 51 +++-- .../oppdrag/util/TestUtbetalingsoppdrag.kt | 49 ++--- 95 files changed, 1494 insertions(+), 1132 deletions(-) diff --git a/pom.xml b/pom.xml index 18317d14..298d5d96 100644 --- a/pom.xml +++ b/pom.xml @@ -540,9 +540,9 @@ - com.pinterest - ktlint - 0.50.0 + com.pinterest.ktlint + ktlint-cli + 1.1.1 diff --git a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMapper.kt b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMapper.kt index 36809447..eb1827c9 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMapper.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMapper.kt @@ -5,7 +5,6 @@ import java.util.Base64 import java.util.UUID object AvstemmingMapper { - fun encodeUUIDBase64(uuid: UUID): String { val bb = ByteBuffer.wrap(ByteArray(16)) bb.putLong(uuid.mostSignificantBits) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSender.kt b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSender.kt index ac79616f..391ab9b0 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSender.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSender.kt @@ -5,5 +5,6 @@ import no.nav.virksomhet.tjenester.avstemming.meldinger.v1.Avstemmingsdata interface AvstemmingSender { fun sendGrensesnittAvstemming(avstemmingsdata: Avstemmingsdata) + fun sendKonsistensAvstemming(avstemmingsdata: Konsistensavstemmingsdata) } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSenderMQ.kt b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSenderMQ.kt index 57e0ffaf..d3eb8de1 100755 --- a/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSenderMQ.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingSenderMQ.kt @@ -17,16 +17,16 @@ class AvstemmingSenderMQ( val jmsTemplateAvstemming: JmsTemplate, @Value("\${oppdrag.mq.enabled}") val erEnabled: String, ) : AvstemmingSender { - override fun sendGrensesnittAvstemming(avstemmingsdata: Avstemmingsdata) { val avstemmingXml = JaxbGrensesnittAvstemmingsdata.tilXml(avstemmingsdata) leggPåKø(avstemmingXml) } override fun sendKonsistensAvstemming(avstemmingsdata: Konsistensavstemmingsdata) { - val konsistensavstemmingRequest = SendAsynkronKonsistensavstemmingsdata().apply { - request = SendAsynkronKonsistensavstemmingsdataRequest().apply { konsistensavstemmingsdata = avstemmingsdata } - } + val konsistensavstemmingRequest = + SendAsynkronKonsistensavstemmingsdata().apply { + request = SendAsynkronKonsistensavstemmingsdataRequest().apply { konsistensavstemmingsdata = avstemmingsdata } + } val requestXml = JaxbKonsistensavstemming.tilXml(konsistensavstemmingRequest) leggPåKø(requestXml) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/common/RessursUtils.kt b/src/main/kotlin/no/nav/familie/oppdrag/common/RessursUtils.kt index 89091f5a..30a12741 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/common/RessursUtils.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/common/RessursUtils.kt @@ -6,32 +6,37 @@ import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity object RessursUtils { - private val LOG = LoggerFactory.getLogger(this::class.java) private val secureLogger = LoggerFactory.getLogger("secureLogger") fun unauthorized(errorMessage: String): ResponseEntity> = ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(Ressurs.failure(errorMessage)) - fun notFound(errorMessage: String): ResponseEntity> = - errorResponse(HttpStatus.NOT_FOUND, errorMessage, null) + fun notFound(errorMessage: String): ResponseEntity> = errorResponse(HttpStatus.NOT_FOUND, errorMessage, null) - fun badRequest(errorMessage: String, throwable: Throwable?): ResponseEntity> = - errorResponse(HttpStatus.BAD_REQUEST, errorMessage, throwable) + fun badRequest( + errorMessage: String, + throwable: Throwable?, + ): ResponseEntity> = errorResponse(HttpStatus.BAD_REQUEST, errorMessage, throwable) - fun forbidden(errorMessage: String): ResponseEntity> = - errorResponse(HttpStatus.FORBIDDEN, errorMessage, null) + fun forbidden(errorMessage: String): ResponseEntity> = errorResponse(HttpStatus.FORBIDDEN, errorMessage, null) - fun conflict(errorMessage: String): ResponseEntity> = - errorResponse(HttpStatus.CONFLICT, errorMessage, null, true) + fun conflict(errorMessage: String): ResponseEntity> = errorResponse(HttpStatus.CONFLICT, errorMessage, null, true) - fun illegalState(errorMessage: String, throwable: Throwable? = null): ResponseEntity> = - errorResponse(HttpStatus.INTERNAL_SERVER_ERROR, errorMessage, throwable) + fun illegalState( + errorMessage: String, + throwable: Throwable? = null, + ): ResponseEntity> = errorResponse(HttpStatus.INTERNAL_SERVER_ERROR, errorMessage, throwable) - fun serviceUnavailable(errorMessage: String, throwable: Throwable? = null): ResponseEntity> = - errorResponse(HttpStatus.INTERNAL_SERVER_ERROR, errorMessage, throwable) + fun serviceUnavailable( + errorMessage: String, + throwable: Throwable? = null, + ): ResponseEntity> = errorResponse(HttpStatus.INTERNAL_SERVER_ERROR, errorMessage, throwable) - fun ok(data: T, melding: String? = null): ResponseEntity> = ResponseEntity.ok(Ressurs.success(data, melding)) + fun ok( + data: T, + melding: String? = null, + ): ResponseEntity> = ResponseEntity.ok(Ressurs.success(data, melding)) fun noContent(): ResponseEntity> = ResponseEntity.noContent().build() diff --git a/src/main/kotlin/no/nav/familie/oppdrag/common/SOAPFaultExceptionUtil.kt b/src/main/kotlin/no/nav/familie/oppdrag/common/SOAPFaultExceptionUtil.kt index a04b8afb..a023403b 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/common/SOAPFaultExceptionUtil.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/common/SOAPFaultExceptionUtil.kt @@ -7,9 +7,10 @@ private val secureLogger = LoggerFactory.getLogger("secureLogger") fun logSoapFaultException(e: Exception) { if (e is SOAPFaultException) { - val details = e.fault.detail?.let { detail -> - detail.detailEntries.asSequence().mapNotNull { it.textContent }.joinToString(",") - } + val details = + e.fault.detail?.let { detail -> + detail.detailEntries.asSequence().mapNotNull { it.textContent }.joinToString(",") + } secureLogger.error( "SOAPFaultException -" + " faultCode=${e.fault.faultCode}" + diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/ApiExceptionHandler.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/ApiExceptionHandler.kt index e040596d..65d52a4a 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/ApiExceptionHandler.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/ApiExceptionHandler.kt @@ -18,12 +18,13 @@ import org.springframework.web.bind.annotation.ExceptionHandler @ControllerAdvice class ApiExceptionHandler { - private val logger: Logger = LoggerFactory.getLogger(this::class.java) private val secureLogger = LoggerFactory.getLogger("secureLogger") @ExceptionHandler(JwtTokenUnauthorizedException::class) - fun handleJwtTokenUnauthorizedException(jwtTokenUnauthorizedException: JwtTokenUnauthorizedException): ResponseEntity> { + fun handleJwtTokenUnauthorizedException( + jwtTokenUnauthorizedException: JwtTokenUnauthorizedException, + ): ResponseEntity> { return unauthorized("Unauthorized") } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/ApplicationConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/ApplicationConfig.kt index db511497..53c0a58b 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/ApplicationConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/ApplicationConfig.kt @@ -13,12 +13,11 @@ import org.springframework.context.annotation.ComponentScan import org.springframework.scheduling.annotation.EnableScheduling @SpringBootConfiguration -@EntityScan(ApplicationConfig.pakkenavn, "no.nav.familie.sikkerhet") -@ComponentScan(ApplicationConfig.pakkenavn, "no.nav.familie.sikkerhet") +@EntityScan(ApplicationConfig.PAKKENAVN, "no.nav.familie.sikkerhet") +@ComponentScan(ApplicationConfig.PAKKENAVN, "no.nav.familie.sikkerhet") @EnableScheduling @EnableJwtTokenValidation(ignore = ["org.springframework", "org.springdoc"]) class ApplicationConfig { - @Bean fun servletWebServerFactory(): ServletWebServerFactory { val serverFactory = JettyServletWebServerFactory() @@ -43,7 +42,7 @@ class ApplicationConfig { } companion object { - const val pakkenavn = "no.nav.familie.oppdrag" - val LOKALE_PROFILER = setOf("dev", "e2e", "dev_psql_mq") + const val PAKKENAVN = "no.nav.familie.oppdrag" + val lokaleProfiler = setOf("dev", "e2e", "dev_psql_mq") } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/DatabaseConfiguration.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/DatabaseConfiguration.kt index 169e1165..f689ef0f 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/DatabaseConfiguration.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/DatabaseConfiguration.kt @@ -19,7 +19,6 @@ import javax.sql.DataSource @Configuration class DatabaseConfiguration : AbstractJdbcConfiguration() { - @Bean fun operations(dataSource: DataSource): NamedParameterJdbcTemplate { return NamedParameterJdbcTemplate(dataSource) @@ -44,7 +43,6 @@ class DatabaseConfiguration : AbstractJdbcConfiguration() { @ReadingConverter class PGobjectTilUtbetalingsoppdragConverter : Converter { - override fun convert(pGobject: PGobject): Utbetalingsoppdrag? { return pGobject.value?.let { objectMapper.readValue(it) } } @@ -52,7 +50,6 @@ class DatabaseConfiguration : AbstractJdbcConfiguration() { @WritingConverter class UtbetalingsoppdragTilPGobjectConverter : Converter { - override fun convert(utbetalingsoppdrag: Utbetalingsoppdrag): PGobject = PGobject().apply { type = "json" @@ -62,7 +59,6 @@ class DatabaseConfiguration : AbstractJdbcConfiguration() { @ReadingConverter class PGobjectTilMmelConverter : Converter { - override fun convert(pGobject: PGobject): Mmel? { return pGobject.value?.let { objectMapper.readValue(it) } } @@ -70,7 +66,6 @@ class DatabaseConfiguration : AbstractJdbcConfiguration() { @WritingConverter class MmelTilPGobjectConverter : Converter { - override fun convert(utbetalingsoppdrag: Mmel): PGobject = PGobject().apply { type = "json" diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/FlywayConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/FlywayConfig.kt index bc3b035e..acc29079 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/FlywayConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/FlywayConfig.kt @@ -12,11 +12,12 @@ import org.springframework.context.annotation.Profile @Profile("!dev & !dev_psql_mq") @ConditionalOnProperty("spring.flyway.enabled") class FlywayConfig { - private val logger = LoggerFactory.getLogger(FlywayConfig::class.java) @Bean - fun setRole(@Value("\${spring.cloud.vault.database.role}") role: String): FlywayConfigurationCustomizer { + fun setRole( + @Value("\${spring.cloud.vault.database.role}") role: String, + ): FlywayConfigurationCustomizer { logger.info("Setter rolle " + role) return FlywayConfigurationCustomizer { c -> c.initSql(String.format("SET ROLE \"%s\"", role)) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/OppdragMQConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/OppdragMQConfig.kt index da639b07..b055166e 100755 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/OppdragMQConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/OppdragMQConfig.kt @@ -39,7 +39,6 @@ class OppdragMQConfig( @Value("\${oppdrag.mq.user}") val user: String, @Value("\${oppdrag.mq.password}") val password: String, ) { - private val logger = LoggerFactory.getLogger(javaClass) private val secureLogger = LoggerFactory.getLogger("secureLogger") diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/ServiceConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/ServiceConfig.kt index 09e6d7d9..d2ac5198 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/ServiceConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/ServiceConfig.kt @@ -15,7 +15,6 @@ class ServiceConfig( @Value("\${SERVICEUSER_PASSWORD}") private val systemuserPwd: String, @Value("\${OPPDRAG_SERVICE_URL}") private val simulerFpServiceUrl: String, ) { - @Bean fun stsConfig(): StsConfig { return StsConfig.builder() @@ -26,7 +25,7 @@ class ServiceConfig( } @Bean - fun SimulerFpServicePort(): SimulerFpService = + fun simulerFpServicePort(): SimulerFpService = CXFClient(SimulerFpService::class.java) .address(simulerFpServiceUrl) .timeout(20000, 20000) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/SwaggerConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/SwaggerConfig.kt index ea9592eb..24a3a1bd 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/SwaggerConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/SwaggerConfig.kt @@ -10,7 +10,6 @@ import org.springframework.context.annotation.Configuration @Configuration class SwaggerConfig { - private val bearer = "JWT" @Bean diff --git a/src/main/kotlin/no/nav/familie/oppdrag/config/VaultHikariConfig.kt b/src/main/kotlin/no/nav/familie/oppdrag/config/VaultHikariConfig.kt index c2d95856..1025d849 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/config/VaultHikariConfig.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/config/VaultHikariConfig.kt @@ -17,7 +17,6 @@ class VaultHikariConfig( private val hikariDataSource: HikariDataSource, private val props: VaultDatabaseProperties, ) : InitializingBean { - private val logger = LoggerFactory.getLogger(VaultHikariConfig::class.java) override fun afterPropertiesSet() { diff --git "a/src/main/kotlin/no/nav/familie/oppdrag/config/\303\230konomiClientConfig.kt" "b/src/main/kotlin/no/nav/familie/oppdrag/config/\303\230konomiClientConfig.kt" index c6fb30c0..f74d81ac 100644 --- "a/src/main/kotlin/no/nav/familie/oppdrag/config/\303\230konomiClientConfig.kt" +++ "b/src/main/kotlin/no/nav/familie/oppdrag/config/\303\230konomiClientConfig.kt" @@ -16,29 +16,30 @@ import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import javax.xml.namespace.QName +private const val WSDL = "wsdl/no/nav/tilbakekreving/tilbakekreving-v1-tjenestespesifikasjon.wsdl" +private const val NAMESPACE = "http://okonomi.nav.no/tilbakekrevingService/" + @Configuration class ØkonomiClientConfig( @Value("\${TILBAKEKREVING_V1_URL}") private val tilbakekrevingUrl: String, ) { - - private val WSDL = "wsdl/no/nav/tilbakekreving/tilbakekreving-v1-tjenestespesifikasjon.wsdl" - private val NAMESPACE = "http://okonomi.nav.no/tilbakekrevingService/" - private val SERVICE = QName(NAMESPACE, "TilbakekrevingService") - private val PORT = QName(NAMESPACE, "TilbakekrevingServicePort") + private val service = QName(NAMESPACE, "TilbakekrevingService") + private val port = QName(NAMESPACE, "TilbakekrevingServicePort") @Bean fun økonomiService(stsConfig: StsConfig): TilbakekrevingPortType { - val factoryBean = JaxWsProxyFactoryBean().apply { - wsdlURL = WSDL - serviceName = SERVICE - endpointName = PORT - serviceClass = TilbakekrevingPortType::class.java - address = tilbakekrevingUrl - features.add(WSAddressingFeature()) - features.add(loggingFeature()) - outInterceptors.add(LoggingOutInterceptor()) - inInterceptors.add(LoggingInInterceptor()) - } + val factoryBean = + JaxWsProxyFactoryBean().apply { + wsdlURL = WSDL + serviceName = service + endpointName = port + serviceClass = TilbakekrevingPortType::class.java + address = tilbakekrevingUrl + features.add(WSAddressingFeature()) + features.add(loggingFeature()) + outInterceptors.add(LoggingOutInterceptor()) + inInterceptors.add(LoggingInInterceptor()) + } return wrapWithSts(factoryBean.create(TilbakekrevingPortType::class.java), stsConfig).apply { disableCnCheck() } @@ -59,7 +60,10 @@ class ØkonomiClientConfig( conduit.tlsClientParameters = tlsParams } - private fun wrapWithSts(port: TilbakekrevingPortType, stsConfig: StsConfig): TilbakekrevingPortType { + private fun wrapWithSts( + port: TilbakekrevingPortType, + stsConfig: StsConfig, + ): TilbakekrevingPortType { val client = ClientProxy.getClient(port) STSConfigurationUtil.configureStsForSystemUserInFSS(client, stsConfig) return port diff --git a/src/main/kotlin/no/nav/familie/oppdrag/domene/OppdragIdMapping.kt b/src/main/kotlin/no/nav/familie/oppdrag/domene/OppdragIdMapping.kt index 9f8e63dc..c871869c 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/domene/OppdragIdMapping.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/domene/OppdragIdMapping.kt @@ -4,8 +4,9 @@ import no.nav.familie.kontrakter.felles.oppdrag.OppdragId import no.trygdeetaten.skjema.oppdrag.Oppdrag val Oppdrag.id: OppdragId - get() = OppdragId( - this.oppdrag110.kodeFagomraade, - this.oppdrag110.oppdragGjelderId, - this.oppdrag110.oppdragsLinje150?.get(0)?.henvisning!!, - ) + get() = + OppdragId( + this.oppdrag110.kodeFagomraade, + this.oppdrag110.oppdragGjelderId, + this.oppdrag110.oppdragsLinje150?.get(0)?.henvisning!!, + ) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapper.kt b/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapper.kt index 98fdbd52..a9200213 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapper.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapper.kt @@ -21,13 +21,13 @@ import java.time.LocalDateTime import java.time.format.DateTimeFormatter import java.util.UUID +private const val ANTALL_DETALJER_PER_MELDING = 70 + class GrensesnittavstemmingMapper( private val fagområde: String, private val fom: LocalDateTime, private val tom: LocalDateTime, ) { - - private val ANTALL_DETALJER_PER_MELDING = 70 private val tidspunktFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS") val avstemmingId = AvstemmingMapper.encodeUUIDBase64(UUID.randomUUID()) @@ -37,11 +37,12 @@ class GrensesnittavstemmingMapper( fun lagStartmelding() = lagMelding(AksjonType.START) - fun lagTotalMelding() = lagMelding(AksjonType.DATA).apply { - this.total = opprettTotalData() - this.periode = opprettPeriodeData() - this.grunnlag = opprettGrunnlagsData() - } + fun lagTotalMelding() = + lagMelding(AksjonType.DATA).apply { + this.total = opprettTotalData() + this.periode = opprettPeriodeData() + this.grunnlag = opprettGrunnlagsData() + } fun lagSluttmelding() = lagMelding(AksjonType.AVSL) @@ -167,10 +168,12 @@ class GrensesnittavstemmingMapper( } private fun opprettPeriodeData(): Periodedata { - val fom = avstemmingstidspunkt.fom - ?: error("Mangler avstemmingstidspunkt::fom, vi skal ikke opprette meldinger hvis listen med oppdrag er tom") - val tom = avstemmingstidspunkt.tom - ?: error("Mangler avstemmingstidspunkt::tom, vi skal ikke opprette meldinger hvis listen med oppdrag er tom") + val fom = + avstemmingstidspunkt.fom + ?: error("Mangler avstemmingstidspunkt::fom, vi skal ikke opprette meldinger hvis listen med oppdrag er tom") + val tom = + avstemmingstidspunkt.tom + ?: error("Mangler avstemmingstidspunkt::tom, vi skal ikke opprette meldinger hvis listen med oppdrag er tom") return Periodedata().apply { this.datoAvstemtFom = formaterTilPeriodedataFormat(fom.format(tidspunktFormatter)) this.datoAvstemtTom = formaterTilPeriodedataFormat(tom.format(tidspunktFormatter)) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/JaxbGrensesnittAvstemmingsdata.kt b/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/JaxbGrensesnittAvstemmingsdata.kt index d469c55b..c2e6b08c 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/JaxbGrensesnittAvstemmingsdata.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/JaxbGrensesnittAvstemmingsdata.kt @@ -7,7 +7,6 @@ import no.nav.virksomhet.tjenester.avstemming.meldinger.v1.ObjectFactory import java.io.StringWriter object JaxbGrensesnittAvstemmingsdata { - val jaxbContext = JAXBContext.newInstance(Avstemmingsdata::class.java) fun tilXml(avstemmingsmelding: Avstemmingsdata): String { diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/Jaxb.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/Jaxb.kt index 995649e2..9404f18e 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/Jaxb.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/Jaxb.kt @@ -13,56 +13,61 @@ import javax.xml.stream.XMLInputFactory import javax.xml.transform.stream.StreamSource object Jaxb { - - val jaxbContext = JAXBContext.newInstance( - Oppdrag::class.java, - SimulerBeregningRequest::class.java, - SimulerBeregningResponse::class.java, - TssSamhandlerData::class.java, - ) + val jaxbContext = + JAXBContext.newInstance( + Oppdrag::class.java, + SimulerBeregningRequest::class.java, + SimulerBeregningResponse::class.java, + TssSamhandlerData::class.java, + ) val xmlInputFactory = XMLInputFactory.newInstance() fun tilOppdrag(oppdragXml: String): Oppdrag { - val oppdrag = jaxbContext.createUnmarshaller().unmarshal( - xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(oppdragXml))), - Oppdrag::class.java, - ) + val oppdrag = + jaxbContext.createUnmarshaller().unmarshal( + xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(oppdragXml))), + Oppdrag::class.java, + ) return oppdrag.value } fun tilXml(oppdrag: Oppdrag): String { val stringWriter = StringWriter() - val marshaller = jaxbContext.createMarshaller().apply { - setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) - } + val marshaller = + jaxbContext.createMarshaller().apply { + setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) + } marshaller.marshal(ObjectFactory().createOppdrag(oppdrag), stringWriter) return stringWriter.toString() } fun tilXml(request: SimulerBeregningRequest): String { val stringWriter = StringWriter() - val marshaller = jaxbContext.createMarshaller().apply { - setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) - } + val marshaller = + jaxbContext.createMarshaller().apply { + setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) + } marshaller.marshal(request, stringWriter) return stringWriter.toString() } fun tilXml(response: SimulerBeregningResponse): String { val stringWriter = StringWriter() - val marshaller = jaxbContext.createMarshaller().apply { - setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) - } + val marshaller = + jaxbContext.createMarshaller().apply { + setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) + } marshaller.marshal(response, stringWriter) return stringWriter.toString() } fun tilSimuleringsrespons(responsXml: String): SimulerBeregningResponse { - val simuleringBeregningResponse = jaxbContext.createUnmarshaller().unmarshal( - xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(responsXml))), - SimulerBeregningResponse::class.java, - ) + val simuleringBeregningResponse = + jaxbContext.createUnmarshaller().unmarshal( + xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(responsXml))), + SimulerBeregningResponse::class.java, + ) return simuleringBeregningResponse.value } @@ -76,10 +81,11 @@ object Jaxb { } fun tilTssSamhandlerData(responsXml: String): TssSamhandlerData { - val tssSamhandlerData = jaxbContext.createUnmarshaller().unmarshal( - xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(responsXml))), - TssSamhandlerData::class.java, - ) + val tssSamhandlerData = + jaxbContext.createUnmarshaller().unmarshal( + xmlInputFactory.createXMLStreamReader(StreamSource(StringReader(responsXml))), + TssSamhandlerData::class.java, + ) return tssSamhandlerData.value } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMapper.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMapper.kt index 6b6e0db9..3a0a728c 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMapper.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMapper.kt @@ -13,38 +13,40 @@ import java.time.format.DateTimeFormatter @Component class OppdragMapper { - private val objectFactory = ObjectFactory() val tidspunktFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS") fun tilOppdrag110(utbetalingsoppdrag: Utbetalingsoppdrag): Oppdrag110 { - val avstemming = objectFactory.createAvstemming115().apply { - nokkelAvstemming = utbetalingsoppdrag.avstemmingTidspunkt.format(tidspunktFormatter) - kodeKomponent = fagområdeTilAvleverendeKomponentKode(utbetalingsoppdrag.fagSystem) - tidspktMelding = utbetalingsoppdrag.avstemmingTidspunkt.format(tidspunktFormatter) - } + val avstemming = + objectFactory.createAvstemming115().apply { + nokkelAvstemming = utbetalingsoppdrag.avstemmingTidspunkt.format(tidspunktFormatter) + kodeKomponent = fagområdeTilAvleverendeKomponentKode(utbetalingsoppdrag.fagSystem) + tidspktMelding = utbetalingsoppdrag.avstemmingTidspunkt.format(tidspunktFormatter) + } - val oppdragsEnhet = objectFactory.createOppdragsEnhet120().apply { - enhet = OppdragSkjemaConstants.ENHET - typeEnhet = OppdragSkjemaConstants.ENHET_TYPE - datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toXMLDate() - } + val oppdragsEnhet = + objectFactory.createOppdragsEnhet120().apply { + enhet = OppdragSkjemaConstants.ENHET + typeEnhet = OppdragSkjemaConstants.ENHET_TYPE + datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toXMLDate() + } - val oppdrag110 = objectFactory.createOppdrag110().apply { - kodeAksjon = OppdragSkjemaConstants.KODE_AKSJON - kodeEndring = EndringsKode.fromKode(utbetalingsoppdrag.kodeEndring.name).kode - kodeFagomraade = utbetalingsoppdrag.fagSystem - fagsystemId = utbetalingsoppdrag.saksnummer - utbetFrekvens = UtbetalingsfrekvensKode.MÅNEDLIG.kode - oppdragGjelderId = utbetalingsoppdrag.aktoer - datoOppdragGjelderFom = OppdragSkjemaConstants.OPPDRAG_GJELDER_DATO_FOM.toXMLDate() - saksbehId = utbetalingsoppdrag.saksbehandlerId - avstemming115 = avstemming - oppdragsEnhet120.add(oppdragsEnhet) - utbetalingsoppdrag.utbetalingsperiode.map { periode -> - oppdragsLinje150.add(tilOppdragsLinje150(utbetalingsperiode = periode, utbetalingsoppdrag = utbetalingsoppdrag)) + val oppdrag110 = + objectFactory.createOppdrag110().apply { + kodeAksjon = OppdragSkjemaConstants.KODE_AKSJON + kodeEndring = EndringsKode.fromKode(utbetalingsoppdrag.kodeEndring.name).kode + kodeFagomraade = utbetalingsoppdrag.fagSystem + fagsystemId = utbetalingsoppdrag.saksnummer + utbetFrekvens = UtbetalingsfrekvensKode.MÅNEDLIG.kode + oppdragGjelderId = utbetalingsoppdrag.aktoer + datoOppdragGjelderFom = OppdragSkjemaConstants.OPPDRAG_GJELDER_DATO_FOM.toXMLDate() + saksbehId = utbetalingsoppdrag.saksbehandlerId + avstemming115 = avstemming + oppdragsEnhet120.add(oppdragsEnhet) + utbetalingsoppdrag.utbetalingsperiode.map { periode -> + oppdragsLinje150.add(tilOppdragsLinje150(utbetalingsperiode = periode, utbetalingsoppdrag = utbetalingsoppdrag)) + } } - } return oppdrag110 } @@ -53,9 +55,10 @@ class OppdragMapper { utbetalingsperiode: Utbetalingsperiode, utbetalingsoppdrag: Utbetalingsoppdrag, ): OppdragsLinje150 { - val attestant = objectFactory.createAttestant180().apply { - attestantId = utbetalingsoppdrag.saksbehandlerId - } + val attestant = + objectFactory.createAttestant180().apply { + attestantId = utbetalingsoppdrag.saksbehandlerId + } return objectFactory.createOppdragsLinje150().apply { kodeEndringLinje = @@ -78,11 +81,12 @@ class OppdragMapper { sats = utbetalingsperiode.sats fradragTillegg = OppdragSkjemaConstants.FRADRAG_TILLEGG typeSats = SatsTypeKode.fromKode(utbetalingsperiode.satsType.name).kode - brukKjoreplan = if (utbetalingsoppdrag.gOmregning) { - OppdragSkjemaConstants.BRUK_KJØREPLAN_G_OMBEREGNING - } else { - OppdragSkjemaConstants.BRUK_KJØREPLAN_DEFAULT - } + brukKjoreplan = + if (utbetalingsoppdrag.gOmregning) { + OppdragSkjemaConstants.BRUK_KJØREPLAN_G_OMBEREGNING + } else { + OppdragSkjemaConstants.BRUK_KJØREPLAN_DEFAULT + } saksbehId = utbetalingsoppdrag.saksbehandlerId utbetalesTilId = utbetalingsperiode.utbetalesTil henvisning = utbetalingsperiode.behandlingId.toString() diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt index 136f39be..9b432829 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt @@ -2,7 +2,7 @@ package no.nav.familie.oppdrag.iverksetting import jakarta.jms.TextMessage import no.nav.familie.kontrakter.felles.oppdrag.OppdragStatus -import no.nav.familie.oppdrag.config.ApplicationConfig.Companion.LOKALE_PROFILER +import no.nav.familie.oppdrag.config.ApplicationConfig.Companion.lokaleProfiler import no.nav.familie.oppdrag.domene.id import no.nav.familie.oppdrag.repository.OppdragLagerRepository import no.nav.familie.oppdrag.repository.oppdragStatus @@ -20,8 +20,7 @@ class OppdragMottaker( val oppdragLagerRepository: OppdragLagerRepository, val env: Environment, ) { - - internal var LOG = LoggerFactory.getLogger(OppdragMottaker::class.java) + internal var log = LoggerFactory.getLogger(OppdragMottaker::class.java) private val secureLogger = LoggerFactory.getLogger("secureLogger") @Transactional @@ -37,7 +36,7 @@ class OppdragMottaker( private fun behandleMelding(melding: TextMessage) { var svarFraOppdrag = melding.text as String - if (!env.activeProfiles.any { it in LOKALE_PROFILER }) { + if (!env.activeProfiles.any { it in lokaleProfiler }) { if (svarFraOppdrag.contains("ns2:oppdrag")) { svarFraOppdrag = svarFraOppdrag.replace("oppdrag xmlns", "ns2:oppdrag xmlns:ns2") } else if (svarFraOppdrag.contains("ns6:oppdrag")) { @@ -47,24 +46,27 @@ class OppdragMottaker( val kvittering = lesKvittering(svarFraOppdrag) val oppdragId = kvittering.id - LOG.info("Mottatt melding på kvitteringskø for fagsak $oppdragId: Status ${kvittering.status}, se securelogg for beskrivende melding") + log.info( + "Mottatt melding på kvitteringskø for fagsak $oppdragId: Status ${kvittering.status}, se securelogg for beskrivende melding", + ) secureLogger.info( "Mottatt melding på kvitteringskø for fagsak $oppdragId: Status ${kvittering.status}, " + "svar ${kvittering.mmel?.beskrMelding ?: "Beskrivende melding ikke satt fra OS"}", ) - LOG.debug("Henter oppdrag $oppdragId fra databasen") + log.debug("Henter oppdrag $oppdragId fra databasen") - val førsteOppdragUtenKvittering = oppdragLagerRepository.hentKvitteringsinformasjon(oppdragId) - .find { oppdrag -> oppdrag.status == OppdragStatus.LAGT_PÅ_KØ } + val førsteOppdragUtenKvittering = + oppdragLagerRepository.hentKvitteringsinformasjon(oppdragId) + .find { oppdrag -> oppdrag.status == OppdragStatus.LAGT_PÅ_KØ } if (førsteOppdragUtenKvittering == null) { - LOG.warn("Oppdraget tilknyttet mottatt kvittering har uventet status i databasen. Oppdraget er: $oppdragId") + log.warn("Oppdraget tilknyttet mottatt kvittering har uventet status i databasen. Oppdraget er: $oppdragId") return } val oppdatertkvitteringsmelding = kvittering.mmel ?: førsteOppdragUtenKvittering.kvitteringsmelding val status = hentStatus(kvittering) - LOG.debug("Lagrer oppdatert oppdrag $oppdragId i databasen med ny status $status") + log.debug("Lagrer oppdatert oppdrag $oppdragId i databasen med ny status $status") oppdragLagerRepository.oppdaterKvitteringsmelding( oppdragId = oppdragId, oppdragStatus = status, diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSenderMQ.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSenderMQ.kt index cb0fe8f2..d96fd2d4 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSenderMQ.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSenderMQ.kt @@ -16,7 +16,6 @@ class OppdragSenderMQ( @Value("\${oppdrag.mq.enabled}") val erEnabled: String, @Value("\${oppdrag.mq.mottak}") val kvitteringsKø: String, ) : OppdragSender { - override fun sendOppdrag(oppdrag: Oppdrag): String { if (!erEnabled.toBoolean()) { LOG.info("MQ-integrasjon mot oppdrag er skrudd av") diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSkjemaConstants.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSkjemaConstants.kt index 8fc2bd68..48f6489d 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSkjemaConstants.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragSkjemaConstants.kt @@ -9,7 +9,6 @@ import javax.xml.datatype.DatatypeFactory import javax.xml.datatype.XMLGregorianCalendar class OppdragSkjemaConstants { - companion object { val OPPDRAG_GJELDER_DATO_FOM: LocalDate = LocalDate.of(2000, 1, 1) const val KODE_AKSJON = "1" diff --git a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/JaxbKonsistensavstemming.kt b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/JaxbKonsistensavstemming.kt index ff481dc6..18d4efa4 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/JaxbKonsistensavstemming.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/JaxbKonsistensavstemming.kt @@ -6,13 +6,13 @@ import no.nav.virksomhet.tjenester.avstemming.v1.SendAsynkronKonsistensavstemmin import java.io.StringWriter object JaxbKonsistensavstemming { - val jaxbContext = JAXBContext.newInstance(SendAsynkronKonsistensavstemmingsdata::class.java) fun tilXml(konsistensavstemmingRequest: SendAsynkronKonsistensavstemmingsdata): String { - val marshaller = jaxbContext.createMarshaller().apply { - setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) - } + val marshaller = + jaxbContext.createMarshaller().apply { + setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true) + } val stringWriter = StringWriter() marshaller.marshal(konsistensavstemmingRequest, stringWriter) return stringWriter.toString() diff --git a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingConstants.kt b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingConstants.kt index 26db8fb9..b30dbb8d 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingConstants.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingConstants.kt @@ -1,7 +1,6 @@ package no.nav.familie.oppdrag.konsistensavstemming class KonsistensavstemmingConstants { - companion object { const val START = "START" const val AVSLUTT = "AVSL" diff --git a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapper.kt b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapper.kt index 90b37471..e220caaa 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapper.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapper.kt @@ -34,7 +34,6 @@ class KonsistensavstemmingMapper( private val sendAvsluttmelding: Boolean, transaksjonsId: UUID? = UUID.randomUUID(), ) { - private val tidspunktFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS") private val datoFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") val avstemmingId = AvstemmingMapper.encodeUUIDBase64(transaksjonsId ?: UUID.randomUUID()) @@ -45,11 +44,12 @@ class KonsistensavstemmingMapper( fun lagAvstemmingsmeldinger(): List = when { sendStartmelding && sendAvsluttmelding -> ( - listOf(lagStartmelding()) + lagDatameldinger() + listOf( - lagTotaldata(), - lagSluttmelding(), - ) - ) + listOf(lagStartmelding()) + lagDatameldinger() + + listOf( + lagTotaldata(), + lagSluttmelding(), + ) + ) sendStartmelding -> (listOf(lagStartmelding()) + lagDatameldinger()) sendAvsluttmelding -> (lagDatameldinger() + listOf(lagTotaldata(), lagSluttmelding())) else -> lagDatameldinger() @@ -111,10 +111,11 @@ class KonsistensavstemmingMapper( refDelytelseId = utbetalingsoppdrag.saksnummer + it } klassifikasjonKode = utbetalingsperiode.klassifisering - vedtakPeriode = Periode().apply { - fom = utbetalingsperiode.vedtakdatoFom.format(datoFormatter) - tom = utbetalingsperiode.vedtakdatoTom.format(datoFormatter) - } + vedtakPeriode = + Periode().apply { + fom = utbetalingsperiode.vedtakdatoFom.format(datoFormatter) + tom = utbetalingsperiode.vedtakdatoTom.format(datoFormatter) + } sats = utbetalingsperiode.sats satstypeKode = SatsTypeKode.fromKode(utbetalingsperiode.satsType.name).kode brukKjoreplan = OppdragSkjemaConstants.BRUK_KJØREPLAN_DEFAULT @@ -166,11 +167,12 @@ class KonsistensavstemmingMapper( private fun lagTotaldata(): Konsistensavstemmingsdata { val konsistensavstemmingsdata = lagAksjonsmelding(KonsistensavstemmingConstants.DATA) konsistensavstemmingsdata.apply { - totaldata = Totaldata().apply { - totalAntall = antallOppdrag.toBigInteger() + aggregertAntallOppdrag.toBigInteger() - totalBelop = BigDecimal.valueOf(totalBeløp) + BigDecimal.valueOf(aggregertTotalBeløp) - fortegn = getFortegn(totalBeløp + aggregertTotalBeløp) - } + totaldata = + Totaldata().apply { + totalAntall = antallOppdrag.toBigInteger() + aggregertAntallOppdrag.toBigInteger() + totalBelop = BigDecimal.valueOf(totalBeløp) + BigDecimal.valueOf(aggregertTotalBeløp) + fortegn = getFortegn(totalBeløp + aggregertTotalBeløp) + } } return konsistensavstemmingsdata } @@ -203,7 +205,6 @@ class KonsistensavstemmingMapper( } companion object { - val LOG: Logger = LoggerFactory.getLogger(KonsistensavstemmingMapper::class.java) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepository.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepository.kt index b2b7a575..52d1cbc7 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepository.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepository.kt @@ -1,10 +1,11 @@ package no.nav.familie.oppdrag.repository interface InsertUpdateRepository { - fun insert(t: T): T + fun insertAll(list: List): List fun update(t: T): T + fun updateAll(list: List): List } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepositoryImpl.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepositoryImpl.kt index 2e9a2d94..6a526c7e 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepositoryImpl.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/InsertUpdateRepositoryImpl.kt @@ -6,7 +6,6 @@ import org.springframework.transaction.annotation.Transactional @Component class InsertUpdateRepositoryImpl(val entityOperations: JdbcAggregateOperations) : InsertUpdateRepository { - override fun insert(t: T): T { return entityOperations.insert(t) } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/Kvitteringsinformasjon.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/Kvitteringsinformasjon.kt index 534aecc6..193348d2 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/Kvitteringsinformasjon.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/Kvitteringsinformasjon.kt @@ -27,8 +27,10 @@ val Kvitteringsinformasjon.id: OppdragId } object KvitteringsinformasjonRowMapper : RowMapper { - - override fun mapRow(resultSet: ResultSet, rowNumbers: Int): Kvitteringsinformasjon { + override fun mapRow( + resultSet: ResultSet, + rowNumbers: Int, + ): Kvitteringsinformasjon { return Kvitteringsinformasjon( fagsystem = resultSet.getString("fagsystem"), personIdent = resultSet.getString("person_ident"), diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepository.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepository.kt index 5a95ea01..551d659a 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepository.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepository.kt @@ -8,10 +8,7 @@ import java.util.UUID interface MellomlagringKonsistensavstemmingRepository : RepositoryInterface, InsertUpdateRepository { - - fun findAllByTransaksjonsId( - transaksjonsId: UUID, - ): List + fun findAllByTransaksjonsId(transaksjonsId: UUID): List @Query( "SELECT COALESCE(sum(antall_oppdrag),0) from mellomlagring_konsistensavstemming WHERE transaksjons_id = :transaksjonsId", diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLager.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLager.kt index 8ee2cbf1..6282d5e8 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLager.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLager.kt @@ -28,10 +28,12 @@ data class OppdragLager( val kvitteringsmelding: Mmel?, val versjon: Int = 0, ) { - companion object { - - fun lagFraOppdrag(utbetalingsoppdrag: Utbetalingsoppdrag, oppdrag: Oppdrag, versjon: Int = 0): OppdragLager { + fun lagFraOppdrag( + utbetalingsoppdrag: Utbetalingsoppdrag, + oppdrag: Oppdrag, + versjon: Int = 0, + ): OppdragLager { return OppdragLager( personIdent = utbetalingsoppdrag.aktoer, fagsystem = utbetalingsoppdrag.fagSystem, diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepository.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepository.kt index 05b0e33f..caa465bb 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepository.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepository.kt @@ -7,13 +7,36 @@ import no.trygdeetaten.skjema.oppdrag.Mmel import java.time.LocalDateTime interface OppdragLagerRepository { + fun hentOppdrag( + oppdragId: OppdragId, + versjon: Int = 0, + ): OppdragLager + + fun hentUtbetalingsoppdrag( + oppdragId: OppdragId, + versjon: Int = 0, + ): Utbetalingsoppdrag + + fun opprettOppdrag( + oppdragLager: OppdragLager, + versjon: Int = 0, + ) + + fun oppdaterStatus( + oppdragId: OppdragId, + oppdragStatus: OppdragStatus, + versjon: Int = 0, + ) - fun hentOppdrag(oppdragId: OppdragId, versjon: Int = 0): OppdragLager - fun hentUtbetalingsoppdrag(oppdragId: OppdragId, versjon: Int = 0): Utbetalingsoppdrag - fun opprettOppdrag(oppdragLager: OppdragLager, versjon: Int = 0) - fun oppdaterStatus(oppdragId: OppdragId, oppdragStatus: OppdragStatus, versjon: Int = 0) fun hentKvitteringsinformasjon(oppdragId: OppdragId): List - fun oppdaterKvitteringsmelding(oppdragId: OppdragId, oppdragStatus: OppdragStatus, kvittering: Mmel?, versjon: Int = 0) + + fun oppdaterKvitteringsmelding( + oppdragId: OppdragId, + oppdragStatus: OppdragStatus, + kvittering: Mmel?, + versjon: Int = 0, + ) + fun hentIverksettingerForGrensesnittavstemming( fomTidspunkt: LocalDateTime, tomTidspunkt: LocalDateTime, diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbc.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbc.kt index 022bc1a0..70cdf3f4 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbc.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbc.kt @@ -17,86 +17,109 @@ import java.util.UUID @Repository class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : OppdragLagerRepository { + internal val log = LoggerFactory.getLogger(OppdragLagerRepositoryJdbc::class.java) - internal var LOG = LoggerFactory.getLogger(OppdragLagerRepositoryJdbc::class.java) - - override fun hentOppdrag(oppdragId: OppdragId, versjon: Int): OppdragLager { - val hentStatement = "SELECT * FROM oppdrag_lager " + - "WHERE behandling_id = :behandlingId AND person_ident = :personIdent AND fagsystem = :fagsystem " + - "AND versjon = :versjon" + override fun hentOppdrag( + oppdragId: OppdragId, + versjon: Int, + ): OppdragLager { + val hentStatement = + "SELECT * FROM oppdrag_lager " + + "WHERE behandling_id = :behandlingId AND person_ident = :personIdent AND fagsystem = :fagsystem " + + "AND versjon = :versjon" - val values = MapSqlParameterSource() - .addValue("behandlingId", oppdragId.behandlingsId) - .addValue("personIdent", oppdragId.personIdent) - .addValue("fagsystem", oppdragId.fagsystem) - .addValue("versjon", versjon) + val values = + MapSqlParameterSource() + .addValue("behandlingId", oppdragId.behandlingsId) + .addValue("personIdent", oppdragId.personIdent) + .addValue("fagsystem", oppdragId.fagsystem) + .addValue("versjon", versjon) val listeAvOppdrag = jdbcTemplate.query(hentStatement, values, OppdragLagerRowMapper()) return when (listeAvOppdrag.size) { 0 -> { - LOG.error("Feil ved henting av oppdrag. Fant ingen oppdrag med id $oppdragId") + log.error("Feil ved henting av oppdrag. Fant ingen oppdrag med id $oppdragId") throw NoSuchElementException("Feil ved henting av oppdrag. Fant ingen oppdrag med id $oppdragId") } 1 -> listeAvOppdrag[0] else -> { - LOG.error("Feil ved henting av oppdrag. Fant fler oppdrag med id $oppdragId") + log.error("Feil ved henting av oppdrag. Fant fler oppdrag med id $oppdragId") throw Exception("Feil ved henting av oppdrag. Fant fler oppdrag med id $oppdragId") } } } - override fun opprettOppdrag(oppdragLager: OppdragLager, versjon: Int) { - val insertStatement = "INSERT INTO oppdrag_lager " + - "(id, utgaaende_oppdrag, status, opprettet_tidspunkt, person_ident, fagsak_id, behandling_id, fagsystem, avstemming_tidspunkt, utbetalingsoppdrag, versjon)" + - " VALUES (:id,:utgåendeOppdrag,:status,:opprettetTid,:personIdent,:fagsakId,:behandlingId,:fagsystem,:avstemmingTid,:utbetalingsoppdrag,:versjon)" - - val values = MapSqlParameterSource() - .addValue("id", UUID.randomUUID()) - .addValue("utgåendeOppdrag", oppdragLager.utgåendeOppdrag) - .addValue("status", oppdragLager.status.name) - .addValue("opprettetTid", oppdragLager.opprettetTidspunkt) - .addValue("personIdent", oppdragLager.personIdent) - .addValue("fagsakId", oppdragLager.fagsakId) - .addValue("behandlingId", oppdragLager.behandlingId) - .addValue("fagsystem", oppdragLager.fagsystem) - .addValue("avstemmingTid", oppdragLager.avstemmingTidspunkt) - .addValue("utbetalingsoppdrag", objectMapper.writeValueAsString(oppdragLager.utbetalingsoppdrag)) - .addValue("versjon", versjon) + override fun opprettOppdrag( + oppdragLager: OppdragLager, + versjon: Int, + ) { + val insertStatement = + "INSERT INTO oppdrag_lager " + + "(id, utgaaende_oppdrag, status, opprettet_tidspunkt, person_ident, fagsak_id, " + + "behandling_id, fagsystem, avstemming_tidspunkt, utbetalingsoppdrag, versjon)" + + " VALUES (:id,:utgåendeOppdrag,:status,:opprettetTid,:personIdent,:fagsakId," + + ":behandlingId,:fagsystem,:avstemmingTid,:utbetalingsoppdrag,:versjon)" + + val values = + MapSqlParameterSource() + .addValue("id", UUID.randomUUID()) + .addValue("utgåendeOppdrag", oppdragLager.utgåendeOppdrag) + .addValue("status", oppdragLager.status.name) + .addValue("opprettetTid", oppdragLager.opprettetTidspunkt) + .addValue("personIdent", oppdragLager.personIdent) + .addValue("fagsakId", oppdragLager.fagsakId) + .addValue("behandlingId", oppdragLager.behandlingId) + .addValue("fagsystem", oppdragLager.fagsystem) + .addValue("avstemmingTid", oppdragLager.avstemmingTidspunkt) + .addValue("utbetalingsoppdrag", objectMapper.writeValueAsString(oppdragLager.utbetalingsoppdrag)) + .addValue("versjon", versjon) jdbcTemplate.update(insertStatement, values) } - override fun oppdaterStatus(oppdragId: OppdragId, oppdragStatus: OppdragStatus, versjon: Int) { - val update = "UPDATE oppdrag_lager SET status = :status " + - "WHERE person_ident = :personIdent " + - "AND fagsystem = :fagsystem " + - "AND behandling_id = :behandlingId " + - "AND versjon = :versjon" - - val values = MapSqlParameterSource() - .addValue("status", oppdragStatus.name) - .addValue("personIdent", oppdragId.personIdent) - .addValue("fagsystem", oppdragId.fagsystem) - .addValue("behandlingId", oppdragId.behandlingsId) - .addValue("versjon", versjon) + override fun oppdaterStatus( + oppdragId: OppdragId, + oppdragStatus: OppdragStatus, + versjon: Int, + ) { + val update = + "UPDATE oppdrag_lager SET status = :status " + + "WHERE person_ident = :personIdent " + + "AND fagsystem = :fagsystem " + + "AND behandling_id = :behandlingId " + + "AND versjon = :versjon" + + val values = + MapSqlParameterSource() + .addValue("status", oppdragStatus.name) + .addValue("personIdent", oppdragId.personIdent) + .addValue("fagsystem", oppdragId.fagsystem) + .addValue("behandlingId", oppdragId.behandlingsId) + .addValue("versjon", versjon) jdbcTemplate.update(update, values) } - override fun oppdaterKvitteringsmelding(oppdragId: OppdragId, oppdragStatus: OppdragStatus, kvittering: Mmel?, versjon: Int) { + override fun oppdaterKvitteringsmelding( + oppdragId: OppdragId, + oppdragStatus: OppdragStatus, + kvittering: Mmel?, + versjon: Int, + ) { val updateStatement = "UPDATE oppdrag_lager SET status = :status, kvitteringsmelding = :kvitteringsmelding" + " WHERE person_ident = :personIdent AND fagsystem = :fagsystem AND behandling_id = :behandlingId AND versjon = :versjon" - val values = MapSqlParameterSource() - .addValue("status", oppdragStatus.name) - .addValue("kvitteringsmelding", objectMapper.writeValueAsString(kvittering)) - .addValue("personIdent", oppdragId.personIdent) - .addValue("fagsystem", oppdragId.fagsystem) - .addValue("behandlingId", oppdragId.behandlingsId) - .addValue("versjon", versjon) + val values = + MapSqlParameterSource() + .addValue("status", oppdragStatus.name) + .addValue("kvitteringsmelding", objectMapper.writeValueAsString(kvittering)) + .addValue("personIdent", oppdragId.personIdent) + .addValue("fagsystem", oppdragId.fagsystem) + .addValue("behandlingId", oppdragId.behandlingsId) + .addValue("versjon", versjon) jdbcTemplate.update(updateStatement, values) } @@ -115,28 +138,38 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : WHERE avstemming_tidspunkt >= :fomTidspunkt AND avstemming_tidspunkt < :tomTidspunkt AND fagsystem = :fagsystem ORDER BY behandling_id ASC OFFSET :offset LIMIT :limit """ - val values = MapSqlParameterSource() - .addValue("fomTidspunkt", fomTidspunkt) - .addValue("tomTidspunkt", tomTidspunkt) - .addValue("fagsystem", fagOmråde) - .addValue("offset", page * antall) - .addValue("limit", antall) + val values = + MapSqlParameterSource() + .addValue("fomTidspunkt", fomTidspunkt) + .addValue("tomTidspunkt", tomTidspunkt) + .addValue("fagsystem", fagOmråde) + .addValue("offset", page * antall) + .addValue("limit", antall) return jdbcTemplate.query(hentStatement, values, OppdragTilAvstemmingRowMapper) } - override fun hentUtbetalingsoppdrag(oppdragId: OppdragId, versjon: Int): Utbetalingsoppdrag { + override fun hentUtbetalingsoppdrag( + oppdragId: OppdragId, + versjon: Int, + ): Utbetalingsoppdrag { val hentStatement = - "SELECT utbetalingsoppdrag FROM oppdrag_lager WHERE behandling_id = :behandlingId AND person_ident = :personIdent AND fagsystem = :fagsystem AND versjon = :versjon" - - val values = MapSqlParameterSource() - .addValue("behandlingId", oppdragId.behandlingsId) - .addValue("personIdent", oppdragId.personIdent) - .addValue("fagsystem", oppdragId.fagsystem) - .addValue("versjon", versjon) - - val jsonUtbetalingsoppdrag = jdbcTemplate.queryForObject(hentStatement, values, String::class.java) - ?: error("Fant ikke utbetalingsoppdrag for $oppdragId versjon=$versjon") + "SELECT utbetalingsoppdrag FROM oppdrag_lager " + + "WHERE behandling_id = :behandlingId " + + "AND person_ident = :personIdent " + + "AND fagsystem = :fagsystem " + + "AND versjon = :versjon" + + val values = + MapSqlParameterSource() + .addValue("behandlingId", oppdragId.behandlingsId) + .addValue("personIdent", oppdragId.personIdent) + .addValue("fagsystem", oppdragId.fagsystem) + .addValue("versjon", versjon) + + val jsonUtbetalingsoppdrag = + jdbcTemplate.queryForObject(hentStatement, values, String::class.java) + ?: error("Fant ikke utbetalingsoppdrag for $oppdragId versjon=$versjon") return objectMapper.readValue(jsonUtbetalingsoppdrag) } @@ -147,10 +180,11 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : fagsystem, person_ident, fagsak_id, behandling_id, status, avstemming_tidspunkt, opprettet_tidspunkt, kvitteringsmelding, versjon FROM oppdrag_lager WHERE behandling_id = :behandlingId AND person_ident = :personIdent AND fagsystem = :fagsystem""" - val values = MapSqlParameterSource() - .addValue("behandlingId", oppdragId.behandlingsId) - .addValue("personIdent", oppdragId.personIdent) - .addValue("fagsystem", oppdragId.fagsystem) + val values = + MapSqlParameterSource() + .addValue("behandlingId", oppdragId.behandlingsId) + .addValue("personIdent", oppdragId.personIdent) + .addValue("fagsystem", oppdragId.fagsystem) return jdbcTemplate.query(hentStatement, values, KvitteringsinformasjonRowMapper) } @@ -169,10 +203,11 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : val status = setOf(OppdragStatus.KVITTERT_OK, OppdragStatus.KVITTERT_MED_MANGLER).map { it.name } return behandlingIder.chunked(3000).map { behandlingIderChunked -> - val values = MapSqlParameterSource() - .addValue("fagsystem", fagsystem) - .addValue("behandlingIder", behandlingIderChunked) - .addValue("status", status) + val values = + MapSqlParameterSource() + .addValue("fagsystem", fagsystem) + .addValue("behandlingIder", behandlingIderChunked) + .addValue("status", status) jdbcTemplate.query(query, values) { resultSet, _ -> UtbetalingsoppdragForKonsistensavstemming( @@ -188,7 +223,8 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : fagsystem: String, fagsakIder: Set, ): List { - val sqlSpørring = """ + val sqlSpørring = + """ SELECT fagsak_id, behandling_id, utbetalingsoppdrag FROM oppdrag_lager WHERE (fagsak_id, opprettet_tidspunkt) IN ( @@ -197,7 +233,7 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : WHERE fagsystem=:fagsystem and fagsak_id IN (:fagsakIder) GROUP BY fagsak_id ) - """.trimIndent() + """.trimIndent() return fagsakIder .chunked(3000) @@ -217,8 +253,10 @@ class OppdragLagerRepositoryJdbc(val jdbcTemplate: NamedParameterJdbcTemplate) : } class OppdragLagerRowMapper : RowMapper { - - override fun mapRow(resultSet: ResultSet, rowNumbers: Int): OppdragLager { + override fun mapRow( + resultSet: ResultSet, + rowNumbers: Int, + ): OppdragLager { return OppdragLager( uuid = UUID.fromString(resultSet.getString("id") ?: UUID.randomUUID().toString()), fagsystem = resultSet.getString("fagsystem"), diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragTilAvstemming.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragTilAvstemming.kt index 1e89eb16..5098b924 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragTilAvstemming.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/OppdragTilAvstemming.kt @@ -22,8 +22,10 @@ data class OppdragTilAvstemming( ) object OppdragTilAvstemmingRowMapper : RowMapper { - - override fun mapRow(resultSet: ResultSet, rowNumbers: Int): OppdragTilAvstemming { + override fun mapRow( + resultSet: ResultSet, + rowNumbers: Int, + ): OppdragTilAvstemming { return OppdragTilAvstemming( fagsystem = resultSet.getString("fagsystem"), personIdent = resultSet.getString("person_ident"), diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/RepositoryInterface.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/RepositoryInterface.kt index c335eecb..393ffeba 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/RepositoryInterface.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/RepositoryInterface.kt @@ -8,7 +8,6 @@ import org.springframework.data.repository.NoRepositoryBean */ @NoRepositoryBean interface RepositoryInterface : CrudRepository { - @Deprecated("Støttes ikke, bruk insert/update") override fun save(entity: S): S { error("Not implemented - Use InsertUpdateRepository - insert/update") diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLager.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLager.kt index 25643d57..16ce86e4 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLager.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLager.kt @@ -22,7 +22,6 @@ data class SimuleringLager( @Column("response_xml") var responseXml: String? = null, @Column("opprettet_tidspunkt") val opprettetTidspunkt: LocalDateTime = LocalDateTime.now(), ) { - companion object { fun lagFraOppdrag( utbetalingsoppdrag: Utbetalingsoppdrag, diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerRepository.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerRepository.kt index 796c6620..c991026e 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerRepository.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerRepository.kt @@ -6,7 +6,6 @@ import java.util.UUID @Repository interface SimuleringLagerRepository : RepositoryInterface, InsertUpdateRepository { - // language=PostgreSQL @Query( """ @@ -16,5 +15,9 @@ interface SimuleringLagerRepository : RepositoryInterface ORDER BY sim.opprettet_tidspunkt DESC LIMIT 1 """, ) - fun finnSisteSimuleringsresultat(fagsystem: String, fagsakId: String, behandlingId: String): SimuleringLager + fun finnSisteSimuleringsresultat( + fagsystem: String, + fagsakId: String, + behandlingId: String, + ): SimuleringLager } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjeneste.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjeneste.kt index f34f893a..66db9e4a 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjeneste.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjeneste.kt @@ -1,9 +1,15 @@ package no.nav.familie.oppdrag.repository interface SimuleringLagerTjeneste { - fun lagreINyTransaksjon(simuleringLager: SimuleringLager) + fun oppdater(simuleringLager: SimuleringLager) + fun finnAlleSimuleringsLager(): List - fun hentSisteSimuleringsresultat(fagsystem: String, fagsakId: String, behandlingId: String): SimuleringLager + + fun hentSisteSimuleringsresultat( + fagsystem: String, + fagsakId: String, + behandlingId: String, + ): SimuleringLager } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteE2E.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteE2E.kt index 97036061..d31b81f4 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteE2E.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteE2E.kt @@ -1,7 +1,6 @@ package no.nav.familie.oppdrag.repository class SimuleringLagerTjenesteE2E : SimuleringLagerTjeneste { - override fun lagreINyTransaksjon(simuleringsLager: SimuleringLager) { TODO("") } @@ -14,7 +13,11 @@ class SimuleringLagerTjenesteE2E : SimuleringLagerTjeneste { TODO("") } - override fun hentSisteSimuleringsresultat(fagsystem: String, fagsakId: String, behandlingId: String): SimuleringLager { + override fun hentSisteSimuleringsresultat( + fagsystem: String, + fagsakId: String, + behandlingId: String, + ): SimuleringLager { TODO("") } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteImpl.kt b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteImpl.kt index 5a1d5267..bf1cc918 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteImpl.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/repository/SimuleringLagerTjenesteImpl.kt @@ -7,7 +7,6 @@ import org.springframework.transaction.annotation.Transactional @Service class SimuleringLagerTjenesteImpl : SimuleringLagerTjeneste { - @Autowired lateinit var simuleringLagerRepository: SimuleringLagerRepository @Transactional(propagation = Propagation.REQUIRES_NEW) @@ -23,7 +22,11 @@ class SimuleringLagerTjenesteImpl : SimuleringLagerTjeneste { return simuleringLagerRepository.findAll().toList() } - override fun hentSisteSimuleringsresultat(fagsystem: String, fagsakId: String, behandlingId: String): SimuleringLager { + override fun hentSisteSimuleringsresultat( + fagsystem: String, + fagsakId: String, + behandlingId: String, + ): SimuleringLager { return simuleringLagerRepository.finnSisteSimuleringsresultat(fagsystem, fagsakId, behandlingId) } } diff --git "a/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rtGrensesnittavstemming.kt" "b/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rtGrensesnittavstemming.kt" index 4d01c242..54569220 100644 --- "a/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rtGrensesnittavstemming.kt" +++ "b/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rtGrensesnittavstemming.kt" @@ -1,10 +1,10 @@ package no.nav.familie.oppdrag.repository -import java.util.UUID import org.springframework.data.annotation.Id import org.springframework.data.relational.core.mapping.Table +import java.util.UUID @Table("tidligere_kjoerte_grensesnittavstemminger") class TidligereKjørtGrensesnittavstemming( - @Id val id: UUID -) \ No newline at end of file + @Id val id: UUID, +) diff --git "a/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemmingerRepository.kt" "b/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemmingerRepository.kt" index d48da993..c67a75f2 100644 --- "a/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemmingerRepository.kt" +++ "b/src/main/kotlin/no/nav/familie/oppdrag/repository/TidligereKj\303\270rteGrensesnittavstemmingerRepository.kt" @@ -1,10 +1,10 @@ package no.nav.familie.oppdrag.repository -import java.util.Optional -import java.util.UUID import org.springframework.data.repository.CrudRepository import org.springframework.stereotype.Repository +import java.util.UUID @Repository -interface TidligereKjørteGrensesnittavstemmingerRepository : InsertUpdateRepository, +interface TidligereKjørteGrensesnittavstemmingerRepository : + InsertUpdateRepository, CrudRepository diff --git a/src/main/kotlin/no/nav/familie/oppdrag/rest/AvstemmingController.kt b/src/main/kotlin/no/nav/familie/oppdrag/rest/AvstemmingController.kt index aafcede9..57babc98 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/rest/AvstemmingController.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/rest/AvstemmingController.kt @@ -33,9 +33,10 @@ class AvstemmingController( @Autowired val grensesnittavstemmingService: GrensesnittavstemmingService, @Autowired val konsistensavstemmingService: KonsistensavstemmingService, ) { - @PostMapping(path = ["/grensesnittavstemming"]) - fun grensesnittavstemming(@RequestBody request: GrensesnittavstemmingRequest): ResponseEntity> { + fun grensesnittavstemming( + @RequestBody request: GrensesnittavstemmingRequest, + ): ResponseEntity> { LOG.info("Grensesnittavstemming: Kjører for ${request.fagsystem}-oppdrag fra ${request.fra} til ${request.til}") return Result.runCatching { grensesnittavstemmingService.utførGrensesnittavstemming(request) } @@ -108,7 +109,6 @@ class AvstemmingController( ok(konsistensavstemmingService.hentSisteUtbetalingsoppdragForFagsaker(fagsystem.name, fagsakIder)) companion object { - val LOG: Logger = LoggerFactory.getLogger(AvstemmingController::class.java) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/rest/OppdragController.kt b/src/main/kotlin/no/nav/familie/oppdrag/rest/OppdragController.kt index a0dc7482..73081ebe 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/rest/OppdragController.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/rest/OppdragController.kt @@ -30,7 +30,6 @@ class OppdragController( @Autowired val oppdragService: OppdragService, @Autowired val oppdragMapper: OppdragMapper, ) { - @PostMapping(consumes = [MediaType.APPLICATION_JSON_VALUE], path = ["/oppdrag"]) fun sendOppdrag( @Valid @RequestBody diff --git a/src/main/kotlin/no/nav/familie/oppdrag/rest/SimuleringController.kt b/src/main/kotlin/no/nav/familie/oppdrag/rest/SimuleringController.kt index 52bf76d1..89f185a2 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/rest/SimuleringController.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/rest/SimuleringController.kt @@ -26,8 +26,9 @@ import org.springframework.web.bind.annotation.RestController produces = [MediaType.APPLICATION_JSON_VALUE], ) @ProtectedWithClaims(issuer = "azuread") -class SimuleringController(@Autowired val simuleringTjeneste: SimuleringTjeneste) { - +class SimuleringController( + @Autowired val simuleringTjeneste: SimuleringTjeneste, +) { val logger: Logger = LoggerFactory.getLogger(SimuleringController::class.java) @PostMapping(path = ["/v1"]) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/rest/TilbakekrevingController.kt b/src/main/kotlin/no/nav/familie/oppdrag/rest/TilbakekrevingController.kt index 1060dbfe..fb38a770 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/rest/TilbakekrevingController.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/rest/TilbakekrevingController.kt @@ -23,7 +23,6 @@ import java.util.UUID @RequestMapping("/api/tilbakekreving") @ProtectedWithClaims(issuer = "azuread") class TilbakekrevingController(private val økonomiClient: ØkonomiClient) { - @PostMapping(consumes = [MediaType.APPLICATION_JSON_VALUE], path = ["/iverksett/{behandlingId}"]) fun iverksettVedtak( @PathVariable("behandlingId") behandlingId: UUID, diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingService.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingService.kt index 18c6e81c..80462202 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingService.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingService.kt @@ -7,14 +7,14 @@ import no.nav.familie.kontrakter.felles.oppdrag.GrensesnittavstemmingRequest import no.nav.familie.oppdrag.avstemming.AvstemmingSender import no.nav.familie.oppdrag.grensesnittavstemming.GrensesnittavstemmingMapper import no.nav.familie.oppdrag.repository.OppdragLagerRepository +import no.nav.familie.oppdrag.repository.TidligereKjørtGrensesnittavstemming +import no.nav.familie.oppdrag.repository.TidligereKjørteGrensesnittavstemmingerRepository import no.nav.virksomhet.tjenester.avstemming.meldinger.v1.Grunnlagsdata import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Service import java.time.LocalDateTime -import no.nav.familie.oppdrag.repository.TidligereKjørtGrensesnittavstemming -import no.nav.familie.oppdrag.repository.TidligereKjørteGrensesnittavstemmingerRepository import kotlin.jvm.optionals.getOrNull @Service @@ -24,7 +24,6 @@ class GrensesnittavstemmingService( private val tidligereKjørteGrensesnittavstemmingerRepository: TidligereKjørteGrensesnittavstemmingerRepository, @Value("\${grensesnitt.antall:7000}") private val antall: Int, ) { - private val secureLogger = LoggerFactory.getLogger("secureLogger") private var countere: MutableMap> = HashMap() @@ -40,7 +39,7 @@ class GrensesnittavstemmingService( val erGrensesnittavstemmingKjørtPåSammeAvstemmingId = avstemmingId?.let { tidligereKjørteGrensesnittavstemmingerRepository.findById(it).getOrNull() } != null if (erGrensesnittavstemmingKjørtPåSammeAvstemmingId) { - LOG.info("Grensesnittavstemming er allerede fullført for $avstemmingId og vil ikke bli kjørt på nytt") + log.info("Grensesnittavstemming er allerede fullført for $avstemmingId og vil ikke bli kjørt på nytt") return } @@ -49,11 +48,11 @@ class GrensesnittavstemmingService( var oppdragSomSkalAvstemmes = oppdragLagerRepository.hentIverksettingerForGrensesnittavstemming(fra, til, fagsystem, antall, page++) if (oppdragSomSkalAvstemmes.isEmpty()) { - LOG.info("Ingen oppdrag å gjennomføre grensesnittavstemming for.") + log.info("Ingen oppdrag å gjennomføre grensesnittavstemming for.") return } val avstemmingMapper = GrensesnittavstemmingMapper(fagsystem, fra, til) - LOG.info("Utfører grensesnittavstemming for id: ${avstemmingMapper.avstemmingId}") + log.info("Utfører grensesnittavstemming for id: ${avstemmingMapper.avstemmingId}") avstemmingSender.sendGrensesnittAvstemming(avstemmingMapper.lagStartmelding()) while (oppdragSomSkalAvstemmes.isNotEmpty()) { val meldinger = avstemmingMapper.lagAvstemmingsmeldinger(oppdragSomSkalAvstemmes) @@ -71,7 +70,7 @@ class GrensesnittavstemmingService( tidligereKjørteGrensesnittavstemmingerRepository.insert(TidligereKjørtGrensesnittavstemming(avstemmingId)) } - LOG.info( + log.info( "Fullført grensesnittavstemming for id: ${avstemmingMapper.avstemmingId}" + " antallOppdragSomSkalAvstemmes=$antallOppdragSomSkalAvstemmes", ) @@ -83,7 +82,10 @@ class GrensesnittavstemmingService( oppdaterMetrikker(fagsystem, totalmelding.grunnlag) } - private fun oppdaterMetrikker(fagsystem: String, grunnlag: Grunnlagsdata) { + private fun oppdaterMetrikker( + fagsystem: String, + grunnlag: Grunnlagsdata, + ) { val metrikkerForFagsystem = countere.getValue(fagsystem) metrikkerForFagsystem.getValue(Status.GODKJENT.status).increment(grunnlag.godkjentAntall.toDouble()) @@ -93,43 +95,47 @@ class GrensesnittavstemmingService( } private fun opprettMetrikkerForFagsystem(fagsystem: Fagsystem): Map { - val PACKAGE_NAME = "familie.oppdrag.grensesnittavstemming" - val godkjentCounter = Metrics.counter( - PACKAGE_NAME, - "fagsystem", - fagsystem.name, - "status", - Status.GODKJENT.status, - "beskrivelse", - Status.GODKJENT.beskrivelse, - ) - val avvistCounter = Metrics.counter( - PACKAGE_NAME, - "fagsystem", - fagsystem.name, - "status", - Status.AVVIST.status, - "beskrivelse", - Status.AVVIST.beskrivelse, - ) - val manglerCounter = Metrics.counter( - PACKAGE_NAME, - "fagsystem", - fagsystem.name, - "status", - Status.MANGLER.status, - "beskrivelse", - Status.MANGLER.beskrivelse, - ) - val varselCounter = Metrics.counter( - PACKAGE_NAME, - "fagsystem", - fagsystem.name, - "status", - Status.VARSEL.status, - "beskrivelse", - Status.VARSEL.beskrivelse, - ) + val packageName = "familie.oppdrag.grensesnittavstemming" + val godkjentCounter = + Metrics.counter( + packageName, + "fagsystem", + fagsystem.name, + "status", + Status.GODKJENT.status, + "beskrivelse", + Status.GODKJENT.beskrivelse, + ) + val avvistCounter = + Metrics.counter( + packageName, + "fagsystem", + fagsystem.name, + "status", + Status.AVVIST.status, + "beskrivelse", + Status.AVVIST.beskrivelse, + ) + val manglerCounter = + Metrics.counter( + packageName, + "fagsystem", + fagsystem.name, + "status", + Status.MANGLER.status, + "beskrivelse", + Status.MANGLER.beskrivelse, + ) + val varselCounter = + Metrics.counter( + packageName, + "fagsystem", + fagsystem.name, + "status", + Status.VARSEL.status, + "beskrivelse", + Status.VARSEL.beskrivelse, + ) return hashMapOf( Status.GODKJENT.status to godkjentCounter, @@ -140,8 +146,7 @@ class GrensesnittavstemmingService( } companion object { - - val LOG: Logger = LoggerFactory.getLogger(GrensesnittavstemmingService::class.java) + val log: Logger = LoggerFactory.getLogger(GrensesnittavstemmingService::class.java) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/KonsistensavstemmingService.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/KonsistensavstemmingService.kt index 70181f40..13f75d77 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/KonsistensavstemmingService.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/KonsistensavstemmingService.kt @@ -20,7 +20,6 @@ class KonsistensavstemmingService( private val oppdragLagerRepository: OppdragLagerRepository, private val mellomlagringKonsistensavstemmingService: MellomlagringKonsistensavstemmingService, ) { - @Transactional fun utførKonsistensavstemming( request: KonsistensavstemmingUtbetalingsoppdrag, @@ -40,9 +39,7 @@ class KonsistensavstemmingService( ) } - private fun utførKonsistensavstemming( - metaInfo: KonsistensavstemmingMetaInfo, - ) { + private fun utførKonsistensavstemming(metaInfo: KonsistensavstemmingMetaInfo) { if (metaInfo.erFørsteBatchIEnSplittetBatch()) { mellomlagringKonsistensavstemmingService.sjekkAtDetteErFørsteMelding(metaInfo.transaksjonsId!!) } @@ -74,7 +71,10 @@ class KonsistensavstemmingService( LOG.info("Fullført konsistensavstemming for id ${konsistensavstemmingMapper.avstemmingId}") } - fun hentSisteUtbetalingsoppdragForFagsaker(fagsystem: String, fagsakIder: Set): List { + fun hentSisteUtbetalingsoppdragForFagsaker( + fagsystem: String, + fagsakIder: Set, + ): List { return oppdragLagerRepository.hentSisteUtbetalingsoppdragForFagsaker(fagsystem, fagsakIder) } @@ -99,12 +99,13 @@ class KonsistensavstemmingService( val utbetalingsoppdragForKonsistensavstemming = oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(fagsystem, perioderPåBehandling.keys) - val utbetalingsoppdrag = leggAktuellePerioderISisteUtbetalingsoppdraget( - utbetalingsoppdragForKonsistensavstemming, - perioderPåBehandling, - fødselsnummerPåBehandling, - utbetalesTilPåBehandling, - ) + val utbetalingsoppdrag = + leggAktuellePerioderISisteUtbetalingsoppdraget( + utbetalingsoppdragForKonsistensavstemming, + perioderPåBehandling, + fødselsnummerPåBehandling, + utbetalesTilPåBehandling, + ) utførKonsistensavstemming( KonsistensavstemmingMetaInfo( @@ -128,9 +129,7 @@ class KonsistensavstemmingService( } } - private fun opprettKonsistensavstemmingMapper( - metaInfo: KonsistensavstemmingMetaInfo, - ): KonsistensavstemmingMapper { + private fun opprettKonsistensavstemmingMapper(metaInfo: KonsistensavstemmingMetaInfo): KonsistensavstemmingMapper { val aggregertAntallOppdrag = mellomlagringKonsistensavstemmingService.hentAggregertAntallOppdrag(metaInfo) val aggregertTotalBeløp = mellomlagringKonsistensavstemmingService.hentAggregertBeløp(metaInfo) @@ -158,9 +157,10 @@ class KonsistensavstemmingService( val utbetalingsoppdragPåFagsak = utbetalingsoppdrag.groupBy { it.fagsakId } return utbetalingsoppdragPåFagsak.map { (saksnummer, utbetalingsoppdragListe) -> - val senesteUtbetalingsoppdrag = utbetalingsoppdragListe.maxByOrNull { oppdrag -> - oppdrag.utbetalingsoppdrag.utbetalingsperiode.maxOf { it.periodeId } - }?.utbetalingsoppdrag ?: error("Finner ikke seneste behandling for fagsak=$saksnummer") + val senesteUtbetalingsoppdrag = + utbetalingsoppdragListe.maxByOrNull { oppdrag -> + oppdrag.utbetalingsoppdrag.utbetalingsperiode.maxOf { it.periodeId } + }?.utbetalingsoppdrag ?: error("Finner ikke seneste behandling for fagsak=$saksnummer") val behandlingsIderForFagsak = utbetalingsoppdragListe.map { it.behandlingId }.toSet() @@ -168,17 +168,18 @@ class KonsistensavstemmingService( perioderPåBehandling.filter { behandlingsIderForFagsak.contains(it.key) }.values.flatten().toSet() var aktivtFødselsnummer: String? = null - val perioderTilKonsistensavstemming = utbetalingsoppdragListe.flatMap { - aktivtFødselsnummer = hentFødselsnummerForBehandling(fødselsnummerPåBehandling, it.behandlingId) - val utbetalesTil = utbetalesTilPåBehandling[it.behandlingId] ?: aktivtFødselsnummer - - it.utbetalingsoppdrag.utbetalingsperiode - .filter { utbetalingsperiode -> aktuellePeriodeIderForFagsak.contains(utbetalingsperiode.periodeId) } - // Setter aktivt fødselsnummer på behandling som mottok fra fagsystem - .map { utbetalingsperiode -> - utbetalingsperiode.copy(utbetalesTil = utbetalesTil ?: utbetalingsperiode.utbetalesTil) - } - } + val perioderTilKonsistensavstemming = + utbetalingsoppdragListe.flatMap { + aktivtFødselsnummer = hentFødselsnummerForBehandling(fødselsnummerPåBehandling, it.behandlingId) + val utbetalesTil = utbetalesTilPåBehandling[it.behandlingId] ?: aktivtFødselsnummer + + it.utbetalingsoppdrag.utbetalingsperiode + .filter { utbetalingsperiode -> aktuellePeriodeIderForFagsak.contains(utbetalingsperiode.periodeId) } + // Setter aktivt fødselsnummer på behandling som mottok fra fagsystem + .map { utbetalingsperiode -> + utbetalingsperiode.copy(utbetalesTil = utbetalesTil ?: utbetalingsperiode.utbetalesTil) + } + } senesteUtbetalingsoppdrag.let { it.copy( @@ -190,7 +191,10 @@ class KonsistensavstemmingService( } } - private fun verifyUnikeBehandlinger(periodeIderPåBehandling: Map>, request: KonsistensavstemmingRequestV2) { + private fun verifyUnikeBehandlinger( + periodeIderPåBehandling: Map>, + request: KonsistensavstemmingRequestV2, + ) { if (periodeIderPåBehandling.size != request.perioderForBehandlinger.size) { val duplikateBehandlinger = request.perioderForBehandlinger.map { it.behandlingId }.groupingBy { it }.eachCount().filter { it.value > 1 } @@ -198,13 +202,15 @@ class KonsistensavstemmingService( } } - private fun hentFødselsnummerForBehandling(fødselsnummerPåBehandling: Map, behandlingId: String): String { + private fun hentFødselsnummerForBehandling( + fødselsnummerPåBehandling: Map, + behandlingId: String, + ): String { return fødselsnummerPåBehandling[behandlingId] ?: error("Finnes ikke et aktivt fødselsnummer for behandlingId $behandlingId") } companion object { - val LOG: Logger = LoggerFactory.getLogger(KonsistensavstemmingService::class.java) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingService.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingService.kt index 9e926817..3f82ff5e 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingService.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingService.kt @@ -13,18 +13,14 @@ import java.util.UUID class MellomlagringKonsistensavstemmingService( private val mellomlagringKonsistensavstemmingRepository: MellomlagringKonsistensavstemmingRepository, ) { - fun hentAggregertBeløp( - metaInfo: KonsistensavstemmingMetaInfo, - ): Long = + fun hentAggregertBeløp(metaInfo: KonsistensavstemmingMetaInfo): Long = if (metaInfo.erSisteBatchIEnSplittetBatch()) { mellomlagringKonsistensavstemmingRepository.hentAggregertTotalBeløp(metaInfo.transaksjonsId!!) } else { 0L } - fun hentAggregertAntallOppdrag( - metaInfo: KonsistensavstemmingMetaInfo, - ): Int { + fun hentAggregertAntallOppdrag(metaInfo: KonsistensavstemmingMetaInfo): Int { return if (metaInfo.erSisteBatchIEnSplittetBatch()) { mellomlagringKonsistensavstemmingRepository.hentAggregertAntallOppdrag(metaInfo.transaksjonsId!!) } else { @@ -37,12 +33,13 @@ class MellomlagringKonsistensavstemmingService( antalOppdrag: Int, totalBeløp: Long, ) { - val mellomlagring = MellomlagringKonsistensavstemming( - fagsystem = metaInfo.fagsystem, - transaksjonsId = metaInfo.transaksjonsId!!, - antallOppdrag = antalOppdrag, - totalBeløp = totalBeløp, - ) + val mellomlagring = + MellomlagringKonsistensavstemming( + fagsystem = metaInfo.fagsystem, + transaksjonsId = metaInfo.transaksjonsId!!, + antallOppdrag = antalOppdrag, + totalBeløp = totalBeløp, + ) mellomlagringKonsistensavstemmingRepository.insert(mellomlagring) LOG.info("Opprettet mellomlagring for transaksjonsId ${metaInfo.transaksjonsId}") } @@ -54,7 +51,6 @@ class MellomlagringKonsistensavstemmingService( } companion object { - val LOG: Logger = LoggerFactory.getLogger(MellomlagringKonsistensavstemmingService::class.java) } } @@ -67,9 +63,11 @@ data class KonsistensavstemmingMetaInfo( val sendAvsluttmelding: Boolean, val utbetalingsoppdrag: List, ) { - fun erFørsteBatchIEnSplittetBatch(): Boolean = sendStartmelding && !sendAvsluttmelding + fun erSisteBatchIEnSplittetBatch(): Boolean = !sendStartmelding && sendAvsluttmelding + fun erSplittetBatchMenIkkeSisteBatch(): Boolean = erSplittetBatch() && !erSisteBatchIEnSplittetBatch() + fun erSplittetBatch(): Boolean = !sendStartmelding || !sendAvsluttmelding } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragService.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragService.kt index 5e3e9154..d96b0b98 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragService.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragService.kt @@ -6,8 +6,15 @@ import no.nav.familie.oppdrag.repository.OppdragLager import no.trygdeetaten.skjema.oppdrag.Oppdrag interface OppdragService { - fun opprettOppdrag(utbetalingsoppdrag: Utbetalingsoppdrag, oppdrag: Oppdrag, versjon: Int) + fun opprettOppdrag( + utbetalingsoppdrag: Utbetalingsoppdrag, + oppdrag: Oppdrag, + versjon: Int, + ) + fun hentStatusForOppdrag(oppdragId: OppdragId): OppdragLager + fun resendOppdrag(oppdragId: OppdragId) + fun opprettManuellKvitteringPåOppdrag(oppdragId: OppdragId): OppdragLager } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceE2E.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceE2E.kt index c23204db..557d2c0d 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceE2E.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceE2E.kt @@ -18,9 +18,12 @@ import org.springframework.transaction.annotation.Transactional class OppdragServiceE2E( @Autowired private val oppdragLagerRepository: OppdragLagerRepository, ) : OppdragService { - @Transactional(rollbackFor = [Throwable::class]) - override fun opprettOppdrag(utbetalingsoppdrag: Utbetalingsoppdrag, oppdrag: Oppdrag, versjon: Int) { + override fun opprettOppdrag( + utbetalingsoppdrag: Utbetalingsoppdrag, + oppdrag: Oppdrag, + versjon: Int, + ) { LOG.debug("Lagrer oppdrag i databasen " + oppdrag.id) oppdragLagerRepository.opprettOppdrag(OppdragLager.lagFraOppdrag(utbetalingsoppdrag, oppdrag), versjon) @@ -41,7 +44,6 @@ class OppdragServiceE2E( } companion object { - val LOG = LoggerFactory.getLogger(OppdragServiceE2E::class.java) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceImpl.kt b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceImpl.kt index cf147cb6..983a980a 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceImpl.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/service/OppdragServiceImpl.kt @@ -22,9 +22,12 @@ class OppdragServiceImpl( @Autowired private val oppdragSender: OppdragSender, @Autowired private val oppdragLagerRepository: OppdragLagerRepository, ) : OppdragService { - @Transactional(rollbackFor = [Throwable::class]) - override fun opprettOppdrag(utbetalingsoppdrag: Utbetalingsoppdrag, oppdrag: Oppdrag, versjon: Int) { + override fun opprettOppdrag( + utbetalingsoppdrag: Utbetalingsoppdrag, + oppdrag: Oppdrag, + versjon: Int, + ) { LOG.debug("Lagrer oppdrag i databasen " + oppdrag.id) try { oppdragLagerRepository.opprettOppdrag(OppdragLager.lagFraOppdrag(utbetalingsoppdrag, oppdrag), versjon) @@ -74,10 +77,10 @@ class OppdragServiceImpl( } companion object { - val LOG = LoggerFactory.getLogger(OppdragServiceImpl::class.java) } } class OppdragAlleredeSendtException() : RuntimeException() + class OppdragHarAlleredeKvitteringException(melding: String) : RuntimeException(melding) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimulerBeregningRequestMapper.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimulerBeregningRequestMapper.kt index 4c0b55fe..e85af37b 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimulerBeregningRequestMapper.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimulerBeregningRequestMapper.kt @@ -38,11 +38,12 @@ class SimulerBeregningRequestMapper { tidspktReg = utbetalingsoppdrag.avstemmingTidspunkt.format(tidspunktFormatter) } - val oppdragsEnhet = oppdragSkjemaFactory.createEnhet().apply { - enhet = OppdragSkjemaConstants.ENHET - typeEnhet = OppdragSkjemaConstants.ENHET_TYPE - datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toString() - } + val oppdragsEnhet = + oppdragSkjemaFactory.createEnhet().apply { + enhet = OppdragSkjemaConstants.ENHET + typeEnhet = OppdragSkjemaConstants.ENHET_TYPE + datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toString() + } return fpServiceTypesFactory.createOppdrag().apply { kodeEndring = EndringsKode.fromKode(utbetalingsoppdrag.kodeEndring.name).kode @@ -61,10 +62,14 @@ class SimulerBeregningRequestMapper { } } - private fun tilOppdragsLinje(utbetalingsperiode: Utbetalingsperiode, utbetalingsoppdrag: Utbetalingsoppdrag): Oppdragslinje { - val attest = oppdragSkjemaFactory.createAttestant().apply { - attestantId = utbetalingsoppdrag.saksbehandlerId - } + private fun tilOppdragsLinje( + utbetalingsperiode: Utbetalingsperiode, + utbetalingsoppdrag: Utbetalingsoppdrag, + ): Oppdragslinje { + val attest = + oppdragSkjemaFactory.createAttestant().apply { + attestantId = utbetalingsoppdrag.saksbehandlerId + } return fpServiceTypesFactory.createOppdragslinje().apply { kodeEndringLinje = diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringResultatTransformer.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringResultatTransformer.kt index e9848578..6a338fb7 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringResultatTransformer.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringResultatTransformer.kt @@ -16,8 +16,10 @@ import java.time.LocalDate import java.time.format.DateTimeFormatter class SimuleringResultatTransformer { - - fun mapSimulering(beregning: Beregning, utbetalingsoppdrag: Utbetalingsoppdrag): DetaljertSimuleringResultat { + fun mapSimulering( + beregning: Beregning, + utbetalingsoppdrag: Utbetalingsoppdrag, + ): DetaljertSimuleringResultat { val mottakerMap = hashMapOf>() for (periode in beregning.beregningsPeriode) { for (stoppnivaa in periode.beregningStoppnivaa) { @@ -33,13 +35,14 @@ class SimuleringResultatTransformer { } val requestMottakerId = hentOrgNrEllerFnr(utbetalingsoppdrag.aktoer) - val simuleringMottakerListe = mottakerMap.map { (utbetalesTilId, simulertPostering) -> - SimuleringMottaker( - mottakerNummer = utbetalesTilId, - simulertPostering = simulertPostering, - mottakerType = utledMottakerType(utbetalesTilId, hentOrgNrEllerFnr(utbetalesTilId) == requestMottakerId), - ) - } + val simuleringMottakerListe = + mottakerMap.map { (utbetalesTilId, simulertPostering) -> + SimuleringMottaker( + mottakerNummer = utbetalesTilId, + simulertPostering = simulertPostering, + mottakerType = utledMottakerType(utbetalesTilId, hentOrgNrEllerFnr(utbetalesTilId) == requestMottakerId), + ) + } return DetaljertSimuleringResultat(simuleringMottakerListe) } @@ -52,7 +55,11 @@ class SimuleringResultatTransformer { betalingType = utledBetalingType(detaljer.belop), erFeilkonto = stoppnivaa.isFeilkonto, beløp = detaljer.belop, - fagOmrådeKode = FagOmrådeKode.fraKode(stoppnivaa.kodeFagomraade.trim()), // Todo: fjerne.trim() når TØB har rettet trailing spaces-feilen (jira: TOB-1509) + fagOmrådeKode = + FagOmrådeKode.fraKode( + stoppnivaa.kodeFagomraade.trim(), + ), + // Todo: fjerne.trim() når TØB har rettet trailing spaces-feilen (jira: TOB-1509) fom = parseDato(detaljer.faktiskFom), tom = parseDato(detaljer.faktiskTom), forfallsdato = parseDato(stoppnivaa.forfall), @@ -69,7 +76,10 @@ class SimuleringResultatTransformer { } } - private fun utledMottakerType(utbetalesTilId: String, harSammeAktørIdSomBruker: Boolean): MottakerType { + private fun utledMottakerType( + utbetalesTilId: String, + harSammeAktørIdSomBruker: Boolean, + ): MottakerType { if (harSammeAktørIdSomBruker) { return MottakerType.BRUKER } @@ -102,7 +112,6 @@ class SimuleringResultatTransformer { } companion object { - private const val DATO_PATTERN = "yyyy-MM-dd" } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSender.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSender.kt index fecb040f..b8639257 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSender.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSender.kt @@ -4,6 +4,5 @@ import no.nav.system.os.tjenester.simulerfpservice.simulerfpservicegrensesnitt.S import no.nav.system.os.tjenester.simulerfpservice.simulerfpservicegrensesnitt.SimulerBeregningResponse interface SimuleringSender { - fun hentSimulerBeregningResponse(simulerBeregningRequest: SimulerBeregningRequest?): SimulerBeregningResponse } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSenderImpl.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSenderImpl.kt index 4d40d9f2..6db20dff 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSenderImpl.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringSenderImpl.kt @@ -12,7 +12,6 @@ import org.springframework.stereotype.Service @Profile("!dev & !dev_psql_mq") @Service class SimuleringSenderImpl(private val port: SimulerFpService) : SimuleringSender { - @Override @Retryable(value = [SimulerBeregningFeilUnderBehandling::class], maxAttempts = 3, backoff = Backoff(delay = 4000)) override fun hentSimulerBeregningResponse(simulerBeregningRequest: SimulerBeregningRequest?): SimulerBeregningResponse { diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjeneste.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjeneste.kt index f7d30b59..718aebec 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjeneste.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjeneste.kt @@ -6,7 +6,7 @@ import no.nav.familie.kontrakter.felles.simulering.FeilutbetalingerFraSimulering import no.nav.familie.kontrakter.felles.simulering.HentFeilutbetalingerFraSimuleringRequest interface SimuleringTjeneste { - fun utførSimuleringOghentDetaljertSimuleringResultat(utbetalingsoppdrag: Utbetalingsoppdrag): DetaljertSimuleringResultat + fun hentFeilutbetalinger(request: HentFeilutbetalingerFraSimuleringRequest): FeilutbetalingerFraSimulering } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImpl.kt b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImpl.kt index 4877b012..e62de6b7 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImpl.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImpl.kt @@ -37,7 +37,6 @@ class SimuleringTjenesteImpl( @Autowired val simulerBeregningRequestMapper: SimulerBeregningRequestMapper, @Autowired val simuleringLagerTjeneste: SimuleringLagerTjeneste, ) : SimuleringTjeneste { - val mapper = jacksonObjectMapper() val simuleringResultatTransformer = SimuleringResultatTransformer() @@ -88,46 +87,51 @@ class SimuleringTjenesteImpl( } override fun hentFeilutbetalinger(request: HentFeilutbetalingerFraSimuleringRequest): FeilutbetalingerFraSimulering { - val simuleringLager = simuleringLagerTjeneste.hentSisteSimuleringsresultat( - request.ytelsestype.kode, - request.eksternFagsakId, - request.fagsystemsbehandlingId, - ) + val simuleringLager = + simuleringLagerTjeneste.hentSisteSimuleringsresultat( + request.ytelsestype.kode, + request.eksternFagsakId, + request.fagsystemsbehandlingId, + ) val respons = Jaxb.tilSimuleringsrespons(simuleringLager.responseXml!!) val simulering = respons.response.simulering val feilPosteringerMedPositivBeløp = finnFeilPosteringer(simulering) val alleYtelPosteringer = finnYtelPosteringer(simulering) - val feilutbetaltPerioder = feilPosteringerMedPositivBeløp.map { feilPostering -> - val periode = feilPostering.key - val feilutbetaltBeløp = feilPostering.value.sumOf { it.belop } - val ytelPosteringerForPeriode = hentYtelPerioder(periode, alleYtelPosteringer) - FeilutbetaltPeriode( - fom = LocalDate.parse(periode.periodeFom), - tom = LocalDate.parse(periode.periodeTom), - feilutbetaltBeløp = feilutbetaltBeløp, - tidligereUtbetaltBeløp = summerNegativeYtelPosteringer( - ytelPosteringerForPeriode, - alleYtelPosteringer, - ).abs(), - nyttBeløp = summerPostiveYtelPosteringer( - ytelPosteringerForPeriode, - alleYtelPosteringer, - ) - feilutbetaltBeløp, - ) - } + val feilutbetaltPerioder = + feilPosteringerMedPositivBeløp.map { feilPostering -> + val periode = feilPostering.key + val feilutbetaltBeløp = feilPostering.value.sumOf { it.belop } + val ytelPosteringerForPeriode = hentYtelPerioder(periode, alleYtelPosteringer) + FeilutbetaltPeriode( + fom = LocalDate.parse(periode.periodeFom), + tom = LocalDate.parse(periode.periodeTom), + feilutbetaltBeløp = feilutbetaltBeløp, + tidligereUtbetaltBeløp = + summerNegativeYtelPosteringer( + ytelPosteringerForPeriode, + alleYtelPosteringer, + ).abs(), + nyttBeløp = + summerPostiveYtelPosteringer( + ytelPosteringerForPeriode, + alleYtelPosteringer, + ) - feilutbetaltBeløp, + ) + } return FeilutbetalingerFraSimulering(feilutbetaltePerioder = feilutbetaltPerioder) } private fun finnFeilPosteringer(simulering: Beregning): Map> { return simulering.beregningsPeriode.map { beregningsperiode -> - beregningsperiode to beregningsperiode.beregningStoppnivaa.map { stoppNivå -> - stoppNivå.beregningStoppnivaaDetaljer.filter { detalj -> - detalj.typeKlasse == PosteringType.FEILUTBETALING.kode && - detalj.belop > BigDecimal.ZERO - } - }.flatten() + beregningsperiode to + beregningsperiode.beregningStoppnivaa.map { stoppNivå -> + stoppNivå.beregningStoppnivaaDetaljer.filter { detalj -> + detalj.typeKlasse == PosteringType.FEILUTBETALING.kode && + detalj.belop > BigDecimal.ZERO + } + }.flatten() }.filter { it.second.isNotEmpty() }.toMap() } @@ -154,20 +158,18 @@ class SimuleringTjenesteImpl( private fun summerNegativeYtelPosteringer( perioder: List, ytelPerioder: Map>, - ) = - perioder.sumOf { beregningsperiode -> - ytelPerioder.getValue(beregningsperiode).filter { it.belop < BigDecimal.ZERO } - .sumOf { detalj -> detalj.belop } - } + ) = perioder.sumOf { beregningsperiode -> + ytelPerioder.getValue(beregningsperiode).filter { it.belop < BigDecimal.ZERO } + .sumOf { detalj -> detalj.belop } + } private fun summerPostiveYtelPosteringer( perioder: List, ytelPerioder: Map>, - ) = - perioder.sumOf { beregningsperiode -> - ytelPerioder.getValue(beregningsperiode).filter { it.belop > BigDecimal.ZERO } - .sumOf { detalj -> detalj.belop } - } + ) = perioder.sumOf { beregningsperiode -> + ytelPerioder.getValue(beregningsperiode).filter { it.belop > BigDecimal.ZERO } + .sumOf { detalj -> detalj.belop } + } private fun genererFeilmelding(ex: SimulerBeregningFeilUnderBehandling): String = ex.faultInfo.let { @@ -180,7 +182,6 @@ class SimuleringTjenesteImpl( } companion object { - val secureLogger: Logger = LoggerFactory.getLogger("secureLogger") } } diff --git "a/src/main/kotlin/no/nav/familie/oppdrag/tilbakekreving/\303\230konomiClient.kt" "b/src/main/kotlin/no/nav/familie/oppdrag/tilbakekreving/\303\230konomiClient.kt" index 4fd7812a..e4fb8819 100644 --- "a/src/main/kotlin/no/nav/familie/oppdrag/tilbakekreving/\303\230konomiClient.kt" +++ "b/src/main/kotlin/no/nav/familie/oppdrag/tilbakekreving/\303\230konomiClient.kt" @@ -18,7 +18,6 @@ import java.util.UUID @Service class ØkonomiClient(private val økonomiService: TilbakekrevingPortType) { - private val logger: Logger = LoggerFactory.getLogger(this::class.java) fun iverksettVedtak( diff --git a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssController.kt b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssController.kt index 855dfe18..84f98024 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssController.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssController.kt @@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController @RequestMapping("/api/tss") @ProtectedWithClaims(issuer = "azuread") class TssController(private val tssOppslagService: TssOppslagService) { - @Operation(summary = "Henter informasjon om samhandler ved bruk av ORGNR og TSS-tjensten B910") @PostMapping(path = ["/proxy/b910"]) fun hentSamhandlerDataForOrganisasjonProxy( @@ -28,12 +27,18 @@ class TssController(private val tssOppslagService: TssOppslagService) { return Ressurs.success(tssOppslagService.hentSamhandlerDataForOrganisasjonB910(tssSamhandlerIdent)) } - @Operation(summary = "Søk informasjon samhandlere av type INST ved bruk av navn og TSS-tjensten B940 og TSS-tjensten B940. Returnerer TSS-output data i rå format") + @Operation( + summary = + "Søk informasjon samhandlere av type INST ved bruk av navn og TSS-tjensten B940 og TSS-tjensten B940. " + + "Returnerer TSS-output data i rå format", + ) @PostMapping(path = ["/proxy/b940"]) fun søkSamhnadlerinfoFraNavnProxy( @RequestBody request: SøkSamhandlerInfoRequest, ): Ressurs { - return Ressurs.success(tssOppslagService.hentInformasjonOmSamhandlerInstB940(request.navn, request.postNr, request.område, request.side).tssOutputData) + return Ressurs.success( + tssOppslagService.hentInformasjonOmSamhandlerInstB940(request.navn, request.postNr, request.område, request.side).tssOutputData, + ) } @Operation(summary = "Henter informasjon om samhandler ved bruk av ORGNR og TSS-tjensten B910") @@ -41,7 +46,9 @@ class TssController(private val tssOppslagService: TssOppslagService) { fun hentSamhandlerDataForOrganisasjon( @PathVariable("orgnr") orgnr: String, ): Ressurs { - return Ressurs.success(tssOppslagService.hentSamhandlerInformasjon(TssSamhandlerIdent(ident = orgnr, type = TssSamhandlerIdentType.ORGNR))) + return Ressurs.success( + tssOppslagService.hentSamhandlerInformasjon(TssSamhandlerIdent(ident = orgnr, type = TssSamhandlerIdentType.ORGNR)), + ) } @Operation(summary = "Henter informasjon om samhandler ved bruk av ekstern id fra TSS og TSS-tjensten B910") @@ -49,7 +56,9 @@ class TssController(private val tssOppslagService: TssOppslagService) { fun hentSamhandlerDataForTssEksternId( @PathVariable("tssnr") tssnr: String, ): Ressurs { - return Ressurs.success(tssOppslagService.hentSamhandlerInformasjon(TssSamhandlerIdent(ident = tssnr, type = TssSamhandlerIdentType.TSS))) + return Ressurs.success( + tssOppslagService.hentSamhandlerInformasjon(TssSamhandlerIdent(ident = tssnr, type = TssSamhandlerIdentType.TSS)), + ) } @Operation(summary = "Søk samhandlere ved bruk av navn og TSS-tjensten B940. Første side er 0") @@ -57,6 +66,8 @@ class TssController(private val tssOppslagService: TssOppslagService) { fun søkSamhnadlerinfoFraNavn( @RequestBody request: SøkSamhandlerInfoRequest, ): Ressurs { - return Ressurs.success(tssOppslagService.hentInformasjonOmSamhandlerInst(request.navn, request.postNr, request.område, request.side)) + return Ressurs.success( + tssOppslagService.hentInformasjonOmSamhandlerInst(request.navn, request.postNr, request.område, request.side), + ) } } diff --git a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssException.kt b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssException.kt index 48004d9f..b3fe26ce 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssException.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssException.kt @@ -1,12 +1,21 @@ package no.nav.familie.oppdrag.tss -open class TssException(feilmelding: String, var alvorligGrad: String? = null, var kodeMelding: String? = null, throwable: Throwable? = null) : +open class TssException( + feilmelding: String, + var alvorligGrad: String? = null, + var kodeMelding: String? = null, + throwable: Throwable? = null, +) : RuntimeException( - listOfNotNull(feilmelding, alvorligGrad, kodeMelding).joinToString("-"), - throwable, - ) + listOfNotNull(feilmelding, alvorligGrad, kodeMelding).joinToString("-"), + throwable, + ) -class TssResponseException(feilmelding: String, alvorligGrad: String?, kodeMelding: String?) : TssException(feilmelding, alvorligGrad, kodeMelding) +class TssResponseException(feilmelding: String, alvorligGrad: String?, kodeMelding: String?) : TssException( + feilmelding, + alvorligGrad, + kodeMelding, +) class TssConnectionException(feilmelding: String, throwable: Throwable? = null) : TssException(feilmelding, throwable = throwable) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssMQClient.kt b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssMQClient.kt index b2b5d2a0..47e5460c 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssMQClient.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssMQClient.kt @@ -13,18 +13,21 @@ import org.springframework.stereotype.Service import java.util.UUID @Service -class TssMQClient(@Qualifier("jmsTemplateTss") private val jmsTemplateTss: JmsTemplate) { +class TssMQClient( + @Qualifier("jmsTemplateTss") private val jmsTemplateTss: JmsTemplate, +) { private val logger: Logger = LoggerFactory.getLogger(this::class.java) private val secureLogger: Logger = LoggerFactory.getLogger("secureLogger") private fun kallTss(rawRequest: String): String { val uuid = UUID.randomUUID().toString() try { - val response: Message? = jmsTemplateTss.sendAndReceive { session: Session -> - val requestMessage = session.createTextMessage(rawRequest) - requestMessage.jmsCorrelationID = uuid - requestMessage - } + val response: Message? = + jmsTemplateTss.sendAndReceive { session: Session -> + val requestMessage = session.createTextMessage(rawRequest) + requestMessage.jmsCorrelationID = uuid + requestMessage + } return if (response == null) { throw TssConnectionException("En feil oppsto i kallet til TSS. Response var null (timeout?)") @@ -48,66 +51,82 @@ class TssMQClient(@Qualifier("jmsTemplateTss") private val jmsTemplateTss: JmsTe fun getOrgInfo(tssSamhandlerIdent: TssSamhandlerIdent): TssSamhandlerData { val objectFactory = ObjectFactory() - val samhandlerIDataB910Data = when (tssSamhandlerIdent.type) { - TssSamhandlerIdentType.ORGNR -> { - val offIdData = objectFactory.createTidOFF1().apply { - idOff = tssSamhandlerIdent.ident - kodeIdType = "ORG" - kodeSamhType = "INST" - } - val samhandlerIDataB910Data = objectFactory.createSamhandlerIDataB910Type().apply { - brukerID = BRUKER_ID - historikk = "N" - ofFid = offIdData + val samhandlerIDataB910Data = + when (tssSamhandlerIdent.type) { + TssSamhandlerIdentType.ORGNR -> { + val offIdData = + objectFactory.createTidOFF1().apply { + idOff = tssSamhandlerIdent.ident + kodeIdType = "ORG" + kodeSamhType = "INST" + } + val samhandlerIDataB910Data = + objectFactory.createSamhandlerIDataB910Type().apply { + brukerID = BRUKER_ID + historikk = "N" + ofFid = offIdData + } + samhandlerIDataB910Data } - samhandlerIDataB910Data - } - TssSamhandlerIdentType.TSS -> { - val samhandlerIDataB910Data = objectFactory.createSamhandlerIDataB910Type().apply { - idOffTSS = tssSamhandlerIdent.ident - brukerID = BRUKER_ID - historikk = "N" + TssSamhandlerIdentType.TSS -> { + val samhandlerIDataB910Data = + objectFactory.createSamhandlerIDataB910Type().apply { + idOffTSS = tssSamhandlerIdent.ident + brukerID = BRUKER_ID + historikk = "N" + } + samhandlerIDataB910Data } - samhandlerIDataB910Data } - } - val servicerutiner = objectFactory.createTServicerutiner().apply { - samhandlerIDataB910 = samhandlerIDataB910Data - } - val tssSamhandlerDataTssInputData = objectFactory.createTssSamhandlerDataTssInputData().apply { - tssServiceRutine = servicerutiner - } - val tssSamhandlerData = objectFactory.createTssSamhandlerData().apply { - tssInputData = tssSamhandlerDataTssInputData - } + val servicerutiner = + objectFactory.createTServicerutiner().apply { + samhandlerIDataB910 = samhandlerIDataB910Data + } + val tssSamhandlerDataTssInputData = + objectFactory.createTssSamhandlerDataTssInputData().apply { + tssServiceRutine = servicerutiner + } + val tssSamhandlerData = + objectFactory.createTssSamhandlerData().apply { + tssInputData = tssSamhandlerDataTssInputData + } val xml = Jaxb.tilXml(tssSamhandlerData) val rawResponse = kallTss(xml) return Jaxb.tilTssSamhandlerData(rawResponse) } - fun søkOrgInfo(navn: String?, postNummer: String?, område: String?, side: Int): TssSamhandlerData { + fun søkOrgInfo( + navn: String?, + postNummer: String?, + område: String?, + side: Int, + ): TssSamhandlerData { val objectFactory = ObjectFactory() - val samhandlerIDataB940Data = objectFactory.createSamhandlerIDataB940Type().apply { - brukerID = BRUKER_ID - navnSamh = navn - kodeSamhType = "INST" - postNr = postNummer - omrade = område - buffnr = side.toString().padStart(3, '0') - } + val samhandlerIDataB940Data = + objectFactory.createSamhandlerIDataB940Type().apply { + brukerID = BRUKER_ID + navnSamh = navn + kodeSamhType = "INST" + postNr = postNummer + omrade = område + buffnr = side.toString().padStart(3, '0') + } - val servicerutiner = objectFactory.createTServicerutiner().apply { - samhandlerIDataB940 = samhandlerIDataB940Data - } + val servicerutiner = + objectFactory.createTServicerutiner().apply { + samhandlerIDataB940 = samhandlerIDataB940Data + } - val tssSamhandlerDataTssInputData = objectFactory.createTssSamhandlerDataTssInputData().apply { - tssServiceRutine = servicerutiner - } - val tssSamhandlerData = objectFactory.createTssSamhandlerData().apply { - tssInputData = tssSamhandlerDataTssInputData - } + val tssSamhandlerDataTssInputData = + objectFactory.createTssSamhandlerDataTssInputData().apply { + tssServiceRutine = servicerutiner + } + val tssSamhandlerData = + objectFactory.createTssSamhandlerData().apply { + tssInputData = tssSamhandlerDataTssInputData + } val rawResponse = kallTss(Jaxb.tilXml(tssSamhandlerData)) return Jaxb.tilTssSamhandlerData(rawResponse) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssOppslagService.kt b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssOppslagService.kt index bbfa6e11..17867567 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssOppslagService.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssOppslagService.kt @@ -35,20 +35,35 @@ class TssOppslagService(private val tssMQClient: TssMQClient) { return mapSamhandler(enkeltSamhandler, orgNr) } - fun hentInformasjonOmSamhandlerInstB940(navn: String?, postNummer: String?, område: String?, side: Int): TssSamhandlerData { + fun hentInformasjonOmSamhandlerInstB940( + navn: String?, + postNummer: String?, + område: String?, + side: Int, + ): TssSamhandlerData { return tssMQClient.søkOrgInfo(navn, postNummer, område, side) } - fun hentInformasjonOmSamhandlerInst(navn: String?, postNummer: String?, område: String?, side: Int): SøkSamhandlerInfo { + fun hentInformasjonOmSamhandlerInst( + navn: String?, + postNummer: String?, + område: String?, + side: Int, + ): SøkSamhandlerInfo { val samhandlerData = hentInformasjonOmSamhandlerInstB940(navn, postNummer, område, side) val finnesMerInfo = validateB940response("$navn $postNummer $område", samhandlerData) val samhandlerODataB940 = samhandlerData.tssOutputData.samhandlerODataB940 - val samhandlere = samhandlerODataB940.enkeltSamhandler - .filter { enkeltSamhandler -> enkeltSamhandler.samhandlerAvd125.samhAvd.any { erInfotrygdTssAvdeling(it) } } - .map { mapSamhandler(it) } + val samhandlere = + samhandlerODataB940.enkeltSamhandler + .filter { enkeltSamhandler -> enkeltSamhandler.samhandlerAvd125.samhAvd.any { erInfotrygdTssAvdeling(it) } } + .map { mapSamhandler(it) } return SøkSamhandlerInfo(finnesMerInfo, samhandlere) } - private fun validateB910response(inputData: TssSamhandlerIdent, tssResponse: TssSamhandlerData) { + + private fun validateB910response( + inputData: TssSamhandlerIdent, + tssResponse: TssSamhandlerData, + ) { commonResponseValidation(tssResponse) val svarStatus = tssResponse.tssOutputData.svarStatus @@ -63,7 +78,10 @@ class TssOppslagService(private val tssMQClient: TssMQClient) { } } - private fun validateB940response(inputData: String?, tssResponse: TssSamhandlerData): Boolean { + private fun validateB940response( + inputData: String?, + tssResponse: TssSamhandlerData, + ): Boolean { commonResponseValidation(tssResponse) val svarStatus = tssResponse.tssOutputData.svarStatus if (svarStatus.alvorligGrad != TSS_STATUS_OK) { @@ -81,15 +99,24 @@ class TssOppslagService(private val tssMQClient: TssMQClient) { } private fun commonResponseValidation(tssResponse: TssSamhandlerData) { - if (tssResponse.tssOutputData == null || tssResponse.tssOutputData.svarStatus == null || tssResponse.tssOutputData.svarStatus.alvorligGrad == null) { + if (erTomResponse(tssResponse)) { throw TssConnectionException("Ingen response. Mest sannsynlig timeout mot TSS") } } - private fun mapSamhandler(enkeltSamhandler: Samhandler, orgnr: String?): SamhandlerInfo { + private fun erTomResponse(tssResponse: TssSamhandlerData) = + tssResponse.tssOutputData == null || + tssResponse.tssOutputData.svarStatus == null || + tssResponse.tssOutputData.svarStatus.alvorligGrad == null + + private fun mapSamhandler( + enkeltSamhandler: Samhandler, + orgnr: String?, + ): SamhandlerInfo { val navn = enkeltSamhandler.samhandler110.samhandler.first().navnSamh - val orgnr = orgnr ?: enkeltSamhandler.alternativId111.samhId.filter { it.kodeAltIdentType == "ORG" && it.datoIdentTom.isBlank() } - .firstOrNull()?.idAlternativ + val orgnr = + orgnr ?: enkeltSamhandler.alternativId111.samhId.filter { it.kodeAltIdentType == "ORG" && it.datoIdentTom.isBlank() } + .firstOrNull()?.idAlternativ val (tssId, avdNr) = mapTssEksternIdOgAvdNr(enkeltSamhandler.samhandlerAvd125) val avdelingsAdresser = madAdresse(enkeltSamhandler.adresse130, avdNr) diff --git a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssSamhandlerIdent.kt b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssSamhandlerIdent.kt index cbc42fb1..2a429f08 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/tss/TssSamhandlerIdent.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/tss/TssSamhandlerIdent.kt @@ -4,6 +4,8 @@ data class TssSamhandlerIdent( val ident: String, val type: TssSamhandlerIdentType, ) + enum class TssSamhandlerIdentType { - ORGNR, TSS + ORGNR, + TSS, } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/DevLauncher.kt b/src/test/kotlin/no/nav/familie/oppdrag/DevLauncher.kt index 6add6621..5b97f896 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/DevLauncher.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/DevLauncher.kt @@ -6,8 +6,9 @@ import org.springframework.boot.builder.SpringApplicationBuilder object DevLauncher { @JvmStatic fun main(args: Array) { - val app = SpringApplicationBuilder(ApplicationConfig::class.java) - .profiles("dev") + val app = + SpringApplicationBuilder(ApplicationConfig::class.java) + .profiles("dev") app.run(*args) } } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/DevPsqlMqLauncher.kt b/src/test/kotlin/no/nav/familie/oppdrag/DevPsqlMqLauncher.kt index e15d33f6..01bd4b48 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/DevPsqlMqLauncher.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/DevPsqlMqLauncher.kt @@ -9,17 +9,19 @@ import java.util.Properties object DevPsqlMqLauncher { @JvmStatic fun main(args: Array) { - val psql = KPostgreSQLContainer("postgres:15.2") - .withDatabaseName("familie-oppdrag") - .withUsername("postgres") - .withPassword("test") + val psql = + KPostgreSQLContainer("postgres:15.2") + .withDatabaseName("familie-oppdrag") + .withUsername("postgres") + .withPassword("test") psql.start() - val mq = KGenericContainer("ibmcom/mq") - .withEnv("LICENSE", "accept") - .withEnv("MQ_QMGR_NAME", "QM1") - .withExposedPorts(1414, 9443) + val mq = + KGenericContainer("ibmcom/mq") + .withEnv("LICENSE", "accept") + .withEnv("MQ_QMGR_NAME", "QM1") + .withExposedPorts(1414, 9443) mq.start() diff --git a/src/test/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMQSenderTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMQSenderTest.kt index 71276585..08628a7d 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMQSenderTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/avstemming/AvstemmingMQSenderTest.kt @@ -30,25 +30,26 @@ private val IDAG = LocalDateTime.now() @Testcontainers @ContextConfiguration(initializers = [Containers.MQInitializer::class]) class AvstemmingMQSenderTest { - companion object { @Container var ibmMQContainer = Containers.ibmMQContainer } - private val mqConn = MQConnectionFactory().apply { - hostName = "localhost" - port = ibmMQContainer.getMappedPort(1414) - channel = "DEV.ADMIN.SVRCONN" - queueManager = "QM1" - transportType = WMQConstants.WMQ_CM_CLIENT - } + private val mqConn = + MQConnectionFactory().apply { + hostName = "localhost" + port = ibmMQContainer.getMappedPort(1414) + channel = "DEV.ADMIN.SVRCONN" + queueManager = "QM1" + transportType = WMQConstants.WMQ_CM_CLIENT + } - private val cf = UserCredentialsConnectionFactoryAdapter().apply { - setUsername("admin") - setPassword("passw0rd") - setTargetConnectionFactory(mqConn) - } + private val cf = + UserCredentialsConnectionFactoryAdapter().apply { + setUsername("admin") + setPassword("passw0rd") + setTargetConnectionFactory(mqConn) + } private val jmsTemplate = spyk(JmsTemplate(cf).apply { defaultDestinationName = TESTKØ }) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingIdTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingIdTest.kt index b51e318d..cd6c9f16 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingIdTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingIdTest.kt @@ -5,8 +5,6 @@ import ch.qos.logback.classic.spi.ILoggingEvent import ch.qos.logback.core.read.ListAppender import io.mockk.every import io.mockk.mockk -import java.time.LocalDateTime -import java.util.* import no.nav.familie.kontrakter.felles.oppdrag.GrensesnittavstemmingRequest import no.nav.familie.oppdrag.avstemming.AvstemmingSender import no.nav.familie.oppdrag.iverksetting.OppdragMapper @@ -31,7 +29,8 @@ import org.springframework.test.context.DynamicPropertySource import org.testcontainers.containers.PostgreSQLContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers - +import java.time.LocalDateTime +import java.util.UUID @ActiveProfiles("dev") @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @@ -46,15 +45,15 @@ class GrensesnittavstemmingIdTest( val oppdragLagerRepository: OppdragLagerRepository, @Autowired val oppdragMapper: OppdragMapper, ) { - val avstemmingSender: AvstemmingSender = mockk() - val grensesnittavstemmingService = GrensesnittavstemmingService( - avstemmingSender = avstemmingSender, - oppdragLagerRepository = oppdragLagerRepository, - tidligereKjørteGrensesnittavstemmingerRepository = tidligereKjørteGrensesnittavstemmingerRepository, - antall = 2, - ) + val grensesnittavstemmingService = + GrensesnittavstemmingService( + avstemmingSender = avstemmingSender, + oppdragLagerRepository = oppdragLagerRepository, + tidligereKjørteGrensesnittavstemmingerRepository = tidligereKjørteGrensesnittavstemmingerRepository, + antall = 2, + ) companion object { protected fun initLoggingEventListAppender(): ListAppender { @@ -63,7 +62,6 @@ class GrensesnittavstemmingIdTest( return listAppender } - @Container private val postgreSQLContainer = PostgreSQLContainer("postgres:latest") @@ -205,11 +203,12 @@ class GrensesnittavstemmingIdTest( } private fun opprettUtbetalingsoppdrag() { - val utbetalingsoppdrag = TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( - LocalDateTime.now().minusDays(1), - "BA", - utbetalingsperiode = arrayOf(TestOppdragMedAvstemmingsdato.lagUtbetalingsperiode()), - ) + val utbetalingsoppdrag = + TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( + LocalDateTime.now().minusDays(1), + "BA", + utbetalingsperiode = arrayOf(TestOppdragMedAvstemmingsdato.lagUtbetalingsperiode()), + ) val oppdrag = oppdragMapper.tilOppdrag(oppdragMapper.tilOppdrag110(utbetalingsoppdrag)) oppdragLagerRepository.opprettOppdrag(OppdragLager.lagFraOppdrag(utbetalingsoppdrag, oppdrag), 0) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapperTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapperTest.kt index 2e6f37b4..e69ce56c 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapperTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/grensesnittavstemming/GrensesnittavstemmingMapperTest.kt @@ -27,7 +27,6 @@ import java.time.format.DateTimeFormatter import kotlin.test.assertEquals class GrensesnittavstemmingMapperTest { - val fagområde = "BA" val tidspunktFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS") @@ -137,7 +136,10 @@ class GrensesnittavstemmingMapperTest { assertEquals(fagområde, actual.brukerId) } - fun assertDetaljData(utbetalingsoppdrag: Utbetalingsoppdrag, actual: Detaljdata) { + fun assertDetaljData( + utbetalingsoppdrag: Utbetalingsoppdrag, + actual: Detaljdata, + ) { assertEquals(DetaljType.MANG, actual.detaljType) assertEquals(utbetalingsoppdrag.aktoer, actual.offnr) assertEquals(fagområde, actual.avleverendeTransaksjonNokkel) @@ -147,13 +149,19 @@ class GrensesnittavstemmingMapperTest { assertEquals(null, actual.tekstMelding) } - fun assertTotalData(utbetalingsoppdrag: Utbetalingsoppdrag, actual: Totaldata) { + fun assertTotalData( + utbetalingsoppdrag: Utbetalingsoppdrag, + actual: Totaldata, + ) { assertEquals(1, actual.totalAntall) assertEquals(utbetalingsoppdrag.utbetalingsperiode.first().sats, actual.totalBelop) assertEquals(Fortegn.T, actual.fortegn) } - fun assertPeriodeData(utbetalingsoppdrag: Utbetalingsoppdrag, actual: Periodedata) { + fun assertPeriodeData( + utbetalingsoppdrag: Utbetalingsoppdrag, + actual: Periodedata, + ) { assertEquals( utbetalingsoppdrag.avstemmingTidspunkt.format(DateTimeFormatter.ofPattern("yyyyMMddHH")), actual.datoAvstemtFom, @@ -164,7 +172,10 @@ class GrensesnittavstemmingMapperTest { ) } - fun assertGrunnlagsdata(utbetalingsoppdrag: Utbetalingsoppdrag, actual: Grunnlagsdata) { + fun assertGrunnlagsdata( + utbetalingsoppdrag: Utbetalingsoppdrag, + actual: Grunnlagsdata, + ) { assertEquals(1, actual.manglerAntall) assertEquals(utbetalingsoppdrag.utbetalingsperiode.first().sats, actual.manglerBelop) assertEquals(Fortegn.T, actual.manglerFortegn) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/JaxbTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/JaxbTest.kt index 1bd6a641..8b673b38 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/JaxbTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/JaxbTest.kt @@ -22,17 +22,19 @@ import no.nav.system.os.tjenester.simulerfpservice.simulerfpserviceservicetypes. import no.nav.system.os.tjenester.simulerfpservice.simulerfpserviceservicetypes.SimulerBeregningResponse as SimulerBeregningResponse1 internal class JaxbTest { - @Test internal fun `oppdrag tilXml`() { val dato = LocalDate.of(2022, 1, 1) - val xmlGregorianCalendar = DatatypeFactory.newInstance() - .newXMLGregorianCalendar(GregorianCalendar.from(dato.atStartOfDay(ZoneId.of("Europe/Oslo")))) - val oppdrag = Oppdrag().apply { - oppdrag110 = Oppdrag110().apply { - datoForfall = xmlGregorianCalendar + val xmlGregorianCalendar = + DatatypeFactory.newInstance() + .newXMLGregorianCalendar(GregorianCalendar.from(dato.atStartOfDay(ZoneId.of("Europe/Oslo")))) + val oppdrag = + Oppdrag().apply { + oppdrag110 = + Oppdrag110().apply { + datoForfall = xmlGregorianCalendar + } } - } val xml = Jaxb.tilXml(oppdrag) val obj = Jaxb.tilOppdrag(xml) assertThat(xml).isEqualTo(Jaxb.tilXml(obj)) @@ -41,27 +43,33 @@ internal class JaxbTest { @Test internal fun `SimulerBeregningRequest tilXml`() { - val request = SimulerBeregningRequest().apply { - request = SimulerBeregningRequest1().apply { - simuleringsPeriode = SimulerBeregningRequest1.SimuleringsPeriode().apply { - datoSimulerFom = LocalDate.of(2022, 1, 2).toString() - } + val request = + SimulerBeregningRequest().apply { + request = + SimulerBeregningRequest1().apply { + simuleringsPeriode = + SimulerBeregningRequest1.SimuleringsPeriode().apply { + datoSimulerFom = LocalDate.of(2022, 1, 2).toString() + } + } } - } val xml = Jaxb.tilXml(request) assertThat(xml).isEqualTo(loadResource("xml/SimulerBeregningRequest.xml")) } @Test internal fun `SimulerBeregningResponse tilXml`() { - val response = SimulerBeregningResponse().apply { - response = SimulerBeregningResponse1().apply { - simulering = Beregning().apply { - belop = BigDecimal.TEN - datoBeregnet = LocalDate.of(2022, 1, 2).toString() - } + val response = + SimulerBeregningResponse().apply { + response = + SimulerBeregningResponse1().apply { + simulering = + Beregning().apply { + belop = BigDecimal.TEN + datoBeregnet = LocalDate.of(2022, 1, 2).toString() + } + } } - } val xml = Jaxb.tilXml(response) val obj = Jaxb.tilSimuleringsrespons(xml) assertThat(xml).isEqualTo(Jaxb.tilXml(obj)) @@ -70,17 +78,22 @@ internal class JaxbTest { @Test internal fun `TssSamhandlerData tilXml`() { - val tss = TssSamhandlerData().apply { - tssInputData = TssSamhandlerData.TssInputData().apply { - tssInputData = TssSamhandlerData.TssInputData().apply { - tssOutputData = TOutputElementer().apply { - svarStatus = SvarStatusType().apply { - alvorligGrad = "høy" - } + val tss = + TssSamhandlerData().apply { + tssInputData = + TssSamhandlerData.TssInputData().apply { + tssInputData = + TssSamhandlerData.TssInputData().apply { + tssOutputData = + TOutputElementer().apply { + svarStatus = + SvarStatusType().apply { + alvorligGrad = "høy" + } + } + } } - } } - } val xml = Jaxb.tilXml(tss) val obj = Jaxb.tilTssSamhandlerData(xml) assertThat(xml).isEqualTo(Jaxb.tilXml(obj)) @@ -89,11 +102,13 @@ internal class JaxbTest { @Test internal fun `iverksetting av tilbakekreving skal returnere localdate og ikke xmlgregorian`() { - val response = TilbakekrevingsvedtakResponse().apply { - tilbakekrevingsvedtak = TilbakekrevingsvedtakDto().apply { - datoVedtakFagsystem = LocalDate.of(2022, 1, 1) + val response = + TilbakekrevingsvedtakResponse().apply { + tilbakekrevingsvedtak = + TilbakekrevingsvedtakDto().apply { + datoVedtakFagsystem = LocalDate.of(2022, 1, 1) + } } - } assertThat(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(response)).isEqualTo( """ { diff --git a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/KontraktTilOppdragTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/KontraktTilOppdragTest.kt index d93df883..f32097f4 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/KontraktTilOppdragTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/KontraktTilOppdragTest.kt @@ -15,45 +15,48 @@ class KontraktTilOppdragTest { @Test fun mappeVedtaketTilMariBerg() { - val utbetalingsperiode1 = Utbetalingsperiode( - erEndringPåEksisterendePeriode = false, - opphør = null, - periodeId = 1, - forrigePeriodeId = null, - datoForVedtak = iDag, - klassifisering = "BATR", - vedtakdatoFom = iDag, - vedtakdatoTom = iDag.plusYears(6), - sats = BigDecimal.valueOf(1354L), - satsType = Utbetalingsperiode.SatsType.MND, - utbetalesTil = "12345678911", - behandlingId = 987654321L, - ) + val utbetalingsperiode1 = + Utbetalingsperiode( + erEndringPåEksisterendePeriode = false, + opphør = null, + periodeId = 1, + forrigePeriodeId = null, + datoForVedtak = iDag, + klassifisering = "BATR", + vedtakdatoFom = iDag, + vedtakdatoTom = iDag.plusYears(6), + sats = BigDecimal.valueOf(1354L), + satsType = Utbetalingsperiode.SatsType.MND, + utbetalesTil = "12345678911", + behandlingId = 987654321L, + ) - val utbetalingsperiode2 = Utbetalingsperiode( - erEndringPåEksisterendePeriode = false, - opphør = null, - periodeId = 2, - forrigePeriodeId = 1, - datoForVedtak = iDag, - klassifisering = "BATR", - vedtakdatoFom = iDag.plusYears(6).plusMonths(1), - vedtakdatoTom = iDag.plusYears(12).plusMonths(1), - sats = BigDecimal.valueOf(1054L), - satsType = Utbetalingsperiode.SatsType.MND, - utbetalesTil = "12345678911", - behandlingId = 987654321L, - utbetalingsgrad = 60, - ) + val utbetalingsperiode2 = + Utbetalingsperiode( + erEndringPåEksisterendePeriode = false, + opphør = null, + periodeId = 2, + forrigePeriodeId = 1, + datoForVedtak = iDag, + klassifisering = "BATR", + vedtakdatoFom = iDag.plusYears(6).plusMonths(1), + vedtakdatoTom = iDag.plusYears(12).plusMonths(1), + sats = BigDecimal.valueOf(1054L), + satsType = Utbetalingsperiode.SatsType.MND, + utbetalesTil = "12345678911", + behandlingId = 987654321L, + utbetalingsgrad = 60, + ) - val utbetalingsoppdrag = Utbetalingsoppdrag( - kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, - fagSystem = "BA", - saksnummer = "12345678", - aktoer = "12345678911", - saksbehandlerId = "Z992991", - utbetalingsperiode = listOf(utbetalingsperiode1, utbetalingsperiode2), - ) + val utbetalingsoppdrag = + Utbetalingsoppdrag( + kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, + fagSystem = "BA", + saksnummer = "12345678", + aktoer = "12345678911", + saksbehandlerId = "Z992991", + utbetalingsperiode = listOf(utbetalingsperiode1, utbetalingsperiode2), + ) val oppdrag110 = OppdragMapper().tilOppdrag110(utbetalingsoppdrag) @@ -64,28 +67,30 @@ class KontraktTilOppdragTest { @Test fun mappeOpphørPåVedtaketTilMariBerg() { - val utbetalingsperiode1 = Utbetalingsperiode( - erEndringPåEksisterendePeriode = true, - opphør = Opphør(iDag.plusMonths(1)), - periodeId = 3, - forrigePeriodeId = 2, - datoForVedtak = iDag, - klassifisering = "BATR", - vedtakdatoFom = iDag, - vedtakdatoTom = iDag.plusYears(2), - sats = BigDecimal.valueOf(1354L), - satsType = Utbetalingsperiode.SatsType.MND, - utbetalesTil = "12345678911", - behandlingId = 987654321L, - ) - val utbetalingsoppdrag = Utbetalingsoppdrag( - kodeEndring = Utbetalingsoppdrag.KodeEndring.ENDR, - fagSystem = "BA", - saksnummer = "12345678", - aktoer = "12345678911", - saksbehandlerId = "Z992991", - utbetalingsperiode = listOf(utbetalingsperiode1), - ) + val utbetalingsperiode1 = + Utbetalingsperiode( + erEndringPåEksisterendePeriode = true, + opphør = Opphør(iDag.plusMonths(1)), + periodeId = 3, + forrigePeriodeId = 2, + datoForVedtak = iDag, + klassifisering = "BATR", + vedtakdatoFom = iDag, + vedtakdatoTom = iDag.plusYears(2), + sats = BigDecimal.valueOf(1354L), + satsType = Utbetalingsperiode.SatsType.MND, + utbetalesTil = "12345678911", + behandlingId = 987654321L, + ) + val utbetalingsoppdrag = + Utbetalingsoppdrag( + kodeEndring = Utbetalingsoppdrag.KodeEndring.ENDR, + fagSystem = "BA", + saksnummer = "12345678", + aktoer = "12345678911", + saksbehandlerId = "Z992991", + utbetalingsperiode = listOf(utbetalingsperiode1), + ) val oppdrag110 = OppdragMapper().tilOppdrag110(utbetalingsoppdrag) @@ -93,7 +98,10 @@ class KontraktTilOppdragTest { assertOppdragslinje150(utbetalingsperiode1, utbetalingsoppdrag, oppdrag110.oppdragsLinje150[0]) } - private fun assertOppdrag110(utbetalingsoppdrag: Utbetalingsoppdrag, oppdrag110: Oppdrag110) { + private fun assertOppdrag110( + utbetalingsoppdrag: Utbetalingsoppdrag, + oppdrag110: Oppdrag110, + ) { Assertions.assertEquals(OppdragSkjemaConstants.KODE_AKSJON, oppdrag110.kodeAksjon) Assertions.assertEquals(utbetalingsoppdrag.kodeEndring.name, oppdrag110.kodeEndring.toString()) Assertions.assertEquals(utbetalingsoppdrag.fagSystem, oppdrag110.kodeFagomraade) @@ -156,7 +164,10 @@ class KontraktTilOppdragTest { } } - private fun assertOpphør(utbetalingsperiode: Utbetalingsperiode, oppdragsLinje150: OppdragsLinje150) { + private fun assertOpphør( + utbetalingsperiode: Utbetalingsperiode, + oppdragsLinje150: OppdragsLinje150, + ) { if (utbetalingsperiode.opphør == null) { Assertions.assertEquals(utbetalingsperiode.opphør, oppdragsLinje150.kodeStatusLinje) Assertions.assertEquals(utbetalingsperiode.opphør, oppdragsLinje150.datoStatusFom) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt index ea18ac24..e4b111bd 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt @@ -18,7 +18,6 @@ import org.springframework.core.env.Environment import kotlin.test.assertEquals class OppdragMQMottakTest { - lateinit var oppdragMottaker: OppdragMottaker val devEnv: Environment @@ -101,10 +100,10 @@ class OppdragMQMottakTest { every { oppdragLagerRepository.opprettOppdrag(any()) } just Runs val oppdragMottaker = OppdragMottaker(oppdragLagerRepository, devEnv) - oppdragMottaker.LOG = mockk() + oppdragMottaker.log = mockk() - every { oppdragMottaker.LOG.info(any()) } just Runs - every { oppdragMottaker.LOG.error(any()) } just Runs + every { oppdragMottaker.log.info(any()) } just Runs + every { oppdragMottaker.log.error(any()) } just Runs assertThrows { oppdragMottaker.mottaKvitteringFraOppdrag("kvittering-akseptert.xml".fraRessursSomTextMessage) } verify(exactly = 0) { oppdragLagerRepository.opprettOppdrag(any()) } @@ -118,10 +117,10 @@ class OppdragMQMottakTest { every { oppdragLagerRepository.opprettOppdrag(any()) } just Runs val oppdragMottaker = OppdragMottaker(oppdragLagerRepository, devEnv) - oppdragMottaker.LOG = mockk() + oppdragMottaker.log = mockk() - every { oppdragMottaker.LOG.info(any()) } just Runs - every { oppdragMottaker.LOG.error(any()) } just Runs + every { oppdragMottaker.log.info(any()) } just Runs + every { oppdragMottaker.log.error(any()) } just Runs assertThrows { oppdragMottaker.mottaKvitteringFraOppdrag("kvittering-akseptert.xml".fraRessursSomTextMessage) } verify(exactly = 0) { oppdragLagerRepository.opprettOppdrag(any()) } @@ -140,16 +139,16 @@ class OppdragMQMottakTest { every { oppdragLagerRepository.oppdaterKvitteringsmelding(any(), any(), any(), any()) } just Runs val oppdragMottaker = OppdragMottaker(oppdragLagerRepository, devEnv) - oppdragMottaker.LOG = mockk() + oppdragMottaker.log = mockk() - every { oppdragMottaker.LOG.info(any()) } just Runs - every { oppdragMottaker.LOG.warn(any()) } just Runs - every { oppdragMottaker.LOG.debug(any()) } just Runs + every { oppdragMottaker.log.info(any()) } just Runs + every { oppdragMottaker.log.warn(any()) } just Runs + every { oppdragMottaker.log.debug(any()) } just Runs oppdragMottaker.mottaKvitteringFraOppdrag("kvittering-akseptert.xml".fraRessursSomTextMessage) verify(exactly = 1) { oppdragLagerRepository.hentKvitteringsinformasjon(any()) } - verify(exactly = 1) { oppdragMottaker.LOG.warn(any()) } + verify(exactly = 1) { oppdragMottaker.log.warn(any()) } } private fun lesKvittering(filnavn: String): String { diff --git a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQSenderTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQSenderTest.kt index f404d8c0..d4333aba 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQSenderTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQSenderTest.kt @@ -35,24 +35,25 @@ private const val TEST_FAGSAKID = "123456789" @ContextConfiguration(initializers = [Containers.MQInitializer::class]) @EnableJms class OppdragMQSenderTest { - companion object { @Container var ibmMQContainer: Containers.MyGeneralContainer = Containers.ibmMQContainer } - private val mqConn = MQConnectionFactory().apply { - hostName = "localhost" - port = ibmMQContainer.getMappedPort(1414) - channel = "DEV.ADMIN.SVRCONN" - queueManager = "QM1" - transportType = WMQConstants.WMQ_CM_CLIENT - } + private val mqConn = + MQConnectionFactory().apply { + hostName = "localhost" + port = ibmMQContainer.getMappedPort(1414) + channel = "DEV.ADMIN.SVRCONN" + queueManager = "QM1" + transportType = WMQConstants.WMQ_CM_CLIENT + } - private val cf = UserCredentialsConnectionFactoryAdapter().apply { - setUsername("admin") - setPassword("passw0rd") - setTargetConnectionFactory(mqConn) - } + private val cf = + UserCredentialsConnectionFactoryAdapter().apply { + setUsername("admin") + setPassword("passw0rd") + setTargetConnectionFactory(mqConn) + } private val jmsTemplate = spyk(JmsTemplate(cf).apply { defaultDestinationName = TESTKØ }) @@ -79,50 +80,53 @@ class OppdragMQSenderTest { val avstemmingsTidspunkt = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS")) val objectFactory = ObjectFactory() - val testOppdragsLinje150 = objectFactory.createOppdragsLinje150().apply { - kodeEndringLinje = EndringsKode.NY.kode - vedtakId = avstemmingsTidspunkt - delytelseId = TEST_FAGSAKID - kodeKlassifik = KLASSEKODE_BARNETRYGD - datoVedtakFom = LocalDate.now().toXMLDate() - datoVedtakTom = LocalDate.now().plusDays(1).toXMLDate() - sats = SATS_BARNETRYGD.toBigDecimal() - fradragTillegg = OppdragSkjemaConstants.FRADRAG_TILLEGG - typeSats = SatsTypeKode.MÅNEDLIG.kode - brukKjoreplan = OppdragSkjemaConstants.BRUK_KJØREPLAN_DEFAULT - saksbehId = "Z999999" - utbetalesTilId = "12345678911" - henvisning = "987654321" - attestant180.add( - objectFactory.createAttestant180().apply { - attestantId = "Z999999" - }, - ) - } + val testOppdragsLinje150 = + objectFactory.createOppdragsLinje150().apply { + kodeEndringLinje = EndringsKode.NY.kode + vedtakId = avstemmingsTidspunkt + delytelseId = TEST_FAGSAKID + kodeKlassifik = KLASSEKODE_BARNETRYGD + datoVedtakFom = LocalDate.now().toXMLDate() + datoVedtakTom = LocalDate.now().plusDays(1).toXMLDate() + sats = SATS_BARNETRYGD.toBigDecimal() + fradragTillegg = OppdragSkjemaConstants.FRADRAG_TILLEGG + typeSats = SatsTypeKode.MÅNEDLIG.kode + brukKjoreplan = OppdragSkjemaConstants.BRUK_KJØREPLAN_DEFAULT + saksbehId = "Z999999" + utbetalesTilId = "12345678911" + henvisning = "987654321" + attestant180.add( + objectFactory.createAttestant180().apply { + attestantId = "Z999999" + }, + ) + } - val testOppdrag110 = Oppdrag110().apply { - kodeAksjon = "1" - kodeEndring = EndringsKode.NY.kode - kodeFagomraade = FAGOMRÅDE_BARNETRYGD - fagsystemId = TEST_FAGSAKID - utbetFrekvens = UtbetalingsfrekvensKode.MÅNEDLIG.kode - oppdragGjelderId = "12345678911" - datoOppdragGjelderFom = OppdragSkjemaConstants.OPPDRAG_GJELDER_DATO_FOM.toXMLDate() - saksbehId = "Z999999" - oppdragsEnhet120.add( - objectFactory.createOppdragsEnhet120().apply { - enhet = OppdragSkjemaConstants.ENHET - typeEnhet = OppdragSkjemaConstants.ENHET_TYPE - datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toXMLDate() - }, - ) - avstemming115 = objectFactory.createAvstemming115().apply { - nokkelAvstemming = avstemmingsTidspunkt - kodeKomponent = FAGOMRÅDE_BARNETRYGD - tidspktMelding = avstemmingsTidspunkt + val testOppdrag110 = + Oppdrag110().apply { + kodeAksjon = "1" + kodeEndring = EndringsKode.NY.kode + kodeFagomraade = FAGOMRÅDE_BARNETRYGD + fagsystemId = TEST_FAGSAKID + utbetFrekvens = UtbetalingsfrekvensKode.MÅNEDLIG.kode + oppdragGjelderId = "12345678911" + datoOppdragGjelderFom = OppdragSkjemaConstants.OPPDRAG_GJELDER_DATO_FOM.toXMLDate() + saksbehId = "Z999999" + oppdragsEnhet120.add( + objectFactory.createOppdragsEnhet120().apply { + enhet = OppdragSkjemaConstants.ENHET + typeEnhet = OppdragSkjemaConstants.ENHET_TYPE + datoEnhetFom = OppdragSkjemaConstants.ENHET_DATO_FOM.toXMLDate() + }, + ) + avstemming115 = + objectFactory.createAvstemming115().apply { + nokkelAvstemming = avstemmingsTidspunkt + kodeKomponent = FAGOMRÅDE_BARNETRYGD + tidspktMelding = avstemmingsTidspunkt + } + oppdragsLinje150.add(testOppdragsLinje150) } - oppdragsLinje150.add(testOppdragsLinje150) - } return objectFactory.createOppdrag().apply { oppdrag110 = testOppdrag110 diff --git a/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapperTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapperTest.kt index e1a2aed2..bc351bac 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapperTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingMapperTest.kt @@ -26,7 +26,6 @@ import kotlin.test.assertEquals import kotlin.test.assertNotNull class KonsistensavstemmingMapperTest { - private val fagområde = "BA" private val idag: LocalDateTime = LocalDateTime.now() private val tidspunktFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS") @@ -84,23 +83,25 @@ class KonsistensavstemmingMapperTest { @Test fun `totaldata skal akkumulere totalbeløp på alle perioder og totalAntall på alle oppdrag`() { - val utbetalingsoppdrag = lagTestUtbetalingsoppdrag( - idag, - fagområde, - "1", - lagUtbetalingsperiode(beløp = 100), - lagUtbetalingsperiode(beløp = 200), - ) + val utbetalingsoppdrag = + lagTestUtbetalingsoppdrag( + idag, + fagområde, + "1", + lagUtbetalingsperiode(beløp = 100), + lagUtbetalingsperiode(beløp = 200), + ) val utbetalingsoppdrag2 = lagTestUtbetalingsoppdrag(idag, fagområde, "2", lagUtbetalingsperiode(beløp = 50)) - val mapper = KonsistensavstemmingMapper( - fagområde, - listOf(utbetalingsoppdrag, utbetalingsoppdrag2), - idag, - 0, - 0, - true, - true, - ) + val mapper = + KonsistensavstemmingMapper( + fagområde, + listOf(utbetalingsoppdrag, utbetalingsoppdrag2), + idag, + 0, + 0, + true, + true, + ) val meldinger = mapper.lagAvstemmingsmeldinger() assertEquals(5, meldinger.size) assertEquals(KonsistensavstemmingConstants.DATA, meldinger[3].aksjonsdata.aksjonsType) @@ -110,13 +111,14 @@ class KonsistensavstemmingMapperTest { @Test fun `skal ikke lage melding hvis periode ikke er aktiv`() { - val utbetalingsperiode = lagUtbetalingsperiode( - fagområde, - 1, - 100, - LocalDate.now().minusYears(1), - LocalDate.now().minusYears(1), - ) + val utbetalingsperiode = + lagUtbetalingsperiode( + fagområde, + 1, + 100, + LocalDate.now().minusYears(1), + LocalDate.now().minusYears(1), + ) val utbetalingsoppdrag = lagTestUtbetalingsoppdrag(idag.plusYears(7), fagområde, "1", utbetalingsperiode) val mapper = KonsistensavstemmingMapper(fagområde, listOf(utbetalingsoppdrag), idag, 0, 0, true, true) val meldinger = mapper.lagAvstemmingsmeldinger() @@ -131,21 +133,25 @@ class KonsistensavstemmingMapperTest { internal fun `skal kaste feil hvis det finnes 2 utbetalingsoppdrag med samme saksnummer`() { val utbetalingsoppdrag = lagTestUtbetalingsoppdrag(idag.plusYears(7), fagområde, "1") val utbetalingsoppdrag2 = lagTestUtbetalingsoppdrag(idag.plusYears(7), fagområde, "1") - val mapper = KonsistensavstemmingMapper( - fagområde, - listOf(utbetalingsoppdrag, utbetalingsoppdrag2), - idag, - 0, - 0, - true, - true, - ) + val mapper = + KonsistensavstemmingMapper( + fagområde, + listOf(utbetalingsoppdrag, utbetalingsoppdrag2), + idag, + 0, + 0, + true, + true, + ) assertThat(catchThrowable { mapper.lagAvstemmingsmeldinger() }) .hasMessage("Har allerede lagt til 1 i listen over avstemminger") } - private fun assertAksjon(expected: String, actual: Aksjonsdata) { + private fun assertAksjon( + expected: String, + actual: Aksjonsdata, + ) { assertEquals(expected, actual.aksjonsType) assertEquals(KonsistensavstemmingConstants.KILDETYPE, actual.kildeType) assertEquals(KonsistensavstemmingConstants.KONSISTENSAVSTEMMING, actual.avstemmingType) @@ -156,13 +162,19 @@ class KonsistensavstemmingMapperTest { assertEquals(fagområde, actual.brukerId) } - private fun assertTotaldata(utbetalingsperiode: Utbetalingsperiode, actual: Totaldata) { + private fun assertTotaldata( + utbetalingsperiode: Utbetalingsperiode, + actual: Totaldata, + ) { assertEquals(BigInteger.ONE, actual.totalAntall) assertEquals(utbetalingsperiode.sats, actual.totalBelop) assertEquals(KonsistensavstemmingConstants.FORTEGN_T, actual.fortegn) } - private fun assertOppdragsdata(utbetalingsoppdrag: Utbetalingsoppdrag, actual: Oppdragsdata) { + private fun assertOppdragsdata( + utbetalingsoppdrag: Utbetalingsoppdrag, + actual: Oppdragsdata, + ) { assertEquals(fagområde, actual.fagomradeKode) assertEquals(utbetalingsoppdrag.saksnummer, actual.fagsystemId) assertEquals(UtbetalingsfrekvensKode.MÅNEDLIG.kode, actual.utbetalingsfrekvens) @@ -177,7 +189,11 @@ class KonsistensavstemmingMapperTest { ) } - private fun assertOppdragsLinjeListe(utbetalingsperiode: Utbetalingsperiode, saksbehandler: String, actual: Oppdragslinje) { + private fun assertOppdragsLinjeListe( + utbetalingsperiode: Utbetalingsperiode, + saksbehandler: String, + actual: Oppdragslinje, + ) { assertEquals(utbetalingsperiode.datoForVedtak.format(datoFormatter), actual.vedtakId) assertEquals(utbetalingsperiode.klassifisering, actual.klassifikasjonKode) assertEquals(utbetalingsperiode.vedtakdatoFom.format(datoFormatter), actual.vedtakPeriode.fom) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingServiceTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingServiceTest.kt index cd0a59f1..89f854fc 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/konsistensavstemming/KonsistensavstemmingServiceTest.kt @@ -32,7 +32,6 @@ import kotlin.test.assertEquals import kotlin.test.assertTrue class KonsistensavstemmingServiceTest { - private lateinit var konsistensavstemmingService: KonsistensavstemmingService private lateinit var oppdragLagerRepository: OppdragLagerRepository private lateinit var avstemmingSender: AvstemmingSender @@ -44,7 +43,7 @@ class KonsistensavstemmingServiceTest { private val aktiveFødselsnummere = listOf("12345678910", "11111111111") - private val utbetalingsoppdrag1_1 = + private val utbetalingsoppdrag1Init = lagUtbetalingsoppdrag( saksnummer, "1", @@ -53,14 +52,14 @@ class KonsistensavstemmingServiceTest { ) // Opphør på periode 2, ny periode med annet beløp - private val utbetalingsoppdrag1_2 = + private val utbetalingsoppdrag1Periode2Opphørt = lagUtbetalingsoppdrag( saksnummer, "2", lagUtbetalingsperiode(periodeId = 2, beløp = 100, behandlingsId = 1, opphør = true), lagUtbetalingsperiode(periodeId = 3, beløp = 211, behandlingsId = 2), ) - private val utbetalingsoppdrag2_1 = + private val utbetalingsoppdrag2Init = lagUtbetalingsoppdrag( saksnummer2, "3", @@ -89,12 +88,13 @@ class KonsistensavstemmingServiceTest { @Test internal fun `plukker ut perioder fra 2 utbetalingsoppdrag fra samme fagsak til en melding`() { every { oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(any(), eq(setOf("1", "2"))) } returns - listOf(utbetalingsoppdrag1_1, utbetalingsoppdrag1_2) + listOf(utbetalingsoppdrag1Init, utbetalingsoppdrag1Periode2Opphørt) - val perioder = listOf( - PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), - PerioderForBehandling("2", setOf(3), aktiveFødselsnummere[0]), - ) + val perioder = + listOf( + PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), + PerioderForBehandling("2", setOf(3), aktiveFødselsnummere[0]), + ) val request = KonsistensavstemmingRequestV2("BA", perioder, LocalDateTime.now()) konsistensavstemmingService.utførKonsistensavstemming(request, true, true, null) @@ -123,12 +123,13 @@ class KonsistensavstemmingServiceTest { @Test internal fun `Bruk verdi fra input til å sette utbetalTilId`() { every { oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(any(), eq(setOf("1", "2"))) } returns - listOf(utbetalingsoppdrag1_1, utbetalingsoppdrag1_2) + listOf(utbetalingsoppdrag1Init, utbetalingsoppdrag1Periode2Opphørt) - val perioder = listOf( - PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0], "tss-id"), - PerioderForBehandling("2", setOf(3), aktiveFødselsnummere[0]), - ) + val perioder = + listOf( + PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0], "tss-id"), + PerioderForBehandling("2", setOf(3), aktiveFødselsnummere[0]), + ) val request = KonsistensavstemmingRequestV2("BA", perioder, LocalDateTime.now()) konsistensavstemmingService.utførKonsistensavstemming(request, true, true, null) @@ -155,12 +156,13 @@ class KonsistensavstemmingServiceTest { @Test internal fun `sender hver fagsak i ulike meldinger`() { every { oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(any(), eq(setOf("1", "3"))) } returns - listOf(utbetalingsoppdrag1_1, utbetalingsoppdrag2_1) + listOf(utbetalingsoppdrag1Init, utbetalingsoppdrag2Init) - val perioder = listOf( - PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), - PerioderForBehandling("3", setOf(1, 2), aktiveFødselsnummere[1]), - ) + val perioder = + listOf( + PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), + PerioderForBehandling("3", setOf(1, 2), aktiveFødselsnummere[1]), + ) val request = KonsistensavstemmingRequestV2("BA", perioder, LocalDateTime.now()) @@ -260,16 +262,17 @@ class KonsistensavstemmingServiceTest { @Test internal fun `Sender oppdragsmeldinger uten start eller avslutt melding`() { every { oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(any(), eq(setOf("1", "3"))) } returns - listOf(utbetalingsoppdrag1_1, utbetalingsoppdrag2_1) + listOf(utbetalingsoppdrag1Init, utbetalingsoppdrag2Init) every { oppdragLagerRepository.hentUtbetalingsoppdragForKonsistensavstemming(any(), eq(emptySet())) } returns emptyList() every { mellomlagringKonsistensavstemmingRepository.insert(any()) } returns mockk() val avstemmingstidspunkt = LocalDateTime.now() - val perioder = listOf( - PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), - PerioderForBehandling("3", setOf(1, 2), aktiveFødselsnummere[1]), - ) + val perioder = + listOf( + PerioderForBehandling("1", setOf(1), aktiveFødselsnummere[0]), + PerioderForBehandling("3", setOf(1, 2), aktiveFødselsnummere[1]), + ) val request = KonsistensavstemmingRequestV2("BA", perioder, avstemmingstidspunkt) val transaksjonsId = UUID.randomUUID() @@ -303,33 +306,35 @@ class KonsistensavstemmingServiceTest { beløp: Int, behandlingsId: Long, opphør: Boolean = false, - ) = - Utbetalingsperiode( - erEndringPåEksisterendePeriode = false, - opphør = if (opphør) Opphør(LocalDate.now()) else null, - periodeId = periodeId, - forrigePeriodeId = forrigePeriodeId, - datoForVedtak = LocalDate.now(), - klassifisering = "EF", - vedtakdatoFom = LocalDate.now().minusYears(1), - vedtakdatoTom = LocalDate.now().plusYears(1), - sats = BigDecimal(beløp), - satsType = Utbetalingsperiode.SatsType.MND, - utbetalesTil = "meg", - behandlingId = behandlingsId, - ) - - private fun lagUtbetalingsoppdrag(saksnummer: String, behandlingId: String, vararg utbetalingsperiode: Utbetalingsperiode) = - UtbetalingsoppdragForKonsistensavstemming( - saksnummer, - behandlingId, - Utbetalingsoppdrag( - kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, - fagSystem = "BA", - saksnummer = saksnummer, - aktoer = "aktoer", - saksbehandlerId = "saksbehandler", - utbetalingsperiode = utbetalingsperiode.toList(), - ), - ) + ) = Utbetalingsperiode( + erEndringPåEksisterendePeriode = false, + opphør = if (opphør) Opphør(LocalDate.now()) else null, + periodeId = periodeId, + forrigePeriodeId = forrigePeriodeId, + datoForVedtak = LocalDate.now(), + klassifisering = "EF", + vedtakdatoFom = LocalDate.now().minusYears(1), + vedtakdatoTom = LocalDate.now().plusYears(1), + sats = BigDecimal(beløp), + satsType = Utbetalingsperiode.SatsType.MND, + utbetalesTil = "meg", + behandlingId = behandlingsId, + ) + + private fun lagUtbetalingsoppdrag( + saksnummer: String, + behandlingId: String, + vararg utbetalingsperiode: Utbetalingsperiode, + ) = UtbetalingsoppdragForKonsistensavstemming( + saksnummer, + behandlingId, + Utbetalingsoppdrag( + kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, + fagSystem = "BA", + saksnummer = saksnummer, + aktoer = "aktoer", + saksbehandlerId = "saksbehandler", + utbetalingsperiode = utbetalingsperiode.toList(), + ), + ) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepositoryTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepositoryTest.kt index 1f528179..3d680546 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepositoryTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/repository/MellomlagringKonsistensavstemmingRepositoryTest.kt @@ -1,23 +1,21 @@ package no.nav.familie.oppdrag.repository import no.nav.familie.oppdrag.service.Fagsystem -import no.nav.familie.oppdrag.util.Containers import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.context.SpringBootTest import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.FilterType import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration -import org.testcontainers.junit.jupiter.Container -import org.testcontainers.junit.jupiter.Testcontainers -import java.util.UUID -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.test.context.DynamicPropertyRegistry import org.springframework.test.context.DynamicPropertySource import org.testcontainers.containers.PostgreSQLContainer +import org.testcontainers.junit.jupiter.Container +import org.testcontainers.junit.jupiter.Testcontainers +import java.util.UUID import kotlin.test.assertEquals @ActiveProfiles("dev") @@ -29,7 +27,6 @@ import kotlin.test.assertEquals @DisabledIfEnvironmentVariable(named = "CIRCLECI", matches = "true") @Testcontainers internal class MellomlagringKonsistensavstemmingRepositoryTest { - @Autowired lateinit var repository: MellomlagringKonsistensavstemmingRepository companion object { @@ -75,13 +72,16 @@ internal class MellomlagringKonsistensavstemmingRepositoryTest { assertEquals(0, repository.hentAggregertAntallOppdrag(transaksjonsId2)) } - fun opprettMellomlagringKonsistensavstemming(antallOppdrag: Int, totalBeløp: Long, transaksjonsId: UUID) = - MellomlagringKonsistensavstemming( - fagsystem = Fagsystem.BA, - transaksjonsId = transaksjonsId, - antallOppdrag = antallOppdrag, - totalBeløp = totalBeløp, - ) + fun opprettMellomlagringKonsistensavstemming( + antallOppdrag: Int, + totalBeløp: Long, + transaksjonsId: UUID, + ) = MellomlagringKonsistensavstemming( + fagsystem = Fagsystem.BA, + transaksjonsId = transaksjonsId, + antallOppdrag = antallOppdrag, + totalBeløp = totalBeløp, + ) @Configuration @ComponentScan( diff --git a/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbcTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbcTest.kt index 9445206b..5d4ebd42 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbcTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragLagerRepositoryJdbcTest.kt @@ -2,7 +2,6 @@ package no.nav.familie.oppdrag.repository import no.nav.familie.kontrakter.felles.oppdrag.OppdragStatus import no.nav.familie.oppdrag.iverksetting.Jaxb -import no.nav.familie.oppdrag.util.Containers import no.nav.familie.oppdrag.util.TestConfig import no.nav.familie.oppdrag.util.TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag import no.nav.familie.oppdrag.util.TestOppdragMedAvstemmingsdato.lagUtbetalingsperiode @@ -14,21 +13,20 @@ import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.context.SpringBootTest import org.springframework.dao.DuplicateKeyException import org.springframework.jdbc.core.JdbcTemplate import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.DynamicPropertyRegistry +import org.springframework.test.context.DynamicPropertySource +import org.testcontainers.containers.PostgreSQLContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter import java.util.UUID -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase -import org.springframework.test.context.DynamicPropertyRegistry -import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.PostgreSQLContainer import kotlin.test.assertFailsWith @ActiveProfiles("dev") @@ -37,7 +35,6 @@ import kotlin.test.assertFailsWith @DisabledIfEnvironmentVariable(named = "CIRCLECI", matches = "true") @Testcontainers internal class OppdragLagerRepositoryJdbcTest { - @Autowired lateinit var oppdragLagerRepository: OppdragLagerRepository @Autowired lateinit var jdbcTemplate: JdbcTemplate @@ -73,8 +70,9 @@ internal class OppdragLagerRepositoryJdbcTest { @Test fun skal_lagre_status() { - val oppdragLager = utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager - .copy(status = OppdragStatus.LAGT_PÅ_KØ) + val oppdragLager = + utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager + .copy(status = OppdragStatus.LAGT_PÅ_KØ) oppdragLagerRepository.opprettOppdrag(oppdragLager) @@ -89,8 +87,9 @@ internal class OppdragLagerRepositoryJdbcTest { @Test fun skal_lagre_kvitteringsmelding() { - val oppdragLager = utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager - .copy(status = OppdragStatus.LAGT_PÅ_KØ) + val oppdragLager = + utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager + .copy(status = OppdragStatus.LAGT_PÅ_KØ) oppdragLagerRepository.opprettOppdrag(oppdragLager) val hentetOppdrag = oppdragLagerRepository.hentKvitteringsinformasjon(oppdragLager.id).single() @@ -107,8 +106,9 @@ internal class OppdragLagerRepositoryJdbcTest { @Test fun `skal kun sette kvitteringsmeldingen til null`() { - val oppdragLager = utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager - .copy(status = OppdragStatus.LAGT_PÅ_KØ, kvitteringsmelding = kvitteringsmelding()) + val oppdragLager = + utbetalingsoppdragMedTilfeldigAktoer().somOppdragLager + .copy(status = OppdragStatus.LAGT_PÅ_KØ, kvitteringsmelding = kvitteringsmelding()) oppdragLagerRepository.opprettOppdrag(oppdragLager) val hentetOppdrag = oppdragLagerRepository.hentKvitteringsinformasjon(oppdragLager.id).single() @@ -121,10 +121,11 @@ internal class OppdragLagerRepositoryJdbcTest { } private fun kvitteringsmelding(): Mmel { - val kvitteringsmelding = Jaxb.tilOppdrag( - this::class.java.getResourceAsStream("/kvittering-avvist.xml") - .bufferedReader().use { it.readText() }, - ) + val kvitteringsmelding = + Jaxb.tilOppdrag( + this::class.java.getResourceAsStream("/kvittering-avvist.xml") + .bufferedReader().use { it.readText() }, + ) return kvitteringsmelding.mmel } @@ -169,21 +170,24 @@ internal class OppdragLagerRepositoryJdbcTest { page, ).map { it.behandlingId.toInt() } - val oppdrag1 = lagTestUtbetalingsoppdrag( - dag.atTime(4, 0), - "BA", - utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 3)), - ) - val oppdrag2 = lagTestUtbetalingsoppdrag( - dag.atTime(12, 0), - "BA", - utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 1)), - ) - val oppdrag3 = lagTestUtbetalingsoppdrag( - dag.atTime(16, 0), - "BA", - utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 2)), - ) + val oppdrag1 = + lagTestUtbetalingsoppdrag( + dag.atTime(4, 0), + "BA", + utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 3)), + ) + val oppdrag2 = + lagTestUtbetalingsoppdrag( + dag.atTime(12, 0), + "BA", + utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 1)), + ) + val oppdrag3 = + lagTestUtbetalingsoppdrag( + dag.atTime(16, 0), + "BA", + utbetalingsperiode = arrayOf(lagUtbetalingsperiode(behandlingId = 2)), + ) listOf(oppdrag1, oppdrag2, oppdrag3).forEach { oppdragLagerRepository.opprettOppdrag(it.somOppdragLager) } assertThat(hentOppdragForGrensesnittsavstemming(page = 0)).containsExactly(1, 2) @@ -293,10 +297,11 @@ internal class OppdragLagerRepositoryJdbcTest { oppdragLagerRepository.opprettOppdrag(oppdragLager1) oppdragLagerRepository.opprettOppdrag(oppdragLager2) - val hentedeOppdrag = oppdragLagerRepository.hentSisteUtbetalingsoppdragForFagsaker( - fagsystem = oppdragLager1.fagsystem, - fagsakIder = setOf(oppdragLager1.fagsakId, oppdragLager2.fagsakId), - ) + val hentedeOppdrag = + oppdragLagerRepository.hentSisteUtbetalingsoppdragForFagsaker( + fagsystem = oppdragLager1.fagsystem, + fagsakIder = setOf(oppdragLager1.fagsakId, oppdragLager2.fagsakId), + ) assertThat(hentedeOppdrag.map { it.utbetalingsoppdrag }).containsAll(listOf(utbetalingsoppdrag1, utbetalingsoppdrag2)) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragStatusTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragStatusTest.kt index ef53b649..997c31f7 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragStatusTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/repository/OppdragStatusTest.kt @@ -7,7 +7,6 @@ import org.junit.jupiter.api.Test import kotlin.test.assertEquals internal class OppdragStatusTest { - @Test fun skal_konvertere_status() { assertEquals(OppdragStatus.KVITTERT_OK, lagOppdrag("00").oppdragStatus) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerIntegrationTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerIntegrationTest.kt index b85ef52d..bc2b9686 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerIntegrationTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerIntegrationTest.kt @@ -14,19 +14,19 @@ import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.context.SpringBootTest import org.springframework.http.HttpStatus import org.springframework.jms.annotation.EnableJms import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.DynamicPropertyRegistry +import org.springframework.test.context.DynamicPropertySource +import org.testcontainers.containers.PostgreSQLContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers import org.testcontainers.shaded.org.awaitility.Awaitility.await import java.time.Duration -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase -import org.springframework.test.context.DynamicPropertyRegistry -import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.PostgreSQLContainer import kotlin.test.assertEquals @ActiveProfiles("dev") @@ -37,7 +37,6 @@ import kotlin.test.assertEquals @DisabledIfEnvironmentVariable(named = "CIRCLECI", matches = "true") @Testcontainers internal class OppdragControllerIntegrationTest { - @Autowired lateinit var oppdragService: OppdragService @Autowired lateinit var oppdragLagerRepository: OppdragLagerRepository @@ -100,7 +99,10 @@ internal class OppdragControllerIntegrationTest { assertOppdragStatus(utbetalingsoppdrag.oppdragId, OppdragStatus.KVITTERT_OK) } - private fun assertOppdragStatus(oppdragId: OppdragId, oppdragStatus: OppdragStatus) { + private fun assertOppdragStatus( + oppdragId: OppdragId, + oppdragStatus: OppdragStatus, + ) { await() .pollInterval(Duration.ofMillis(200)) .atMost(Duration.ofSeconds(10)).untilAsserted { diff --git a/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerTest.kt index 8ab05f3b..ef9f708f 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/rest/OppdragControllerTest.kt @@ -26,34 +26,34 @@ import java.time.LocalDateTime import kotlin.test.assertEquals internal class OppdragControllerTest { - val localDateTimeNow = LocalDateTime.now() val localDateNow = LocalDate.now() - val utbetalingsoppdrag = Utbetalingsoppdrag( - Utbetalingsoppdrag.KodeEndring.NY, - "BA", - "SAKSNR", - "PERSONID", - "SAKSBEHANDLERID", - localDateTimeNow, - listOf( - Utbetalingsperiode( - true, - Opphør(localDateNow), - 2, - 1, - localDateNow, - "BATR", - localDateNow, - localDateNow, - BigDecimal.ONE, - Utbetalingsperiode.SatsType.MND, - "UTEBETALES_TIL", - 1, + val utbetalingsoppdrag = + Utbetalingsoppdrag( + Utbetalingsoppdrag.KodeEndring.NY, + "BA", + "SAKSNR", + "PERSONID", + "SAKSBEHANDLERID", + localDateTimeNow, + listOf( + Utbetalingsperiode( + true, + Opphør(localDateNow), + 2, + 1, + localDateNow, + "BATR", + localDateNow, + localDateNow, + BigDecimal.ONE, + Utbetalingsperiode.SatsType.MND, + "UTEBETALES_TIL", + 1, + ), ), - ), - ) + ) @Test fun `Skal lagre oppdrag for utbetalingoppdrag`() { @@ -129,7 +129,11 @@ internal class OppdragControllerTest { val oppdragLagerRepository = mockk() if (alleredeOpprettet) { - every { oppdragLagerRepository.opprettOppdrag(any()) } throws org.springframework.dao.DuplicateKeyException("Duplicate key exception") + every { + oppdragLagerRepository.opprettOppdrag( + any(), + ) + } throws org.springframework.dao.DuplicateKeyException("Duplicate key exception") } else { every { oppdragLagerRepository.opprettOppdrag(any()) } just Runs } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingServiceTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingServiceTest.kt index eeb36e51..e70d6234 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/service/GrensesnittavstemmingServiceTest.kt @@ -7,6 +7,8 @@ import io.mockk.verify import no.nav.familie.kontrakter.felles.oppdrag.GrensesnittavstemmingRequest import no.nav.familie.oppdrag.avstemming.AvstemmingSender import no.nav.familie.oppdrag.repository.OppdragLagerRepository +import no.nav.familie.oppdrag.repository.TidligereKjørtGrensesnittavstemming +import no.nav.familie.oppdrag.repository.TidligereKjørteGrensesnittavstemmingerRepository import no.nav.familie.oppdrag.repository.somAvstemming import no.nav.familie.oppdrag.util.TestOppdragMedAvstemmingsdato import no.nav.virksomhet.tjenester.avstemming.meldinger.v1.AksjonType @@ -16,27 +18,24 @@ import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import java.time.LocalDateTime import java.util.Optional -import no.nav.familie.oppdrag.repository.TidligereKjørtGrensesnittavstemming -import no.nav.familie.oppdrag.repository.TidligereKjørteGrensesnittavstemmingerRepository class GrensesnittavstemmingServiceTest { - val fagområde = "EFOG" val antall = 2 val avstemmingSender = mockk() val oppdragLagerRepository = mockk() val tidligereKjørteGrensesnittavstemmingerRepository = mockk() - val grensesnittavstemmingService = GrensesnittavstemmingService( - avstemmingSender = avstemmingSender, - oppdragLagerRepository = oppdragLagerRepository, - tidligereKjørteGrensesnittavstemmingerRepository = tidligereKjørteGrensesnittavstemmingerRepository, - antall = antall - ) + val grensesnittavstemmingService = + GrensesnittavstemmingService( + avstemmingSender = avstemmingSender, + oppdragLagerRepository = oppdragLagerRepository, + tidligereKjørteGrensesnittavstemmingerRepository = tidligereKjørteGrensesnittavstemmingerRepository, + antall = antall, + ) val slot = mutableListOf() - @BeforeEach fun setUp() { slot.clear() @@ -44,7 +43,11 @@ class GrensesnittavstemmingServiceTest { oppdragLagerRepository.hentIverksettingerForGrensesnittavstemming(any(), any(), any(), antall, any()) } returns emptyList() - every { tidligereKjørteGrensesnittavstemmingerRepository.findById(any()) } returns Optional.empty() + every { + tidligereKjørteGrensesnittavstemmingerRepository.findById( + any(), + ) + } returns Optional.empty() justRun { avstemmingSender.sendGrensesnittAvstemming(capture(slot)) } } @@ -57,41 +60,41 @@ class GrensesnittavstemmingServiceTest { any(), any(), antall, - 0 + 0, ) } returns - listOf( - TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( - LocalDateTime.now(), - fagområde - ).somAvstemming, - TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( - LocalDateTime.now(), - fagområde - ).somAvstemming, - ) + listOf( + TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( + LocalDateTime.now(), + fagområde, + ).somAvstemming, + TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( + LocalDateTime.now(), + fagområde, + ).somAvstemming, + ) every { oppdragLagerRepository.hentIverksettingerForGrensesnittavstemming( any(), any(), any(), antall, - 1 + 1, ) } returns - listOf( - TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( - LocalDateTime.now(), - fagområde - ).somAvstemming - ) + listOf( + TestOppdragMedAvstemmingsdato.lagTestUtbetalingsoppdrag( + LocalDateTime.now(), + fagområde, + ).somAvstemming, + ) grensesnittavstemmingService.utførGrensesnittavstemming( GrensesnittavstemmingRequest( fagsystem = fagområde, fra = LocalDateTime.now(), til = LocalDateTime.now(), - avstemmingId = null + avstemmingId = null, ), ) diff --git a/src/test/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingServiceTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingServiceTest.kt index 686b15a9..4664daaa 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/service/MellomlagringKonsistensavstemmingServiceTest.kt @@ -10,7 +10,6 @@ import java.util.UUID import kotlin.test.assertEquals class MellomlagringKonsistensavstemmingServiceTest { - private lateinit var mellomlagringKonsistensavstemmingRepository: MellomlagringKonsistensavstemmingRepository private lateinit var mellomlagringKonsistensavstemmingService: MellomlagringKonsistensavstemmingService @@ -20,7 +19,9 @@ class MellomlagringKonsistensavstemmingServiceTest { fun setUp() { mellomlagringKonsistensavstemmingRepository = mockk() mellomlagringKonsistensavstemmingService = - MellomlagringKonsistensavstemmingService(mellomlagringKonsistensavstemmingRepository = mellomlagringKonsistensavstemmingRepository) + MellomlagringKonsistensavstemmingService( + mellomlagringKonsistensavstemmingRepository = mellomlagringKonsistensavstemmingRepository, + ) } @Test @@ -73,6 +74,5 @@ class MellomlagringKonsistensavstemmingServiceTest { sendStartmelding: Boolean, sendAvsluttmelding: Boolean, transaksjonsId: UUID?, - ) = - KonsistensavstemmingMetaInfo(Fagsystem.BA, transaksjonsId, LocalDateTime.now(), sendStartmelding, sendAvsluttmelding, emptyList()) + ) = KonsistensavstemmingMetaInfo(Fagsystem.BA, transaksjonsId, LocalDateTime.now(), sendStartmelding, sendAvsluttmelding, emptyList()) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImplTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImplTest.kt index dabb0da5..65310027 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImplTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/SimuleringTjenesteImplTest.kt @@ -5,27 +5,25 @@ import no.nav.familie.kontrakter.felles.tilbakekreving.Ytelsestype import no.nav.familie.oppdrag.repository.SimuleringLager import no.nav.familie.oppdrag.repository.SimuleringLagerTjeneste import no.nav.familie.oppdrag.simulering.util.lagTestUtbetalingsoppdragForFGBMedEttBarn -import no.nav.familie.oppdrag.util.Containers import org.junit.jupiter.api.Assertions.assertNotNull import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.context.SpringBootTest import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.FilterType import org.springframework.data.jdbc.core.JdbcAggregateOperations import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.DynamicPropertyRegistry +import org.springframework.test.context.DynamicPropertySource +import org.testcontainers.containers.PostgreSQLContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers import java.math.BigDecimal import java.time.LocalDate -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase -import org.springframework.test.context.DynamicPropertyRegistry -import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.PostgreSQLContainer import kotlin.test.assertEquals import kotlin.test.assertTrue @@ -35,7 +33,6 @@ import kotlin.test.assertTrue @DisabledIfEnvironmentVariable(named = "CIRCLECI", matches = "true") @Testcontainers internal class SimuleringTjenesteImplTest { - @Autowired lateinit var simuleringLagerTjeneste: SimuleringLagerTjeneste @Autowired lateinit var simuleringTjeneste: SimuleringTjeneste @@ -95,14 +92,15 @@ internal class SimuleringTjenesteImplTest { ), ) - val feilutbetalingerFraSimulering = simuleringTjeneste - .hentFeilutbetalinger( - HentFeilutbetalingerFraSimuleringRequest( - ytelsestype = Ytelsestype.OVERGANGSSTØNAD, - eksternFagsakId = eksternFagsakId, - fagsystemsbehandlingId = fagsystemsbehandlingId, - ), - ) + val feilutbetalingerFraSimulering = + simuleringTjeneste + .hentFeilutbetalinger( + HentFeilutbetalingerFraSimuleringRequest( + ytelsestype = Ytelsestype.OVERGANGSSTØNAD, + eksternFagsakId = eksternFagsakId, + fagsystemsbehandlingId = fagsystemsbehandlingId, + ), + ) assertTrue { feilutbetalingerFraSimulering.feilutbetaltePerioder.isNotEmpty() && feilutbetalingerFraSimulering.feilutbetaltePerioder.size == 1 @@ -135,14 +133,15 @@ internal class SimuleringTjenesteImplTest { ), ) - val feilutbetalingerFraSimulering = simuleringTjeneste - .hentFeilutbetalinger( - HentFeilutbetalingerFraSimuleringRequest( - ytelsestype = Ytelsestype.BARNETRYGD, - eksternFagsakId = eksternFagsakId, - fagsystemsbehandlingId = fagsystemsbehandlingId, - ), - ) + val feilutbetalingerFraSimulering = + simuleringTjeneste + .hentFeilutbetalinger( + HentFeilutbetalingerFraSimuleringRequest( + ytelsestype = Ytelsestype.BARNETRYGD, + eksternFagsakId = eksternFagsakId, + fagsystemsbehandlingId = fagsystemsbehandlingId, + ), + ) assertTrue { feilutbetalingerFraSimulering.feilutbetaltePerioder.isNotEmpty() && feilutbetalingerFraSimulering.feilutbetaltePerioder.size == 3 @@ -189,14 +188,15 @@ internal class SimuleringTjenesteImplTest { ), ) - val feilutbetalingerFraSimulering = simuleringTjeneste - .hentFeilutbetalinger( - HentFeilutbetalingerFraSimuleringRequest( - ytelsestype = Ytelsestype.BARNETILSYN, - eksternFagsakId = eksternFagsakId, - fagsystemsbehandlingId = fagsystemsbehandlingId, - ), - ) + val feilutbetalingerFraSimulering = + simuleringTjeneste + .hentFeilutbetalinger( + HentFeilutbetalingerFraSimuleringRequest( + ytelsestype = Ytelsestype.BARNETILSYN, + eksternFagsakId = eksternFagsakId, + fagsystemsbehandlingId = fagsystemsbehandlingId, + ), + ) assertTrue { feilutbetalingerFraSimulering.feilutbetaltePerioder.isEmpty() } } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/Periode.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/Periode.kt index 0b217957..59419b50 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/Periode.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/Periode.kt @@ -46,11 +46,12 @@ data class Periode constructor( sats = sats, typeSats = typeSats, kodeKlassifik = kodeKlassifik, - periodeType = if (oldSats <= sats) { - PeriodeType.ØKNING - } else { - PeriodeType.REDUKSJON - }, + periodeType = + if (oldSats <= sats) { + PeriodeType.ØKNING + } else { + PeriodeType.REDUKSJON + }, ) override fun compareTo(other: Periode): Int { diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeGenerator.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeGenerator.kt index 076d5758..ac3f2324 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeGenerator.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeGenerator.kt @@ -10,6 +10,7 @@ import java.util.Collections class PeriodeGenerator { var opphørsPerioder: MutableList = ArrayList() var ytelsesPerioder: MutableList = ArrayList() + fun genererPerioder(oppdragslinjeList: List): List? { lagOpphørOgYtelse(oppdragslinjeList) Collections.sort(ytelsesPerioder) @@ -297,7 +298,13 @@ class PeriodeGenerator { removeYtelsesPerioder.add(ytelse) continue@ytelseloop // Scenario 9 - } else if (ytelse.fom.isAfter(opphør.fom) && !ytelse.tom.isAfter(opphør.tom)) { // ytelse.getFom() er implisit før opphør.getTom() da ytelse.getFom() ikke kan være etter ytelse.getTom() + } else if (ytelse.fom.isAfter( + opphør.fom, + ) && + !ytelse.tom.isAfter( + opphør.tom, + ) + ) { // ytelse.getFom() er implisit før opphør.getTom() da ytelse.getFom() ikke kan være etter ytelse.getTom() opphør.sats?.let { Periode( ytelse.fom, @@ -311,7 +318,13 @@ class PeriodeGenerator { removeYtelsesPerioder.add(ytelse) continue@ytelseloop // Scenario 10 & 11 - } else if (ytelse.fom.isAfter(opphør.fom) && !ytelse.fom.isAfter(opphør.tom)) { // ytelse.getTom() er implisit after opphør.getTom() ellers ville den truffet forrige if-statement + } else if (ytelse.fom.isAfter( + opphør.fom, + ) && + !ytelse.fom.isAfter( + opphør.tom, + ) + ) { // ytelse.getTom() er implisit after opphør.getTom() ellers ville den truffet forrige if-statement opphør.sats?.let { Periode( ytelse.fom, @@ -360,9 +373,13 @@ class PeriodeGenerator { private fun lagOpphørOgYtelse(oppdragslinjeList: List) { for (oppdragslinje in oppdragslinjeList) { - assert(oppdragslinje.typeSats == "MND" || oppdragslinje.typeSats == "DAG") { "Forventet at typeSats er enten DAG eller MND, men typeSats var: " + oppdragslinje.typeSats } + assert(oppdragslinje.typeSats == "MND" || oppdragslinje.typeSats == "DAG") { + "Forventet at typeSats er enten DAG eller MND, men typeSats var: " + oppdragslinje.typeSats + } if (oppdragslinje.kodeEndringLinje == "ENDR") { - assert(oppdragslinje.kodeStatusLinje == KodeStatusLinje.OPPH) { "Forventet at KodeStatusLinje er OPPH når KodeEndringLinje er ENDR" } + assert( + oppdragslinje.kodeStatusLinje == KodeStatusLinje.OPPH, + ) { "Forventet at KodeStatusLinje er OPPH når KodeEndringLinje er ENDR" } if (oppdragslinje.datoStatusFom != null) { opphørsPerioder.add( Periode( diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeType.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeType.kt index 22473aed..94ab5f4e 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeType.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/PeriodeType.kt @@ -1,5 +1,8 @@ package no.nav.familie.oppdrag.simulering.mock enum class PeriodeType { - YTEL, OPPH, ØKNING, REDUKSJON + YTEL, + OPPH, + ØKNING, + REDUKSJON, } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGenerator.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGenerator.kt index 03b5bff1..9596a6aa 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGenerator.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGenerator.kt @@ -20,6 +20,7 @@ class SimuleringGenerator { var erRefusjon: Boolean? = null var refunderesOrgNr: String? = null var oppdragsPeriodeList: List? = ArrayList() + fun opprettSimuleringsResultat(simulerBeregningRequest: SimulerBeregningRequest): SimulerBeregningResponse { erRefusjon = erRefusjon(simulerBeregningRequest.request.oppdrag.oppdragslinje) oppdragsPeriodeList = periodeGenerator.genererPerioder(simulerBeregningRequest.request.oppdrag.oppdragslinje) @@ -42,7 +43,10 @@ class SimuleringGenerator { } refunderesOrgNr = oppdragslinjer[0].refusjonsInfo.refunderesId for (oppdragslinje in oppdragslinjer) { - require(!(oppdragslinje.refusjonsInfo.refunderesId.isEmpty() || oppdragslinje.refusjonsInfo.refunderesId != refunderesOrgNr)) { "Ved refusjon må alle oppdragslinjer ha samme refusjonsInfo. Både orgnr " + refunderesOrgNr + " og " + oppdragslinje.refusjonsInfo.refunderesId + "ble funnet i samme request." } + require(!(oppdragslinje.refusjonsInfo.refunderesId.isEmpty() || oppdragslinje.refusjonsInfo.refunderesId != refunderesOrgNr)) { + "Ved refusjon må alle oppdragslinjer ha samme refusjonsInfo. Både orgnr " + refunderesOrgNr + " og " + + oppdragslinje.refusjonsInfo.refunderesId + "ble funnet i samme request." + } } return true } @@ -61,28 +65,32 @@ class SimuleringGenerator { return beregning } - private fun leggTilBeregningsperioder(simulerBeregningRequest: SimulerBeregningRequest, beregning: Beregning) { + private fun leggTilBeregningsperioder( + simulerBeregningRequest: SimulerBeregningRequest, + beregning: Beregning, + ) { val nesteMåned: YearMonth - nesteMåned = if (LocalDate.now().dayOfMonth <= 19) { - YearMonth.from(LocalDate.now()) - } else { - YearMonth.from(LocalDate.now().plusMonths(1)) - } + nesteMåned = + if (LocalDate.now().dayOfMonth <= 19) { + YearMonth.from(LocalDate.now()) + } else { + YearMonth.from(LocalDate.now().plusMonths(1)) + } val beregningsPerioder = beregning.beregningsPeriode for (oppdragsperiode in oppdragsPeriodeList!!) { var sisteMåned: YearMonth? - sisteMåned = if (oppdragsperiode.periodeType == PeriodeType.OPPH) { - nesteMåned.minusMonths(1) - } else { - nesteMåned - } + sisteMåned = + if (oppdragsperiode.periodeType == PeriodeType.OPPH) { + nesteMåned.minusMonths(1) + } else { + nesteMåned + } if (!YearMonth.from(oppdragsperiode.fom).isAfter(sisteMåned) && oppdragsperiode.antallVirkedager != 0) { while (YearMonth.from(oppdragsperiode.tom).isAfter(sisteMåned)) { - oppdragsperiode.tom = oppdragsperiode.tom.minusMonths(1) - .withDayOfMonth(oppdragsperiode.tom.minusMonths(1).lengthOfMonth()) + oppdragsperiode.tom = + oppdragsperiode.tom.minusMonths(1).withDayOfMonth(oppdragsperiode.tom.minusMonths(1).lengthOfMonth()) } - val beregningsPeriode = - opprettBeregningsperiode(oppdragsperiode, simulerBeregningRequest.request.oppdrag) + val beregningsPeriode = opprettBeregningsperiode(oppdragsperiode, simulerBeregningRequest.request.oppdrag) if (!beregningsPeriode.beregningStoppnivaa.isEmpty()) { beregningsPerioder.add( opprettBeregningsperiode( @@ -95,7 +103,10 @@ class SimuleringGenerator { } } - private fun opprettBeregningsperiode(oppdragsperiode: Periode, oppdrag: Oppdrag): BeregningsPeriode { + private fun opprettBeregningsperiode( + oppdragsperiode: Periode, + oppdrag: Oppdrag, + ): BeregningsPeriode { val beregningsPeriode = BeregningsPeriode() beregningsPeriode.periodeFom = oppdragsperiode.fom.format(dateTimeFormatter) beregningsPeriode.periodeTom = oppdragsperiode.tom.format(dateTimeFormatter) @@ -103,21 +114,26 @@ class SimuleringGenerator { return beregningsPeriode } - private fun opprettBeregningStoppNivaa(oppdragsperiode: Periode, oppdrag: Oppdrag): List { + private fun opprettBeregningStoppNivaa( + oppdragsperiode: Periode, + oppdrag: Oppdrag, + ): List { val perioder = splittOppIPeriodePerMnd(oppdragsperiode) val beregningStoppnivaaer: MutableList = ArrayList() val nesteMåned: YearMonth val sisteMåned: YearMonth - nesteMåned = if (LocalDate.now().dayOfMonth <= 19) { - YearMonth.from(LocalDate.now()) - } else { - YearMonth.from(LocalDate.now().plusMonths(1)) - } - sisteMåned = if (oppdragsperiode.periodeType == PeriodeType.OPPH) { - nesteMåned.minusMonths(1) - } else { - nesteMåned - } + nesteMåned = + if (LocalDate.now().dayOfMonth <= 19) { + YearMonth.from(LocalDate.now()) + } else { + YearMonth.from(LocalDate.now().plusMonths(1)) + } + sisteMåned = + if (oppdragsperiode.periodeType == PeriodeType.OPPH) { + nesteMåned.minusMonths(1) + } else { + nesteMåned + } for (periode in perioder) { if (!YearMonth.from(periode.fom).isAfter(sisteMåned)) { val stoppnivaa = BeregningStoppnivaa() @@ -151,7 +167,8 @@ class SimuleringGenerator { ), ) } - } else if (oppdragsperiode.periodeType == PeriodeType.REDUKSJON && YearMonth.from(periode.fom) + } else if (oppdragsperiode.periodeType == PeriodeType.REDUKSJON && + YearMonth.from(periode.fom) .isBefore(nesteMåned) ) { stoppnivaa.beregningStoppnivaaDetaljer.add( @@ -169,7 +186,8 @@ class SimuleringGenerator { ), ) } - } else if (oppdragsperiode.periodeType == PeriodeType.ØKNING && YearMonth.from(periode.fom) + } else if (oppdragsperiode.periodeType == PeriodeType.ØKNING && + YearMonth.from(periode.fom) .isBefore(nesteMåned) ) { stoppnivaa.beregningStoppnivaaDetaljer.add( @@ -303,12 +321,17 @@ class SimuleringGenerator { return stoppnivaaDetaljer } - private fun setBeløp(antallVirkedager: Int, oppdragsperiode: Periode, sequence: Int): BigDecimal { - val belop: BigDecimal = if (oppdragsperiode.typeSats == "DAG") { - oppdragsperiode.sats!!.multiply(BigDecimal.valueOf(antallVirkedager.toLong())) - } else { - oppdragsperiode.sats!! - } + private fun setBeløp( + antallVirkedager: Int, + oppdragsperiode: Periode, + sequence: Int, + ): BigDecimal { + val belop: BigDecimal = + if (oppdragsperiode.typeSats == "DAG") { + oppdragsperiode.sats!!.multiply(BigDecimal.valueOf(antallVirkedager.toLong())) + } else { + oppdragsperiode.sats!! + } return if (oppdragsperiode.periodeType == PeriodeType.OPPH) { if (sequence == 3) { belop.negate() @@ -319,11 +342,15 @@ class SimuleringGenerator { if (sequence == 2) { if (oppdragsperiode.typeSats == "DAG") { belop.subtract(oppdragsperiode.oldSats!!.multiply(BigDecimal.valueOf(antallVirkedager.toLong()))).negate() - } else { belop.subtract(oppdragsperiode.oldSats).negate() } + } else { + belop.subtract(oppdragsperiode.oldSats).negate() + } } else if (sequence == 3) { if (oppdragsperiode.typeSats == "DAG") { oppdragsperiode.oldSats!!.multiply(BigDecimal.valueOf(antallVirkedager.toLong())).negate() - } else { oppdragsperiode.oldSats!!.negate() } + } else { + oppdragsperiode.oldSats!!.negate() + } } else { belop } @@ -332,23 +359,26 @@ class SimuleringGenerator { companion object { val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") + fun splittOppIPeriodePerMnd(oppdragsperiode: Periode): List { val perioder: MutableList = ArrayList() require(!oppdragsperiode.tom.isBefore(oppdragsperiode.fom)) { - "Startdato " + oppdragsperiode.fom.format( - dateTimeFormatter, - ) + " kan ikke være etter sluttdato " + oppdragsperiode.tom.format(dateTimeFormatter) + "Startdato " + + oppdragsperiode.fom.format( + dateTimeFormatter, + ) + " kan ikke være etter sluttdato " + oppdragsperiode.tom.format(dateTimeFormatter) } var dato = oppdragsperiode.fom while (!dato.isAfter(oppdragsperiode.tom)) { val sisteDagIMnd = YearMonth.from(dato).atEndOfMonth() - dato = if (sisteDagIMnd.isBefore(oppdragsperiode.tom)) { - perioder.add(Periode(dato, sisteDagIMnd)) - sisteDagIMnd.plusDays(1) - } else { - perioder.add(Periode(dato, oppdragsperiode.tom)) - oppdragsperiode.tom.plusDays(1) - } + dato = + if (sisteDagIMnd.isBefore(oppdragsperiode.tom)) { + perioder.add(Periode(dato, sisteDagIMnd)) + sisteDagIMnd.plusDays(1) + } else { + perioder.add(Periode(dato, oppdragsperiode.tom)) + oppdragsperiode.tom.plusDays(1) + } } return perioder } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGeneratorTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGeneratorTest.kt index 725760ed..71925a27 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGeneratorTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringGeneratorTest.kt @@ -10,7 +10,6 @@ import org.junit.jupiter.api.Test import java.math.BigDecimal internal class SimuleringGeneratorTest { - private val simuleringGenerator = SimuleringGenerator() @Test @@ -18,7 +17,9 @@ internal class SimuleringGeneratorTest { val oppdragGjelderId = "12345678901" val kodeEndring = "NY" val request: SimulerBeregningRequest = opprettSimulerBeregningRequest(oppdragGjelderId, kodeEndring) - request.request.oppdrag.oppdragslinje.add(opprettOppdragslinje("NY", null, 2339, oppdragGjelderId, "2020-06-01", "2020-11-30", null)) + request.request.oppdrag.oppdragslinje.add( + opprettOppdragslinje("NY", null, 2339, oppdragGjelderId, "2020-06-01", "2020-11-30", null), + ) val response = simuleringGenerator.opprettSimuleringsResultat(request) assertThat(response.response.simulering.gjelderId) @@ -27,16 +28,24 @@ internal class SimuleringGeneratorTest { .withFailMessage("Forventet 'gjelderId' var feil og/eller mottaker av ytelsen stemte ikke overens med personen ytelsen gjelder") assertThat(response.response.simulering.beregningsPeriode.size) .isEqualTo(1) - .withFailMessage("Resultatperioden ble delt opp feil, ettersom alle periodene er sammenhengende skal de komme som en lang resultatperiode") + .withFailMessage( + "Resultatperioden ble delt opp feil, ettersom alle periodene er sammenhengende skal de komme som en lang resultatperiode", + ) assertThat(response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) .isEqualTo(6) - .withFailMessage("Perioden fom 01.06.2020 - tom 30.11.2020 skal være på totat 5 måneder. Antall måneder i resultatet var: " + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) + .withFailMessage( + "Perioden fom 01.06.2020 - tom 30.11.2020 skal være på totat 5 måneder. Antall måneder i resultatet var: " + + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size, + ) val detaljer: List = response.response.simulering.beregningsPeriode[0].beregningStoppnivaa[0].beregningStoppnivaaDetaljer detaljer.sortedBy { beregningStoppnivaaDetaljer -> beregningStoppnivaaDetaljer.behandlingskode } assertThat(detaljer.size) .isEqualTo(1) - .withFailMessage("En positiv respons skal bare ha en beregningStoppnivaaDetaljer. Det at den hadde flere enn 1 indikerer at det feilaktig er oppstått andre posteringer") + .withFailMessage( + "En positiv respons skal bare ha en beregningStoppnivaaDetaljer. Det at den hadde flere enn 1 indikerer at " + + "det feilaktig er oppstått andre posteringer", + ) } @Test @@ -44,8 +53,12 @@ internal class SimuleringGeneratorTest { val oppdragGjelderId = "12345678902" val kodeEndring = "ENDR" val request: SimulerBeregningRequest = opprettSimulerBeregningRequest(oppdragGjelderId, kodeEndring) - request.request.oppdrag.oppdragslinje.add(opprettOppdragslinje(kodeEndring, KodeStatusLinje.OPPH, 1330, oppdragGjelderId, "2020-07-01", "2020-11-30", "2020-07-01")) - request.request.oppdrag.oppdragslinje.add(opprettOppdragslinje("NY", null, 1200, oppdragGjelderId, "2020-07-01", "2020-11-30", null)) + request.request.oppdrag.oppdragslinje.add( + opprettOppdragslinje(kodeEndring, KodeStatusLinje.OPPH, 1330, oppdragGjelderId, "2020-07-01", "2020-11-30", "2020-07-01"), + ) + request.request.oppdrag.oppdragslinje.add( + opprettOppdragslinje("NY", null, 1200, oppdragGjelderId, "2020-07-01", "2020-11-30", null), + ) val response = simuleringGenerator.opprettSimuleringsResultat(request) assertThat(response.response.simulering.gjelderId) @@ -54,7 +67,10 @@ internal class SimuleringGeneratorTest { .withFailMessage("Forventet 'gjelderId' var feil og/eller mottaker av ytelsen stemte ikke overens med personen ytelsen gjelder") assertThat(response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) .isEqualTo(5) - .withFailMessage("Perioden fom 01.07.2020 - tom 30.11.2020 skal være på totat 5 måneder. Antall måneder i resultatet var: " + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) + .withFailMessage( + "Perioden fom 01.07.2020 - tom 30.11.2020 skal være på totat 5 måneder. Antall måneder i resultatet var: " + + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size, + ) val detaljer: List = response.response.simulering.beregningsPeriode[0].beregningStoppnivaa[0].beregningStoppnivaaDetaljer @@ -87,7 +103,9 @@ internal class SimuleringGeneratorTest { val oppdragGjelderId = "12345678903" val kodeEndring = "ENDR" val request: SimulerBeregningRequest = opprettSimulerBeregningRequest(oppdragGjelderId, kodeEndring) - request.request.oppdrag.oppdragslinje.add(opprettOppdragslinje(kodeEndring, KodeStatusLinje.OPPH, 1330, oppdragGjelderId, "2020-07-01", "2020-10-31", "2020-07-01")) + request.request.oppdrag.oppdragslinje.add( + opprettOppdragslinje(kodeEndring, KodeStatusLinje.OPPH, 1330, oppdragGjelderId, "2020-07-01", "2020-10-31", "2020-07-01"), + ) val response = simuleringGenerator.opprettSimuleringsResultat(request) assertThat(response.response.simulering.gjelderId) @@ -96,7 +114,10 @@ internal class SimuleringGeneratorTest { .withFailMessage("Forventet 'gjelderId' var feil og/eller mottaker av ytelsen stemte ikke overens med personen ytelsen gjelder") assertThat(response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) .isEqualTo(4) - .withFailMessage("Perioden fom 01.07.2020 - tom 31.10.2020 skal være på totat 4 måneder. Antall måneder i resultatet var: " + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size) + .withFailMessage( + "Perioden fom 01.07.2020 - tom 31.10.2020 skal være på totat 4 måneder. Antall måneder i resultatet var: " + + response.response.simulering.beregningsPeriode[0].beregningStoppnivaa.size, + ) val detaljer: List = response.response.simulering.beregningsPeriode[0].beregningStoppnivaa[0].beregningStoppnivaaDetaljer @@ -124,7 +145,10 @@ internal class SimuleringGeneratorTest { .withFailMessage("Beløp for gammel ytelse var feil, forventet månedsbeløp 1330 men fikk: " + detaljer[2].belop) } - private fun opprettSimulerBeregningRequest(oppdragGjelderId: String, kodeEndring: String): SimulerBeregningRequest { + private fun opprettSimulerBeregningRequest( + oppdragGjelderId: String, + kodeEndring: String, + ): SimulerBeregningRequest { val request = SimulerBeregningRequest() request.request = no.nav.system.os.tjenester.simulerfpservice.simulerfpserviceservicetypes.SimulerBeregningRequest() diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringSenderMock.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringSenderMock.kt index 938ef00a..dce14739 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringSenderMock.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/mock/SimuleringSenderMock.kt @@ -9,7 +9,6 @@ import org.springframework.stereotype.Service @Profile("dev", "dev_psql_mq") @Service class SimuleringSenderMock : SimuleringSender { - override fun hentSimulerBeregningResponse(simulerBeregningRequest: SimulerBeregningRequest?): SimulerBeregningResponse { return SimuleringGenerator().opprettSimuleringsResultat(simulerBeregningRequest!!) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/ClientMocks.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/ClientMocks.kt index eb432787..0ed56f7b 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/ClientMocks.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/ClientMocks.kt @@ -10,7 +10,6 @@ import org.springframework.stereotype.Component @Component class ClientMocks { - @Bean @Profile("dev") @Primary diff --git a/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/SimuleringTestUtils.kt b/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/SimuleringTestUtils.kt index abbaec67..2d3a57ce 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/SimuleringTestUtils.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/simulering/util/SimuleringTestUtils.kt @@ -51,7 +51,10 @@ fun lagTestUtbetalingsoppdragForFGBMedEttBarn(): Utbetalingsoppdrag { ) } -fun lagBeregningsPeriode(bergeningStopNiva: List, date: LocalDate): BeregningsPeriode { +fun lagBeregningsPeriode( + bergeningStopNiva: List, + date: LocalDate, +): BeregningsPeriode { val beregningsPeriode = BeregningsPeriode() beregningsPeriode.periodeFom = date.with(TemporalAdjusters.firstDayOfMonth()).toString() beregningsPeriode.periodeTom = date.with(TemporalAdjusters.lastDayOfMonth()).toString() @@ -79,15 +82,17 @@ fun lagTestSimuleringResponse(): SimulerBeregningResponse { val enTideligereMåned = currentDate.plusMonths(1) - val periodeNåværendeMåned = lagBeregningsPeriode( - listOf(lagBeregningStoppniva(currentDate)), - currentDate, - ) - - val periodeTidligereMåned = lagBeregningsPeriode( - listOf(lagBeregningStoppniva(enTideligereMåned, 2)), - enTideligereMåned, - ) + val periodeNåværendeMåned = + lagBeregningsPeriode( + listOf(lagBeregningStoppniva(currentDate)), + currentDate, + ) + + val periodeTidligereMåned = + lagBeregningsPeriode( + listOf(lagBeregningStoppniva(enTideligereMåned, 2)), + enTideligereMåned, + ) return lagSimulerBeregningResponse(listOf(periodeNåværendeMåned, periodeTidligereMåned)) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/tss/TssOppslagServiceTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/tss/TssOppslagServiceTest.kt index 4b6cf397..ecfca81f 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/tss/TssOppslagServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/tss/TssOppslagServiceTest.kt @@ -13,7 +13,6 @@ import kotlin.test.assertFalse import kotlin.test.assertTrue internal class TssOppslagServiceTest { - private val jmsTemplate: JmsTemplate = mockk(relaxed = false) private val mockedMessage: Message = mockk() @@ -34,7 +33,10 @@ internal class TssOppslagServiceTest { val response = service.hentSamhandlerDataForOrganisasjonB910(TssSamhandlerIdent("ORGNR", ORGNR)) assertEquals(1, response.enkeltSamhandler.size) assertEquals("2", response.enkeltSamhandler.first().samhandlerAvd125.antSamhAvd) - assertEquals("80000112244", response.enkeltSamhandler.first().samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS) + assertEquals( + "80000112244", + response.enkeltSamhandler.first().samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS, + ) } @Test @@ -54,9 +56,10 @@ internal class TssOppslagServiceTest { fun `Skal få TssNoDataFoundException hvis man ikke finner samhandlerinfo for orgnr ved bruk av proxytjenesten`() { every { mockedMessage.getBody(String::class.java) } returns lesFil("tss-910-notfound-response.xml") - val tssNoDataFoundException = assertThrows(TssNoDataFoundException::class.java) { - service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) - } + val tssNoDataFoundException = + assertThrows(TssNoDataFoundException::class.java) { + service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) + } assertEquals("Ingen treff med inputData=TssSamhandlerIdent(ident=ORGNR, type=ORGNR)", tssNoDataFoundException.message) } @@ -65,9 +68,10 @@ internal class TssOppslagServiceTest { fun `Skal få TssConnectionException hvis jmstemplate returnerer er null pga timeout`() { every { jmsTemplate.sendAndReceive(any()) } returns null - val tssNoDataFoundException = assertThrows(TssConnectionException::class.java) { - service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) - } + val tssNoDataFoundException = + assertThrows(TssConnectionException::class.java) { + service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) + } assertEquals("En feil oppsto i kallet til TSS. Response var null (timeout?)", tssNoDataFoundException.message) } @@ -76,9 +80,10 @@ internal class TssOppslagServiceTest { fun `Skal få TssConnectionException hvis jmstemplate kaster JmsException pga ukjent feil`() { every { jmsTemplate.sendAndReceive(any()) } throws RuntimeException("Ukjent feil") - val tssNoDataFoundException = assertThrows(TssConnectionException::class.java) { - service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) - } + val tssNoDataFoundException = + assertThrows(TssConnectionException::class.java) { + service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) + } assertEquals("En feil oppsto i kallet til TSS", tssNoDataFoundException.message) } @@ -87,9 +92,10 @@ internal class TssOppslagServiceTest { fun `Skal få TssResponseException hvis b910 returerner feil med en annen feilkode enn Ingen treff`() { every { mockedMessage.getBody(String::class.java) } returns lesFil("tss-910-error-response.xml") - val tssResponseException = assertThrows(TssResponseException::class.java) { - service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) - } + val tssResponseException = + assertThrows(TssResponseException::class.java) { + service.hentSamhandlerInformasjon(TssSamhandlerIdent("ORGNR", ORGNR)) + } assertEquals("DET FINNES MER INFORMASJON-04-B9XX018I", tssResponseException.message) } @@ -97,11 +103,23 @@ internal class TssOppslagServiceTest { @Test fun `Skal hente samhandlerinfo ved søk på navn ved bruk av proxytjenesten b940`() { every { mockedMessage.getBody(String::class.java) } returns lesFil("tss-940-response.xml") - val response = service.hentInformasjonOmSamhandlerInstB940(navn = "Inst", postNummer = null, område = null, side = 0).tssOutputData.samhandlerODataB940 + val response = + service.hentInformasjonOmSamhandlerInstB940( + navn = "Inst", + postNummer = null, + område = null, + side = 0, + ).tssOutputData.samhandlerODataB940 assertEquals(3, response.enkeltSamhandler.size) assertEquals("2", response.enkeltSamhandler.first().samhandlerAvd125.antSamhAvd) - assertEquals("80000442211", response.enkeltSamhandler.first().samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS) - assertEquals("80000112244", response.enkeltSamhandler.get(1).samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS) + assertEquals( + "80000442211", + response.enkeltSamhandler.first().samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS, + ) + assertEquals( + "80000112244", + response.enkeltSamhandler.get(1).samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.first().idOffTSS, + ) assertEquals(0, response.enkeltSamhandler.get(2).samhandlerAvd125.samhAvd.filter { it.kilde == "IT00" }.size) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/util/ContainerTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/util/ContainerTest.kt index 91c23909..3994161b 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/util/ContainerTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/util/ContainerTest.kt @@ -6,23 +6,22 @@ import org.springframework.context.ConfigurableApplicationContext import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration import org.testcontainers.containers.GenericContainer -import org.testcontainers.containers.PostgreSQLContainer @Configuration @ComponentScan("no.nav.familie.oppdrag") class TestConfig object Containers { - var ibmMQContainer = MyGeneralContainer("ibmcom/mq") - .withEnv("LICENSE", "accept") - .withEnv("MQ_QMGR_NAME", "QM1") - .withEnv("persistance.enabled", "true") - .withExposedPorts(1414) + var ibmMQContainer = + MyGeneralContainer("ibmcom/mq") + .withEnv("LICENSE", "accept") + .withEnv("MQ_QMGR_NAME", "QM1") + .withEnv("persistance.enabled", "true") + .withExposedPorts(1414) class MyGeneralContainer(imageName: String) : GenericContainer(imageName) class MQInitializer : ApplicationContextInitializer { - override fun initialize(configurableApplicationContext: ConfigurableApplicationContext) { TestPropertyValues.of( "oppdrag.mq.port=" + ibmMQContainer.getMappedPort(1414), diff --git a/src/test/kotlin/no/nav/familie/oppdrag/util/TestOppdragMedAvstemmingsdato.kt b/src/test/kotlin/no/nav/familie/oppdrag/util/TestOppdragMedAvstemmingsdato.kt index 43f58467..91819392 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/util/TestOppdragMedAvstemmingsdato.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/util/TestOppdragMedAvstemmingsdato.kt @@ -7,7 +7,6 @@ import java.time.LocalDateTime import kotlin.random.Random object TestOppdragMedAvstemmingsdato { - private val FAGSAKID = "123456789" private val AKTOER = "12345678911" @@ -16,16 +15,15 @@ object TestOppdragMedAvstemmingsdato { fagområde: String, fagsak: String = FAGSAKID, vararg utbetalingsperiode: Utbetalingsperiode = arrayOf(lagUtbetalingsperiode(fagområde)), - ) = - Utbetalingsoppdrag( - kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, - fagSystem = fagområde, - saksnummer = fagsak, - aktoer = AKTOER, - saksbehandlerId = "Z999999", - avstemmingTidspunkt = avstemmingstidspunkt, - utbetalingsperiode = utbetalingsperiode.toList(), - ) + ) = Utbetalingsoppdrag( + kodeEndring = Utbetalingsoppdrag.KodeEndring.NY, + fagSystem = fagområde, + saksnummer = fagsak, + aktoer = AKTOER, + saksbehandlerId = "Z999999", + avstemmingTidspunkt = avstemmingstidspunkt, + utbetalingsperiode = utbetalingsperiode.toList(), + ) fun lagUtbetalingsperiode( fagområde: String = "BA", @@ -34,20 +32,19 @@ object TestOppdragMedAvstemmingsdato { fom: LocalDate = LocalDate.now().withDayOfMonth(1), tom: LocalDate = LocalDate.now().plusYears(6), behandlingId: Long? = null, - ) = - Utbetalingsperiode( - erEndringPåEksisterendePeriode = false, - opphør = null, - periodeId = periodeId, - forrigePeriodeId = null, - datoForVedtak = LocalDate.now(), - klassifisering = if (fagområde.equals("BA")) "BATR" else "EF", - vedtakdatoFom = fom, - vedtakdatoTom = tom, - sats = beløp.toBigDecimal(), - satsType = Utbetalingsperiode.SatsType.MND, - utbetalesTil = AKTOER, - behandlingId = behandlingId ?: Random.nextLong(), - utbetalingsgrad = 50, - ) + ) = Utbetalingsperiode( + erEndringPåEksisterendePeriode = false, + opphør = null, + periodeId = periodeId, + forrigePeriodeId = null, + datoForVedtak = LocalDate.now(), + klassifisering = if (fagområde.equals("BA")) "BATR" else "EF", + vedtakdatoFom = fom, + vedtakdatoTom = tom, + sats = beløp.toBigDecimal(), + satsType = Utbetalingsperiode.SatsType.MND, + utbetalesTil = AKTOER, + behandlingId = behandlingId ?: Random.nextLong(), + utbetalingsgrad = 50, + ) } diff --git a/src/test/kotlin/no/nav/familie/oppdrag/util/TestUtbetalingsoppdrag.kt b/src/test/kotlin/no/nav/familie/oppdrag/util/TestUtbetalingsoppdrag.kt index 9a825d49..36554748 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/util/TestUtbetalingsoppdrag.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/util/TestUtbetalingsoppdrag.kt @@ -9,32 +9,33 @@ import java.time.LocalDateTime import java.util.UUID object TestUtbetalingsoppdrag { - private val localDateTimeNow = LocalDateTime.now() private val localDateNow = LocalDate.now() - fun utbetalingsoppdragMedTilfeldigAktoer() = Utbetalingsoppdrag( - Utbetalingsoppdrag.KodeEndring.NY, - "EFOG", - "SAKSNR", - UUID.randomUUID().toString(), // Foreløpig plass til en 50-tegn string og ingen gyldighetssjekk - "SAKSBEHANDLERID", - localDateTimeNow, - listOf( - Utbetalingsperiode( - false, - Opphør(localDateNow), - 1, - null, - localDateNow, - "KLASSE A", - localDateNow, - localDateNow, - BigDecimal.ONE, - Utbetalingsperiode.SatsType.MND, - "UTEBETALES_TIL", - 1, + fun utbetalingsoppdragMedTilfeldigAktoer() = + Utbetalingsoppdrag( + Utbetalingsoppdrag.KodeEndring.NY, + "EFOG", + "SAKSNR", + // Foreløpig plass til en 50-tegn string og ingen gyldighetssjekk + UUID.randomUUID().toString(), + "SAKSBEHANDLERID", + localDateTimeNow, + listOf( + Utbetalingsperiode( + false, + Opphør(localDateNow), + 1, + null, + localDateNow, + "KLASSE A", + localDateNow, + localDateNow, + BigDecimal.ONE, + Utbetalingsperiode.SatsType.MND, + "UTEBETALES_TIL", + 1, + ), ), - ), - ) + ) } From b7971ce4fab01f4aa9e3afc962930fd83b7ee8a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:54:57 +0000 Subject: [PATCH 21/24] Bump docker/login-action from 2.1.0 to 3.0.0 (#635) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 3.0.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/f4ef78c080cd8ba55a85445d5b36e214a81df20a...343f7c4344506bcbf9b4de18042ae17996df046d) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- .github/workflows/build-and-deploy-preprod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index f9523204..9c6c1290 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -35,7 +35,7 @@ jobs: docker build -t $IMAGE . - name: Login to GitHub Container Registry if: github.triggering_actor != 'dependabot[bot]' - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d with: registry: ghcr.io username: ${{ github.actor }} From b4b08c85efbcacb0058650d6cbdb438dfdd93e9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:39:35 +0000 Subject: [PATCH 22/24] Bump felles.version from 2.20230508082643_6b28bd8 to 2.20240123084817_35f03aa (#666) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps `felles.version` from 2.20230508082643_6b28bd8 to 2.20240123084817_35f03aa. Updates `no.nav.familie.felles:log` from 2.20230508082643_6b28bd8 to 2.20240123084817_35f03aa - [Commits](https://github.com/navikt/familie-felles/commits) Updates `no.nav.familie.felles:http-client` from 2.20230508082643_6b28bd8 to 2.20240123084817_35f03aa - [Commits](https://github.com/navikt/familie-felles/commits) Updates `no.nav.familie.felles:sikkerhet` from 2.20230508082643_6b28bd8 to 2.20240123084817_35f03aa - [Commits](https://github.com/navikt/familie-felles/commits) --- updated-dependencies: - dependency-name: no.nav.familie.felles:log dependency-type: direct:production - dependency-name: no.nav.familie.felles:http-client dependency-type: direct:production - dependency-name: no.nav.familie.felles:sikkerhet dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 298d5d96..1002e8a8 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 21 1.9.22 no.nav.familie.oppdrag.LauncherKt - 2.20230508082643_6b28bd8 + 2.20240123084817_35f03aa 3.0_20240122110213_5591a29 3.2.0 From b43ef83659fd02c48c7d627de19ba6fc4e8d8c77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:29:53 +0100 Subject: [PATCH 23/24] Fjerner ubrukt org.sonarsource.scanner.maven:sonar-maven-plugin (#661) Fjerner ubrukt org.sonarsource.scanner.maven:sonar-maven-plugin --- .../workflows/build-and-deploy-preprod.yml | 5 +--- pom.xml | 29 ------------------- 2 files changed, 1 insertion(+), 33 deletions(-) diff --git a/.github/workflows/build-and-deploy-preprod.yml b/.github/workflows/build-and-deploy-preprod.yml index 9c6c1290..85827556 100644 --- a/.github/workflows/build-and-deploy-preprod.yml +++ b/.github/workflows/build-and-deploy-preprod.yml @@ -22,13 +22,10 @@ jobs: java-version: 21 distribution: 'temurin' cache: 'maven' - - name: Bygg med maven + sonar + - name: Bygg med maven env: - SONAR_PROJECTKEY: ${{ secrets.SONAR_PROJECTKEY }} - SONAR_LOGIN: ${{ secrets.SONAR_LOGIN }} GITHUB_USERNAME: x-access-token GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: mvn -B --no-transfer-progress package verify sonar:sonar --settings .m2/maven-settings.xml --file pom.xml run: mvn -B --no-transfer-progress package verify --settings .m2/maven-settings.xml --file pom.xml - name: Bygg Docker image run: | diff --git a/pom.xml b/pom.xml index 1002e8a8..74e0bda8 100644 --- a/pom.xml +++ b/pom.xml @@ -35,14 +35,6 @@ 4.0.2 1.13.5 - - ${SONAR_PROJECTKEY} - navit - https://sonarcloud.io - **/config/FlywayConfig.kt,**/OppdragServiceE2E.kt - - - ${SONAR_LOGIN} 2023.0.0 1.19.3 1.0_20230718100517_1e1beb0 @@ -445,27 +437,6 @@ ${project.basedir}/src/test/kotlin ${project.artifactId} - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 3.9.1.2184 - - - org.jacoco - jacoco-maven-plugin - 0.8.10 - - - **/config/FlywayConfig.kt - **/config/OppdragMQConfig.kt - - - - - - org.springframework.boot From 7d7a7ba5b50f15c62de3974d97950ccf8493cc54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 10:42:03 +0100 Subject: [PATCH 24/24] Bump org.messaginghub:pooled-jms from 3.1.0 to 3.1.5 (#649) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [org.messaginghub:pooled-jms](https://github.com/messaginghub/pooled-jms) from 3.1.0 to 3.1.5. - [Commits](https://github.com/messaginghub/pooled-jms/compare/3.1.0...3.1.5) --- updated-dependencies: - dependency-name: org.messaginghub:pooled-jms dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stig Strøm --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 74e0bda8..b84ab610 100644 --- a/pom.xml +++ b/pom.xml @@ -147,7 +147,7 @@ org.messaginghub pooled-jms - 3.1.0 + 3.1.5