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