Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
AudunSorheim committed Dec 9, 2024
1 parent 23dd36d commit dbfb650
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 31 deletions.
2 changes: 1 addition & 1 deletion detekt-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -692,7 +692,7 @@ style:
maxEscapedCharacterCount: 2
ignoredCharacters: []
ThrowsCount:
active: true
active: false
max: 2
excludeGuardClauses: false
TrailingWhitespace:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,16 @@ data class KommentarDTO(

data class PersonDTO(
val navn: String = " ",
val fnr: String,
val fnr: String?,
val epost: String? = null,
val tlf: String? = null,
val sistInnlogget: LocalDateTime? = null,
val samtykke: Boolean? = null,
val evaluering: EvalueringDTO? = null,
var stillinger: List<Stilling> = ArrayList(),
var sistInnlogget: LocalDateTime? = null,
var sisteEndring: LocalDateTime? = null,
var sistAksessert: LocalDateTime? = null,
val aktoerId: String? = null
)

fun OppfolgingsplanDTO.getStatus(): Status {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class ArbeidsoppgaveDAO(
}

@Suppress("LongMethod")
fun create(arbeidsoppgave: ArbeidsoppgaveDTO): ArbeidsoppgaveDTO {
fun create(arbeidsoppgave: ArbeidsoppgaveDTO): Long {
val arbeidsoppgaveId =
jdbcTemplate.queryForObject("SELECT NEXTVAL('ARBEIDSOPPGAVE_ID_SEQ')", Long::class.java)!!
val namedParameters = MapSqlParameterSource()
Expand Down Expand Up @@ -101,10 +101,10 @@ class ArbeidsoppgaveDAO(
"""

namedParameterJdbcTemplate.update(sqlQuery, namedParameters)
return arbeidsoppgave.copy(id = arbeidsoppgaveId)
return arbeidsoppgaveId
}

fun update(arbeidsoppgave: ArbeidsoppgaveDTO): ArbeidsoppgaveDTO {
fun update(arbeidsoppgave: ArbeidsoppgaveDTO): Long {
val namedParameters = MapSqlParameterSource()
.addValue("arbeidsoppgave_id", arbeidsoppgave.id)
.addValue("navn", sanitizeUserInput(arbeidsoppgave.navn))
Expand Down Expand Up @@ -143,7 +143,7 @@ class ArbeidsoppgaveDAO(
namedParameters
)

return arbeidsoppgave
return arbeidsoppgave.id!!
}

fun delete(id: Long) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ fun POppfoelgingsdialog.toOppfolgingsplanDTO(): OppfolgingsplanDTO {
uuid = this.uuid,
opprettet = this.created!!,
sistEndretAvAktoerId = this.sistEndretAv,
sistEndretAvFnr = this.sistEndretAvFnr,
sistEndretAvFnr = this.sistEndretAvFnr!!,
opprettetAvAktoerId = this.opprettetAv,
opprettetAvFnr = this.opprettetAvFnr,
sistEndretDato = this.sistEndret,
Expand All @@ -55,7 +55,6 @@ fun POppfoelgingsdialog.toOppfolgingsplanDTO(): OppfolgingsplanDTO {
aktoerId = null,
epost = null,
fnr = null,
navn = null,
tlf = null
),
arbeidstaker = PersonDTO(
Expand All @@ -66,7 +65,6 @@ fun POppfoelgingsdialog.toOppfolgingsplanDTO(): OppfolgingsplanDTO {
sistInnlogget = this.sisteInnloggingSykmeldt,
samtykke = this.samtykkeSykmeldt,
epost = null,
navn = null,
tlf = null
),
tiltakListe = emptyList(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class ArbeidsoppgaveService(
private val tilgangskontrollService: TilgangskontrollService
) {

@Suppress("ThrowsCount")
@Transactional
@Throws(ResponseStatusException::class)
fun lagreArbeidsoppgave(oppfoelgingsdialogId: Long, arbeidsoppgave: ArbeidsoppgaveDTO, innloggetFnr: String): Long {
Expand Down Expand Up @@ -52,18 +53,19 @@ class ArbeidsoppgaveService(
opprettetAvAktoerId = innloggetAktoerId,
sistEndretAvAktoerId = innloggetAktoerId
)
).id ?: throw IllegalStateException("ID should not be null")
)
} else {
metrikk.tellHendelse("lagre_arbeidsoppgave_eksisterende")
arbeidsoppgaveDAO.update(
arbeidsoppgave.copy(
oppfoelgingsdialogId = oppfoelgingsdialogId,
erVurdertAvSykmeldt = oppfolgingsplan.arbeidstaker.fnr == innloggetFnr || arbeidsoppgaveDAO.finnArbeidsoppgave(
arbeidsoppgave.id
)!!.erVurdertAvSykmeldt,
erVurdertAvSykmeldt = oppfolgingsplan.arbeidstaker.fnr == innloggetFnr ||
arbeidsoppgaveDAO.finnArbeidsoppgave(
arbeidsoppgave.id
)!!.erVurdertAvSykmeldt,
sistEndretAvAktoerId = innloggetAktoerId
)
).id ?: throw IllegalStateException("ID should not be null")
)
}
}

Expand Down Expand Up @@ -93,4 +95,4 @@ class ArbeidsoppgaveService(
oppfolgingsplanDAO.sistEndretAv(arbeidsoppgave.oppfoelgingsdialogId, innloggetAktoerId)
arbeidsoppgaveDAO.delete(arbeidsoppgave.id)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,19 @@ class TilgangskontrollService(
fun brukerTilhorerOppfolgingsplan(fnr: String, oppfolgingsplan: OppfolgingsplanDTO): Boolean {
requireNotNull(oppfolgingsplan.arbeidstaker.aktoerId) { "AktoerId for arbeidstaker mangler" }
val arbeidstakersFnr: String = pdlClient.fnr(oppfolgingsplan.arbeidstaker.aktoerId)
return arbeidstakersFnr == fnr
|| erNaermesteLederForSykmeldt(fnr, arbeidstakersFnr, oppfolgingsplan.virksomhet.virksomhetsnummer)
return arbeidstakersFnr == fnr ||
erNaermesteLederForSykmeldt(fnr, arbeidstakersFnr, oppfolgingsplan.virksomhet.virksomhetsnummer)
}

fun kanOppretteOppfolgingsplan(sykmeldtFnr: String, innloggetFnr: String, virksomhetsnummer: String): Boolean {
return (innloggetFnr == sykmeldtFnr && aktoerHarNaermesteLederHosVirksomhet(innloggetFnr, virksomhetsnummer))
|| erNaermesteLederForSykmeldt(innloggetFnr, sykmeldtFnr, virksomhetsnummer)
return (innloggetFnr == sykmeldtFnr && aktoerHarNaermesteLederHosVirksomhet(innloggetFnr, virksomhetsnummer)) ||
erNaermesteLederForSykmeldt(innloggetFnr, sykmeldtFnr, virksomhetsnummer)
}

fun erNaermesteLederForSykmeldt(lederFnr: String?, sykmeldtFnr: String?, virksomhetsnummer: String): Boolean {
return narmesteLederClient.ansatte(lederFnr).stream()
.anyMatch { ansatt -> virksomhetsnummer == ansatt.virksomhetsnummer && ansatt.fnr.equals(sykmeldtFnr) }
if (lederFnr == null) return false
return narmesteLederClient.ansatte(lederFnr)
?.any { ansatt -> virksomhetsnummer == ansatt.virksomhetsnummer && ansatt.fnr == sykmeldtFnr } ?: false
}

private fun aktoerHarNaermesteLederHosVirksomhet(fnr: String, virksomhetsnummer: String): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,15 @@ fun erGodkjentAvAnnenPart(oppfolgingsplan: OppfolgingsplanDTO, aktoerId: String)

fun annenPartHarGjortEndringerImellomtiden(oppfolgingsplan: OppfolgingsplanDTO, innloggetAktoerId: String): Boolean {
return if (erArbeidstakeren(oppfolgingsplan, innloggetAktoerId)) {
val sistAksessert = oppfolgingsplan.arbeidstaker.sistAksessert
oppfolgingsplan.sistEndretArbeidsgiver != null &&
oppfolgingsplan.arbeidstaker.sistAksessert != null &&
oppfolgingsplan.arbeidstaker.sistAksessert.isBefore(
oppfolgingsplan.sistEndretArbeidsgiver
)
sistAksessert != null &&
sistAksessert.isBefore(oppfolgingsplan.sistEndretArbeidsgiver)
} else {
val sistAksessert = oppfolgingsplan.arbeidsgiver.sistAksessert
oppfolgingsplan.sistEndretSykmeldt != null &&
oppfolgingsplan.arbeidsgiver.sistAksessert != null &&
oppfolgingsplan.arbeidsgiver.sistAksessert.isBefore(
oppfolgingsplan.sistEndretSykmeldt
)
sistAksessert != null &&
sistAksessert.isBefore(oppfolgingsplan.sistEndretSykmeldt)
}
}

Expand Down Expand Up @@ -108,7 +106,7 @@ fun eksisterendeArbeidsoppgaveHoererTilDialog(
arbeidsoppgaveListe.any { arbeidsoppgave -> arbeidsoppgave.id == arbeidsoppgaveId }
}

fun kanEndreElement(innloggetAktoerId: String, arbeidstakerAktoerId: String, opprettetAvAktoerId: String): Boolean {
fun kanEndreElement(innloggetAktoerId: String, arbeidstakerAktoerId: String?, opprettetAvAktoerId: String?): Boolean {
return when {
opprettetAvAktoerId == innloggetAktoerId -> {
true
Expand All @@ -117,6 +115,7 @@ fun kanEndreElement(innloggetAktoerId: String, arbeidstakerAktoerId: String, opp
innloggetAktoerId != arbeidstakerAktoerId && opprettetAvAktoerId != arbeidstakerAktoerId -> {
true
}

else -> false
}
}

0 comments on commit dbfb650

Please sign in to comment.