Package google.research.optimization.v1.workforce

Index

Pause

Période pendant laquelle un employé interrompt son travail pendant un quart de travail.

Champs
start_date_time

DateTime

Heure de début d'une pause.

duration_minutes

int32

Durée de la pause en minutes.

BreakRule

Règle qui détermine à quel moment une pause peut commencer au sein d'un quart de travail et sa durée. La liste de toutes les coupures possibles prises en compte est déterminée par incréments de rule_increment_minutes. Par exemple, si une règle de rupture modélise une pause de 30 minutes qui peut commencer entre 10:00 et 11:00, et que l'incrément de la règle est de 20 minutes, la liste des sauts pris en compte est : [10:00, 10:30], [10:20, 10:50], [10:1, 0], 1:1, 1.

Champs
earliest_start_time

DateTime

Heure de début au plus tôt de la coupure (incluse). Vous ne pouvez définir que hours et minutes.

latest_start_time

DateTime

Dernière heure de début de la pause (incluse). Vous ne pouvez définir que hours et minutes.

duration_minutes

int32

Durée de la pause en minutes.

rule_increment_minutes

int32

[Facultatif] Incrément de temps en minutes pour tous les sauts pris en compte dans cette règle de rupture. Si ce champ n'est pas défini, la valeur par défaut est duration_minutes.

BudgetRequirement

Exigences budgétaires pour un intervalle donné.

Champs
total_budget

double

Budget total pour l'intervalle donné. Vous devez indiquer un budget total si la priorité est PRIORITY_MANDATORY.

Si total_budget n'est pas défini, le coût total de la planification est réduit en fonction de la valeur priority spécifiée. Par exemple, si le priority du budget est de PRIORITY_MEDIUM, le résolveur réduira le coût avant de réduire les cas de non-respect de la contrainte avec la priorité PRIORITY_LOW.

start_date_time

DateTime

Heure de début à laquelle ce budget s'applique. Si aucune heure de début n'est spécifiée, elle est définie comme étant l'heure de début la plus proche pour toutes les périodes de travail données.

end_date_time

DateTime

Heure de fin à laquelle ce budget s'applique. Si aucune heure de fin n'est spécifiée, elle est définie comme étant la dernière heure de fin de toutes les périodes de travail données.

priority

Priority

Niveau de priorité pour respecter le budget requis au cours de la période spécifiée. La priorité par défaut est PRIORITY_LOW. Si la priorité est définie sur PRIORITY_MANDATORY, total_budget doit être défini.

Notez que si cette priorité est plus élevée que d'autres priorités de contraintes et que total_budget est serré, le calendrier qui en résulte peut considérablement enfreindre les contraintes liées aux employés ou les exigences de couverture.

CoverageRequirement

Une exigence de couverture spécifie le nombre d'employés requis pour un ensemble de rôles et/ou de compétences pendant une période donnée et dans un lieu donné. Les intervalles DateTime d'un emplacement particulier ne peuvent pas se chevaucher. Vous pouvez également fournir une liste des ID d'équipes au lieu d'une période et d'un lieu. Seuls les employés pouvant être affectés à un rôle spécifique (ou possédant la compétence spécifique) peuvent répondre à cette exigence.

