Hãy cân nhắc sử dụng trung tâm liên lạc mà bạn muốn tạo các ca làm việc sao cho nhu cầu nhân viên được đáp ứng. Trung tâm liên lạc hoạt động 24/7 và số lượng nhân viên cần thiết thay đổi theo thời gian. Trung tâm liên lạc tuyển dụng cả nhân viên toàn thời gian và bán thời gian.
Nhân viên toàn thời gian làm việc theo ca 9 tiếng, nghỉ giải lao 1 tiếng 4 hoặc 5 tiếng sau khi ca làm việc của họ bắt đầu và có thể bắt đầu ca làm việc bất cứ lúc nào từ 5 giờ sáng đến 12 giờ trưa. Nhân viên bán thời gian làm việc theo ca 4 giờ, nghỉ giải lao 15 phút ở khi kết thúc giờ làm việc thứ hai và có thể bắt đầu ca làm việc của họ bất cứ lúc nào. Trong cả hai trong một số trường hợp, thì thời gian bắt đầu ca chuyển có thể được cân nhắc theo gia số 15 phút.
Trung tâm liên lạc muốn lập kế hoạch cho các yêu cầu về lực lượng lao động cho hai ngày làm việc tiếp theo, vì có thể chỉ có tối đa 20 nhân viên làm việc toàn thời gian nhân viên và 40 nhân viên bán thời gian.
Mẫu ca làm việc cho nhân viên toàn thời gian và bán thời gian
Có thể biểu thị các quy tắc xác định các thay đổi hợp lệ bằng dấu shift mẫu. Trong mẫu shift, khái niệm về điểm chèn có thể được biểu thị bằng mẫu sự kiện. Ví dụ: mẫu ca làm việc cho người dùng toàn thời gian ca làm việc của nhân viên được biểu thị như sau:
{
"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
}
Tương tự, mẫu ca làm việc cho nhân viên bán thời gian được biểu thị như sau:
{
"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
}
Nhu cầu của nhân viên theo thời gian
Nhu cầu về nhân viên được thể hiện bằng danh sách EmployeeDemand
,
trong đó mỗi yếu tố này được đặc trưng bởi khoảng thời gian và nhân viên
số lượng. Trong ví dụ này, nhu cầu dao động từ 4 đến 13 nhân viên trong
là hai ngày và được biểu thị dưới dạng:
{
...
"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
}
]
}
Ví dụ về một yêu cầu hoàn chỉnh
{
"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
}
]
}
Ví dụ về phản hồi
Câu trả lời của trình giải quyết chứa một danh sách lịch làm việc của nhân viên cùng với số lượng nhân viên cần thiết tương ứng. Nếu việc đáp ứng chính xác nhu cầu này là không thể, phản hồi cũng sẽ liệt kê các lỗi vi phạm vào mỗi lần liên quan .
Ví dụ sau đây cho thấy một trong các lịch biểu của nhân viên đã tạo cho một nhân viên toàn thời gian:
{
"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
},
...
]
...
}