# Injection Schedule — xếp Work Order vào máy × ngày × ca, duyệt lịch và sinh WI Injection theo ca

> Fine Chemical (FC) · Module MES · v0.4 · 09/10/2026 · Flow chuẩn — dùng để triển khai, kiểm thử và phát triển
>
> File sinh tự động từ sơ đồ bởi `sync.js` — đừng sửa tay. Hình là chuẩn: thấy mâu thuẫn với trang hình thì báo lại.
>
> Trang hình: /mes/injection-schedule

## Cách đọc

- Mỗi hộp trên sơ đồ có một mã `Bxx`, đánh theo thứ tự đi của luồng (từ điểm bắt đầu, theo mũi tên).
- "Đi tới" liệt kê mọi mũi tên ra khỏi hộp; chữ trong ngoặc vuông là nhãn điều kiện của mũi tên đó.
- "Nhánh tuỳ chọn" = mũi tên nét đứt trên sơ đồ: làm cũng được, bỏ qua cũng được.
- Hộp loại "Dữ liệu" ở lane Input là dữ liệu đi vào, ở lane Output là kết quả / điểm kết thúc của luồng.

## Process Flow (swimlane)

### Vai trò (lane)

- Input
- Planner
- Production Supervisor
- Output

### Các bước

| Mã | Vai trò | Loại | Nội dung | Nền tảng · Màn hình | Đi tới |
| --- | --- | --- | --- | --- | --- |
| B01 | Input | Dữ liệu | Master data: Machine · Capacity Calendar | Master data | B10 |
| B02 | Input | Dữ liệu | Work Order RELEASED (Routing có Injection) |  | B11 |
| B03 | Input | Dữ liệu | Detail Plan I/J Plan (Big Plan RELEASED) |  | B12 |
| B04 | Input | Dữ liệu | Lịch bảo trì máy (Machine Maintenance) |  | B17 |
| B05 | Input | Dữ liệu | Tồn khuôn theo size (Mold Qty) |  | B19 |
| B06 | Input | Dữ liệu | Kết quả POP theo ca (Daily Injection by Shift) |  | B47 |
| B07 | Input | Dữ liệu | Big Plan đóng thiếu (I/J Plan) |  | B44 |
| B08 | Input | Dữ liệu | WO bị huỷ (Work Order / WI) |  | B44 |
| B09 | Planner | Bắt đầu | Start |  | B10 |
| B10 | Planner | Bước | Mở Injection Schedule | Web · Injection Schedule | B11 |
| B11 | Planner | Bước | Đưa WO vào danh sách chờ xếp lịch | System (auto) · Injection Schedule | B12 |
| B12 | Planner | Điểm quyết định | Big Plan của Detail Plan đã RELEASED? |  | B13 [Chưa]; B14 [Có] |
| B13 | Output | Dữ liệu | WO chờ Big Plan RELEASED — chưa xếp được |  | (kết thúc) |
| B14 | Planner | Bước | Lấy số theo size từ Detail Plan | System (auto) · Injection Schedule | B15 |
| B15 | Planner | Bước | Chọn WO chưa xếp lịch | Web · Injection Schedule | B16 |
| B16 | Planner | Điểm quyết định | Xếp tay hay Auto Assign? |  | B17 [Xếp tay]; B18 [Auto Assign] |
| B17 | Planner | Bước | Chọn ô máy × ngày × ca | Web · Injection Schedule | B19 |
| B18 | Planner | Bước | Chạy Auto Assign | Web · Injection Schedule | B20 |
| B19 | Planner | Bước | Nhập Mold Qty theo size | Web · Injection Schedule | B21 |
| B20 | Planner | Bước | Rải Remaining vào ca trống | System (auto) · Injection Schedule | B21 |
| B21 | Planner | Bước | Tính Planned Pair | System (auto) · Injection Schedule | B22 |
| B22 | Planner | Điểm quyết định | Ca vượt capacity? |  | B23 [Có]; B24 [Không] |
| B23 | Planner | Bước | Cảnh báo Over capacity | System (auto) · Injection Schedule | B24 |
| B24 | Planner | Bước | Lưu Shift Plan | Web · Injection Schedule | B25 |
| B25 | Planner | Điểm quyết định | Planner xếp tiếp WO khác? |  | B15 [Có — xếp tiếp]; B26 [Không] |
| B26 | Planner | Bước | Gửi duyệt lịch ép | Web · Injection Schedule | B27 |
| B27 | Production Supervisor | Bước | Xem xét lịch ép | Web · Injection Schedule | B28 |
| B28 | Production Supervisor | Điểm quyết định | Duyệt đạt? |  | B29 [Không]; B30 [Đạt] |
| B29 | Production Supervisor | Bước | Từ chối lịch ép | Web · Injection Schedule | B31; B32 |
| B30 | Production Supervisor | Bước | Duyệt lịch ép | Web · Injection Schedule | B33 |
| B31 | Output | Dữ liệu | Lịch về DRAFT + lý do Reject cho Planner |  | (kết thúc) |
| B32 | Planner | Bước | Sửa Shift Plan | Web · Injection Schedule | B26 [gửi duyệt lại] |
| B33 | Planner | Bước | Phát hành lịch ép | Web · Injection Schedule | B34 |
| B34 | Planner | Bước | Sinh WI Injection theo ca | System (auto) · Injection Schedule | B35; B36 |
| B35 | Output | Dữ liệu | WI Injection theo WO × máy × ngày × ca → Daily Injection by Shift |  | (kết thúc) |
| B36 | Planner | Bước | Cập nhật Machine Loading | System (auto) · Machine Loading | B37; B38 |
| B37 | Output | Dữ liệu | Machine Loading Report (tải máy theo ngày × ca) |  | (kết thúc) |
| B38 | Planner | Kết thúc | End |  |  |
| B39 | Planner | Bắt đầu | Big Plan Revision |  | B40 |
| B40 | Planner | Bước | Khoá xếp thêm ca cho WO | System (auto) · Injection Schedule | B41; B42 |
| B41 | Output | Dữ liệu | Lịch đã xếp giữ nguyên · khoá xếp thêm tới khi duyệt lại |  | (kết thúc) |
| B42 | Planner | Kết thúc | End |  |  |
| B43 | Planner | Bắt đầu | Cần gỡ lịch của WO |  | B44 |
| B44 | Planner | Bước | Gỡ ca chưa chạy của WO | System (auto) · Injection Schedule | B45; B46 |
| B45 | Output | Dữ liệu | Ca chưa chạy đã gỡ · board trống lại |  | (kết thúc) |
| B46 | Planner | Kết thúc | End |  |  |
| B47 | Planner | Bước | Cập nhật Actual Pair · Remaining | System (auto) · Injection Schedule | B48 |
| B48 | Planner | Điểm quyết định | Actual Pair < Planned Pair? |  | B49 [Có]; B50 [Không] |
| B49 | Output | Dữ liệu | Phần thiếu về Remaining của WO → Planner xếp tiếp |  | (kết thúc) |
| B50 | Output | Dữ liệu | Ca đạt Planned Pair |  | (kết thúc) |

