Trimming Planning — Planner lập plan theo loại và P.O Month từ LOT Curing, tự xác nhận; hệ thống sinh phiếu Stock Out Curing cho từng LOT; sửa plan APPROVED giữ trạng thái

Fine Chemical (FC) · Module MES · v0.3 · 09/10/2026 · Flow chuẩn — dùng để triển khai, kiểm thử và phát triển

Process Flow (swimlane)

MES · Trimming Planning — lập plan từ LOT Curing, tự xác nhận, sinh phiếu Stock Out Curing cho từng LOTPhaseInputPlannerOutputNgoại lệ — sửa plan (DRAFT / APPROVED) · huỷ planKhôngchọn LOT khácĐượcKhôngsửa số / bỏ LOTCóChưaConfirm từ trang planCóAPPROVEDChưaĐủCóChưaChưa — DRAFTsửa LOT / sốCóKhôngCóCóChưaMaster data: Model Attributecủa WO (Logo / Spray / OOMG)Master dataCuring Room INV List(LOT ca AB / CD · Available)Master data: Standardcuring daysMaster dataOutput Entry của plan —Trimming ResultOutput Entry của plan —Trimming ResultStart▣ Trimming PlanningTạo plan TrimmingWeb▣ Trimming PlanningChọn Plan Type · P.O MonthWeb▣ Trimming PlanningTick LOT ở CuringRoom INV ListWebLOT tick được?▣ Trimming PlanningKhoá tick LOTSystem (auto)▣ Trimming PlanningChỉnh Plan Qty theo sizeWebPlan hợp lệ?▣ Trimming PlanningKhoá Save Draft· ConfirmSystem (auto)Confirm ngay?▣ Trimming PlanningLưu nháp plan TrimmingWeb▣ Trimming PlanningXác nhận plan TrimmingWebLOT đủ ngàycuring?▣ Trimming PlanningSinh phiếu Stock OutCuring cho từng LOTSystem (auto)EndSửa planPlan đã cósản lượng?Plan APPROVED?▣ Trimming PlanningSửa plan nhápWeb▣ Trimming PlanningSửa plan APPROVEDWebLOT đổi sốhoặc bị bỏ?▣ Trimming PlanningCancel phiếu Stock Outcủa LOT đóSystem (auto)▣ Trimming PlanningSinh phiếu mới theoPlan Qty mớiSystem (auto)EndHuỷ planPlan đã cósản lượng?▣ Trimming PlanningHuỷ plan TrimmingWeb▣ Trimming PlanningCancel mọi phiếu ·trả tồn đã giữSystem (auto)EndPlan Trimming APPROVED →Trimming Result, chờ ghisản lượngLOT chưa đủ ngày — phiếusinh ở Curing ConfirmationPhiếu Stock Out Curing →WH-TRM-01, APPROVED, mỗiLOT một phiếuKhông sửa được — planđã có sản lượngPlan giữ APPROVED —phiếu giữ nguyênPhiếu cũ CANCELLED —tồn trả về kho CuringPlan giữ APPROVED và PlanNo. — Trimming Resultcập nhật sốKhông huỷ được — planđã có sản lượngPlan CANCELLED · tồn vềCuring · rút khỏi TrimmingResultPlanner tạo một plan Trimming mới để cắt tỉa hàng lấy từ tồn Curing. Khi nào: bất kỳ lúc nào có LOT ở Curing Room cần lập plan; không cần WO hay plan sinh sẵn. Thao tác: Trimming Planning › nút "Create Plan" → trang "Create Trimming Plan". Hệ thống: số plan tự sinh theo ngày plan: "TRM-PLAN-<YYYYMMDD>-NN" (NN tăng dần trong ngày). Kết quả: mở trang lập plan, chưa lưu gì. Kiểm thử: - Tạo 2 plan cùng ngày 12/08 → TRM-PLAN-20260812-01 và -02 Nguồn: Q-20260925-04 (1) · prototype v0.51Planner chọn loại hoàn thiện và tháng P.O của plan; plan Trimming không gắn Customer P.O. Thao tác: ô "PLAN TYPE *" (Logo / Spray / OOMG), ô "P.O (MONTH) *" (vd "2026.Aug"), ô "PLAN DATE"; ô "SHIFT" ("All" / "Day (AB)" / "Night (CD)") lọc LOT theo ca curing. Hệ thống: tiêu đề đổi thành "Making <Logo|Spray|OOMG> Trimming Plan"; "Curing Room INV List" chỉ hiện LOT có Model Attribute của WO trùng loại plan và thuộc P.O Month đã chọn. Chặn khi: chưa chọn loại → "Select the Plan Type (Logo, Spray or OOMG) to view Curing stock."; chưa chọn tháng → "Select the P.O Month to view its LOTs." Kiểm thử: - Chọn Spray + 2026.Aug → chỉ thấy LOT Spray của tháng 8 - Chọn "Night (CD)" → chỉ còn LOT có mã đuôi -CD Nguồn: Q-20260928-03 (câu 11) · prototype v0.51Planner chọn các LOT còn tồn ở Curing để đưa vào plan. Thao tác: bảng "Curing Room INV List" › tick ô "Select" đầu dòng; ô tìm "Search lot, WO, model or color". Hệ thống: tick LOT → lấy toàn bộ "Available" theo size vào "Plan Qty"; "Available" = tồn LOT − phần các plan khác đang giữ; "Days" = "PLAN DATE" − ngày curing. Hệ thống: LOT đang curing vẫn tick được, cột Status ghi "Curing not completed — can be planned". Kết quả: footer đếm "<n> LOT(s) · <số> pairs to reserve". Kiểm thử: - LOT Available 2.490 đôi → tick → footer "1 LOT(s) · 2,490 pairs to reserve" - Bỏ tick → LOT rời plan, footer về 0 Nguồn: Q-20260928-03 (câu 1) · prototype v0.51Hệ thống kiểm tra LOT có được đưa vào plan không. Được: LOT đúng loại plan, "Available" > 0, Model Attribute của WO xác định được và đủ dữ liệu Model · Base Color · AL / INT; LOT chưa xuất khỏi kho Curing vẫn tick được — phiếu Stock Out sinh sau khi plan APPROVED. Không: thiếu một trong các điều kiện trên → khoá ô tick. Kiểm thử: - LOT đã bị plan khác giữ hết → không tick được Nguồn: prototype v0.51 · Q-20260930-05Hệ thống khoá ô tick và ghi lý do ngay trên dòng LOT. Hệ thống: lý do ở cột Status: "Source WO model attribute unresolved" · "Compatibility data incomplete"; LOT hết tồn ghi "Fully reserved". "Curing stock not issued" không còn chặn ở đây — chuyển sang Trimming Result. Kết quả: Planner chọn LOT khác. Nguồn: prototype v0.51 · Q-20260930-05Planner giảm số lên plan của từng size khi không cắt tỉa hết LOT. Thao tác: ô số theo size trên dòng LOT đã tick (thành ô nhập sau khi tick); "Cancel editing" để thoát không lưu. Hệ thống: "Plan Qty" của LOT = tổng các size; mỗi size là số nguyên từ 0 tới "Available" của size đó. Chặn khi: vượt "Available" → "<LOT No.> / <size>: quantity exceeds Available <n>." (vd "LOT-20260806-AB / M3/W5: quantity exceeds Available 200.") Kiểm thử: - Available M3/W5 = 200: nhập 200 → hợp lệ; nhập 201 → báo lỗi, khoá "Save Draft" / "Confirm Trimming Plan" - Sửa M3/W5 từ 200 xuống 100 → footer giảm 100 đôi Nguồn: Q-20260928-03 (câu 1) · prototype v0.51Hệ thống kiểm tra plan trước khi cho lưu hoặc xác nhận. Có: đã chọn Plan Type · P.O Month · Plan Date, có ít nhất một LOT, tổng "Plan Qty" > 0 và không size nào vượt "Available" → bật "Save Draft" / "Confirm Trimming Plan". Không: còn một điều kiện chưa đạt → hai nút bị khoá, lỗi hiện trên trang. Kiểm thử: - Chưa tick LOT nào → "Confirm Trimming Plan" bị khoá - Mọi size sửa về 0 → không lưu được Nguồn: prototype v0.51Hệ thống khoá nút lưu và hiện lỗi để Planner sửa. Kết quả: Planner sửa số theo size hoặc bỏ tick LOT sai. Nguồn: prototype v0.51Planner chọn xác nhận plan ngay hay lưu nháp để sửa tiếp. Có: bấm "Confirm Trimming Plan" ngay trên trang lập plan. Chưa: bấm "Save Draft"; xác nhận sau từ trang chi tiết plan. Nguồn: Q-20260925-04 (2) · prototype v0.51Planner lưu plan để sửa tiếp; số trên plan được giữ ngay từ lúc lưu nháp. Thao tác: nút "Save Draft". Kết quả: plan → DRAFT; thông báo "<số plan> saved · <n> pairs reserved"; plan khác thấy "Available" của LOT giảm đúng số đó. Kiểm thử: - Lưu nháp plan A giữ 200 đôi của LOT X → plan B thấy Available của LOT X giảm 200 Nguồn: prototype v0.51Planner tự xác nhận plan; không có bước duyệt riêng. Khi nào: plan đang lập hoặc plan DRAFT. Thao tác: nút "Confirm Trimming Plan" → popup "Release Trimming Plan <số plan>?" (Plan No., Plan Type, P.O (Month), Plan Date, LOTs, Planned Qty, bảng LOT × size) → "Confirm & Release"; "Cancel" để quay lại. Hệ thống: tồn được kiểm lại lúc xác nhận; số theo size không được vượt "Available" hiện tại. Kết quả: plan → APPROVED và hiện ở Trimming Result chờ ghi sản lượng; thông báo "<số plan> confirmed · <n> pairs reserved · Stock Out Curing: <n> issued". Kiểm thử: - Bấm "Cancel" trên popup → plan giữ nguyên trạng thái - Confirm plan 2 LOT đã đủ ngày curing → plan APPROVED, 2 phiếu Stock Out Curing Nguồn: Q-20260925-04 (2) · Q-20261006-02 · prototype v0.76LOT của plan đã đủ ngày curing chuẩn chưa? Đủ: "Days" của LOT ≥ "Standard curing days" → sinh phiếu Stock Out ngay. Chưa: LOT vẫn nằm trong plan; phiếu của LOT sinh ở flow Curing Confirmation vào ngày LOT đủ ngày, plan không phải xác nhận lại. Kiểm thử: - Standard curing days = 2, LOT curing 1 ngày → chưa có phiếu; trang plan ghi "Waiting curing" Nguồn: Q-20260930-05 (câu 5) · Q-20261006-02 · prototype v0.76Hệ thống tự sinh phiếu Stock Out chuyển LOT của plan từ kho công đoạn "WH-CUR-01 / Curing" sang "WH-TRM-01 / Trimming"; Planner không bấm gì. Hệ thống: mỗi LOT × plan một phiếu, số theo size = "Plan Qty" của LOT trong plan; phiếu ở trạng thái APPROVED ngay, tồn chuyển ngay — không ai duyệt. Kết quả: tồn chờ cắt tỉa của LOT ở WH-TRM-01 tăng; "RECEIVED" của LOT ở Trimming Result bằng số trên phiếu; trang plan có khung "Stock Out Curing → WH-TRM-01" (Slip No., LOT No., From → To, Notes, Pairs, Status, Date). Hệ thống: số phiếu theo khuôn phiếu Stock Out của WMS "REQ-<mã kho>-YYMM-<5 số>" (prototype: REQ-CUR01-2608-00001); ô "Notes" của phiếu ghi WO của LOT. Kiểm thử: - Plan giữ 2.000 / 2.490 đôi của một LOT → phiếu 2.000 đôi, 490 đôi còn ở kho Curing - Release TRM-PLAN-20260812-06 (LOT-20260805-AB, 510 đôi) → phiếu REQ-CUR01-2608-00001, Notes WO-20260803 Chưa chốt: phiếu chưa hiện ở màn WMS Outbound. Nguồn: Q-20261006-02 (câu 1) · Q-20261006-03 (câu 2) · Q-20260930-05 · Q-20261009-09 (câu 3) · prototype v0.87Plan còn sửa được không? Có sản lượng: ít nhất một LOT của plan đã có Output Entry ở Trimming Result → khoá "Edit Plan" cho cả plan, kể cả LOT chưa ghi. Chưa: plan DRAFT hoặc APPROVED chưa có Output Entry → cho sửa. Hệ thống: thông báo "This plan has production results and cannot be edited." Kiểm thử: - Plan APPROVED 3 LOT, 1 LOT đã ghi Output → "Edit Plan" bị khoá Nguồn: Q-20260925-04 · Q-20261006-02 (câu 4) · prototype v0.76Plan đang ở trạng thái nào? Chưa — DRAFT: sửa như lúc lập plan, lưu bằng "Save Draft" hoặc "Confirm Trimming Plan". Có — APPROVED: sửa nhưng plan giữ APPROVED và Plan No.; không có "Save Draft". Nguồn: Q-20261006-02 (câu 3) · prototype v0.76Planner mở lại plan nháp để đổi LOT hoặc số theo size. Thao tác: trang chi tiết plan › nút "Edit Plan" → trang lập plan với LOT và số đã lưu; "Cancel editing" để thoát không lưu. Hệ thống: "Available" tính lại theo tồn hiện tại, phần plan này đang giữ vẫn tính cho plan này; plan DRAFT chưa có phiếu Stock Out. Kết quả: lưu bằng "Save Draft" → giữ DRAFT, hoặc "Confirm Trimming Plan" → APPROVED. Nguồn: Q-20260925-04 · Q-20260930-02 (câu 1) · prototype v0.76Planner sửa số theo size hoặc bỏ LOT của plan đã APPROVED mà chưa có sản lượng. Thao tác: trang chi tiết plan › "Edit Plan" → sửa số / bỏ tick LOT → "Confirm Trimming Plan" → popup "Save changes to Trimming Plan <số plan>?" (liệt kê "Changed LOTs") → "Save changes". Trang sửa không có "Save Draft". Hệ thống: "Available" tính lại theo tồn hiện tại như lúc lập plan; số theo size không vượt "Available". Kết quả: plan giữ APPROVED và Plan No.; thông báo "<số plan> updated · <n> pairs reserved · Stock Out Curing: <n> cancelled, <n> issued". Chặn khi: plan đã có Output Entry hoặc bị người khác sửa trước → không lưu. Kiểm thử: - Plan APPROVED, giảm W5 của LOT X 10 đôi → "Save changes" → plan vẫn APPROVED, cùng Plan No. Nguồn: Q-20261006-02 (câu 3) · prototype v0.76Lần sửa có làm đổi số của LOT đã có phiếu Stock Out không? Có: LOT đổi số theo size hoặc bị bỏ khỏi plan → phiếu của LOT đó phải đổi. Không: số mọi LOT giữ nguyên → phiếu giữ nguyên. Hệ thống: LOT chưa đủ ngày curing chưa có phiếu — chỉ đổi Plan Qty, phiếu sinh sau theo số mới. Nguồn: Q-20261006-02 (câu 2) · prototype v0.76Hệ thống huỷ phiếu Stock Out cũ của LOT đổi số hoặc bị bỏ; không dùng phiếu số âm. Hệ thống: phiếu → CANCELLED, tồn chờ cắt tỉa ở WH-TRM-01 trả về kho Curing (luật Cancel Slip WMS §1.7); phiếu CANCELLED vẫn hiện ở khung "Stock Out Curing → WH-TRM-01". Kết quả: LOT bị bỏ khỏi plan chỉ bị huỷ phiếu; LOT đổi số đi tiếp bước sinh phiếu mới. Kiểm thử: - LOT X có phiếu 2.500 đôi, sửa còn 2.490 → phiếu 2.500 đôi CANCELLED, tồn Curing của LOT X tăng 2.500 trước khi phiếu mới xuất 2.490 Chưa chốt: phiếu nằm trong kỳ tồn đã đóng (§1.8) thì có chặn sửa plan không. Nguồn: Q-20261006-02 (câu 2) · WMS_BUSINESS_RULE §1.7 · prototype v0.76Hệ thống sinh phiếu Stock Out mới cho LOT vừa đổi số. Hệ thống: phiếu mới theo "Plan Qty" mới của LOT, APPROVED ngay; LOT chưa đủ ngày curing thì chưa sinh. Kết quả: plan giữ APPROVED và Plan No.; "RECEIVED" của LOT ở Trimming Result bằng số phiếu mới. Kiểm thử: - LOT X sửa còn 2.490 → phiếu mới 2.490 đôi APPROVED; Trimming Result: Received 2.490 Nguồn: Q-20261006-02 (câu 2, 3) · prototype v0.76Plan còn huỷ được không? Có sản lượng: ít nhất một LOT đã có Output Entry → khoá "Cancel Plan". Chưa: plan DRAFT hoặc APPROVED chưa có Output Entry → cho huỷ. Hệ thống: thông báo "This plan has production results and cannot be changed." Nguồn: Q-20260925-04 · Q-20261006-02 (câu 4) · prototype v0.76Planner huỷ plan không dùng nữa; plan CANCELLED đóng hẳn, không sửa hay xác nhận lại được. Thao tác: trang chi tiết plan › nút "Cancel Plan" → popup đỏ "Cancel Trimming Plan <số plan>?" ("The reservation on the LOTs is released. Its Stock Out Curing slips are cancelled and the stock returns to Curing. This cannot be undone.") → "Cancel Plan". Kết quả: plan → CANCELLED; thông báo "<số plan> · Cancelled · reservation released · Stock Out Curing: <n> cancelled". Nguồn: Q-20260930-02 (câu 1) · Q-20261006-02 (câu 2) · prototype v0.76Hệ thống huỷ mọi phiếu Stock Out còn APPROVED của plan và trả số đang giữ. Hệ thống: phiếu → CANCELLED, tồn chờ cắt tỉa ở WH-TRM-01 về kho Curing (§1.7); "Available" của từng LOT tăng đúng phần của plan; plan rút khỏi danh sách Trimming Result. Kiểm thử: - Huỷ plan APPROVED giữ 300 đôi của LOT X đã có phiếu → phiếu CANCELLED, Available của LOT X tăng 300, Trimming Result không còn dòng của plan - Huỷ plan DRAFT → không có phiếu nào để huỷ, chỉ trả số giữ Nguồn: Q-20261006-02 (câu 2) · WMS_BUSINESS_RULE §1.7 · prototype v0.76
Bắt đầuđiểm khởi động của luồng
Kết thúcmỗi Bắt đầu đi tới ít nhất một Kết thúc
Bước xử lýdải trên = màn hình thực hiện, ô màu = nền tảng
Điểm quyết địnhmỗi nhánh đi ra đều có nhãn điều kiện
Dữ liệu / chứng từđầu vào ở lane Input, kết quả ở lane Output
Luồng chínhthứ tự bắt buộc của các bước
Nhãn trên hộpMaster dataWebSystem (auto)

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

