-
Notifications
You must be signed in to change notification settings - Fork 1
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
Hotfix: Fange tilfeller hvor det finnes flere saker av samme type #6423
Open
Watercolours
wants to merge
1
commit into
main
Choose a base branch
from
hotfix/midlertidig-loesning-doedshendelser
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,19 +3,23 @@ package no.nav.etterlatte.grunnlagsendring.doedshendelse.kontrollpunkt | |
import no.nav.etterlatte.behandling.BehandlingService | ||
import no.nav.etterlatte.behandling.domain.GrunnlagsendringStatus | ||
import no.nav.etterlatte.behandling.domain.GrunnlagsendringsType | ||
import no.nav.etterlatte.behandling.sikkerLogg | ||
import no.nav.etterlatte.common.klienter.PdlTjenesterKlient | ||
import no.nav.etterlatte.common.klienter.PesysKlient | ||
import no.nav.etterlatte.grunnlagsendring.GrunnlagsendringshendelseDao | ||
import no.nav.etterlatte.grunnlagsendring.doedshendelse.DoedshendelseInternal | ||
import no.nav.etterlatte.grunnlagsendring.doedshendelse.Relasjon | ||
import no.nav.etterlatte.grunnlagsendring.doedshendelse.harAktivAdresse | ||
import no.nav.etterlatte.libs.common.behandling.SakType | ||
import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException | ||
import no.nav.etterlatte.libs.common.pdl.PersonDTO | ||
import no.nav.etterlatte.libs.common.person.PersonRolle | ||
import no.nav.etterlatte.libs.common.person.maskerFnr | ||
import no.nav.etterlatte.libs.common.sak.Sak | ||
import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo | ||
import no.nav.etterlatte.oppgave.OppgaveService | ||
import no.nav.etterlatte.sak.SakService | ||
import org.slf4j.LoggerFactory | ||
|
||
class DoedshendelseKontrollpunktService( | ||
private val pdlTjenesterKlient: PdlTjenesterKlient, | ||
|
@@ -25,6 +29,8 @@ class DoedshendelseKontrollpunktService( | |
pesysKlient: PesysKlient, | ||
private val behandlingService: BehandlingService, | ||
) { | ||
private val logger = LoggerFactory.getLogger(this::class.java) | ||
|
||
private val kontrollpunktEktefelleService = DoedshendelseKontrollpunktEktefelleService() | ||
private val kontrollpunktAvdoedService = DoedshendelseKontrollpunktAvdoedService() | ||
private val kontrollpunktBarnService = DoedshendelseKontrollpunktBarnService(pdlTjenesterKlient, behandlingService) | ||
|
@@ -102,13 +108,48 @@ class DoedshendelseKontrollpunktService( | |
beroert: PersonRolle, | ||
): Triple<Sak?, PersonDTO, PersonDTO> { | ||
val sakType = hendelse.sakTypeForEpsEllerBarn() | ||
val sak = sakService.finnSak(hendelse.beroertFnr, sakType) | ||
val sak = hentSakForDoedshendelse(hendelse.beroertFnr, sakType) | ||
|
||
val avdoed = pdlTjenesterKlient.hentPdlModellForSaktype(hendelse.avdoedFnr, PersonRolle.AVDOED, sakType) | ||
val gjenlevende = pdlTjenesterKlient.hentPdlModellForSaktype(hendelse.beroertFnr, beroert, hendelse.sakTypeForEpsEllerBarn()) | ||
val gjenlevende = | ||
pdlTjenesterKlient.hentPdlModellForSaktype(hendelse.beroertFnr, beroert, hendelse.sakTypeForEpsEllerBarn()) | ||
|
||
return Triple(sak, avdoed, gjenlevende) | ||
} | ||
|
||
/** | ||
* Midlertidig løsning inntil vi får nøstet opp i tilfellene hvor det finnes flere saker på én person | ||
* Gjelder i hovedsak personer som har fått endret identifikator | ||
**/ | ||
private fun hentSakForDoedshendelse( | ||
beroertFnr: String, | ||
sakType: SakType, | ||
): Sak? = | ||
try { | ||
sakService.finnSak(beroertFnr, sakType) | ||
} catch (e: InternfeilException) { | ||
val saker = sakService.finnSaker(beroertFnr) | ||
|
||
if (saker.size > 1) { | ||
logger.error("Fikk flere saker på ident ved henting av data for dødshendelse. Se sikkerlogg.") | ||
sikkerLogg.error("Det finnes flere saker på bruker med ident=$beroertFnr: ${saker.joinToString()} ") | ||
|
||
val sakMedBehandlinger = behandlingService.hentSakMedBehandlinger(saker) | ||
sikkerLogg.error("Bruker sak ${sakMedBehandlinger.sak.id} for dødshendelsen") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Denne trenger kanskje ikke å være sikkerlogg eller error? |
||
|
||
with(sakMedBehandlinger.sak) { | ||
Sak( | ||
ident = ident, | ||
sakType = sakType, | ||
id = id, | ||
enhet = enhet, | ||
) | ||
} | ||
} else { | ||
saker.firstOrNull() | ||
} | ||
} | ||
|
||
private fun kontrollerAvdoedHarYtelseIGjenny(hendelse: DoedshendelseInternal): List<DoedshendelseKontrollpunkt> { | ||
val sakerForAvdoed = sakService.finnSaker(hendelse.avdoedFnr) | ||
return if (sakerForAvdoed.isEmpty()) { | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Si det her skjer i produksjon, vil vi ikke potensielt nå da sende ut et brev selvom bruker allerede har sendt en søknad?
edit: Det kjøres en sjekk i kontrollpunktene i jobben på om bruker har en iverksatt behandling og da avbrytes den.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, men er det vanlig at det sendes ut dødshendelser flere ganger på samme person?
Tenkte kanskje det er mest sannsynlig at det opprettes ny hendelse fordi et annet familiemedlem dør, og da er det jo uansett hensiktsmessig at det blir sendt brev, selv om det potensielt er koblet til "feil sak".
Alternative løsninger blir å sjekke om det finnes behandling, i stedet for iverksatte som det gjøres i dag.
Eller skrive om kontrollpunktene til å håndtere en liste med saker.
Oddsen for at dette skjer er vel strengt tatt veldig lav nå som det ikke lenger er mulig å opprette flere saker på samme person. Finnes potensielt et par tilfeller hvor noen har flere saker i produksjon allerede, ettersom det ikke var noen sperre før.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Det er vel bare å sjekke i databasen det :D
Har ikke hørt noe om det i hvert fall.
Det er sikkert ikke krise, men det kan jo potensielt bli at bruker tror at en søknad de har sendt inn ikke er sendt inn allikevel som gjør bruker usikker. Samtidig om det skjer sjeldent så er det vel noe vi kan ignorere...
Men burde nok konsolidere behandlingssjekken for saker og den for kontrollpunktene?
Kan jo splitte ut
hentSakMedBehandlinger
for en med flere saker som denne bruker ogThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Litt usikker på om jeg forsto problemstillingen her. Selv om bruker har sendt inn en søknad, vil det vel fortsatt sendes et brev all tid denne søknaden ikke er ferdig behandlet?
Denne sjekken som legges på vil vel kun gjøre at de som skulle ha to eller flere saker pga splitt ifm fnr-endring ikke feiler ved kjøring?