Skip to content

Fjern CXF fra SimuleringClient #1678

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ dependencies {
implementation(rootProject.libs.wiremock) {
exclude(group = "junit")
}
implementation("org.jetbrains.kotlinx:atomicfu:0.23.2")
testImplementation("org.xmlunit:xmlunit-matchers:2.9.1")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import no.nav.su.se.bakover.client.nais.LeaderPodLookupClient
import no.nav.su.se.bakover.client.oppdrag.IbmMqPublisher
import no.nav.su.se.bakover.client.oppdrag.MqPublisher.MqPublisherConfig
import no.nav.su.se.bakover.client.oppdrag.avstemming.AvstemmingMqPublisher
import no.nav.su.se.bakover.client.oppdrag.simulering.SimuleringConfig
import no.nav.su.se.bakover.client.oppdrag.simulering.SimuleringSoapClient
import no.nav.su.se.bakover.client.oppdrag.tilbakekrevingUnderRevurdering.TilbakekrevingUnderRevurderingSoapClient
import no.nav.su.se.bakover.client.oppdrag.tilbakekrevingUnderRevurdering.TilbakekrevingUnderRevurderingSoapClientConfig
Expand All @@ -24,6 +23,7 @@ import no.nav.su.se.bakover.client.person.PersonClient
import no.nav.su.se.bakover.client.person.PersonClientConfig
import no.nav.su.se.bakover.client.skjerming.SkjermingClient
import no.nav.su.se.bakover.client.sts.StsClient
import no.nav.su.se.bakover.client.sts.StsSamlClient
import no.nav.su.se.bakover.common.SU_SE_BAKOVER_CONSUMER_ID
import no.nav.su.se.bakover.common.infrastructure.config.ApplicationConfig
import no.nav.su.se.bakover.common.infrastructure.jms.JmsConfig
Expand Down Expand Up @@ -117,12 +117,12 @@ data class ProdClientsBuilder(
),
kodeverk = kodeverk,
simuleringClient = SimuleringSoapClient(
SimuleringConfig(
simuleringServiceUrl = applicationConfig.oppdrag.simulering.url,
stsSoapUrl = applicationConfig.oppdrag.simulering.stsSoapUrl,
disableCNCheck = true,
baseUrl = applicationConfig.oppdrag.simulering.url,
samlTokenProvider = StsSamlClient(
baseUrl = applicationConfig.clientsConfig.stsSamlUrl,
serviceUser = serviceUser,
).wrapWithSTSSimulerFpService(),
clock = clock,
),
clock = clock,
),
utbetalingPublisher = UtbetalingMqPublisher(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
@file:Suppress("HttpUrlsUsage")

package no.nav.su.se.bakover.client.oppdrag.simulering

import no.nav.su.se.bakover.client.oppdrag.utbetaling.UtbetalingRequest
import no.nav.su.se.bakover.client.oppdrag.utbetaling.toUtbetalingRequest
import no.nav.su.se.bakover.common.tid.periode.Periode
import no.nav.system.os.tjenester.simulerfpservice.simulerfpserviceservicetypes.SimulerBeregningRequest
import økonomi.domain.utbetaling.Utbetaling

internal fun buildXmlRequestBody(
utbetaling: Utbetaling.UtbetalingForSimulering,
): String {
return buildXmlRequestBody(
simuleringsperiode = utbetaling.periode,
request = toUtbetalingRequest(utbetaling).oppdragRequest,
)
}

/**
* https://confluence.adeo.no/display/OKSY/Inputdata+fra+fagrutinen+til+Oppdragssystemet
*
* Effekt av å sette
* [SimulerBeregningRequest.SimuleringsPeriode.datoSimulerFom]
* [SimulerBeregningRequest.SimuleringsPeriode.datoSimulerTom]
*
* Ingen satt:
* For nye (ikke utbetalt) perioder:
* Kun simulering for første berørte måned returneres.
* For eksisterende (utbetalt) perioder:
* Simulering for alle berørte måneder returneres (opp til og med siste ikke utbetalte måned)
*
* Begge satt:
* For nye (ikke utbetalte) perioder:
* Simulering for alle måneder i perioden returneres.
* For eksisterende (utbetalt) perioder:
* Simulering for alle måneder i perioden returneres. OBS: Berørte måneder kan ligge utenfor valgt periode!
*
* Kun fra og med satt:
* Samme som "Ingen satt", med nedre begrensning. Til og med bestemmes av utbetalingslinje.
* OBS: Berørte måneder kan være tidligere enn valgt dato!
*
* Kun til og med satt:
* Samme som "Begge satt", men øvre begrensning. Fra og med bestemmes av utbetalingslinje.
* OBS: Berørte måneder kan være senere enn valgt dato!
*
*/
internal fun buildXmlRequestBody(
simuleringsperiode: Periode,
request: UtbetalingRequest.OppdragRequest,
): String {
// TODO jah: attestantId settes til saksbehandleren, men bør egentlig loopes og settes til linje.attestant. Men det bør gjøres i en egen PR.
// language=XML
return """<ns2:simulerBeregningRequest xmlns:ns2="http://nav.no/system/os/tjenester/simulerFpService/simulerFpServiceGrensesnitt"
xmlns:ns3="http://nav.no/system/os/entiteter/oppdragSkjema">
<request>
<oppdrag>
<kodeEndring>${request.kodeEndring.value}</kodeEndring>
<kodeFagomraade>${request.kodeFagomraade}</kodeFagomraade>
<fagsystemId>${request.fagsystemId}</fagsystemId>
<utbetFrekvens>${request.utbetFrekvens.value}</utbetFrekvens>
<oppdragGjelderId>${request.oppdragGjelderId}</oppdragGjelderId>
<datoOppdragGjelderFom>${request.datoOppdragGjelderFom}</datoOppdragGjelderFom>
<saksbehId>${request.saksbehId}</saksbehId>
${
request.oppdragsEnheter.joinToString(separator = "\n") { enhet ->
"""<ns3:enhet>
<typeEnhet>${enhet.typeEnhet}</typeEnhet>
<enhet>${enhet.enhet}</enhet>
<datoEnhetFom>${enhet.datoEnhetFom}</datoEnhetFom>
</ns3:enhet>"""
}
}
${
request.oppdragslinjer.joinToString(separator = "\n") { linje ->
"""<oppdragslinje>
<kodeEndringLinje>${linje.kodeEndringLinje.value}</kodeEndringLinje>
${linje.kodeStatusLinje?.let { """<kodeStatusLinje>${linje.kodeStatusLinje.value}</kodeStatusLinje>""" } ?: ""}
${linje.datoStatusFom?.let { """<datoStatusFom>${linje.datoStatusFom}</datoStatusFom>""" } ?: ""}
<delytelseId>${linje.delytelseId}</delytelseId>
<kodeKlassifik>${linje.kodeKlassifik}</kodeKlassifik>
<datoVedtakFom>${linje.datoVedtakFom}</datoVedtakFom>
<datoVedtakTom>${linje.datoVedtakTom}</datoVedtakTom>
<sats>${linje.sats}</sats>
<fradragTillegg>${linje.fradragTillegg.value}</fradragTillegg>
<typeSats>${linje.typeSats.value}</typeSats>
<brukKjoreplan>${linje.brukKjoreplan.value}</brukKjoreplan>
<saksbehId>${linje.saksbehId}</saksbehId>
<utbetalesTilId>${linje.utbetalesTilId}</utbetalesTilId>
<henvisning>${request.utbetalingsId()}</henvisning>
${linje.refFagsystemId?.let { """<refFagsystemId>${linje.refFagsystemId}</refFagsystemId>""" } ?: ""}
${linje.refDelytelseId?.let { """<refDelytelseId>${linje.refDelytelseId}</refDelytelseId>""" } ?: ""}
${
linje.grad?.let { grad ->
"""<ns3:grad>
<typeGrad>${grad.typeGrad.value}</typeGrad>
<grad>${grad.grad}</grad>
</ns3:grad>"""
}
}
<ns3:attestant>
<attestantId>${linje.saksbehId}</attestantId>
</ns3:attestant>

</oppdragslinje>"""
}
}
</oppdrag>
<simuleringsPeriode>
<datoSimulerFom>${simuleringsperiode.fraOgMed}</datoSimulerFom>
<datoSimulerTom>${simuleringsperiode.tilOgMed}</datoSimulerTom>
</simuleringsPeriode>
</request>
</ns2:simulerBeregningRequest>"""
}

This file was deleted.

This file was deleted.

Loading