Çalışan talebini karşılamak için verilen vardiya şablonlarında değişiklikler oluşturarak, belirtilen SolveShiftGenerationRequest
ile ilişkili bir 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
İstek gövdesi, aşağıdaki yapıya sahip verileri içerir:
JSON gösterimi |
---|
{ "solverConfig": { object ( |
Alanlar | |
---|---|
solverConfig |
İsteğe bağlı. Çözücü parametreleri. |
shiftTemplates[] |
Zorunlu. Kaydırma oluşturma kurallarını belirten vardiya şablonları kümesi. |
employeeDemands[] |
Zorunlu. |
Yanıt gövdesi
Üst Karakter Oluşturma sorunu için yanıt. Döndürülen solutionStatus
değeri SOLVED
ise çözücü tarafından oluşturulan geçerli kaymalar grubu employeeSchedules
içinde döndürülür. Geçerli bir vardiya programı için aşağıdaki mülklerde bulunur:
employeeSchedules
uygulamasında oluşturulan her bir değişiklik, ilgiliShiftTemplate
politikasında belirtilen kurallara uyar.- Her vardiyada seçilen her etkinlik, ilgili
ShiftTemplate.Event
içinde belirtilen kurallara uyar. - Aynı ShiftTemplate'ten oluşturulan vardiya kümelerine atanan toplam çalışan sayısı söz konusu şablonun
maximumEmployeeCount
kadarını aşmaz. - Atanan çalışan grubu, belirtilen her aralıktaki talebi 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 ve her bir zaman çizelgesine atanan çalışan sayısı. |
demandCoverageViolations[] |
Belirtilen |
SolverConfig
Üst Karakter Oluşturma sorununu çözmek için ek parametreleri belirtir.
JSON gösterimi |
---|
{ "timeLimit": string, "multiDaySchedule": boolean, "shiftEventsCanChange": boolean } |
Alanlar | |
---|---|
timeLimit |
Çözme aracının problem ü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. Örneğin, 2 Bu değer sabit bir sınır değildir ve iletişim ek yükünü hesaba katmaz. Sorunu çözmek için beklenen gecikme, bu değeri biraz aşabilir. En fazla dokuz kesir basamağı olan ve " |
multiDaySchedule |
Doğru ise çözücü, birkaç vardiya içeren (ör. haftalık bir program oluşturmak için) |
shiftEventsCanChange |
Doğru değerine ayarlanırsa birden çok gün içeren |
ShiftTemplate
Vardiya oluşturma kurallarını belirten şablon. Vardiya, başlangıç ve bitiş zamanının belirtildiği ve etkinliklerin (ör.öğle yemeği, mola vb.) yer alabileceği bir çalışma birimidir. Yanıtta belirli bir tarihe bir kaydırma atanacak.
JSON gösterimi |
---|
{ "id": string, "earliestStartTime": { object ( |
Alanlar | |
---|---|
id |
Bu şablonun benzersiz kimliği. |
earliestStartTime |
Vardiyanın gün içinde başlayabileceği en erken saat. Bu değer, saat ve dakika ile belirtilir; saniye ve nanolar göz ardı edilir. |
latestStartTime |
Vardiyanın gün içinde başlayabileceği en geç saat. Bu değer, saat ve dakika ile belirtilir; saniye ve nanolar göz ardı edilir. Bu değer |
durationMinutes |
Bu şablon tarafından oluşturulan bir kaymanın süresi sabitlendi. |
startTimeIncrementMinutes |
|
daysOffCountPerWeek |
Haftalık olarak belirlenen sabit gün sayısı. Bir çalışan, o gün başlayan bir vardiyaya atanmamışsa belirli bir izin günü vardır. Bir hafta 7 gündür ve Pazar günü başlar. |
eventTemplates[] |
Her vardiya için etkinlik oluşturma kuralları. Belirtilen her Etkinlik için her bir vardiyaya tam olarak bir etkinlik dahil edilecek. |
minimumIntereventGapMinutes |
Bir etkinliğin sonu ile bir 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ş. Bir API, artık saniyeye izin vermeyi seçebilir. İ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. Bir API, "24:00:00" değerine izin vermeyi seçebilir. gibi senaryolar için oldukça yararlı olabilir. |
minutes |
Günün saatindeki dakikalar. 0 ile 59 arasında olmalıdır. |
seconds |
Saniye cinsinden dakika. Normalde 0 ile 59 arasında olmalıdır. Bir API, artık saniyeye izin veriyorsa 60 değerine izin verebilir. |
nanos |
Nanosaniye cinsinden saniyenin kesirleri. 0 ile 999.999.999 arasında olmalıdır. |
EventTemplate
Kaydırma 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şlangıcından sonra bu etkinliğin başlayabileceği minimum dakika sayısı. |
maximumMinutesAfterShiftStart |
Bir vardiya başlangıcından 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ı (dahil). Bu değerler dakikaya kadar okunur. saniye ve tüm küçük birimler yoksayılır. |
endDateTime |
Belirli bir talep için zaman aralığının sonu (hariç). Bu değerler dakikaya kadar okunur. saniye ve tüm küçük birimler yoksayılır. |
employeeCount |
Bu aralıkla ilgili talebi karşılamak için gereken çalışan sayısı. |
ShiftGenerationSolutionStatus
Bir çözücünün yanıtında sağlanan çözüm durumu.
Sıralamalar | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
Yanıt için belirtilmemiş durum. |
SHIFT_GENERATION_SOLVED |
Çözme aracı, belirtilen süre sınırında bir çözüm buldu. |
SHIFT_GENERATION_NOT_SOLVED |
Bir sorun, çözücünün değişim oluşturmasını engelledi. |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
Belirtilen zaman sınırı dahilinde talebi karşılamak için değişiklikler oluşturulamadı. |
EmployeeSchedule
Birkaç çalışana atanacak tek bir ShiftTemplate
'ye karşılık gelen sıralı vardiya listesi.
JSON gösterimi |
---|
{
"shiftTemplateId": string,
"shifts": [
{
object ( |
Alanlar | |
---|---|
shiftTemplateId |
Bu vardiya grubunu 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 kaymanın sabit etkinliklerinin bir 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 verilmez. |
endDateTime |
Vardiyanın bitiş tarihi ve saati. Bu değer dakikaya kadar belirtilir. saniye ve daha küçük birimler verilmez. |
events[] |
Bu vardiyaya dahil edilen, |
Etkinlik
Çözücü tarafından oluşturulan bir vardiyadaki belirli bir etkinliğin başlangıç ve bitiş tarihini 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 verilmez. |
endDateTime |
Etkinliğin bitiş tarihi ve saati. Bu değer dakikaya kadar belirtilir. saniye ve daha küçük birimler verilmez. |
DemandCoverageViolation
Belirtilen aralıktaki talep kapsamı ihlalini belirtir. Çalışan talebi, belirtilen aralığın tamamında aynıdır.
JSON gösterimi |
---|
{ "startDateTime": { object ( |
Alanlar | |
---|---|
startDateTime |
Talep aralığının başlangıç tarihi ve saati (dahil). Bu değer dakikaya kadar belirtilir. |
endDateTime |
Talep aralığının bitiş tarihi ve saati (hariç). Bu değer dakikaya kadar belirtilir. |
coverageViolation |
Belirtilen aralıktaki kapsam ihlali. Pozitif değer talebin gereğinden fazla karşılandığını, negatif değer ise talebin karşılanmadığını gösterir. |