Avant la modification des classes
This commit is contained in:
parent
69ef2f94f7
commit
793393b294
@ -1,28 +1,28 @@
|
||||
{
|
||||
"employees": [
|
||||
{
|
||||
"name": "Marie Dupont",
|
||||
"name": "Aurélie Antoine",
|
||||
"skills": ["INFIRMIER", "PRELEVEMENT"],
|
||||
"unavailableDates": ["2024-12-25", "2024-12-26"],
|
||||
"undesiredDates": ["2024-12-24", "2024-12-31"],
|
||||
"desiredDates": ["2024-12-20", "2024-12-21"]
|
||||
},
|
||||
{
|
||||
"name": "Pierre Martin",
|
||||
"name": "Cathy Coucou",
|
||||
"skills": ["MEDECIN", "SUPERVISION"],
|
||||
"unavailableDates": ["2024-12-30"],
|
||||
"undesiredDates": ["2024-12-29"],
|
||||
"desiredDates": ["2024-12-22", "2024-12-23"]
|
||||
},
|
||||
{
|
||||
"name": "Sophie Bernard",
|
||||
"name": "Sophie Bernard-Dupont",
|
||||
"skills": ["INFIRMIER", "ACCUEIL"],
|
||||
"unavailableDates": [],
|
||||
"undesiredDates": ["2024-12-25"],
|
||||
"desiredDates": ["2024-12-24", "2024-12-28"]
|
||||
},
|
||||
{
|
||||
"name": "Jean Leroy",
|
||||
"name": "Jean Leroy lili",
|
||||
"skills": ["PRELEVEMENT", "TRANSPORT"],
|
||||
"unavailableDates": ["2024-12-24", "2024-12-25"],
|
||||
"undesiredDates": [],
|
||||
|
||||
79
diagram.puml
Normal file
79
diagram.puml
Normal file
@ -0,0 +1,79 @@
|
||||
@startuml EmployeeSchedulingModel
|
||||
|
||||
' Configuration pour un rendu plus lisible
|
||||
skinparam classAttributeIconSize 0
|
||||
skinparam defaultFontName Arial
|
||||
left to right direction
|
||||
|
||||
' Définition des classes
|
||||
class Collecte {
|
||||
- id: String
|
||||
- start: LocalDateTime
|
||||
- end: LocalDateTime
|
||||
- location: String
|
||||
+ getShifts(): List<Shift>
|
||||
}
|
||||
|
||||
class Shift {
|
||||
- id: String
|
||||
- start: LocalDateTime
|
||||
- end: LocalDateTime
|
||||
- location: String
|
||||
- requiredSkill: String
|
||||
- employee: Employee
|
||||
+ isOverlappingWithDate(date: LocalDate): boolean
|
||||
}
|
||||
|
||||
class Employee {
|
||||
- name: String
|
||||
- skills: Set<String>
|
||||
- unavailableDates: Set<LocalDate>
|
||||
- undesiredDates: Set<LocalDate>
|
||||
- desiredDates: Set<LocalDate>
|
||||
+ hasSkill(skill: String): boolean
|
||||
}
|
||||
|
||||
class EmployeeSchedule {
|
||||
- employees: List<Employee>
|
||||
- collectes: List<Collecte>
|
||||
- score: HardSoftBigDecimalScore
|
||||
- solverStatus: SolverStatus
|
||||
+ getUnassignedShifts(): List<Shift>
|
||||
}
|
||||
|
||||
' Relations entre les classes
|
||||
Collecte "1" *-- "0..*" Shift : contient >
|
||||
Shift "1" --o "0..1" Employee : assigné à >
|
||||
EmployeeSchedule "1" *-- "0..*" Employee : gère >
|
||||
EmployeeSchedule "1" *-- "0..*" Collecte : organise >
|
||||
|
||||
' Légende pour les cardinalités
|
||||
legend right
|
||||
| **Cardinalités** |
|
||||
|------------------|
|
||||
| "1" = Un et un seul |
|
||||
| "0..*" = Zéro ou plusieurs |
|
||||
| "0..1" = Zéro ou un |
|
||||
endlegend
|
||||
|
||||
' Notes pour expliquer les contraintes
|
||||
note top of Shift
|
||||
Un Shift représente un besoin
|
||||
pour une compétence spécifique
|
||||
dans une Collecte.
|
||||
end note
|
||||
|
||||
note right of Employee
|
||||
Un Employee peut être assigné
|
||||
à plusieurs Shifts s'il a
|
||||
les compétences requises
|
||||
et est disponible.
|
||||
end note
|
||||
|
||||
note bottom of Collecte
|
||||
Une Collecte nécessite plusieurs Shifts,
|
||||
chacun avec une compétence spécifique.
|
||||
Exemple : 2 INFIRMIER, 1 MEDECIN, etc.
|
||||
end note
|
||||
|
||||
@enduml
|
||||
162
vi
162
vi
@ -1,162 +0,0 @@
|
||||
{
|
||||
"employees": [
|
||||
{
|
||||
"name": "Marie Dupont",
|
||||
"skills": ["INFIRMIER", "PRELEVEMENT"],
|
||||
"unavailableDates": ["2024-12-25", "2024-12-26"],
|
||||
"undesiredDates": ["2024-12-24", "2024-12-31"],
|
||||
"desiredDates": ["2024-12-20", "2024-12-21"]
|
||||
},
|
||||
{
|
||||
"name": "Pierre Martin",
|
||||
"skills": ["MEDECIN", "SUPERVISION"],
|
||||
"unavailableDates": ["2024-12-30"],
|
||||
"undesiredDates": ["2024-12-29"],
|
||||
"desiredDates": ["2024-12-22", "2024-12-23"]
|
||||
},
|
||||
{
|
||||
"name": "Sophie Bernard",
|
||||
"skills": ["INFIRMIER", "ACCUEIL"],
|
||||
"unavailableDates": [],
|
||||
"undesiredDates": ["2024-12-25"],
|
||||
"desiredDates": ["2024-12-24", "2024-12-28"]
|
||||
},
|
||||
{
|
||||
"name": "Jean Leroy",
|
||||
"skills": ["PRELEVEMENT", "TRANSPORT"],
|
||||
"unavailableDates": ["2024-12-24", "2024-12-25"],
|
||||
"undesiredDates": [],
|
||||
"desiredDates": ["2024-12-27", "2024-12-30"]
|
||||
},
|
||||
{
|
||||
"name": "Anne Moreau",
|
||||
"skills": ["MEDECIN", "INFIRMIER"],
|
||||
"unavailableDates": ["2024-12-26"],
|
||||
"undesiredDates": ["2024-12-31"],
|
||||
"desiredDates": ["2024-12-21", "2024-12-29"]
|
||||
},
|
||||
{
|
||||
"name": "Luc Petit",
|
||||
"skills": ["ACCUEIL", "TRANSPORT"],
|
||||
"unavailableDates": [],
|
||||
"undesiredDates": ["2024-12-20"],
|
||||
"desiredDates": ["2024-12-25", "2024-12-26"]
|
||||
}
|
||||
],
|
||||
"shifts": [
|
||||
{
|
||||
"id": "shift_001",
|
||||
"start": "2024-12-20T08:00:00",
|
||||
"end": "2024-12-20T16:00:00",
|
||||
"location": "Centre de collecte - Toulouse",
|
||||
"requiredSkill": "INFIRMIER",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_002",
|
||||
"start": "2024-12-20T14:00:00",
|
||||
"end": "2024-12-20T22:00:00",
|
||||
"location": "Centre de collecte - Toulouse",
|
||||
"requiredSkill": "PRELEVEMENT",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_003",
|
||||
"start": "2024-12-21T06:00:00",
|
||||
"end": "2024-12-21T14:00:00",
|
||||
"location": "Hôpital Purpan",
|
||||
"requiredSkill": "MEDECIN",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_004",
|
||||
"start": "2024-12-21T08:00:00",
|
||||
"end": "2024-12-21T12:00:00",
|
||||
"location": "Centre de collecte - Colomiers",
|
||||
"requiredSkill": "ACCUEIL",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_005",
|
||||
"start": "2024-12-22T09:00:00",
|
||||
"end": "2024-12-22T17:00:00",
|
||||
"location": "Centre de collecte - Blagnac",
|
||||
"requiredSkill": "INFIRMIER",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_006",
|
||||
"start": "2024-12-22T13:00:00",
|
||||
"end": "2024-12-22T18:00:00",
|
||||
"location": "Transport mobile",
|
||||
"requiredSkill": "TRANSPORT",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_007",
|
||||
"start": "2024-12-23T07:00:00",
|
||||
"end": "2024-12-23T15:00:00",
|
||||
"location": "Hôpital Rangueil",
|
||||
"requiredSkill": "MEDECIN",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_008",
|
||||
"start": "2024-12-23T10:00:00",
|
||||
"end": "2024-12-23T16:00:00",
|
||||
"location": "Centre de collecte - Toulouse",
|
||||
"requiredSkill": "PRELEVEMENT",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_009",
|
||||
"start": "2024-12-24T08:00:00",
|
||||
"end": "2024-12-24T14:00:00",
|
||||
"location": "Centre de collecte - Colomiers",
|
||||
"requiredSkill": "INFIRMIER",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_010",
|
||||
"start": "2024-12-27T09:00:00",
|
||||
"end": "2024-12-27T17:00:00",
|
||||
"location": "Centre de collecte - Toulouse",
|
||||
"requiredSkill": "SUPERVISION",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_011",
|
||||
"start": "2024-12-28T08:00:00",
|
||||
"end": "2024-12-28T16:00:00",
|
||||
"location": "Centre de collecte - Blagnac",
|
||||
"requiredSkill": "ACCUEIL",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_012",
|
||||
"start": "2024-12-29T06:00:00",
|
||||
"end": "2024-12-29T14:00:00",
|
||||
"location": "Hôpital Purpan",
|
||||
"requiredSkill": "MEDECIN",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_013",
|
||||
"start": "2024-12-30T10:00:00",
|
||||
"end": "2024-12-30T18:00:00",
|
||||
"location": "Transport mobile",
|
||||
"requiredSkill": "TRANSPORT",
|
||||
"employee": null
|
||||
},
|
||||
{
|
||||
"id": "shift_014",
|
||||
"start": "2024-12-31T08:00:00",
|
||||
"end": "2024-12-31T16:00:00",
|
||||
"location": "Centre de collecte - Toulouse",
|
||||
"requiredSkill": "INFIRMIER",
|
||||
"employee": null
|
||||
}
|
||||
],
|
||||
"score": null,
|
||||
"solverStatus": null
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user