### Chi tiết từng bước (nội dung hover trên sơ đồ)

#### B10 · Mở Injection Schedule

- Planner · Web · Injection Schedule
- Đến từ: B01, B09
- Đi tới: B11 · Đưa WO vào danh sách chờ xếp lịch

> Planner mở bảng xếp lịch máy ép theo ca.  
> Thao tác: menu PRODUCTION › Injection Schedule ("Machine × shift board · adjust planned pairs and record actual output"); lọc khoảng ngày (7d) · Factory; nút "Board View" / "Grid View" / "Auto Assign".  
> Hệ thống: board máy INJ-01 … INJ-14 × ngày × ca; mỗi ô là "Free", WO đã xếp, hoặc "Maintenance".  
> Nguồn: prototype v0.23  

#### B11 · Đưa WO vào danh sách chờ xếp lịch

- Planner · System (auto) · Injection Schedule
- Đến từ: B02, B10
- Đi tới: B12 · Big Plan của Detail Plan đã RELEASED?

> Hệ thống đưa các WO cần ép vào danh sách chờ xếp lịch.  
> Hệ thống: Work Order RELEASED có công đoạn Injection trong Routing hiện ở khung "Unscheduled Work Orders".  
> Hệ thống: Release WO không sinh WI Injection — WI Injection chỉ sinh khi Planner Release lịch ép ở màn này, mỗi ca một WI.  
> Nguồn: Q-20260923-19 (G) · quy ước Q5  