Plan TrimmingDRAFTAPPROVEDCOMPLETEDConfirm & ReleaseMọi LOT Remaining = 0CANCELLEDCancel Plan — trả tồnPhiếu Stock Out Curing (mỗi LOT × plan)APPROVEDCANCELLEDSửa số / bỏ LOT · Cancel PlanEdit Plan · Save changes — giữ APPROVEDCancel Plan — chưa có sản lượng
◻ DRAFT ◻ APPROVED / COMPLETED ◻ CANCELLED

Input

#InputLoạiĐi vào bước
I-1Model Attribute của WO nguồn — Logo / Spray / OOMG, quyết định LOT nào hiện ở plan loại nàoMaster dataChọn Plan Type · P.O Month
I-2Curing Room INV List — LOT Curing theo ca (mã đuôi AB = ca ngày, CD = ca đêm), P.O Month, Days, số theo size và Available; gồm cả LOT chưa curing xongBể tồn công đoạn — flow Curing ConfirmationTick LOT ở Curing Room INV List
I-3Standard curing days — số ngày curing chuẩnMaster dataLOT đủ ngày curing?
I-4Output Entry của plan — Trimming Result (có hay chưa)Kết quả sản xuất — flow Trimming ResultPlan đã có sản lượng?

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

BướcVai tròMàn hình · nút trên UI
Tạo plan Trimming · Chọn Plan Type · P.O Month · Tick LOT ở Curing Room INV List · Chỉnh Plan Qty theo sizePlannerTrimming Planning · Create Plan → Create Trimming Plan / Making … Trimming Plan (PLAN TYPE *, P.O (MONTH) *, PLAN DATE, SHIFT, Curing Room INV List)
Lưu nháp plan Trimming · Xác nhận plan TrimmingPlannerTrimming Planning · Save Draft, Confirm Trimming Plan → Confirm & Release
Sửa plan nháp · Sửa plan APPROVEDPlannerTrimming Planning · trang chi tiết plan · Edit Plan → Confirm Trimming Plan → Save changes (plan APPROVED không có Save Draft)
Huỷ plan TrimmingPlannerTrimming Planning · trang chi tiết plan · Cancel Plan
Khoá tick LOT · Khoá Save Draft · Confirm · Sinh phiếu Stock Out Curing cho từng LOT · Cancel phiếu Stock Out của LOT đó · Sinh phiếu mới theo Plan Qty mới · Cancel mọi phiếu · trả tồn đã giữSystem (auto)Trimming Planning · khung Stock Out Curing → WH-TRM-01 trên trang chi tiết plan

