Çalışan talebini karşılamak amacıyla belirli vardiya şablonlarından değişiklikler oluşturarak belirtilen SolveShiftGenerationRequest
için vardiya oluşturma problemini çözer.
HTTP isteği
POST https://optimization.googleapis.com/v1/scheduling:solveShiftGeneration
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
İstek içeriği
İsteğin gövdesi, aşağıdaki yapıya sahip veriler içerir:
JSON gösterimi |
---|
{ "solverConfig": { object ( |
Alanlar | |
---|---|
solverConfig |
İsteğe bağlı. Çözücü parametreleri. |
shiftTemplates[] |
Zorunlu. Vardiya oluşturma kurallarını belirten üst karakter şablonları grubu. |
employeeDemands[] |
Zorunlu. |
Yanıt gövdesi
Değişiklik Oluşturma sorununun yanıtı. Döndürülen solutionStatus
, SOLVED
ise çözücü tarafından oluşturulan geçerli kayma kümesi employeeSchedules
işlevinde döndürülür. Geçerli bir vardiya programı için aşağıdaki özellikler şunları içerir:
employeeSchedules
politikasında oluşturulan her vardiya, karşılık gelenShiftTemplate
politikasında belirtilen kurallara uyar.- Her vardiyada seçilen her etkinlik, karşılık gelen
ShiftTemplate.Event
bölümünde belirtilen kurallara uyar. - Aynı ShiftTemplate'ten oluşturulan vardiya grubuna atanan toplam çalışan sayısı, söz konusu şablonun
maximumEmployeeCount
kadarını aşmıyor. - Atanan çalışanlar grubu, talebi her zaman aralığında karşılar.
Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:
JSON gösterimi |
---|
{ "solutionStatus": enum ( |
Alanlar | |
---|---|
solutionStatus |
Döndürülen çözümün durumu. |
employeeSchedules[] |
Çözücü tarafından oluşturulan vardiyalar kümesi ve her bir zaman çizelgesine atanan çalışan sayısı. |
SolverConfig
Kaydırma Oluşturma problemini çözmek için ek parametreleri belirtir.
JSON gösterimi |
---|
{ "timeLimit": string, "multiDaySchedule": boolean, "shiftEventsCanChange": boolean } |
Alanlar | |
---|---|
timeLimit |
Çözme aracının sorun üzerinde harcaması gereken maksimum süre. Ayarlanmazsa varsayılan olarak 1 dakika olur. Zaman sınırı seçimi, sorunun boyutuna bağlı olmalıdır. Örnek vermek gerekirse, her biri yaklaşık 20 başlangıç zamanı olan, her biri yaklaşık 30 olası başlangıç zamanı olan ve haftada iki gün izinli 2 etkinlik tutan 2 Bu değer kesin bir sınır değildir ve iletişim ek yükünü hesaba katmaz. Sorunun çözülmesi için beklenen gecikme bu değeri biraz aşabilir. " |
multiDaySchedule |
Doğruysa çözücü, birkaç vardiya içeren |
shiftEventsCanChange |
Doğruysa birden fazla günü kapsayan |
ShiftTemplate
Vardiya oluşturma kurallarını belirten şablon. Vardiya, başlangıç ve bitiş zamanını belirten ve etkinlikler (ör.öğle yemeği, molalar vb.) içerebilen bir çalışma birimidir. Yanıtta belirli bir tarihe bir vardiya atanır.
JSON gösterimi |
---|
{ "id": string, "earliestStartTime": { object ( |
Alanlar | |
---|---|
id |
Bu şablonun benzersiz kimliği. |
earliestStartTime |
Gün içinde vardiyanın başlayabileceği en erken saat. Bu değer, saat ve dakika ile belirtilir; saniye ve nanos göz ardı edilir. |
latestStartTime |
Gün içinde vardiyanın başlayabileceği en geç saattir. Bu değer, saat ve dakika ile belirtilir; saniye ve nanos göz ardı edilir. Bu değer |
durationMinutes |
Bu şablon tarafından oluşturulan kaymanın süresi sabittir. |
startTimeIncrementMinutes |
|
daysOffCountPerWeek |
Haftalık olarak sabit izin günü sayısı. Çalışanın o gün başlayacak bir vardiyaya atanmaması için belirli bir gün izni olmalıdır. Hafta 7 gündür ve pazar günü başlar. |
eventTemplates[] |
Her vardiya için etkinlik oluşturma kuralları. Belirtilen her bir Etkinlik için her vardiyaya tam olarak bir etkinlik dahil edilir. |
minimumIntereventGapMinutes |
Bir etkinliğin bitişi ile sonraki etkinliğin başlangıcı arasındaki minimum dakika sayısı. |
maximumEmployeeCount |
Bu şablon tarafından oluşturulan tüm vardiyalara atanabilecek maksimum çalışan sayısı. |
TimeOfDay
Günün saatini temsil eder. Tarih ve saat dilimi önemli değil veya başka bir yerde belirtilmiş. API'ler artık saniyeler eklemeye izin verebilir. İlgili türler: google.type.Date
ve google.protobuf.Timestamp
.
JSON gösterimi |
---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
Alanlar | |
---|---|
hours |
24 saat biçiminde günün saatleri. 0 ile 23 arasında olmalıdır. API'ler, işletmenin kapanış saati gibi senaryolar için "24:00:00" değerine izin vermeyi tercih edebilir. |
minutes |
Günün saati dakika cinsinden ifade edilir. 0 ile 59 arasında olmalıdır. |
seconds |
Dakika cinsinden saniye sayısı. Normalde 0 ile 59 arasında olmalıdır. API'ler artık saniyelere izin veriyorsa 60 değerine izin verebilir. |
nanos |
Saniyenin nanosaniye cinsinden kesirleri. 0 ile 999.999.999 arasında olmalıdır. |
EventTemplate
Vardiya sırasında gerçekleşen tek bir etkinlik oluşturma kurallarını belirten şablon. Etkinlik bir toplantıyı, molayı, öğle yemeğini vb. temsil edebilir.
JSON gösterimi |
---|
{ "id": string, "minimumMinutesAfterShiftStart": integer, "maximumMinutesAfterShiftStart": integer, "durationMinutes": integer, "startTimeIncrementMinutes": integer } |
Alanlar | |
---|---|
id |
Bu şablonun benzersiz kimliği. |
minimumMinutesAfterShiftStart |
Bir vardiya başladıktan sonra bu etkinliğin başlayabileceği minimum dakika sayısı. |
maximumMinutesAfterShiftStart |
Bir vardiya başladıktan sonra bu etkinliğin başlayabileceği maksimum dakika sayısı. |
durationMinutes |
Bu etkinliğin dakika cinsinden süresi sabitlendi. |
startTimeIncrementMinutes |
|
EmployeeDemand
Belirtilen DateTime aralığında talebi karşılamak için gereken çalışan sayısını belirtir.
JSON gösterimi |
---|
{ "startDateTime": { object ( |
Alanlar | |
---|---|
startDateTime |
Belirli bir talep için zaman aralığının başlangıcı (bu tarih dahil). Bu değerler dakikaya kadar okunur; saniyeler ve daha küçük olan tüm birimler yoksayılır. |
endDateTime |
Belirtilen talep için zaman aralığının sonu (hariç). Bu değerler dakikaya kadar okunur; saniyeler ve daha küçük olan tüm birimler yoksayılır. |
employeeCount |
Bu aralıktaki talebi karşılamak için gereken çalışan sayısı. |
ShiftGenerationSolutionStatus
Bir çözücü yanıtında çözüm durumu.
Sıralamalar | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
Yanıt için belirtilmemiş durum. |
SHIFT_GENERATION_SOLVED |
Çözücü, verilen süre sınırı içinde bir çözüm buldu. |
SHIFT_GENERATION_NOT_SOLVED |
Çözücü, bir sorun nedeniyle değişimler gerçekleştiremedi. |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
Verilen süre sınırı içinde talebi karşılamak için değişiklikler oluşturulamadı. |
EmployeeSchedule
Birkaç çalışana atanacak tek bir ShiftTemplate
'e karşılık gelen sıralı vardiya listesi.
JSON gösterimi |
---|
{
"shiftTemplateId": string,
"shifts": [
{
object ( |
Alanlar | |
---|---|
shiftTemplateId |
Bu kaydırma kümesini oluşturmak için kullanılan şablonun kimliği. |
shifts[] |
|
employeeCount |
Talebi karşılamak için bu vardiya grubuna atanması gereken çalışan sayısı. |
ShiftWithEvents
Çözücü tarafından oluşturulan bir vardiyanın sabit etkinlikleri listesiyle birlikte başlangıç ve bitiş tarihini belirtir.
JSON gösterimi |
---|
{ "startDateTime": { object ( |
Alanlar | |
---|---|
startDateTime |
Vardiyanın başlangıç tarihi ve saati. Bu değer dakikaya kadar belirtilir; saniye ve daha küçük birimler belirtilmez. |
endDateTime |
Vardiyanın bitiş tarihi ve saati. Bu değer dakikaya kadar belirtilir; saniye ve daha küçük birimler belirtilmez. |
events[] |
Bu vardiyaya dahil edilen etkinliklerin listesi, |
Etkinlik
Çözücü tarafından oluşturulan bir kaydırmadaki belirli bir etkinliğin başlangıç ve bitiş DateTime değerini belirtir.
JSON gösterimi |
---|
{ "eventTemplateId": string, "startDateTime": { object ( |
Alanlar | |
---|---|
eventTemplateId |
Bu etkinliği oluşturmak için kullanılan şablonun kimliği. |
startDateTime |
Etkinliğin başlangıç tarihi ve saati. Bu değer dakikaya kadar belirtilir; saniye ve daha küçük birimler belirtilmez. |
endDateTime |
Etkinliğin bitiş tarihi ve saati. Bu değer dakikaya kadar belirtilir; saniye ve daha küçük birimler belirtilmez. |