#### B12 · Big Plan của Detail Plan đã RELEASED?

- Planner
- Đến từ: B03, B11
- Đi tới [Chưa]: B13 · WO chờ Big Plan RELEASED — chưa xếp được
- Đi tới [Có]: B14 · Lấy số theo size từ Detail Plan

> Big Plan chứa Detail Plan của WO đã được Release chưa?  
> Có: Big Plan RELEASED → lấy số theo size từ Detail Plan và xếp lịch.  
> Chưa: WO chờ, chưa xếp được.  
> Hệ thống: một Detail Plan (I/J Plan) ứng một WO; trạng thái chỉ có trên Big Plan.  
> Kiểm thử:  
> - Big Plan DRAFT → WO không xếp được lịch  
> Nguồn: Q-20260923-19 (A, F) · Q-20261009-08 · prototype v0.86  

#### B14 · Lấy số theo size từ Detail Plan

- Planner · System (auto) · Injection Schedule
- Đến từ: B12
- Đi tới: B15 · Chọn WO chưa xếp lịch

> Hệ thống lấy số lượng theo size và số khuôn từ Detail Plan của WO.  
> Hệ thống: Detail Plan cấp "SIZE REMAINING" theo size, Need Mold Q'ty, Estimated Date so với I/J ETC.  
> Kết quả: thẻ WO hiện "WO-… · <Model Color> · <n> pairs · <n> molds" với PLANNED · ACTUAL · REMAINING · OVER CAPACITY.  
> Nguồn: Q-20260923-19 (A) · prototype v0.23  

#### B15 · Chọn WO chưa xếp lịch

- Planner · Web · Injection Schedule
- Đến từ: B14, B25
- Đi tới: B16 · Xếp tay hay Auto Assign?

> Planner chọn WO còn số chưa xếp lịch.  
> Thao tác: khung "Unscheduled Work Orders" › bấm thẻ WO.  
> Hệ thống: mỗi size hiện "SIZE REMAINING" còn chưa lên lịch.  
> Nguồn: prototype v0.23  

#### B16 · Xếp tay hay Auto Assign?

- Planner
- Đến từ: B15
- Đi tới [Xếp tay]: B17 · Chọn ô máy × ngày × ca
- Đi tới [Auto Assign]: B18 · Chạy Auto Assign

> Planner xếp tay từng ca hay để hệ thống rải tự động?  
> Xếp tay: chọn ô máy × ngày × ca.  
> Auto Assign: hệ thống rải Remaining vào các ca trống.  
> Nguồn: prototype v0.23  

#### B17 · Chọn ô máy × ngày × ca

- Planner · Web · Injection Schedule
- Đến từ: B04, B16
- Đi tới: B19 · Nhập Mold Qty theo size

> Planner chọn máy, ngày và ca để xếp WO.  
> Thao tác: bấm ô "Free" trên board, hoặc "+ Add another shift plan" ở Grid View.  
> Chặn khi: ô "Maintenance" (lịch bảo trì máy) — không xếp được.  
> Chưa chốt: prototype còn ghi ca "Morning (AM)" / "Afternoon (PM)" — cần đổi thành Day / Night.  
> Nguồn: Q-20260923-07 · prototype v0.23  

