ดัชนี
Break(ข้อความ)BreakRule(ข้อความ)BudgetRequirement(ข้อความ)CoverageRequirement(ข้อความ)CoverageRequirement.RoleRequirement(ข้อความ)CoverageRequirement.SkillRequirement(ข้อความ)DemandCoverageViolation(ข้อความ)Employee(ข้อความ)EmployeeDemand(ข้อความ)EmployeeSchedule(ข้อความ)EmployeeSchedule.ShiftWithEvents(ข้อความ)EmployeeSchedule.ShiftWithEvents.Event(ข้อความ)EventTemplate(ข้อความ)HourlyContract(ข้อความ)HourlyContract.OvertimePeriod(ข้อความ)Priority(enum)ResourceConstraint(ข้อความ)SchedulingConstraint(ข้อความ)Shift(ข้อความ)ShiftAssignment(ข้อความ)ShiftGenerationSolutionStatus(enum)ShiftPreference(ข้อความ)ShiftRequest(ข้อความ)ShiftTemplate(ข้อความ)SolutionStatus(enum)SolveParameters(ข้อความ)SolverConfig(ข้อความ)WorkStatus(enum)
พัก
ระยะเวลาที่พนักงานขัดจังหวะการทำงานระหว่างกะ
| ช่อง | |
|---|---|
start_date_time |
เวลาเริ่มต้นของช่วงพัก |
duration_minutes |
ระยะเวลาของช่วงพักเป็นนาที |
BreakRule
กฎที่กำหนดว่าช่วงพักสามารถเริ่มต้นภายในกะและระยะเวลาของช่วงพักได้ รายการช่วงพักทั้งหมดที่เป็นไปได้ซึ่งนำมาพิจารณาจะพิจารณาเพิ่มขึ้นทีละ rule_increment_minutes เช่น ถ้ากฎช่วงพักโฆษณาเป็นการสร้างแบบจำลองช่วงพัก 30 นาทีที่สามารถเริ่มต้นระหว่าง 10:00 ถึง 11:00 น. และกฎเพิ่มขึ้น 20 นาที รายการช่วงพักที่นำมาพิจารณา ได้แก่ [10:00, 10:30], [10:20, 10:50], [10:40], 1:40]
| ช่อง | |
|---|---|
earliest_start_time |
เวลาเริ่มต้นเร็วที่สุดของช่วงพัก (รวม) ตั้งค่าได้เฉพาะ |
latest_start_time |
เวลาเริ่มต้นล่าสุดของช่วงพัก (รวม) ตั้งค่าได้เฉพาะ |
duration_minutes |
ระยะเวลาของช่วงพักเป็นนาที |
rule_increment_minutes |
[ไม่บังคับ] เวลาที่เพิ่มขึ้นเป็นนาทีสำหรับช่วงพักทั้งหมดที่จะพิจารณาในกฎช่วงพักโฆษณานี้ได้ หากไม่ได้ตั้งค่า ค่าเริ่มต้นจะเป็น |
BudgetRequirement
ข้อกำหนดด้านงบประมาณสำหรับช่วงเวลาที่ระบุ
| ช่อง | |
|---|---|
total_budget |
งบประมาณทั้งหมดสำหรับช่วงเวลาที่ระบุ ต้องระบุงบประมาณรวมหากลำดับความสำคัญคือ หากไม่ได้ตั้งค่า |
start_date_time |
เวลาเริ่มต้นที่งบประมาณนี้จะใช้ หากไม่ได้ระบุเวลาเริ่มต้น ระบบจะกำหนดให้เวลาเริ่มต้นเร็วที่สุดของกะทั้งหมด |
end_date_time |
เวลาสิ้นสุดที่งบประมาณนี้จะใช้ หากไม่ได้ระบุเวลาสิ้นสุด ระบบจะตั้งค่าเป็นเวลาสิ้นสุดล่าสุดของกะทั้งหมดที่ระบุ |
priority |
ระดับความสำคัญเพื่อให้เป็นไปตามข้อกำหนดด้านงบประมาณในกรอบเวลาที่ระบุ ลำดับความสำคัญเริ่มต้นคือ โปรดทราบว่าหากลำดับความสำคัญนี้สูงกว่าลำดับความสำคัญตามข้อจำกัดอื่นๆ และหาก |
CoverageRequirement
ข้อกำหนดความคุ้มครองจะระบุจำนวนพนักงานที่จำเป็นสำหรับชุดของบทบาทและ/หรือทักษะในช่วงเวลาที่กำหนดและในสถานที่หนึ่งๆ ช่วงเวลา DateTime ที่ตำแหน่งใดตำแหน่งหนึ่งต้องไม่ทับซ้อนกัน หรือจะระบุรายการรหัสกะแทนกรอบเวลาและสถานที่ก็ได้ โดยพนักงานที่ได้รับการกำหนดบทบาทหนึ่งๆ (หรือทักษะเฉพาะดังกล่าว) เท่านั้นที่จะมีคุณสมบัติตามข้อกำหนดนี้ได้
สำหรับบทบาทและ/หรือทักษะหนึ่งๆ ข้อกำหนดความครอบคลุมจะมีขึ้นเมื่อจำนวนพนักงานอย่างน้อย target_employee_count คนทำงานในทุกช่วงเวลา (หรือทุกกะการทำงานใน shift_ids) ในทางตรงกันข้าม ข้อกำหนดด้านความครอบคลุมถูกละเมิดหากช่วงเวลาใดก็ตาม (หรือบางกะใน shift_ids) มีพนักงานน้อยกว่า target_employee_count ที่ทำงานในกรอบเวลานั้น จำนวนพนักงานที่ทำงานในจำนวนที่มากกว่า target_employee_count ยังคงเป็นไปตามข้อกำหนด แต่เครื่องมือแก้โจทย์จะทำให้จำนวนพนักงานที่มีจำนวนมากเกินไป
| ช่อง | |
|---|---|
start_date_time |
เวลาเริ่มต้นสำหรับข้อกำหนดการครอบคลุม (รวม) หากมีการตั้งค่า |
end_date_time |
เวลาสิ้นสุดสำหรับข้อกำหนดความครอบคลุม (ไม่รวม) หากมีการตั้งค่า |
location_id |
สถานที่ที่ต้องการพนักงาน |
shift_ids[] |
หากตั้งค่าไว้ ระบบจะใช้ข้อกำหนดด้านบทบาทและทักษะแยกกันกับรหัสกะทุกรหัสในรายการนี้ หาก Shift_ids ไม่ว่างเปล่า ในกรณีนี้ |
role_requirements[] |
จำนวนพนักงานที่กำหนดไว้สำหรับบทบาทที่ระบุในกรอบเวลา ต้องระบุ |
skill_requirements[] |
จำนวนพนักงานที่มีทักษะตามที่ระบุและได้รับการกำหนดให้กะการทำงานในช่วงเวลาที่กำหนด ต้องระบุ |
RoleRequirement
จำนวนพนักงานที่กำหนดไว้สำหรับบทบาทที่ระบุในกรอบเวลา
| ช่อง | |
|---|---|
role_id |
รหัสบทบาทสำหรับข้อกำหนด |
target_employee_count |
จำนวนพนักงานที่ต้องการได้รับมอบหมายบทบาทนั้นๆ ในกรอบเวลาที่กำหนด |
priority |
ระดับลำดับความสำคัญสำหรับข้อจำกัดของข้อกำหนดนี้ ลำดับความสำคัญเริ่มต้นสำหรับข้อจำกัดของทรัพยากรทั้งหมดคือ |
SkillRequirement
จำนวนพนักงานที่กำหนดซึ่งทำงานอยู่ในช่วงกรอบเวลา และมีทักษะตามที่กำหนด
| ช่อง | |
|---|---|
skill_id |
รหัสทักษะสำหรับข้อกำหนด |
target_employee_count |
จำนวนพนักงานที่ต้องการซึ่งมีทักษะและพร้อมทำงานในช่วงเวลาที่เหมาะสม |
priority |
ระดับลำดับความสำคัญสำหรับข้อจำกัดของข้อกำหนดนี้ ลำดับความสำคัญเริ่มต้นสำหรับข้อจำกัดของทรัพยากรทั้งหมดคือ |
DemandCoverageViolation
ระบุการละเมิดความครอบคลุมของดีมานด์สำหรับช่วงเวลาที่ระบุ ความต้องการของพนักงานจะเท่ากันตลอดช่วงเวลาที่ระบุ
| ช่อง | |
|---|---|
start_date_time |
วันที่และเวลาเริ่มต้นของช่วงความต้องการ (รวม) ค่านี้ถูกระบุจนถึงระดับนาที |
end_date_time |
วันที่และเวลาสิ้นสุดของช่วงดีมานด์ (ไม่รวม) ค่านี้ถูกระบุจนถึงระดับนาที |
coverage_violation |
การละเมิดการครอบคลุมในช่วงระยะเวลาที่ระบุ ค่าบวกบ่งชี้ว่ามีดีมานด์ที่ครอบคลุมมากเกินไป ส่วนค่าลบบ่งบอกว่ามีดีมานด์ที่ครอบคลุม |
พนักงาน
พนักงานประจำที่จะกำหนดเวลา
| ช่อง | |
|---|---|
id |
รหัสที่ไม่ซ้ำกันที่กำหนดให้พนักงานคนนี้ |
role_ids[] |
รหัสบทบาทที่พนักงานรายนี้ทำได้ ต้องระบุอย่างน้อย 1 บทบาท เมื่อมีการมอบหมายพนักงานเป็นกะ พนักงานคนดังกล่าวจะได้รับมอบหมายบทบาทเดียวจากรายการนี้ด้วย พนักงานอาจได้รับมอบหมายหน้าที่อื่นในช่วงกรอบเวลานัดหมาย |
skill_ids[] |
รหัสทักษะที่พนักงานรายนี้มี รายการนี้อาจว่างเปล่า เมื่อมีการมอบหมายกะ พนักงานจะใช้ทักษะย่อยใดๆ ที่ระบุไว้ที่นี่เพื่อให้ครอบคลุมความต้องการทักษะตลอดระยะเวลาของกะงานที่มอบหมาย |
shift_preferences[] |
เปลี่ยนค่ากำหนดของพนักงานคนนี้ กะงานที่ระบุไว้ที่นี่แสดงถึงกะที่พนักงานต้องการกำหนดให้อยู่ในกรอบเวลาการนัดหมาย รหัส Shift ที่ระบุใน |
scheduling_constraints[] |
รายการข้อจำกัดในการจัดตารางเวลาสำหรับพนักงานคนนี้ ระดับความสำคัญเริ่มต้นสำหรับแต่ละข้อจำกัดเหล่านี้คือ |
resource_constraints[] |
คุณจะเพิ่มข้อจำกัดการตั้งเวลาเพิ่มเติมใดๆ ที่ไม่ได้ระบุไว้ใน |
shift_requests[] |
รายการคำขอกะของพนักงาน โดยอาจเป็นการกำหนดให้พนักงานได้รับมอบหมายหรือไม่ได้กำหนดให้ทำงานในบางกะก็ได้ งานที่จัดตารางเวลาแบบตายตัวสำหรับพนักงานจะแสดงด้วย |
hourly_contract |
สัญญาที่ระบุอัตราค่าจ้างเป็นรายชั่วโมงเป็นประจำและแบบค่าล่วงเวลาสำหรับพนักงาน |
EmployeeDemand
ระบุจำนวนพนักงานที่ต้องการเพื่อรองรับความต้องการในช่วง DateTime ที่กำหนด
| ช่อง | |
|---|---|
start_date_time |
จุดเริ่มต้นของช่วงเวลาสำหรับความต้องการที่ระบุ (รวม) ค่าเหล่านี้จะอ่านได้เป็นนาที และระบบจะไม่สนใจหน่วยวินาทีและหน่วยที่เล็กกว่าทั้งหมด |
end_date_time |
จุดสิ้นสุดของช่วงเวลาสำหรับความต้องการที่ระบุ (ไม่รวม) ค่าเหล่านี้จะอ่านได้เป็นนาที และระบบจะไม่สนใจหน่วยวินาทีและหน่วยที่เล็กกว่าทั้งหมด |
employee_count |
จำนวนพนักงานที่ต้องการเพื่อรองรับความต้องการในช่วงเวลานี้ |
EmployeeSchedule
รายการกะการทำงานตามลำดับของ ShiftTemplate รายการเดียวที่มอบหมายให้พนักงานหลายคน
| ช่อง | |
|---|---|
shift_template_id |
รหัสของเทมเพลตที่ใช้ในการสร้างชุดกะนี้ |
shifts[] |
รายการกะงานที่มอบหมายให้กับพนักงาน |
employee_count |
จำนวนพนักงานที่ควรกำหนดให้กะการทำงานชุดนี้ครอบคลุมความต้องการ |
ShiftWithEvents
ระบุวันที่เริ่มต้นและวันที่สิ้นสุดพร้อมกับรายการเหตุการณ์คงที่ของกะการเปลี่ยนแปลงที่เครื่องมือแก้โจทย์สร้างขึ้น
| ช่อง | |
|---|---|
start_date_time |
วันที่และเวลาเริ่มต้นของการเปลี่ยนแปลง ค่านี้ระบุถึงระดับนาที ไม่ได้ระบุหน่วยวินาทีและหน่วยที่เล็กกว่า |
end_date_time |
วันที่และเวลาสิ้นสุดของการเปลี่ยนแปลง ค่านี้ระบุถึงระดับนาที ไม่ได้ระบุหน่วยวินาทีและหน่วยที่เล็กกว่า |
events[] |
รายการเหตุการณ์ที่รวมอยู่ในการเปลี่ยนแปลงนี้ ซึ่งแมปกับส่วนที่ตรงกันทั้งหมด และอยู่ในลำดับเดียวกันกับ |
เหตุการณ์
ระบุวันที่และเวลาเริ่มต้นและสิ้นสุดของเหตุการณ์ที่เฉพาะเจาะจงในกะที่เครื่องมือแก้โจทย์สร้างขึ้น
| ช่อง | |
|---|---|
event_template_id |
รหัสของเทมเพลตที่ใช้สร้างเหตุการณ์นี้ |
start_date_time |
วันที่และเวลาเริ่มต้นของกิจกรรม ค่านี้ระบุถึงระดับนาที ไม่ได้ระบุหน่วยวินาทีและหน่วยที่เล็กกว่า |
end_date_time |
วันที่และเวลาสิ้นสุดของเหตุการณ์ ค่านี้ระบุถึงระดับนาที ไม่ได้ระบุหน่วยวินาทีและหน่วยที่เล็กกว่า |
EventTemplate
เทมเพลตที่ระบุกฎสำหรับการสร้างเหตุการณ์เดียวที่เกิดขึ้นระหว่างกะ กิจกรรมอาจเป็นการประชุม ช่วงพัก อาหารกลางวัน ฯลฯ
| ช่อง | |
|---|---|
id |
รหัสที่ไม่ซ้ำกันของเทมเพลตนี้ |
minimum_minutes_after_shift_start |
จำนวนนาทีขั้นต่ำหลังจากเริ่มกะที่กิจกรรมนี้สามารถเริ่มต้นได้ |
maximum_minutes_after_shift_start |
จำนวนนาทีสูงสุดหลังจากเริ่มกะที่กิจกรรมนี้สามารถเริ่มต้นได้ |
duration_minutes |
ระยะเวลาคงที่เป็นนาทีสำหรับกิจกรรมนี้ |
start_time_increment_minutes |
เวลาที่เพิ่มขึ้น (เป็นนาที) ที่ใช้ในการสร้างชุดเวลาเริ่มต้นของเหตุการณ์ที่เป็นไปได้ระหว่าง |
HourlyContract
ระบุอัตรารายชั่วโมงพื้นฐาน ส่วนต่างของอัตรา และตัวคูณการทำงานล่วงเวลา เพื่อกำหนดค่าตอบแทนสำหรับพนักงาน โปรดทราบว่ากฎระเบียบในที่ต่างๆ อาจต้องมีการคำนวณค่าชดเชยการทำงานล่วงเวลาที่แตกต่างออกไป เครื่องมือแก้โจทย์คณิตจะประมาณค่าชดเชยการทำงานล่วงเวลาเพื่อลดค่าใช้จ่ายรวมหรือเพื่อให้เป็นไปตามงบประมาณ (ดู BudgetRequirement) ไม่ได้มีจุดประสงค์เพื่อให้เป็นเครื่องมือในการคำนวณเงินเดือน
| ช่อง | |
|---|---|
base_hourly_rate |
ค่าตอบแทนสำหรับการทำงานนอกเวลาทำการ หากพนักงานใช้หลายอัตรา ระบบจะคำนวณส่วนต่างของอัตราจะสัมพันธ์กับอัตราฐานรายชั่วโมงนี้ นอกจากนี้ หากมีหลายอัตรา อัตรารายชั่วโมงฐานควรเป็นอัตราขั้นต่ำของอัตราดังกล่าว |
hourly_rate_shift_differentials |
ส่วนต่างราคาต่อชั่วโมง ซึ่งจ่ายเพิ่มเติมจาก |
overtime_periods[] |
รายการของระยะเวลาทั้งหมดที่ต้องมีการคำนวณต่อเวลา ช่วงเวลาเหล่านี้ต้องไม่ทับซ้อนกัน |
OvertimePeriod
ระยะเวลาคงที่และเกิดซ้ำเป็นประจำ (โดยทั่วไปคือ 168 ชั่วโมงหรือ 24 ชั่วโมงติดต่อกัน 7 ชั่วโมง) ที่ใช้กำหนดจำนวนเงินค่าชดเชยการทำงานล่วงเวลา โดยแต่ละระยะเวลาจะมีตัวคูณในช่วงระยะเวลาหนึ่ง (เช่น 1.5) สัมพันธ์กับ base_hourly_rate และขีดจำกัดจำนวนชั่วโมงที่ถือว่าทำงานปกติ (ไม่ใช่การทำงานล่วงเวลา) การเปลี่ยนแปลงใดๆ ที่ทับซ้อนกับกรอบเวลา start_date_time (รวม) และ end_date_time (ไม่รวม) จะนับรวมอยู่ในจำนวนชั่วโมงการทำงานทั้งหมดในระยะเวลานั้นๆ หากส่วนที่ซ้อนทับกันบางส่วน ระบบจะนับเฉพาะชั่วโมงที่ทับซ้อนกันเท่านั้น
| ช่อง | |
|---|---|
overtime_multiplier |
ตัวคูณเพื่อคำนวณอัตราการทำงานล่วงเวลาต่อชั่วโมง (ต้องมากกว่าหรือเท่ากับ 1.0) โดยทั่วไปแล้ว อัตราค่าดำเนินการต่อเวลารายชั่วโมงจะคำนวณเป็น |
start_date_time |
เวลาเริ่มต้นสำหรับช่วงต่อช่วง หากกะเหลื่อมซ้อนกันในครั้งนี้ ระบบจะนับชั่วโมงของการเปลี่ยนแปลงดังกล่าวจากเวลา |
end_date_time |
เวลาสิ้นสุดสำหรับช่วงต่อช่วง หากช่วงเวลาดังกล่าวทับซ้อนกันในครั้งนี้ ระบบจะนับจำนวนชั่วโมงของการเปลี่ยนแปลงดังกล่าวสูงสุดถึง |
maximum_regular_hours |
จำนวนเวลาทำงานสูงสุดที่จ่ายในอัตราปกติ (ไม่ใช่การทำงานล่วงเวลา) จำนวนนี้ต้องเป็นจำนวนบวก |
ลำดับความสำคัญ
ระดับความสำคัญสำหรับข้อจำกัดใดๆ ในกำหนดเวลาของพนักงานหรือข้อกำหนดด้านความครอบคลุม ซึ่งรวมถึง SchedulingConstraint, ResourceConstraint, ShiftRequest และ CoverageRequirement เนื่องจากอาจมีข้อจำกัดที่ขัดแย้งกัน ข้อจำกัดบางอย่างจึงอาจเป็นไปไม่ได้เสมอไป ด้วยเหตุนี้ ข้อจำกัดแต่ละประเภทจึงมีลำดับความสำคัญ (กำหนดโดยผู้ใช้หรือค่าเริ่มต้น) ซึ่งแจ้งให้เครื่องมือแก้โจทย์ทราบลำดับความสำคัญที่เกี่ยวข้องของข้อจำกัดทั้งหมดที่ให้ไว้กับกำหนดเวลาที่สมบูรณ์
| Enum | |
|---|---|
PRIORITY_UNSPECIFIED |
ไม่ทราบระดับความสำคัญ |
PRIORITY_LOW |
ระดับความสำคัญต่ำสุด ข้อจำกัดที่มีลำดับความสำคัญนี้มีความสำคัญน้อยกว่าข้อจำกัดอื่นๆ คนเหล่านี้จะเป็นคนแรกที่เข้ารับการพิจารณาเพื่อละเมิดนโยบายหากไม่พบวิธีแก้ปัญหาที่เป็นไปได้ |
PRIORITY_MEDIUM |
ระดับความสำคัญปานกลาง ข้อจำกัดที่มีลำดับความสำคัญนี้สำคัญกว่าข้อจำกัดที่มีลำดับความสำคัญ PRIORITY_LOW แต่น้อยกว่าข้อจำกัดที่มีลำดับความสำคัญ PRIORITY_HIGH หากไม่พบวิธีแก้ปัญหาที่เป็นไปได้หลังจากผ่อนปรนข้อจำกัดทั้งหมดที่มีลำดับความสำคัญ PRIORITY_LOW แล้ว ระบบจะพิจารณาข้อจำกัดที่มีลำดับความสำคัญ PRIORITY_MEDIUM เป็นลำดับถัดไปสำหรับการละเมิด |
PRIORITY_HIGH |
ระดับความสำคัญสูงสุด ข้อจำกัดที่มีระดับความสำคัญนี้ถือว่าสำคัญที่สุด นโยบายเหล่านี้จะถือเป็นกรณีสุดท้ายที่จะได้รับการพิจารณาสำหรับการละเมิดหากไม่พบวิธีแก้ปัญหาที่เป็นไปได้หลังจากผ่อนปรนข้อจำกัดของระดับลำดับความสำคัญต่ำกว่า |
PRIORITY_MANDATORY |
ระดับความสำคัญซึ่งแสดงถึงสิ่งที่เครื่องมือแก้โจทย์ละเมิดไม่ได้ หากเครื่องมือแก้โจทย์ส่งคืน SolutionStatus.INFEASIBLE อาจเป็นเพราะข้อจำกัด PRIORITY_MANDATORY มากเกินไป |
ResourceConstraint
ข้อจำกัดทั่วไปที่จำกัดปริมาณ "ทรัพยากร" บางอย่างที่พนักงานใช้ นี่คือเวอร์ชันนามธรรมของ SchedulingConstraint ที่เฉพาะเจาะจงมากขึ้นซึ่งมีความยืดหยุ่นมากขึ้นสำหรับผู้ใช้ คุณสามารถระบุข้อจำกัดการตั้งเวลาหลายอย่างที่ไม่สามารถระบุใน SchedulingConstraint.type โดยใช้ข้อความนี้แทนได้
| ช่อง | |
|---|---|
priority |
ระดับลำดับความสำคัญของข้อจำกัดทรัพยากรนี้ ลำดับความสำคัญเริ่มต้นสำหรับข้อจำกัดของทรัพยากรทั้งหมดคือ |
resource_usages |
จำนวนทรัพยากรที่ใช้โดยกะ ตัวอย่างเช่น หากข้อจำกัดนี้มีผลกับจำนวนชั่วโมงต่ำสุดและสูงสุดที่ทำงานโดยพนักงานในสัปดาห์หนึ่งๆ แผนที่นี้จะมีกะงานที่เกิดขึ้นในสัปดาห์นั้น และระยะเวลาของกะการทำงานแต่ละครั้งเป็นชั่วโมง |
minimum_resource_usage |
การใช้ทรัพยากรขั้นต่ำเพื่อให้เป็นไปตามข้อจำกัดด้านทรัพยากร |
maximum_resource_usage |
การใช้งานทรัพยากรสูงสุดเพื่อให้เป็นไปตามข้อจำกัดของทรัพยากร |
SchedulingConstraint
ข้อจำกัดทางกำหนดเวลาที่เจาะจงสำหรับพนักงานคนหนึ่ง ข้อจำกัดที่ระบุจะใช้ระหว่างช่วงเวลาที่ระบุ [start_date_time,
end_date_time) เท่านั้น
| ช่อง | |
|---|---|
priority |
ระดับลำดับความสำคัญสำหรับข้อจำกัดการตั้งเวลานี้ ลำดับความสำคัญเริ่มต้นสำหรับข้อจำกัดการตั้งเวลาทั้งหมดคือ |
start_date_time |
เวลาเริ่มต้นเมื่อข้อจำกัดการจัดตารางเวลานี้มีผล (รวมด้วย) |
end_date_time |
เวลาสิ้นสุดเมื่อข้อจำกัดการตั้งเวลานี้มีผล (ไม่รวม) |
ช่องการรวม type ประเภทของข้อจำกัดที่ระบุ ข้อจำกัดแต่ละข้อจะนำมาใช้ภายในกรอบเวลาที่ระบุข้างต้นเท่านั้น type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ |
|
minimum_minutes |
จำนวนนาทีขั้นต่ำที่พนักงานทำงานได้ หากพนักงานได้รับมอบหมายให้อยู่ในกะที่ทับซ้อน (ทั้งหมดหรือบางส่วน) กับกรอบเวลา จำนวนนาทีที่กะนั้นทับซ้อนกับกรอบเวลาจะรวมอยู่ในจำนวนนี้ |
maximum_minutes |
จำนวนนาทีสูงสุดที่พนักงานทำงานได้ในกรอบเวลาที่กำหนด หากพนักงานได้รับมอบหมายให้อยู่ในกะที่ทับซ้อน (ทั้งหมดหรือบางส่วน) กับกรอบเวลา จำนวนนาทีที่กะนั้นทับซ้อนกับกรอบเวลาจะรวมอยู่ในจำนวนนี้ |
minimum_consecutive_work_days |
จำนวนวันขั้นต่ำติดต่อกันที่พนักงานทำงานได้ พนักงานจะทำงานในวันที่ใดวันหนึ่ง หากมีเวลาเป็นกะที่เริ่มต้นในวันนั้น กะงานที่มีการมอบหมายพนักงานซึ่งเริ่มต้นในกรอบเวลาดังกล่าวจะรวมอยู่ในจำนวนนี้ |
maximum_consecutive_work_days |
จำนวนวันสูงสุดติดต่อกันที่พนักงานทำงานได้ พนักงานจะทำงานในวันที่ใดวันหนึ่ง หากมีเวลาเป็นกะที่เริ่มต้นในวันนั้น กะงานที่มีการมอบหมายพนักงานซึ่งเริ่มต้นในกรอบเวลาดังกล่าวจะรวมอยู่ในจำนวนนี้ |
minimum_shift_count |
จำนวนกะขั้นต่ำที่พนักงานสามารถทำได้ กะการทำงานที่พนักงานได้รับมอบหมายและคาบเกี่ยวกับกรอบเวลาทั้งหมดจะรวมอยู่ในจำนวนนี้ |
maximum_shift_count |
จำนวนกะสูงสุดที่พนักงานจะทำงานได้ กะการทำงานที่พนักงานได้รับมอบหมายและคาบเกี่ยวกับกรอบเวลาทั้งหมดจะรวมอยู่ในจำนวนนี้ |
minimum_rest_minutes |
จำนวนนาทีขั้นต่ำที่พนักงานต้องพักหลังจากสิ้นสุดกะการทำงานหนึ่งก่อนที่จะได้รับมอบหมายให้ทำงานอื่น ข้อจำกัดนี้มีผลกับ Shift ทุกคู่ที่รวมอยู่ใน [ |
Shift
กะงานเป็นการกำหนดกรอบเวลาที่ตายตัวที่พนักงานสามารถทำงานได้
| ช่อง | |
|---|---|
id |
รหัสที่ไม่ซ้ำกันที่กำหนดให้สำหรับการเปลี่ยนแปลงนี้ |
location_id |
รหัสตำแหน่งที่การเปลี่ยนแปลงนี้ทำงาน เว้นว่างไว้ได้ |
start_date_time |
เวลาเริ่มต้นของการเปลี่ยนแปลง (รวมด้วย) |
end_date_time |
เวลาสิ้นสุดของกะ (ไม่รวม) ปัจจุบันเครื่องมือแก้โจทย์อนุญาตให้สำหรับกะที่มีความยาวไม่เกิน 24 ชม. เท่านั้น |
break_rules[] |
รายการกฎการละเมิดที่เกิดขึ้นระหว่างการเปลี่ยนแปลง พนักงานที่ทำกะนี้จะได้รับการกำหนดช่วงพักทุก |
ShiftAssignment
พนักงานที่จะเปลี่ยนบทบาท
| ช่อง | |
|---|---|
employee_id |
รหัสพนักงานที่กำหนด |
shift_id |
รหัส Shift ที่กำหนดให้พนักงาน |
role_id |
รหัสบทบาทที่พนักงานได้รับมอบหมายสำหรับกะนี้ |
breaks[] |
รายการช่วงพักสำหรับงานกะนี้ |
ShiftGenerationSolutionStatus
สถานะโซลูชันที่ระบุในคำตอบของโปรแกรมแก้โจทย์
| Enum | |
|---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED |
สถานะที่ไม่ได้ระบุสำหรับคำตอบ |
SHIFT_GENERATION_SOLVED |
โปรแกรมแก้โจทย์พบวิธีแก้โจทย์ภายในเวลาที่กำหนด |
SHIFT_GENERATION_NOT_SOLVED |
ปัญหาป้องกันไม่ให้เครื่องมือแก้โจทย์สร้างการเปลี่ยนแปลงได้ |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED |
ระบบไม่สามารถสร้างการเปลี่ยนแปลงเพื่อครอบคลุมความต้องการภายในระยะเวลาที่กำหนด |
ShiftPreference
ค่ากำหนดที่เป็นตัวเลขสำหรับรหัส Shift ที่เฉพาะเจาะจง
| ช่อง | |
|---|---|
shift_id |
รหัส Shift ที่ระบุค่ากำหนด |
preference |
ค่านิยมที่มากกว่าแสดงถึงการเปลี่ยนแปลงที่ต้องการมากกว่า |
ShiftRequest
คำขอของพนักงานที่จะมอบหมายหรือไม่มอบหมายงานให้เข้างาน
| ช่อง | |
|---|---|
priority |
ระดับความสำคัญของคำขอกำหนดเวลานี้ ลำดับความสำคัญเริ่มต้นสำหรับคำขอการตั้งเวลาทั้งหมดคือ |
shift_ids[] |
รหัสการเปลี่ยนแปลงของคำขอกำหนดเวลา |
type |
ประเภทคำขอ เช่น ระบุว่ามีการมอบหมายงานให้หรือไม่ได้มอบหมายคำขอให้กับชุดกะ |
ShiftTemplate
เทมเพลตที่ระบุกฎสำหรับการสร้างกะการทำงาน กะคือหน่วยงานที่ระบุเวลาเริ่มต้น เวลาสิ้นสุด และอาจมีกิจกรรม (เช่น อาหารกลางวัน ช่วงพัก เป็นต้น) ในคำตอบจะมีการเปลี่ยนแปลงการทำงานในวันที่ที่เจาะจง
| ช่อง | |
|---|---|
id |
รหัสที่ไม่ซ้ำกันของเทมเพลตนี้ |
earliest_start_time |
เวลาที่เร็วที่สุดในวันที่สามารถเริ่มต้นกะได้ ค่านี้จะระบุด้วยชั่วโมงและนาที โดยจะไม่สนใจวินาทีและนาโน |
latest_start_time |
เวลาล่าสุดในวันที่สามารถเริ่มต้นกะได้ ค่านี้จะระบุด้วยชั่วโมงและนาที โดยจะไม่สนใจวินาทีและนาโน หากค่านี้น้อยกว่า |
duration_minutes |
ระยะเวลาคงที่ของการเปลี่ยนแปลงที่สร้างโดยเทมเพลตนี้ |
start_time_increment_minutes |
เวลาที่เพิ่ม (เป็นนาที) ที่ใช้ในการสร้างชุดเวลาเริ่มต้นที่เป็นไปได้ระหว่าง |
days_off_count_per_week |
จำนวนวันที่แน่นอนต่อสัปดาห์ พนักงานจะมีวันหยุดให้หากไม่ได้รับมอบหมายให้เข้ากะที่เริ่มต้นในวันนั้น สัปดาห์คือ 7 วันและเริ่มต้นในวันอาทิตย์ |
event_templates[] |
กฎสำหรับการสร้างเหตุการณ์สำหรับกะแต่ละรายการ จะมี 1 เหตุการณ์ที่แน่นอนในแต่ละกะของแต่ละเหตุการณ์ที่ระบุ |
minimum_interevent_gap_minutes |
จำนวนนาทีขั้นต่ำระหว่างการสิ้นสุดของเหตุการณ์หนึ่งและการเริ่มต้นเหตุการณ์ถัดไป |
maximum_employee_count |
จำนวนพนักงานสูงสุดที่สามารถกำหนดให้กับกะทั้งหมดที่สร้างขึ้นโดยเทมเพลตนี้ |
SolutionStatus
สถานะวิธีแก้โจทย์ (ซึ่งก็คือกำหนดการ) ที่ให้ไว้ในการตอบสนองของเครื่องมือแก้โจทย์
| Enum | |
|---|---|
SOLUTION_STATUS_UNSPECIFIED |
สถานะที่ไม่ได้ระบุสำหรับคำตอบ |
FEASIBLE |
กำหนดเวลาที่ส่งกลับสามารถทำได้ แต่อาจไม่ดีที่สุด |
OPTIMAL |
กำหนดเวลาที่ส่งคืนเหมาะสมที่สุดแล้ว |
INFEASIBLE |
ไม่มีกำหนดเวลาที่เป็นไปได้สำหรับข้อจำกัดที่ระบุ เครื่องมือแก้โจทย์อาจแสดงผลค่านี้หากไม่เป็นไปตามข้อจำกัดชุดย่อยของข้อจำกัดที่มีระดับความสำคัญ PRIORITY_MANDATORY |
NOT_SOLVED |
ไม่พบกำหนดการ |
NOT_SOLVED_DEADLINE_EXCEEDED |
ไม่พบกำหนดการภายในระยะเวลาที่กำหนด |
SolveParameters
พารามิเตอร์ที่ควบคุมการแก้โจทย์ปัญหาการจัดตารางเวลาสำหรับกะการทำงานเพียงวิธีเดียว
| ช่อง | |
|---|---|
time_limit |
ระยะเวลาสูงสุดที่เครื่องมือแก้โจทย์ควรใช้กับโจทย์ หากไม่ได้ตั้งค่า ค่าเริ่มต้นจะเป็น 1 นาที ค่านี้ไม่ใช่ค่าจำกัดแบบเข้มงวด และไม่ได้พิจารณาค่าใช้จ่ายในการสื่อสาร เวลาในการตอบสนองที่คาดไว้ในการแก้ปัญหาอาจเกินค่านี้เล็กน้อย |
SolverConfig
ระบุพารามิเตอร์เพิ่มเติมเพื่อแก้โจทย์การสร้าง Shift
| ช่อง | |
|---|---|
time_limit |
ระยะเวลาสูงสุดที่เครื่องมือแก้โจทย์ควรใช้กับโจทย์ หากไม่ได้ตั้งค่า ค่าเริ่มต้นจะเป็น 1 นาที การเลือกการจำกัดเวลาควรขึ้นอยู่กับขนาดของปัญหา ตัวอย่างเช่น เมื่อแก้ปัญหาอินสแตนซ์ 7 วันด้วย ค่านี้ไม่ใช่ค่าจำกัดแบบเข้มงวด และไม่ได้พิจารณาค่าใช้จ่ายในการสื่อสาร เวลาในการตอบสนองที่คาดไว้ในการแก้ปัญหาอาจเกินค่านี้เล็กน้อย |
multi_day_schedule |
หากเป็น "จริง" เครื่องมือแก้โจทย์จะสร้าง |
shift_events_can_change |
หากเป็นจริง |
WorkStatus
พนักงานทำงานอยู่หรือไม่
| Enum | |
|---|---|
WORK_STATUS_UNSPECIFIED |
สถานะงานที่ไม่รู้จัก |
STATUS_WORK |
สถานะที่แสดงถึงพนักงานทำงานอยู่ |
STATUS_NOT_WORK |
สถานะที่แสดงถึงพนักงานที่ไม่ได้ทำงาน |