NSILM

Üldkirjeldus

Teenus võimaldab lisada eesmärgile uue meeskonnaliikme.

Seotud andmeobjektid:

Seotud Jira taskid

NSIL-797 - Getting issue details... STATUS

NSIL-925 - Getting issue details... STATUS

NSIL-979 - Getting issue details... STATUS

Eeltingimused ja kasutusõigused

  • Kui tegemist on asutusepõhise eesmärgiga (Goal.goalScope = INSTITUTIONAL):
    • Kasutajal on seos eesmärgi asutusega ja sama asutuse meeskonnaliikmete lisamise ja muutmise õigus
      • Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
      • Õigust reguleerib privileeg: HSILM_PLANNING_TEAM_MEMBER_MANAGE.
  • Kui tegemist on isikupõhise eesmärgiga (Goal.goalScope = INDIVIDUAL):
    • Kasutaja on eesmärgi omanik ja tal on seos eesmärgi asutuse ja ametikohaga.
      • Goal.personalCode = Kasutaja isikukood
      • Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
      • Goal.jobsite = Kasutaja poolt valitud rolliga seotud ametikoht
      • Eraldi privileegi ei ole vaja.
  • Või kasutaja on eesmärgi meeskonnas ja planeerimise meeskonna liikme rollil on meeskonnaliikmete haldamise õigus. 
    • Goal.goalScope = INSTITUTIONAL või INDIVIDUAL
    • Goal.teamMembers.id = GoalTeamMember.id, mille personalCode = Kasutaja isikukood
    • Õigust reguleerib privileeg: HSILM_PLANNING_TEAM_MEMBER_MANAGE.

Planeerimise mooduli kasutusrollide ja õiguste kohta saab täpsemalt infot leida lehelt Kasutusõigused ja rollid.

Sisendid

AtribuutKohustuslikkus, mitmesusTüüpVaikeväärtus, valideerimineKirjeldus, täiendav info

goalId

1

String
  • Eesmärk peab eksisteerima.
    • Goal.id = goalId
  • Eesmärk ei tohi olla arhiveeritud.
    • Goal.archived = false
Eesmärgi unikaalne identifikaator, mille meeskonda uus liige lisatakse.

personalCode

1

String
  • 11 numbrit pikk.
  • Peab vastama Eesti isikukoodi reeglitele.
Uue meeskonnaliikme isikukood. 

Väljundid

AtribuutKohustuslikkus, mitmesusTüüpKirjeldus, täiendav info

id

1

StringMeeskonnaliikme unikaalne identifikaator.

personalCode

1

StringMeeskonnaliikme isikukood.

firstName

0..1

StringMeeskonnaliikme eesnimi.
lastName

0..1

StringMeeskonnaliikme perenimi.

roleType

0..1

String

Meeskonnaliikme roll planeerimise moodulis.

Väärtusena klassifikaatori HSILM_GOAL_ROLE elemendi viide.

email

0..1

StringMeeskonnaliikme e-posti aadress.

phoneNumber

0..1

StringMeeskonnaliikme telefoninumber.

institution

0..1

StringMeeskonnaliikme asutuse nimetus.

jobTitle

0..1

StringMeeskonnaliikme ametinimetus.

profileColor

1

StringMeeskonnaliikme profiili värvikood.

Ärireeglid

  • Iga isikukoodi kohta saab sama asutuse/isiku, ametikoha ja asutuse piires olla vaid üks unikaalne meeskonnaliikme kirje.
  • Kui sisendis esitatud eesmärgi asutuse/isiku, ametikoha ja asutuse piires ei ole isikukoodil meeskonnaliikme kirjet, tehakse päring EHIS-e kasutajate registrisse. Saadud andmete põhjal täidetakse uue meeskonnaliikme firstName ja lastName väljad.
  • Kui isikut EHIS-e kasutajate registris ei leidu, jäävad tema nimeväljad esialgu tühjaks. Need täidetakse automaatselt, kui kasutaja esimest korda sisse logib ja ennast autendib.