#### B18 · Chạy Auto Assign

- Planner · Web · Injection Schedule
- Đến từ: B16
- Đi tới: B20 · Rải Remaining vào ca trống

> Planner cho hệ thống tự rải số còn lại vào các ca trống.  
> Thao tác: nút "Auto Assign" › hộp "Auto Assign to Machines" › chọn "Machines" · "Start date" (tuỳ chọn) · "Shift" · Scope "This WO" / "All unscheduled" › "Preview".  
> Nguồn: prototype v0.23  

#### B19 · Nhập Mold Qty theo size

- Planner · Web · Injection Schedule
- Đến từ: B05, B17
- Đi tới: B21 · Tính Planned Pair

> Planner nhập số khuôn dùng cho từng size trong ca.  
> Thao tác: hộp lập ca › "Planned Date" · "Shift" · "Machine" · "Work Order" · "Mold Qty" theo size.  
> Hệ thống: nhiều WO dùng chung một ca máy được, tới mức capacity ("Several WOs can share one machine shift, up to <capacity> pairs.").  
> Nguồn: prototype v0.23  

#### B20 · Rải Remaining vào ca trống

- Planner · System (auto) · Injection Schedule
- Đến từ: B18
- Đi tới: B21 · Tính Planned Pair

> Hệ thống rải Remaining vào các ca trống của máy đã chọn.  
> Hệ thống: chỉ dùng ô trống, bỏ qua ô "Maintenance" ("remaining qty is spread over the free shifts").  
> Chặn khi: không còn ca trống — "No free machine shift found for the selected options."  
> Nguồn: prototype v0.23  

#### B21 · Tính Planned Pair

- Planner · System (auto) · Injection Schedule
- Đến từ: B19, B20
- Đi tới: B22 · Ca vượt capacity?

> Hệ thống tính số đôi kế hoạch của ca.  
> Hệ thống: Planned Pair = MIN(Remaining Qty, Mold Qty × <đôi / khuôn>); sửa tay được từng ô ("edit any cell to adjust it manually"). Hiện Molds Used · Planned This Shift · Remaining After Plan · Current load.  
> Kiểm thử:  
> - Remaining 100, Mold Qty 20 × 3 đôi = 60 → Planned Pair 60  
> - Remaining 40, Mold Qty 20 × 3 đôi = 60 → Planned Pair 40  
> Nguồn: prototype v0.23  

#### B22 · Ca vượt capacity?

- Planner
- Đến từ: B21
- Đi tới [Có]: B23 · Cảnh báo Over capacity
- Đi tới [Không]: B24 · Lưu Shift Plan

> Ca có vượt năng lực máy không?  
> Có: tổng Planned Pair của ca > capacity máy (Capacity Calendar) → cảnh báo.  
> Không: lưu bình thường.  
> Kiểm thử:  
> - Capacity 600, Planned 600 → không cảnh báo  
> - Capacity 600, Planned 601 → cảnh báo  
> Nguồn: Q-20260923-02  

#### B23 · Cảnh báo Over capacity

- Planner · System (auto) · Injection Schedule
- Đến từ: B22
- Đi tới: B24 · Lưu Shift Plan

> Hệ thống cảnh báo ca sẽ vượt capacity.  
> Hệ thống: thông báo "Saving will leave this shift over capacity."; nút đổi thành "Save Anyway".  
> Kết quả: chỉ cảnh báo, không chặn; KPI "OVER CAPACITY" tăng.  
> Nguồn: Q-20260923-02 · prototype v0.23  

#### B24 · Lưu Shift Plan

- Planner · Web · Injection Schedule
- Đến từ: B22, B23
- Đi tới: B25 · Planner xếp tiếp WO khác?