Output

#OutputĐiều kiện sinh ra
O-1Plan Trimming APPROVED → Trimming Result, chờ ghi sản lượngPlanner bấm Confirm & Release
O-2LOT chưa đủ ngày curing — phiếu sinh ở Curing Confirmation lúc LOT đủ ngàyPlan APPROVED có LOT "Days" < Standard curing days
O-3Phiếu Stock Out Curing → WH-TRM-01, APPROVED, mỗi LOT một phiếuPlan APPROVED, LOT đủ ngày curing
O-4Không sửa được — plan đã có sản lượngEdit Plan khi plan có Output Entry ("This plan has production results and cannot be edited.")
O-5Plan giữ APPROVED — phiếu giữ nguyênSửa plan APPROVED không đổi số LOT nào
O-6Phiếu cũ CANCELLED — tồn trả về kho CuringSửa plan APPROVED đổi số hoặc bỏ LOT đã có phiếu
O-7Plan giữ APPROVED và Plan No. — Trimming Result cập nhật sốSave changes có LOT đổi số
O-8Không huỷ được — plan đã có sản lượngCancel Plan khi plan có Output Entry
O-9Plan CANCELLED · tồn về Curing · rút khỏi Trimming ResultPlanner bấm Cancel Plan khi plan DRAFT / APPROVED chưa có sản lượng