Tegevused

  1. Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
    1. Kui kasutajal ei ole õigust, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
  2. Süsteem kontrollib, kas sisendandmed vastavad nõuetele.
    1. Kui andmed ei vasta nõuetele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
  3. Süsteem kontrollib, kas sisendis esitatud eesmärk (goalId) eksisteerib ja kas päringu käivitanud kasutajal on õigus hallata selle andmeid.
    1. Kontroll toimub vastavalt üldreeglites kirjeldatud loogikale.
    2. Kui eesmärki ei leita või see ei vasta üldreeglitele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
  4. Süsteem otsib meeskonda lisatava isiku meeskonnaliikme kirjeid: 
    1.  Süsteem otsib Objektid#GoalTeamMember objekti, mille:
      1. personalCode = Sisendis esitatud "personalCode" väärtus
    2. Kui meeskonnaliiget ei leita, jätkub protsess sammust 6.b.
  5. Süsteem kontrollib, kas meeskonda lisatav isik on sisendis esitatud eesmärgi (goalId) meeskonnas:
    1. Süsteem otsib Objektid#Goal objekti, mille:
      1. id = Sisendis esitatud "goalId" väärtus
      2. teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
    2. Kui tingimustele vastav eesmärk leitakse, lõpetatakse päringu töötlemine ja tagastatakse http veakood (isik juba meeskonnas).
  6. Süsteem kontrollib, kas meeskonda lisataval isikul on juba olemas meeskonnaliikme kirjed sisendis esitatud eesmärgi asutuse / isiku, ametikoha ja asutuse piires. Arvestatakse ka arhiveeritud eesmärke.
    1. Süsteem kontrollib, kas mõni leitud meeskonnaliikmete kirjetest on seotud vähemalt ühe eesmärgiga, mis kuulub samale asutusele / isikule, ametikohale ja asutusele nagu sisendis esitatud eesmärk (goalId).  
      1. Süsteem otsib Objektid#Goal objekte, mille:
        1. institution.id = Objektid#Goal.institution.id, mille id = sisendis esitatud "goalId" väärtus
        2. goalScope = Objektid#Goal.goalScope, mille id = sisendis esitatud "goalId" väärtus
        3. Kui goalScope = INSTITUTIONAL:
          1. jobsite = NULL
          2. personalCode = NULL
        4. Kui goalScope = INDIVIDUAL:
          1. jobsite = Objektid#Goal.jobsite, mille id = sisendis esitatud "goalId" väärtus
          2. personalCode = Objektid#Goal.personalCode, mille id = sisendis esitatud "goalId" väärtus
        5. teamMembers.id = üks leitud meeskonnaliikmete ID-dest (Objektid#GoalTeamMember.id)
      2. Kui vähemalt üks tingimustele vastav eesmärk leitakse, jätkub protsess edasi sammust 7.
      3. Kui eesmärki ei leita, jätkub protsess edasi sammust 6.b.
    2. Kui isikul ei ole meeskonnaliikme kirjet sisendis esitatud eesmärgi asutuse / isiku, ametikoha ja asutuse piires:
      1. Süsteem teeb päringu EHIS kasutajate registrisse:
        1. Süsteem käivitab otsitava isiku andmete saamiseks päringu KA Kasutajate päring, mille sisendiks annakse:
          1. idCode = Sisendis esitatud "personalCode" väärtust.
      2. Süsteem loob uue Objektid#GoalTeamMember objekti, täites väljad:
        1. id = UUID
        2. personalCode = Sisendis esitatud "personalCode" väärtus
        3. firstName, lastName = EHIS-i kasutajate registri andmed, kui kasutaja on leitud. Kui ei, jäävad need tühjaks.
        4. email, phoneNumber, institution, jobTitle = jäävad tühjaks
        5. profileColor = Süsteem valib eesmärgi juures unikaalse värvikoodi etteantud värvikoodide seast.
  7. Süsteem seob leitud või just loodud meeskonnaliikme eesmärgiga:
    1. Süsteem kontrollib, kas isikul on EHIS-es meeskonnaliikmete lisamise/muutmise õigus (HSILM_PLANNING_TEAM_MEMBER_MANAGE).  
    2. Süsteem otsib Objektid#Goal objekti, mille id = goalId ja uuendab selle andmeid järgmiselt:
      1. teamMembers nimekirja lõppu lisatakse eesmärgi uue meeskonnaliikme andmed:
        1. teamMembers.id = leitud või just loodud Objektid#GoalTeamMember.id
        2. Kui isikul on HSILM_PLANNING_TEAM_MEMBER_MANAGE õigus, siis:
          1. teamMembers.roleType = "TEAM_LEAD" (viide klassifikaatorist HSILM_GOAL_ROLE).
  8. Süsteem tagastab loodud meeskonnaliikme andmed.