> Planner lưu ca đã xếp.  
> Thao tác: nút "Save Shift Plan" ("Update Shift Plan" khi sửa).  
> Kết quả: lịch → DRAFT; chưa sinh WI Injection. Grid "Manual Shift Plans": một dòng = một máy + một ca + một WO ("One row = one machine + one shift + one WO.").  
> Nguồn: Q-20260923-08 · prototype v0.23  

#### B25 · Planner xếp tiếp WO khác?

- Planner
- Đến từ: B24
- Đi tới [Có — xếp tiếp]: B15 · Chọn WO chưa xếp lịch
- Đi tới [Không]: B26 · Gửi duyệt lịch ép

> Planner có xếp tiếp WO khác không?  
> Có: quay lại chọn WO chưa xếp.  
> Không: gửi duyệt phần đã xếp.  
> Hệ thống: không bắt xếp hết Remaining mới được gửi duyệt; phần còn lại vẫn ở "Unscheduled Work Orders" cho lượt sau.  
> Nguồn: Q-20260923-08  

#### B26 · Gửi duyệt lịch ép

- Planner · Web · Injection Schedule
- Đến từ: B25, B32
- Đi tới: B27 · Xem xét lịch ép

> Planner gửi phần lịch đã xếp cho Production Supervisor duyệt.  
> Khi nào: lịch DRAFT.  
> Thao tác: Submit.  
> Kết quả: lịch → PENDING APPROVAL; phần chưa xếp giữ ở "Unscheduled Work Orders".  
> Chưa chốt: prototype v0.23 chưa có nút Submit.  
> Nguồn: Q-20260923-08  

#### B27 · Xem xét lịch ép

- Production Supervisor · Web · Injection Schedule
- Đến từ: B26
- Đi tới: B28 · Duyệt đạt?

> Production Supervisor xem lịch ép trước khi quyết định duyệt.  
> Khi nào: lịch PENDING APPROVAL.  
> Thao tác: xem board WO × máy × ca, Planned Pair, ô Over capacity, Estimated Date so với I/J ETC.  
> Nguồn: Q-20260923-08 · BRD §7  

#### B28 · Duyệt đạt?

- Production Supervisor
- Đến từ: B27
- Đi tới [Không]: B29 · Từ chối lịch ép
- Đi tới [Đạt]: B30 · Duyệt lịch ép

> Supervisor quyết định lịch ép đạt hay không.  
> Đạt: duyệt → Planner phát hành lịch.  
> Không: từ chối kèm lý do → lịch về DRAFT cho Planner sửa.  
> Hệ thống: cảnh báo Over capacity không tự chặn duyệt.  
> Nguồn: Q-20260923-08 · Q-20260923-02  

#### B29 · Từ chối lịch ép

- Production Supervisor · Web · Injection Schedule
- Đến từ: B28
- Đi tới: B31 · Lịch về DRAFT + lý do Reject cho Planner
- Đi tới: B32 · Sửa Shift Plan

> Production Supervisor từ chối lịch ép và ghi lý do.  
> Thao tác: Reject — ô lý do bắt buộc.  
> Kết quả: lịch → DRAFT; lý do hiện cho Planner.  
> Chặn khi: không nhập lý do.  
> Kiểm thử:  
> - Reject không nhập lý do → không lưu được  
> Nguồn: Q-20260923-08  

#### B30 · Duyệt lịch ép

- Production Supervisor · Web · Injection Schedule
- Đến từ: B28
- Đi tới: B33 · Phát hành lịch ép

> Production Supervisor duyệt lịch ép.  
> Thao tác: Approve.  
> Kết quả: lịch → APPROVED; Planner được phát hành ("Release WO / Generate WI: Planner Y · Supervisor Approve").  
> Nguồn: BRD §7 · Q-20260923-08  

#### B32 · Sửa Shift Plan

- Planner · Web · Injection Schedule
- Đến từ: B29
- Đi tới [gửi duyệt lại]: B26 · Gửi duyệt lịch ép

