Mesela bir iletişim merkezi düşünelim; karşılandığından emin olun. İletişim merkezi 7/24 hizmet verir. gereken çalışan sayısı zamanla değişiklik gösterir. İşe alım yapan iletişim merkezi tam zamanlı ve yarı zamanlı çalışanlar oluyor.
Tam zamanlı çalışanlar 9 saatlik vardiyalarda çalışır, 1 saatlik molaları 4 veya 5 saattir başlayabilir ve vardiyaya sabah 05:00 ile 05:00 arasında başlayabilir 12:00. Yarı zamanlı çalışanlar 4 saatlik vardiyalarda ve 15 dakikalık aralarla Dilediğiniz zaman vardiyaya başlayabilirsiniz. İkisinde de durumlarda, olası vardiya başlangıç süreleri 15 dakikalık artışlarla göz önünde bulundurulur.
İletişim merkezi, müşteri hizmetleri için iş gücü gereksinimlerini en fazla 20 tam zamanlı çalışma süresi olabileceğini göz önünde bulundurarak, 40 adet yarı zamanlı çalışanımız var.
Tam zamanlı ve yarı zamanlı çalışanlar için şablonları değiştirme
Geçerli kaymaları belirleyen kurallar kaymayla temsil edilebilir şablonunu seçin. Bir kaydırma şablonunda, ara kavramı gösterilebilir etkinlik şablonu kullanarak. Örneğin, tam zamanlı bir zaman için kaydırma şablonu çalışan değişikliği şu şekilde temsil edilir:
{
"id": "full-time",
"earliestStartTime": {
"hours": 5
},
"latestStartTime": {
"hours": 12
},
"durationMinutes": 540,
"startTimeIncrementMinutes": 15,
"eventTemplates": [
{
"id": "full-time-break",
"minimumMinutesAfterShiftStart": 240,
"maximumMinutesAfterShiftStart": 300,
"durationMinutes": 60,
"startTimeIncrementMinutes": 60
}
],
"maximumEmployeeCount": 20
}
Benzer şekilde, yarı zamanlı çalışan vardiyasında vardiya şablonu şu şekilde gösterilir:
{
"id": "part-time",
"earliestStartTime": {},
"latestStartTime": {
"hours": 23,
"minutes": 59
},
"durationMinutes": 240,
"startTimeIncrementMinutes": 15,
"eventTemplates": [
{
"id": "part-time-break",
"minimumMinutesAfterShiftStart": 120,
"maximumMinutesAfterShiftStart": 120,
"durationMinutes": 15,
"startTimeIncrementMinutes": 0
}
],
"maximumEmployeeCount": 40
}
Zaman içinde çalışanların talebi
Çalışanlara yönelik talep EmployeeDemand
,
Bu öğelerin her birinin bir zaman aralığı ve bir çalışan
sayısı. Bu örnekte, hafta başına 4 ila 13 çalışan arasında talep
iki günlük bir aralıktır ve şu şekilde temsil edilir:
{
...
"employeeDemands": [
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 12
},
"employeeCount": 8
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 12
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 20
},
"employeeCount": 12
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 20
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 6
},
"employeeCount": 4
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 6
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 22,
"hours": 0
},
"employeeCount": 13
}
]
}
Eksiksiz istek örneği
{
"solverConfig": {
"timeLimit": "30s"
},
"shiftTemplates": [
{
"id": "full-time",
"earliestStartTime": {
"hours": 5
},
"latestStartTime": {
"hours": 12
},
"durationMinutes": 540,
"startTimeIncrementMinutes": 15,
"eventTemplates": [
{
"id": "full-time-break",
"minimumMinutesAfterShiftStart": 240,
"maximumMinutesAfterShiftStart": 300,
"durationMinutes": 60,
"startTimeIncrementMinutes": 60
}
],
"maximumEmployeeCount": 20
},
{
"id": "part-time",
"earliestStartTime": {},
"latestStartTime": {
"hours": 23,
"minutes": 59
},
"durationMinutes": 240,
"startTimeIncrementMinutes": 15,
"eventTemplates": [
{
"id": "part-time-break",
"minimumMinutesAfterShiftStart": 120,
"maximumMinutesAfterShiftStart": 120,
"durationMinutes": 15,
"startTimeIncrementMinutes": 0
}
],
"maximumEmployeeCount": 40
}
],
"employeeDemands": [
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 12
},
"employeeCount": 8
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 12
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 20
},
"employeeCount": 12
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 20,
"hours": 20
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 6
},
"employeeCount": 4
},
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 6
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 22,
"hours": 0
},
"employeeCount": 13
}
]
}
Yanıt örneği
Çözücünün yanıtında, zaman çizelgesiyle birlikte çalışan gereken çalışan sayısına karşılık gelir. Talebi karşılamak tam olarak bu mümkün değilse yanıtta, ihlaller hakkında seçebilirsiniz.
Aşağıdaki örnekte bir web sitesi için oluşturulan çalışan zaman çizelgelerinden tam zamanlı çalışan:
{
"solutionStatus": "SHIFT_GENERATION_SOLVED",
"employeeSchedules": [
{
"shiftTemplateId": "full-time",
"shifts": [
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 7,
"minutes": 30
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 16,
"minutes": 30
},
"events": [
{
"startDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 12,
"minutes": 30
},
"endDateTime": {
"year": 2024,
"month": 5,
"day": 21,
"hours": 13,
"minutes": 30
},
"eventTemplateId": "full-time-break"
}
]
}
],
"employeeCount": 1
},
...
]
...
}