একটি যোগাযোগ কেন্দ্র বিবেচনা করুন যার জন্য আপনি শিফট তৈরি করতে চান যাতে কর্মচারীদের চাহিদা কভার হয়। যোগাযোগ কেন্দ্রটি 24/7 পরিচালনা করে এবং সময়ের সাথে সাথে প্রয়োজনীয় কর্মচারীর সংখ্যা পরিবর্তিত হয়। যোগাযোগ কেন্দ্রটি ফুল-টাইম এবং পার্ট-টাইম উভয় কর্মচারী নিয়োগ করে।
ফুল টাইম কর্মীরা 9-ঘন্টা শিফট পরিচালনা করে, তাদের শিফট শুরু হওয়ার 4 বা 5 ঘন্টা পরে 1 ঘন্টা বিরতি থাকে এবং সকাল 5 টা থেকে দুপুর 12 টার মধ্যে যে কোন সময় তাদের শিফট শুরু করতে পারে। খণ্ডকালীন কর্মীরা দ্বিতীয় কর্মঘণ্টার শেষে 15 মিনিটের বিরতির সাথে 4-ঘণ্টার শিফট পরিচালনা করেন এবং যে কোনো সময় তাদের শিফট শুরু করতে পারেন। উভয় ক্ষেত্রেই, সম্ভাব্য স্থানান্তর শুরুর সময়গুলি 15-মিনিটের বৃদ্ধিতে বিবেচনা করা হয়।
যোগাযোগ কেন্দ্রটি পরবর্তী দুই দিনের অপারেশনের জন্য কর্মশক্তির প্রয়োজনীয়তা পরিকল্পনা করতে আগ্রহী, বিবেচনা করে যে সেখানে সর্বাধিক 20 জন পূর্ণ-সময়ের কর্মচারী এবং 40 জন খণ্ডকালীন কর্মচারী থাকতে পারে।
ফুল-টাইম এবং পার্ট-টাইম কর্মীদের জন্য টেমপ্লেট শিফট করুন
যে নিয়মগুলি বৈধ স্থানান্তর নির্ধারণ করে তা একটি শিফট টেমপ্লেট দিয়ে উপস্থাপন করা যেতে পারে। একটি শিফট টেমপ্লেটের মধ্যে, একটি বিরতির ধারণা একটি ইভেন্ট টেমপ্লেট দিয়ে উপস্থাপন করা যেতে পারে। উদাহরণস্বরূপ, একটি পূর্ণ-সময়ের কর্মচারী শিফটের জন্য শিফট টেমপ্লেটটি এইভাবে উপস্থাপন করা হয়:
{
"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
}
সময়ের সাথে সাথে কর্মচারীর চাহিদা
কর্মচারীদের চাহিদা EmployeeDemand
এর একটি তালিকার সাথে উপস্থাপন করা হয়, যেখানে এই উপাদানগুলির প্রতিটি একটি সময়ের ব্যবধান এবং একটি কর্মচারী গণনা দ্বারা চিহ্নিত করা হয়। এই উদাহরণে, চাহিদা দুই দিনের ব্যবধানে 4 থেকে 13 জন কর্মচারীর মধ্যে ওঠানামা করে এবং এইভাবে উপস্থাপন করা হয়:
{
...
"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
}
]
}
একটি সম্পূর্ণ অনুরোধের উদাহরণ
{
"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
}
]
}
প্রতিক্রিয়া উদাহরণ
সমাধানকারীর প্রতিক্রিয়াতে তাদের প্রয়োজনীয় কর্মচারীদের সংশ্লিষ্ট সংখ্যা সহ কর্মচারী সময়সূচীর একটি তালিকা রয়েছে। যদি চাহিদা ঠিকভাবে কভার করা সম্ভব না হয়, তবে প্রতিক্রিয়া প্রতিটি প্রাসঙ্গিক সময়ের ব্যবধানে লঙ্ঘনের তালিকা করবে।
নিম্নলিখিত উদাহরণটি একজন পূর্ণ-সময়ের কর্মচারীর জন্য উত্পন্ন কর্মচারী সময়সূচীর একটি দেখায়:
{
"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
},
...
]
...
}