Feature #202
openA1. 排程管理 MCP 模組開發
0%
Files
楷張 Updated by 楷翊 張 about 1 month ago · Edited
標準功能 :
- Machine Agent 可選機台
- Machine Agent 可選人員
- 工單可換線別
- 人員可指定技能
- 機台可指定技能
楷張 Updated by 楷翊 張 about 1 month ago
- Due date set to 09/16/2026
楷張 Updated by 楷翊 張 about 1 month ago
需要的 input json
{
"lines": [
{
"id": "L1",
"name": "Line 1 - Cut/Assemble"
},
{
"id": "L2",
"name": "Line 2 - Paint"
},
{
"id": "L3",
"name": "Line 3 - Pack"
}
],
"machines": [
{
"id": "M1",
"name": "Cutter+Assembler 1",
"line_id": "L1",
"skill_tags": [
"cut",
"assemble"
]
},
{
"id": "M2",
"name": "Cutter 2",
"line_id": "L1",
"skill_tags": [
"cut"
]
},
{
"id": "M7",
"name": "Cutter 3",
"line_id": "L1",
"skill_tags": [
"cut"
]
},
{
"id": "M3",
"name": "Paint Booth 1",
"line_id": "L2",
"skill_tags": [
"paint"
]
},
{
"id": "M4",
"name": "Paint Booth 2",
"line_id": "L2",
"skill_tags": [
"paint"
]
},
{
"id": "M5",
"name": "Packer 1",
"line_id": "L3",
"skill_tags": [
"pack"
]
},
{
"id": "M6",
"name": "Packer 2",
"line_id": "L3",
"skill_tags": [
"pack"
]
}
],
"personnel": [
{
"id": "P1",
"name": "Operator 1",
"skill_tags": [
"cut",
"assemble"
]
},
{
"id": "P2",
"name": "Operator 2",
"skill_tags": [
"cut",
"assemble"
]
},
{
"id": "P7",
"name": "Operator 7",
"skill_tags": [
"cut",
"assemble"
]
},
{
"id": "P3",
"name": "Painter 1",
"skill_tags": [
"paint"
]
},
{
"id": "P4",
"name": "Painter 2",
"skill_tags": [
"paint"
]
},
{
"id": "P5",
"name": "Packer 1",
"skill_tags": [
"pack"
]
},
{
"id": "P6",
"name": "Packer 2",
"skill_tags": [
"pack"
]
}
],
"bias_time_entries": [
{
"machine_id": null,
"from_step_type": "cut",
"to_step_type": "assemble",
"minutes": 15.0
},
{
"machine_id": "M1",
"from_step_type": "cut",
"to_step_type": "assemble",
"minutes": 20.0
}
],
"default_bias_minutes": 5.0,
"sim_start": "2026-01-01T08:00:00",
"work_orders": [
{
"order_id": "O1",
"expected_delivery_date": "2026-01-03T08:00:00",
"expected_production_end_time": "2026-01-02T08:00:00",
"expected_shipping_time": "2026-01-02T08:00:00",
"allowed_line_ids": [
"L1"
],
"steps": [
{
"step_id": "O1-S1",
"step_type": "cut",
"sequence_index": 0,
"eligible_line_ids": [
"L1"
],
"eligible_machine_ids": [
"M1"
],
"eligible_personnel_ids": [
"P1"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 5.0,
"quantity": 4.0
},
{
"step_id": "O1-S2",
"step_type": "assemble",
"sequence_index": 1,
"eligible_line_ids": [
"L1"
],
"eligible_machine_ids": [
"M1"
],
"eligible_personnel_ids": [
"P1"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 8.0,
"quantity": 3.0
}
]
},
{
"order_id": "O2",
"expected_delivery_date": "2026-01-03T08:00:00",
"expected_production_end_time": "2026-01-02T08:00:00",
"expected_shipping_time": "2026-01-02T08:00:00",
"allowed_line_ids": [
"L1"
],
"steps": [
{
"step_id": "O2-S1",
"step_type": "cut",
"sequence_index": 0,
"eligible_line_ids": [
"L1"
],
"eligible_machine_ids": [
"M2",
"M7"
],
"eligible_personnel_ids": [
"P2",
"P7"
],
"required_machine_count": 2,
"required_personnel_count": 2,
"per_unit_time_minutes": 3.0,
"quantity": 5.0
}
]
},
{
"order_id": "O3",
"expected_delivery_date": "2026-01-03T08:00:00",
"expected_production_end_time": "2026-01-02T08:00:00",
"expected_shipping_time": "2026-01-02T08:00:00",
"allowed_line_ids": [
"L2"
],
"steps": [
{
"step_id": "O3-S1",
"step_type": "paint",
"sequence_index": 0,
"eligible_line_ids": [
"L2"
],
"eligible_machine_ids": [
"M3"
],
"eligible_personnel_ids": [
"P3"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 4.0,
"quantity": 5.0
},
{
"step_id": "O3-S2",
"step_type": "paint",
"sequence_index": 1,
"eligible_line_ids": [
"L2"
],
"eligible_machine_ids": [
"M4"
],
"eligible_personnel_ids": [
"P4"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 2.0,
"quantity": 5.0
}
]
},
{
"order_id": "O4",
"expected_delivery_date": "2026-01-03T08:00:00",
"expected_production_end_time": "2026-01-02T08:00:00",
"expected_shipping_time": "2026-01-02T08:00:00",
"allowed_line_ids": [
"L3"
],
"steps": [
{
"step_id": "O4-S1",
"step_type": "prep",
"sequence_index": 0,
"eligible_line_ids": [
"L3"
],
"eligible_machine_ids": [
"M5"
],
"eligible_personnel_ids": [
"P5"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 1.0,
"quantity": 1.0,
"status": "completed"
},
{
"step_id": "O4-S2",
"step_type": "pack",
"sequence_index": 1,
"eligible_line_ids": [
"L3"
],
"eligible_machine_ids": [
"M5"
],
"eligible_personnel_ids": [
"P5"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 6.0,
"quantity": 5.0,
"status": "in_progress",
"in_progress_expected_end_time": "2026-01-01T08:15:00",
"in_progress_machine_ids": [
"M5"
],
"in_progress_personnel_ids": [
"P5"
]
},
{
"step_id": "O4-S3",
"step_type": "pack",
"sequence_index": 2,
"eligible_line_ids": [
"L3"
],
"eligible_machine_ids": [
"M6"
],
"eligible_personnel_ids": [
"P6"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 3.0,
"quantity": 4.0
}
]
},
{
"order_id": "O5",
"expected_delivery_date": "2026-01-03T08:00:00",
"expected_production_end_time": "2026-01-02T08:00:00",
"expected_shipping_time": "2026-01-02T08:00:00",
"allowed_line_ids": [
"L2"
],
"steps": [
{
"step_id": "O5-S1",
"step_type": "paint",
"sequence_index": 0,
"eligible_line_ids": [
"L2"
],
"eligible_machine_ids": [
"M3",
"M4"
],
"eligible_personnel_ids": [
"P3",
"P4"
],
"required_machine_count": 1,
"required_personnel_count": 1,
"per_unit_time_minutes": 5.0,
"quantity": 2.0
}
]
}
],
"pinned_assignments": [
{
"order_id": "O5",
"step_id": "O5-S1",
"start_time": "2026-01-01T09:00:00",
"machine_ids": [
"M3"
],
"personnel_ids": [
"P3"
],
"line_id": "L2"
}
]
}