Thuật ngữ

Thuật ngữNghĩa trong flow này
Plan TypeLoại hoàn thiện của plan: Logo, Spray hoặc OOMG — mỗi plan một loại
OOMGLoại sản phẩm thứ ba bên cạnh Logo và Spray (ví dụ model "OMG Clog"); sau Trimming đi theo luồng Logo
Model AttributeThuộc tính Logo / Spray / OOMG của model trên WO nguồn — quyết định LOT Curing thuộc loại plan nào
LOT / LOT No.Lô hàng từ công đoạn ép: 1 ca = 1 LOT, mã dạng LOT-YYYYMMDD-AB (ca ngày) / -CD (ca đêm), có số theo size
P.O (Month)Tháng P.O của plan (vd 2026.Aug) — bắt buộc; plan Trimming không gắn Customer P.O
Curing Room INV ListDanh sách tồn LOT Curing chờ Trimming, lọc theo Plan Type, P.O Month và Shift
AvailableSố còn lập plan được của LOT theo size = tồn LOT − phần các plan khác đang giữ (plan DRAFT và APPROVED đều giữ)
DaysPlan Date − ngày curing của LOT
Plan QtySố lên plan của LOT theo size — mặc định toàn bộ Available khi tick, sửa giảm được
Stock Out CuringPhiếu Stock Out của WMS xuất LOT từ kho công đoạn "WH-CUR-01 / Curing" sang "WH-TRM-01 / Trimming": mỗi LOT × plan một phiếu, theo Plan Qty của LOT, APPROVED ngay khi sinh; sửa số / bỏ LOT / huỷ plan thì phiếu CANCELLED và tồn về Curing; số phiếu khuôn REQ-<mã kho>-YYMM-<5 số>, ô Notes ghi WO
Save changesNút lưu khi sửa plan APPROVED: plan giữ APPROVED và Plan No.