> Planner sửa ca theo lý do bị từ chối rồi gửi duyệt lại.  
> Khi nào: lịch DRAFT sau Reject.  
> Thao tác: đổi máy / ca / Mold Qty › "Update Shift Plan" › Submit.  
> Kết quả: lịch → PENDING APPROVAL.  
> Nguồn: Q-20260923-08  

#### B33 · Phát hành lịch ép

- Planner · Web · Injection Schedule
- Đến từ: B30
- Đi tới: B34 · Sinh WI Injection theo ca

> Planner phát hành lịch ép đã duyệt.  
> Khi nào: lịch APPROVED.  
> Thao tác: Release.  
> Kết quả: lịch → RELEASED; chỉ lúc này mới sinh WI Injection.  
> Kiểm thử:  
> - Lịch APPROVED chưa Release → chưa có WI Injection nào  
> Nguồn: Q-20260923-08 · quy ước Q5  

#### B34 · Sinh WI Injection theo ca

- Planner · System (auto) · Injection Schedule
- Đến từ: B33
- Đi tới: B35 · WI Injection theo WO × máy × ngày × ca → Daily Injection by Shift
- Đi tới: B36 · Cập nhật Machine Loading

> Hệ thống sinh WI Injection cho từng ca đã phát hành.  
> Kết quả: mỗi dòng Shift Plan (máy + ca + WO) một WI Injection RELEASED, mang Mold Qty và Planned Pair theo size, gắn vào tab "Work Instructions" của WO; WI hiện trên dashboard của Operator ("Released WI appears on operator dashboard by work center, machine, shift and priority.").  
> Hệ thống: Save / Submit / Approve không sinh WI.  
> Kiểm thử:  
> - Release lịch 3 dòng Shift Plan → 3 WI Injection  
> Nguồn: BRD §6.2 Step 5 · Q-20260923-19 (G) · quy ước Q5  

#### B36 · Cập nhật Machine Loading

- Planner · System (auto) · Machine Loading
- Đến từ: B34
- Đi tới: B37 · Machine Loading Report (tải máy theo ngày × ca)
- Đi tới: B38 · End

> Hệ thống cập nhật báo cáo tải máy theo lịch mới.  
> Hệ thống: màn Machine Loading chỉ đọc ("Machine Loading Report — Read-only injection loading by date and Shift A/B."); trạng thái ô Running · Planned · Idle · Maintenance · Over Capacity; nút "Daily Print" / "Refresh".  
> Chưa chốt: Machine Loading còn ghi ca "Shift A/B" — cần đổi thành Day / Night.  
> Nguồn: prototype v0.23 · Q-20260923-07  

#### B40 · Khoá xếp thêm ca cho WO

- Planner · System (auto) · Injection Schedule
- Đến từ: B39
- Đi tới: B41 · Lịch đã xếp giữ nguyên · khoá xếp thêm tới khi duyệt lại
- Đi tới: B42 · End

> Hệ thống khoá xếp thêm ca cho WO khi Big Plan đang Revision.  
> Khi nào: Big Plan RELEASED → DRAFT ở I/J Plan (Revision).  
> Kết quả: các ca đã xếp giữ nguyên; không xếp thêm ca cho WO của Detail Plan đó tới khi Big Plan được Release lại; sau đó Planner chỉnh lịch theo số mới.  
> Kiểm thử:  
> - Big Plan Revision → thẻ WO không xếp được ca mới  
> Nguồn: Q-20260923-11  

#### B44 · Gỡ ca chưa chạy của WO

- Planner · System (auto) · Injection Schedule
- Đến từ: B07, B08, B43
- Đi tới: B45 · Ca chưa chạy đã gỡ · board trống lại
- Đi tới: B46 · End

> Hệ thống gỡ các ca chưa chạy của WO khi Big Plan đóng thiếu hoặc WO bị huỷ.  
> Kết quả: dòng Shift Plan chưa có POP (mọi trạng thái) bị gỡ khỏi board; WI Injection RELEASED của ca đó → CANCELLED; ca đã có POP giữ nguyên; phần thiếu không còn trong "Unscheduled Work Orders".  
> Kiểm thử:  
> - WO có 3 ca, 1 ca đã có POP → huỷ WO → còn 1 ca trên board  
> Nguồn: Q-20260923-11 · quy ước Q5  

