कर्मचारी की मांग को पूरा करने के लिए, दिए गए शिफ़्ट टेंप्लेट से शिफ़्ट जनरेट करके, दिए गए SolveShiftGenerationRequest
में शिफ़्ट जनरेट करने से जुड़े सवाल को हल किया जाता है.
एचटीटीपी अनुरोध
POST https://optimization.googleapis.com/v1/scheduling:solveShiftGeneration
यह यूआरएल gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.
अनुरोध का मुख्य भाग
अनुरोध के मुख्य हिस्से में, इस तरह का डेटा शामिल होता है:
जेएसओएन के काेड में दिखाना |
---|
{ "solverConfig": { object ( |
फ़ील्ड | |
---|---|
solverConfig |
ज़रूरी नहीं. सॉल्वर के लिए पैरामीटर. |
shiftTemplates[] |
ज़रूरी है. शिफ़्ट जनरेट करने के नियम तय करने वाले शिफ़्ट टेंप्लेट का सेट. |
employeeDemands[] |
ज़रूरी है. कर्मचारियों की कुल मांग, जो |
जवाब का मुख्य भाग
Shift जनरेट करने से जुड़ी समस्या से जुड़ा जवाब. अगर solutionStatus
का मान SOLVED
है, तो सॉल्वर से जनरेट किए गए मान्य शिफ़्ट का सेट employeeSchedules
में दिया जाता है. मान्य शिफ़्ट शेड्यूल के लिए, इन प्रॉपर्टी में ये चीज़ें होती हैं:
employeeSchedules
में जनरेट किया गया हर शिफ़्ट,ShiftTemplate
में दिए गए नियमों का पालन करता है.- हर शिफ़्ट में चुना गया हर इवेंट, उससे जुड़े
ShiftTemplate.Event
में दिए गए नियमों का पालन करता है. - एक ही ShiftTemplate से जनरेट किए गए शिफ़्ट के सेट को असाइन किए गए कर्मचारियों की संख्या, उस टेंप्लेट के
maximumEmployeeCount
से ज़्यादा नहीं है. - असाइन किए गए कर्मचारियों का सेट, हर अंतराल में मांग को पूरा करता है.
अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.
जेएसओएन के काेड में दिखाना |
---|
{ "solutionStatus": enum ( |
फ़ील्ड | |
---|---|
solutionStatus |
लौटाए गए समाधान की स्थिति. अगर |
employeeSchedules[] |
सॉल्वर के जनरेट किए गए शिफ़्ट के सेट और हर शेड्यूल के लिए असाइन किए गए कर्मचारियों की संख्या. |
SolverConfig
Shift जनरेशन की समस्या को हल करने के लिए अतिरिक्त पैरामीटर तय करता है.
जेएसओएन के काेड में दिखाना |
---|
{ "timeLimit": string, "multiDaySchedule": boolean, "shiftEventsCanChange": boolean } |
फ़ील्ड | |
---|---|
timeLimit |
सॉल्वर को सवाल हल करने में ज़्यादा से ज़्यादा समय देना चाहिए. अगर यह अवधि सेट नहीं है, तो डिफ़ॉल्ट तौर पर एक मिनट दिखेगा. समय सीमा का चुनाव समस्या के आकार पर निर्भर करना चाहिए. उदाहरण के लिए, सात दिनों के लिए दो यह वैल्यू तय सीमा से ज़्यादा नहीं होनी चाहिए और इसमें कम्यूनिकेशन से जुड़े ओवरहेड शामिल नहीं होते. समस्या हल करने में लगने वाला अनुमानित समय, इस वैल्यू से कुछ ज़्यादा हो सकता है. सेकंड में दी गई अवधि, जिसमें नौ भिन्नांक हो सकते हैं. साथ ही, यह ' |
multiDaySchedule |
अगर सही हो, तो सॉल्वर |
shiftEventsCanChange |
सही होने पर, कई दिनों के |
ShiftTemplate
शिफ़्ट जनरेट करने के लिए नियम तय करने वाला टेंप्लेट. शिफ़्ट, काम की एक यूनिट है.इसमें इवेंट के शुरू होने और खत्म होने का समय तय किया जाता है. साथ ही, इसमें इवेंट, जैसे कि लंच, ब्रेक वगैरह शामिल हो सकते हैं. जवाब में शिफ़्ट को किसी खास तारीख के लिए असाइन किया जाएगा.
जेएसओएन के काेड में दिखाना |
---|
{ "id": string, "earliestStartTime": { object ( |
फ़ील्ड | |
---|---|
id |
इस टेंप्लेट का यूनीक आईडी. |
earliestStartTime |
दिन का वह सबसे कम समय जब शिफ़्ट शुरू हो सकता है. यह वैल्यू घंटे और मिनट के साथ दिखती है. साथ ही, सेकंड और नैनो सेकंड को अनदेखा किया जाता है. |
latestStartTime |
दिन का वह सबसे नया समय जब शिफ़्ट शुरू हो सकता है. यह वैल्यू घंटे और मिनट के साथ दिखती है. साथ ही, सेकंड और नैनो सेकंड को अनदेखा किया जाता है. अगर यह वैल्यू |
durationMinutes |
इस टेंप्लेट से जनरेट होने वाली शिफ़्ट की तय अवधि. |
startTimeIncrementMinutes |
समय की बढ़ोतरी (मिनट में) से, |
daysOffCountPerWeek |
हर हफ़्ते मिलने वाले दिनों की तय संख्या. अगर किसी कर्मचारी को उस दिन शुरू होने वाली शिफ़्ट के लिए काम असाइन नहीं किया जाता है, तो उसके लिए छुट्टी की एक तय तारीख होती है. एक हफ़्ता सात दिन का होता है और रविवार से शुरू होता है. |
eventTemplates[] |
हर शिफ़्ट के लिए इवेंट जनरेट करने के नियम. तय किए गए हर इवेंट के लिए, हर शिफ़्ट में सिर्फ़ एक इवेंट शामिल किया जाएगा. |
minimumIntereventGapMinutes |
एक इवेंट के खत्म होने और अगला इवेंट शुरू होने के बीच के कम से कम मिनट. |
maximumEmployeeCount |
इस टेंप्लेट से जनरेट की गई सभी शिफ़्ट में कर्मचारियों को ज़्यादा से ज़्यादा कितने कर्मचारी असाइन किए जा सकते हैं. |
TimeOfDay
दिन का समय दिखाता है. तारीख और टाइम ज़ोन या तो अहम नहीं हैं या इन्हें कहीं और बताया गया है. एपीआई, लीप सेकंड की अनुमति दे सकता है. मिलते-जुलते टाइप google.type.Date
और google.protobuf.Timestamp
हैं.
जेएसओएन के काेड में दिखाना |
---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
फ़ील्ड | |
---|---|
hours |
24 घंटे के फ़ॉर्मैट में, दिन के घंटे. यह 0 से 23 के बीच होना चाहिए. एपीआई, कारोबार के बंद होने जैसे मामलों में "24:00:00" वैल्यू दिखाने का विकल्प चुन सकता है. |
minutes |
दिन के मिनट. यह संख्या 0 से 59 के बीच होनी चाहिए. |
seconds |
समय के सेकंड. यह आम तौर पर 0 से 59 के बीच होना चाहिए. अगर एपीआई लीप-सेकंड की अनुमति देता है, तो हो सकता है कि एपीआई वैल्यू 60 की अनुमति दे. |
nanos |
नैनोसेकंड में सेकंड के हिस्से. यह 0 से 99,99,99,999 के बीच होना चाहिए. |
EventTemplate
शिफ़्ट के दौरान होने वाले किसी एक इवेंट को जनरेट करने के लिए, नियमों के बारे में बताने वाला टेंप्लेट. किसी इवेंट में मीटिंग, ब्रेक, लंच वगैरह हो सकता है.
जेएसओएन के काेड में दिखाना |
---|
{ "id": string, "minimumMinutesAfterShiftStart": integer, "maximumMinutesAfterShiftStart": integer, "durationMinutes": integer, "startTimeIncrementMinutes": integer } |
फ़ील्ड | |
---|---|
id |
इस टेंप्लेट का यूनीक आईडी. |
minimumMinutesAfterShiftStart |
शिफ़्ट शुरू होने के बाद, इस इवेंट को शुरू होने में लगने वाले कम से कम मिनट. |
maximumMinutesAfterShiftStart |
शिफ़्ट शुरू होने के बाद, इस इवेंट को शुरू होने में ज़्यादा से ज़्यादा मिनट लगेंगे. |
durationMinutes |
इस इवेंट के मिनट में तय अवधि. |
startTimeIncrementMinutes |
समय की बढ़ोतरी (मिनट में) से, |
EmployeeDemand
दिए गए तारीख और समय के अंतराल में, मांग को पूरा करने के लिए ज़रूरी कर्मचारियों की संख्या बताता है.
जेएसओएन के काेड में दिखाना |
---|
{ "startDateTime": { object ( |
फ़ील्ड | |
---|---|
startDateTime |
दी गई मांग के लिए, समयावधि की शुरुआत की जानकारी. इसमें, यह जानकारी भी शामिल है. ये वैल्यू, हर मिनट तक पढ़ी जाती हैं. साथ ही, सेकंड और छोटी इकाइयों को अनदेखा किया जाता है. |
endDateTime |
दी गई मांग के लिए, समयावधि खत्म हो गई है (खास तौर पर). ये वैल्यू, हर मिनट तक पढ़ी जाती हैं. साथ ही, सेकंड और छोटी इकाइयों को अनदेखा किया जाता है. |
employeeCount |
इस अंतराल के लिए मांग को पूरा करने के लिए ज़रूरी कर्मचारियों की संख्या. |
ShiftGenerationSolutionStatus
सॉल्वर के जवाब के तौर पर दी गई समाधान की स्थिति.
Enums | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
जवाब के लिए स्थिति तय नहीं है. |
SHIFT_GENERATION_SOLVED |
सॉल्वर को दी गई समयसीमा में समस्या का हल मिल गया. |
SHIFT_GENERATION_NOT_SOLVED |
किसी समस्या की वजह से, सॉल्वर शिफ़्ट जनरेट नहीं कर पाया. |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
दी गई समयसीमा में, मांग पूरी करने के लिए शिफ़्ट जनरेट नहीं किए जा सके. |
EmployeeSchedule
एक ShiftTemplate
के हिसाब से शिफ़्ट की क्रम वाली सूची, जिसे कई कर्मचारियों को असाइन किया जाना है.
जेएसओएन के काेड में दिखाना |
---|
{
"shiftTemplateId": string,
"shifts": [
{
object ( |
फ़ील्ड | |
---|---|
shiftTemplateId |
शिफ़्ट के इस सेट को जनरेट करने के लिए इस्तेमाल किए गए टेंप्लेट का आईडी. |
shifts[] |
उन शिफ़्ट की सूची जिनमें |
employeeCount |
उन कर्मचारियों की संख्या जिन्हें मांग को पूरा करने के लिए, शिफ़्ट के इस सेट में असाइन किया जाना चाहिए. |
ShiftWithEvents
शुरू और खत्म होने की तारीख के साथ-साथ, सॉल्वर से जनरेट किए गए शिफ़्ट के तय इवेंट की सूची भी बताता है.
जेएसओएन के काेड में दिखाना |
---|
{ "startDateTime": { object ( |
फ़ील्ड | |
---|---|
startDateTime |
शिफ़्ट के शुरू होने की तारीख और समय. यह वैल्यू, मिनट के हिसाब से तय की जाती है. इसमें सेकंड और छोटी यूनिट शामिल नहीं होती हैं. |
endDateTime |
शिफ़्ट खत्म होने की तारीख और समय. यह वैल्यू, मिनट के हिसाब से तय की जाती है. इसमें सेकंड और छोटी यूनिट शामिल नहीं होती हैं. |
events[] |
इस शिफ़्ट में शामिल इवेंट की सूची, जो |
इवेंट
सॉल्वर से जनरेट की गई शिफ़्ट में किसी खास इवेंट के शुरू और खत्म होने की तारीख का समय बताता है.
जेएसओएन के काेड में दिखाना |
---|
{ "eventTemplateId": string, "startDateTime": { object ( |
फ़ील्ड | |
---|---|
eventTemplateId |
इस इवेंट को जनरेट करने के लिए इस्तेमाल किए गए टेंप्लेट का आईडी. |
startDateTime |
इवेंट शुरू होने की तारीख और समय. यह वैल्यू, मिनट के हिसाब से तय की जाती है. इसमें सेकंड और छोटी यूनिट शामिल नहीं होती हैं. |
endDateTime |
इवेंट खत्म होने की तारीख और समय. यह वैल्यू, मिनट के हिसाब से तय की जाती है. इसमें सेकंड और छोटी यूनिट शामिल नहीं होती हैं. |