Pour un poste et/ou une compétence donnés, l'exigence de couverture est remplie lorsqu'au moins target_employee_count employés travaillent à tout moment de la période (ou pour chaque équipe du shift_ids). En revanche, l'exigence de couverture n'est pas respectée si, à un moment donné de la période (ou pour n'importe quel poste en shift_ids), le nombre d'employés est inférieur à target_employee_count pendant cette période. Il y a toujours plus d'employés actifs que target_employee_count, mais le résolveur limite le nombre d'employés.

Champs
start_date_time

DateTime

Heure de début de la couverture requise (incluse). S'il est défini, shift_ids doit être vide.

end_date_time

DateTime

Heure de fin de la condition de couverture (exclue). S'il est défini, shift_ids doit être vide.

location_id

string

Lieu où les employés sont nécessaires. shift_ids n'est pas vide. Ce champ doit être vide.

shift_ids[]

string

S'ils sont définis, les exigences de poste et de compétences sont appliquées individuellement à chaque ID d'équipe de cette liste. Si les champs "shift_ids" ne sont pas vides, les champs start_date_time, end_date_time et location_id doivent être vides.

role_requirements[]

RoleRequirement

Nombre requis d'employés à attribuer aux rôles spécifiés pendant la période. Vous ne devez indiquer qu'un seul élément role_requirement par ID de rôle. Le niveau de priorité par défaut pour chacune des exigences est PRIORITY_MANDATORY. Ces contraintes ne sont pas respectées si les rôles spécifiés sont attribués à moins de target_employee_count employés au cours de la période.

skill_requirements[]

SkillRequirement

Nombre requis d'employés possédant les compétences spécifiées et affectés à des équipes pendant la période. Vous ne devez indiquer qu'un seul élément skill_requirement par ID de compétence. Le niveau de priorité par défaut pour chacune des exigences est PRIORITY_LOW. Ces contraintes ne sont pas respectées si moins de target_employee_count employés possèdent les compétences données à un moment donné au cours de la période.

RoleRequirement

Nombre requis d'employés à attribuer au rôle spécifié pendant la période.

Champs
role_id

string

ID de rôle pour l'exigence.

target_employee_count

int32

Nombre souhaité d'employés affectés au rôle pendant la période.

priority

Priority

Niveau de priorité pour cette contrainte d'exigence. La priorité par défaut pour toutes les contraintes de ressources est PRIORITY_MANDATORY.

SkillRequirement

Nombre requis d'employés qui travaillent pendant la période donnée et possèdent les compétences spécifiées.

Champs
skill_id

string

ID de compétence pour la condition.

target_employee_count

int32

Nombre souhaité d'employés ayant la compétence donnée et travaillant pendant la fenêtre de temps.

priority

Priority

Niveau de priorité pour cette contrainte d'exigence. La priorité par défaut pour toutes les contraintes de ressources est PRIORITY_LOW.

DemandCoverageViolation

Spécifie le cas de non-respect de la couverture de la demande pour l'intervalle donné. La demande des employés reste la même pendant tout l'intervalle spécifié.

Champs
start_date_time

DateTime

Date et heure de début de l'intervalle de demande (incluses). Cette valeur est spécifiée à la minute près.

end_date_time

DateTime

Date et heure de fin de l'intervalle de demande (exclues). Cette valeur est spécifiée à la minute près.

coverage_violation

int32

Non-respect de la couverture pendant la période spécifiée. Une valeur positive indique que la demande est surcouverte, tandis qu'une valeur négative indique que la demande est sous-couverte.

Employé

Un employé du personnel à planifier un rendez-vous.

Champs
id

string

Identifiant unique attribué à cet employé.

role_ids[]

string

ID de rôle que cet employé peut exécuter. Vous devez spécifier au moins un rôle. Lorsqu'un employé est affecté à un poste, il se voit également attribuer un seul rôle parmi cette liste. Différents rôles peuvent être attribués à l'employé au cours de la période de planification.

skill_ids[]

string

ID de compétence de cet employé. Cette liste peut être vide. Lorsqu'un employé est affecté à un quart de travail, il utilise n'importe quel sous-ensemble des compétences listées ici pour couvrir les exigences en matière de compétences pendant toute la durée du poste assigné.

shift_preferences[]

ShiftPreference

Modifiez les préférences de cet employé. Les quarts spécifiés ici représentent des quarts auxquels l'employé préférerait être affecté pendant la période de planification. Les ID d'horaires spécifiés dans shift_preferences doivent être uniques. Le résolveur tente de maximiser la somme des valeurs ShiftPreference.preference pour toutes les shift_preferences satisfaites.

scheduling_constraints[]

SchedulingConstraint

Liste des contraintes de planification pour cet employé. Le niveau de priorité par défaut pour chacune de ces contraintes est PRIORITY_MEDIUM. Pour en savoir plus, consultez l'énumération Priority.

resource_constraints[]

ResourceConstraint

Toutes les contraintes de planification supplémentaires non spécifiées dans scheduling_constraints peuvent être ajoutées ici à resource_constraints. Un ResourceConstraint est une représentation plus abstraite permettant de limiter les ressources d'un employé. Le niveau de priorité par défaut pour chacune de ces contraintes est PRIORITY_MEDIUM. Pour en savoir plus, consultez l'énumération Priority.

shift_requests[]

ShiftRequest

Liste des demandes d'équipes de l'employé. Vous pouvez demander à un employé d'être affecté ou non à des périodes de travail spécifiques. Toutes les attributions d'emploi du temps fixes pour l'employé peuvent être représentées par une ShiftRequest de priorité PRIORITY_MANDATORY. Un ID d'équipe peut apparaître dans une seule demande de planification pour cet employé. Le niveau de priorité par défaut pour chacune de ces requêtes est PRIORITY_LOW. Pour en savoir plus, consultez l'énumération Priority.

hourly_contract

HourlyContract

Contrat qui spécifie le taux horaire normal et les heures supplémentaires pour l'employé.

EmployeeDemand

Spécifie le nombre d'employés nécessaires pour couvrir la demande au cours de l'intervalle DateTime donné.

Champs
start_date_time

DateTime

Début de l'intervalle de temps pour la demande donnée (inclus). Ces valeurs sont lues à la minute près. Les secondes et toutes les unités plus petites sont ignorées.

end_date_time

DateTime

Fin de l'intervalle de temps pour la demande donnée (exclue). Ces valeurs sont lues à la minute près. Les secondes et toutes les unités plus petites sont ignorées.

employee_count

int32

Nombre d'employés nécessaires pour couvrir la demande pour cet intervalle.

EmployeeSchedule

Liste ordonnée de quarts de travail correspondant à un seul ShiftTemplate devant être attribué à un certain nombre d'employés.

Champs
shift_template_id

string

ID du modèle qui a été utilisé pour générer cet ensemble d'ajustements.

shifts[]

ShiftWithEvents

Liste des horaires auxquels employee_count de collaborateurs sont affectés. Les équipes et les événements sélectionnés pour la planification ont été générés à partir d'un seul modèle. Les changements sont triés par ordre chronologique et ne se chevauchent pas. Si SolverConfig.multi_day_schedule est défini sur "true", un jour de congé est implicitement représenté par l'absence de travail à partir de ce jour-là.

employee_count

int32

Nombre d'employés devant être affectés à cet ensemble d'équipes pour répondre à la demande.

ShiftWithEvents

Spécifie les dates de début et de fin, ainsi que la liste des événements fixes d'un décalage généré par le résolveur.

Champs
start_date_time

DateTime

Date et heure de début du quart de travail. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies.

end_date_time

DateTime

Date et heure de fin du quart de travail. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies.

events[]

Event

Liste des événements inclus dans ce décalage, mappés exactement aux éléments ShiftTemplate.Event et dans le même ordre que ceux-ci. Si SolverConfig.shift_events_can_change est défini sur "true", les heures de début et de fin des événements peuvent varier pendant toutes les ShiftWithEvents de ce calendrier.

Événement

Spécifie les dates et heures de début et de fin d'un événement spécifique dans un décalage généré par le résolveur.

Champs
event_template_id

string

ID du modèle qui a été utilisé pour générer cet événement.

start_date_time

DateTime

Date et heure de début de l'événement. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies.

end_date_time

DateTime

Date et heure de fin de l'événement. Cette valeur est spécifiée à la minute près. Les secondes et les unités inférieures ne sont pas fournies.

EventTemplate

Modèle spécifiant les règles pour générer un seul événement qui se produit pendant une équipe. Un événement peut représenter une réunion, une pause, un déjeuner, etc.

Champs
id

string

ID unique de ce modèle.

minimum_minutes_after_shift_start

int32

Nombre minimal de minutes pendant lesquelles cet événement peut commencer après le début d'une période de travail.

maximum_minutes_after_shift_start

int32

Nombre maximal de minutes pendant lesquelles cet événement peut commencer après le début d'une période de travail.

duration_minutes

int32

Durée fixe de cet événement, en minutes.

start_time_increment_minutes

int32

Incrément de temps (en minutes) utilisé pour générer l'ensemble des heures de début d'événements possibles entre minimum_minutes_after_shift_start et maximum_minutes_after_shift_start. Par exemple, si le nombre minimal de minutes après le début de la période de travail est de 30, que le nombre maximal de minutes après le début de la période de travail est de 45 et que l'heure de début est de 5 minutes, l'événement peut avoir lieu 30, 35, 40 ou 45 minutes après le début de la période de travail.

HourlyContract

Spécifie un tarif horaire de base, des différentiels de taux et des multiplicateurs d'heures supplémentaires pour déterminer la rémunération d'un employé. Notez que les réglementations en fonction du pays peuvent nécessiter un calcul différent pour la rémunération des heures supplémentaires. Le résolveur évalue la rémunération des heures supplémentaires de façon à minimiser un indicateur du coût total ou à respecter un budget (voir BudgetRequirement). Il n'est pas destiné à être utilisé pour calculer la masse salariale.

Champs
base_hourly_rate

double

Rémunération pour le travail effectué en dehors des heures supplémentaires. Si plusieurs taux s'appliquent à l'employé, des différentiels de taux sont appliqués par rapport à ce tarif horaire de base. En outre, s'il existe plusieurs tarifs, le tarif horaire de base doit être le plus faible de ces tarifs.

hourly_rate_shift_differentials

map<string, double>

Différence de tarif horaire, payé en plus de base_hourly_rate. Par exemple, si le tarif horaire de base est de 30 $/h, "shift_1" est payé à un taux de 40 $/h et "shift_2" à 45 $/h, alors la représentation proto est: base_hourly_rate: 30 hourly_rate_shift_differentials {key: "shift_1" value: 10} hourly_rate_shift_differentials {key: "shift_2" value: 15}.

overtime_periods[]

OvertimePeriod

Liste de toutes les périodes pour lesquelles des heures supplémentaires doivent être calculées. Ces périodes ne doivent pas se chevaucher.

OvertimePeriod

Période fixe et récurrente régulièrement (généralement 168 heures ou sept périodes consécutives de 24 heures) utilisée pour déterminer le montant de la rémunération des heures supplémentaires. Chaque période a un multiplicateur de heures supplémentaires (par exemple, 1,5) par rapport au base_hourly_rate et une limite du nombre d'heures considérées comme du travail régulier (hors heures supplémentaires). Tout quart de travail qui chevauche la fenêtre de temps start_date_time (incluse) et end_date_time (exclue) est comptabilisé dans le nombre total d'heures travaillées dans la période. Si le chevauchement est partiel, seules les heures qui se chevauchent sont comptabilisées.

Champs
overtime_multiplier

double

Multiplicateur pour calculer le taux horaire des heures supplémentaires (il doit être supérieur ou égal à 1,0). Le tarif horaire des heures supplémentaires est généralement calculé comme suit : base_hourly_rate * overtime_multiplier. Si hourly_rate_shift_differentials propose plusieurs tarifs, le résolveur calcule le taux horaire des heures supplémentaires en se basant sur une moyenne simple des taux applicables pendant la période supplémentaire. Remarque: Les réglementations en fonction du pays peuvent nécessiter un calcul différent pour la rémunération des heures supplémentaires. Le résolveur évalue la rémunération des heures supplémentaires de façon à minimiser un indicateur du coût total ou à respecter un budget, mais il n'est pas destiné à être utilisé pour calculer la masse salariale.

start_date_time

DateTime

Heure de début de la période de prolongation. Si un quart de travail chevauche ce créneau horaire, les heures correspondantes sont comptabilisés à partir du start_date_time.

end_date_time

DateTime

Heure de fin de la période de prolongation. Si un quart de travail chevauche cette heure, les heures correspondantes sont comptabilisées jusqu'à end_date_time.

maximum_regular_hours

double

Nombre maximal d'heures de travail payées à un taux normal (hors heures supplémentaires). Cette quantité doit être positive.

Priorité

Niveau de priorité de toute contrainte liée au planning d'un employé ou aux exigences de couverture. (par exemple, SchedulingConstraint, ResourceConstraint, ShiftRequest et CoverageRequirement). Comme il peut y avoir des contraintes contradictoires, il n'est pas toujours possible de satisfaire toutes les contraintes. Ainsi, chaque type de contrainte a une priorité (donnée par l'utilisateur ou par défaut) qui informe le résolveur de l'importance relative de toutes les contraintes données pour un calendrier complet.

Enums
PRIORITY_UNSPECIFIED Niveau de priorité inconnu.
PRIORITY_LOW Niveau de priorité le plus bas. Les contraintes avec cette priorité sont moins importantes que les autres. Ils sont les premiers à être considérés comme non conformes si aucune solution plausible n'est trouvée.
PRIORITY_MEDIUM Niveau de priorité moyen. Les contraintes avec cette priorité sont plus importantes que les contraintes de priorité PRIORITY_LOW, mais moins importantes que les contraintes de priorité PRIORITY_HIGH. Si aucune solution réalisable ne peut être trouvée après avoir assoupli toutes les contraintes avec la priorité PRIORITY_LOW, alors les contraintes de priorité PRIORITY_MEDIUM sont considérées comme la prochaine violation.
PRIORITY_HIGH Niveau de priorité le plus élevé. Les contraintes avec ce niveau de priorité sont les plus importantes. Ils sont les derniers à considérer comme non-respect des règles si aucune solution réalisable n'est trouvée après l'assouplissement des contraintes des niveaux de priorité inférieurs.
PRIORITY_MANDATORY Niveau de priorité qui représente un élément que le résolveur ne peut pas violer. Si le résolveur renvoie SolutionStatus.INFEASIBLE, cela peut être dû à un trop grand nombre de contraintes PRIORITY_MANDATORY.

ResourceConstraint

Contrainte générale qui limite la quantité d'une certaine "ressource" utilisée par un employé. Il s'agit d'une version abstraite de SchedulingConstraint, plus spécifique, et plus flexible pour l'utilisateur. De nombreuses contraintes de planification qui ne peuvent pas être spécifiées dans SchedulingConstraint.type peuvent être spécifiées à l'aide de ce message.

Champs
priority

Priority

Niveau de priorité de cette contrainte de ressource. La priorité par défaut pour toutes les contraintes de ressources est PRIORITY_MEDIUM.

resource_usages

map<string, double>

Quantité de ressources utilisée par les équipes. Par exemple, si cette contrainte s'applique aux heures minimum et maximum de travail d'un employé au cours d'une semaine spécifique, cette carte contiendra les quarts de travail qui se produisent au cours de cette semaine et la durée de chaque équipe en heures.

minimum_resource_usage

double

Utilisation minimale des ressources pour respecter une contrainte de ressource.

maximum_resource_usage

double

Utilisation maximale des ressources pour qu'une contrainte de ressource soit respectée.

SchedulingConstraint

Contrainte de planification spécifique à un employé particulier. La contrainte spécifiée n'est appliquée que pendant l'intervalle [start_date_time, end_date_time) donné.

Champs
priority

Priority

Niveau de priorité pour cette contrainte de planification. La priorité par défaut de toutes les contraintes de planification est PRIORITY_MEDIUM.

start_date_time

DateTime

Heure de début à laquelle cette contrainte de planification s'applique (incluse).

end_date_time

DateTime

Heure de fin d'application de cette contrainte de planification (exclue).

Champ d'union type. Type de contrainte spécifiée. Chaque contrainte n'est appliquée que pendant la période spécifiée ci-dessus. type ne peut être qu'un des éléments suivants :
minimum_minutes

int32

Durée minimale de travail (en minutes) de l'employé. Si l'employé est affecté à un quart de travail qui chevauche (entièrement ou partiellement) la fenêtre horaire, le nombre de minutes de chevauchement de la période de travail est inclus dans ce décompte.

maximum_minutes

int32

Durée maximale (en minutes) pendant laquelle l'employé peut travailler dans la fenêtre de temps. Si l'employé est affecté à un quart de travail qui chevauche (entièrement ou partiellement) la fenêtre horaire, le nombre de minutes de chevauchement de la période de travail est inclus dans ce décompte.

minimum_consecutive_work_days

int32

Nombre minimal de jours consécutifs pendant lesquels l'employé peut travailler. Un employé travaille un jour précis s'il est affecté à un quart de travail qui commence ce jour-là. Tout quart de travail auquel l'employé est attribué et qui commence dans la fenêtre de temps est inclus dans ce décompte.

maximum_consecutive_work_days

int32

Nombre maximal de jours consécutifs pendant lesquels l'employé peut travailler. Un employé travaille un jour précis s'il est affecté à un quart de travail qui commence ce jour-là. Tout quart de travail auquel l'employé est attribué et qui commence dans la fenêtre de temps est inclus dans ce décompte.

minimum_shift_count

int32

Nombre minimal d'heures de travail que l'employé peut effectuer. Tous les horaires auxquels l'employé est affecté et qui chevauchent entièrement la période est inclus dans ce décompte.

maximum_shift_count

int32

Nombre maximal d'heures de travail autorisées par l'employé. Tous les horaires auxquels l'employé est affecté et qui chevauchent entièrement la période est inclus dans ce décompte.

minimum_rest_minutes

int32

Nombre minimal de minutes pendant lesquelles l'employé doit se reposer après la fin d'un quart de travail avant d'être affecté à un autre quart. Cette contrainte s'applique à chaque paire de quarts de travail entièrement incluse dans [start_date_time, end_date_time].

Moment de la journée

Un quart de travail spécifie une fenêtre de temps fixe pendant laquelle les employés peuvent travailler.

Champs
id

string

ID unique attribué à ce changement.

location_id

string

ID de la zone géographique où ce travail de changement est effectué. Cette valeur n'est pas obligatoire.

start_date_time

DateTime

Heure de début du quart de travail (incluse).

end_date_time

DateTime

Heure de fin du quart de travail (exclue). Actuellement, le résolveur n'accepte que les équipes de moins de 24 heures.

break_rules[]

BreakRule

Liste des règles de non-respect des règles appliquées pendant le quart de travail. Les employés qui effectuent ce quart de travail bénéficient d'une pause par break_rule pendant laquelle ils ne couvrent pas la demande pour le poste qu'ils remplissent. Chaque créneau horaire BreakRule doit être entièrement inclus dans celui de cette équipe.

ShiftAssignment

Attribuer un rôle à un employé

Champs
employee_id

string

ID de l'employé en cours d'attribution.

shift_id

string

ID d'équipe attribué à l'employé.

role_id

string

ID de rôle attribué à l'employé pour le quart de travail.

breaks[]

Break

Liste des pauses pour cette attribution de quarts.

ShiftGenerationSolutionStatus

État de la solution fourni dans la réponse d'un résolveur.

Enums
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED État de la réponse non spécifié.
SHIFT_GENERATION_SOLVED Le résolveur a trouvé une solution dans le délai indiqué.
SHIFT_GENERATION_NOT_SOLVED Un problème a empêché le résolveur de générer des changements.
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED Les équipes n'ont pas pu être générées pour couvrir la demande dans le délai imparti.

ShiftPreference

Préférence numérique pour un ID d'ajustement particulier.

Champs
shift_id

string

Identifiant Shift pour lequel la préférence est spécifiée.

preference

int32

Une valeur de préférence plus élevée indique un changement plus souhaitable.

ShiftRequest

Demande d'affectation ou de non-affectation à des équipes spécifiques d'un employé.

Champs
priority

Priority

Niveau de priorité de cette demande de planification. La priorité par défaut de toutes les requêtes de planification est PRIORITY_LOW.

shift_ids[]

string

ID des équipes de la requête de planification.

type

WorkStatus

Type de demande, par exemple, si la demande est attribuée ou non à l'ensemble d'équipes.

ShiftTemplate

Modèle spécifiant les règles pour générer des quarts. Un quart de travail est une unité de travail qui spécifie une heure de début et une heure de fin, et qui peut contenir des événements (par exemple, déjeuner, pauses, etc.). Un changement sera attribué à une date spécifique dans la réponse.

Champs
id

string

ID unique de ce modèle.

earliest_start_time

TimeOfDay

Première heure de la journée à laquelle une équipe peut commencer. Cette valeur est spécifiée en heures et en minutes. Les secondes et les nano-unités sont ignorées.

latest_start_time

TimeOfDay

Dernière heure de la journée à laquelle une équipe peut commencer. Cette valeur est spécifiée en heures et en minutes. Les secondes et les nano-unités sont ignorées. Si cette valeur est inférieure à earliest_start_time, un décalage généré par ce modèle peut commencer avant ou après minuit.

duration_minutes

int32

Durée fixe d'une période de travail générée par ce modèle.

start_time_increment_minutes

int32

Incrément de temps (en minutes) utilisé pour générer l'ensemble des heures de début possibles entre earliest_start_time et latest_start_time. Par exemple, si l'heure de début au plus tôt est 8h, l'heure de début la plus tardive est 8h30 et que l'incrément de l'heure de début est de 10 minutes, toutes les heures de début possibles pour ce modèle de travail sont : 8h00, 8h10, 8h20 et 8h30.

days_off_count_per_week

int32

Nombre fixe de jours de repos par semaine. Un employé bénéficie d'un jour de congé donné s'il n'est pas affecté à un quart de travail qui commence ce jour-là. Une semaine dure sept jours et commence le dimanche.

event_templates[]

EventTemplate

Règles permettant de générer des événements pour chaque équipe. Un seul événement sera inclus dans chaque quart de travail pour chaque événement spécifié.

minimum_interevent_gap_minutes

int32

Nombre minimal de minutes entre la fin d'un événement et le début du suivant.

maximum_employee_count

int32

Nombre maximal d'employés pouvant être affectés à toutes les périodes de travail générées par ce modèle.

SolutionStatus

État de la solution (planification) fourni dans la réponse d'un résolveur.

Enums
SOLUTION_STATUS_UNSPECIFIED État de la réponse non spécifié.
FEASIBLE Le calendrier renvoyé est faisable, mais peut ne pas être optimal.
OPTIMAL Le calendrier renvoyé est optimal.
INFEASIBLE Il n'existe aucun calendrier réalisable pour les contraintes données. Le résolveur peut renvoyer cette valeur si un sous-ensemble des contraintes avec le niveau de priorité PRIORITY_MANDATORY ne peut pas être satisfait.
NOT_SOLVED Aucune programmation n'a été trouvée.
NOT_SOLVED_DEADLINE_EXCEEDED Aucune planification n'a été trouvée dans le délai indiqué.

SolveParameters

Paramètres qui contrôlent une seule solution du problème de planification des équipes.

Champs
time_limit

Duration

Temps maximal que le résolveur doit consacrer au problème. Si ce champ n'est pas spécifié, la valeur par défaut est de 1 minute.

Cette valeur n'est pas une limite stricte et ne tient pas compte des frais de communication. La latence attendue pour résoudre le problème peut dépasser légèrement cette valeur.

SolverConfig

Spécifie des paramètres supplémentaires pour résoudre le problème de génération d'équipes.

Champs
time_limit

Duration

Temps maximal que le résolveur doit consacrer au problème. Si ce champ n'est pas spécifié, la valeur par défaut est de 1 minute. Le choix d'une limite de temps doit dépendre de l'ampleur du problème. Par exemple, lors de la résolution d'une instance de 7 jours avec 2 ShiftTemplates, chacun avec environ 20 heures de début possibles et 2 événements avec environ 30 heures de début possibles et deux jours d'arrêt par semaine, les valeurs recommandées sont: < 10 s pour les solutions rapides (et probablement non optimales), (10 s, 300 s) pour les solutions de bonne qualité et > 300 s pour une recherche exhaustive. Les instances plus volumineuses peuvent nécessiter des limites de temps plus longues.

Cette valeur n'est pas une limite stricte et ne tient pas compte des frais de communication. La latence attendue pour résoudre le problème peut dépasser légèrement cette valeur.

multi_day_schedule

bool

Si la valeur est "true", le résolveur génère des EmployeeSchedule qui incluent plusieurs quarts (par exemple, pour générer un calendrier d'une semaine). Sinon, chaque EmployeeSchedule inclut exactement un décalage. Les horaires de plusieurs jours partent du principe que l'heure de début du travail d'équipe est la même d'un jour à l'autre, et que le nombre de jours de repos pour ce type d'horaires est déterminé par les modèles d'horaires. La valeur par défaut est "false".

shift_events_can_change

bool

Si la valeur est "true", les EmployeeSchedule de plusieurs jours peuvent inclure des horaires pour lesquels les heures de début et de fin des événements varient d'un jour à l'autre. Sinon, les heures de début et de fin de tous les décalages d'une EmployeeSchedule donnée doivent être les mêmes. Dans les deux cas, les horaires de début et de fin d'un planning de plusieurs jours sont identiques. Par conséquent, ce paramètre est ignoré si multi_day_schedule est défini sur "false". Si ce paramètre est défini sur "true", le temps de résolution peut être plus long. La valeur par défaut est "false".

WorkStatus

Indique si un employé travaille ou non.

Enums
WORK_STATUS_UNSPECIFIED État professionnel inconnu.
STATUS_WORK Statut représentant un employé qui travaille.
STATUS_NOT_WORK Statut représentant un employé qui ne travaille pas.