#### B47 · Cập nhật Actual Pair · Remaining

- Planner · System (auto) · Injection Schedule
- Đến từ: B06
- Đi tới: B48 · Actual Pair < Planned Pair?

> Hệ thống ghi số đôi thực tế của ca và tính lại số còn phải ép.  
> Hệ thống: "Actual Pair" chỉ đọc, lấy từ POP của ca ("Actual Pair is read-only — it comes from the shift POP / Curing Confirmation"); Variance = Actual − Planned; phần thiếu trả về Remaining của WO.  
> Chưa chốt: Actual lấy từ POP ca CONFIRMED hay từ số Curing Confirmed.  
> Nguồn: Q-20260923-08 · Q-20260923-11 · prototype v0.23  

#### B48 · Actual Pair < Planned Pair?

- Planner
- Đến từ: B47
- Đi tới [Có]: B49 · Phần thiếu về Remaining của WO → Planner xếp tiếp
- Đi tới [Không]: B50 · Ca đạt Planned Pair

> Ca có ép thiếu so với kế hoạch không?  
> Có: Actual Pair < Planned Pair → phần thiếu về Remaining của WO, Planner xếp tiếp.  
> Không: ca đạt Planned Pair.  
> Kiểm thử:  
> - Planned 60, Actual 55 → Remaining của WO tăng 5  
> Nguồn: Q-20260923-08 · Q-20260923-11  

## Vòng đời trạng thái

#### Lịch ép (Shift Plan)

`DRAFT` → `PENDING APPROVAL` → `APPROVED` → `RELEASED`

Bước chuyển:

- `DRAFT` -- Submit --> `PENDING APPROVAL`
- `PENDING APPROVAL` -- Approve (Supervisor) --> `APPROVED`
- `APPROVED` -- Release → sinh WI Injection --> `RELEASED`
- `PENDING APPROVAL` -- Reject — có lý do --> `DRAFT` (quay lại)

## Input

| # | Input | Loại | Đi vào bước |
| --- | --- | --- | --- |
| I-1 | Machine · Capacity Calendar (máy INJ-01 … INJ-14, capacity từng ca) | Master data | Mở Injection Schedule; kiểm Over capacity |
| I-2 | Work Order `RELEASED` có công đoạn Injection trong Routing | Chứng từ — Master Plan | Đưa WO vào danh sách chờ xếp lịch |
| I-3 | Detail Plan của I/J Plan (Big Plan `RELEASED`) — 1 Detail Plan ứng 1 WO; số lượng theo size, Need Mold Q'ty, Estimated Date | Chứng từ — I/J Plan | Big Plan của Detail Plan đã RELEASED? · Lấy số theo size từ Detail Plan |
| I-4 | Lịch bảo trì máy — ô Maintenance không xếp được | Module Machine Maintenance | Chọn ô máy × ngày × ca |
| I-5 | Tồn khuôn theo size (Mold Qty) | Tồn khuôn — Mold Management | Nhập Mold Qty theo size |
| I-6 | Kết quả POP theo ca (Actual Pair) | Kết quả sản xuất — Daily Injection by Shift | Cập nhật Actual Pair · Remaining |
| I-7 | Big Plan đóng thiếu — phần thiếu không sản xuất nữa | Chứng từ — I/J Plan | Gỡ ca chưa chạy của WO |
| I-8 | WO bị huỷ | Chứng từ — Work Order / WI | Gỡ ca chưa chạy của WO |

## Bước ↔ màn hình thực hiện

| Bước | Vai trò | Màn hình · nút trên UI |
| --- | --- | --- |
| Mở Injection Schedule · Chọn WO chưa xếp lịch | Planner | Injection Schedule · `Board View` / `Grid View` · khung Unscheduled Work Orders |
| Chọn ô máy × ngày × ca · Nhập Mold Qty theo size | Planner | Injection Schedule · ô Free trên board / `+ Add another shift plan` |
| Chạy Auto Assign | Planner | Injection Schedule · `Auto Assign` → Auto Assign to Machines (`Preview`) |
| Lưu Shift Plan | Planner | Injection Schedule · `Save Shift Plan` / `Save Anyway` |
| Gửi duyệt lịch ép · Phát hành lịch ép · Sửa Shift Plan | Planner | Injection Schedule (prototype v0.23 chưa có nút Submit / Release) |
| Xem xét · Duyệt · Từ chối lịch ép | Production Supervisor | Injection Schedule (prototype v0.23 chưa có nút Approve / Reject) |
| Đưa WO vào danh sách chờ xếp lịch · Lấy số theo size từ Detail Plan · Tính Planned Pair · Rải Remaining vào ca trống · Cảnh báo Over capacity · Sinh WI Injection theo ca · Cập nhật Actual Pair · Remaining · Khoá xếp thêm ca cho WO · Gỡ ca chưa chạy của WO | System (auto) | Injection Schedule |
| Cập nhật Machine Loading | System (auto) | Machine Loading (Machine Loading Report — chỉ đọc, `Daily Print`, `Refresh`) |

## Output

| # | Output | Điều kiện sinh ra |
| --- | --- | --- |
| O-1 | WO chờ Big Plan `RELEASED` — chưa xếp được | WO chưa có Detail Plan, hoặc Big Plan chứa Detail Plan đó chưa `RELEASED` |
| O-2 | Lịch về `DRAFT` + lý do Reject cho Planner | Production Supervisor Reject |
| O-3 | WI Injection theo WO × máy × ngày × ca → Daily Injection by Shift | Lịch `APPROVED`, Planner bấm Release → `RELEASED` — chỉ Release mới sinh WI, mỗi ca một WI |
| O-4 | Machine Loading Report — tải máy theo ngày × ca (Running · Planned · Idle · Maintenance · Over Capacity) | Mỗi lần lịch được Release |
| O-5 | Phần thiếu về Remaining của WO → Planner xếp tiếp | Actual Pair (POP) < Planned Pair của ca |
| O-6 | Ca đạt Planned Pair | Actual Pair ≥ Planned Pair |
| O-7 | Lịch đã xếp giữ nguyên · khoá xếp thêm ca tới khi Big Plan được Release lại | Planner tạo Revision Big Plan ở I/J Plan (`RELEASED` → `DRAFT`) |
| O-8 | Ca chưa chạy đã gỡ · board trống lại (WI Injection `RELEASED` của ca đó → `CANCELLED`) | Big Plan đóng thiếu hoặc WO bị huỷ; ca đã có POP giữ nguyên |

## Thuật ngữ

| Thuật ngữ | Nghĩa trong flow này |
| --- | --- |
| `Shift Plan` | Một dòng lịch = một máy + một ca + một WO |
| `Detail Plan` | Phần tách của Big Plan ở I/J Plan; mỗi Detail Plan ứng một WO và cấp số theo size |
| `Big Plan` | Kế hoạch ép tổng ở I/J Plan, nơi duy nhất mang trạng thái |
| `Mold Qty` | Số khuôn dùng cho một size trong ca |
| `Planned Pair · Actual Pair` | Số đôi kế hoạch của ca · số đôi thực tế lấy từ POP |
| `SIZE REMAINING` | Số của size còn chưa xếp lịch |
| `Capacity` | Năng lực đôi / ca của máy theo Capacity Calendar |
| `WI Injection` | Lệnh làm việc ép cho một ca, sinh khi Release lịch |
| `POP` | Point of Production — khai báo sản lượng theo ca |
| `Machine Loading` | Báo cáo tải máy theo ngày × ca, chỉ đọc |
