Business Specification (SPEC) - Open MES Project
1. Phân tích nghiệp vụ (Business Analysis)
Hệ thống Open MES Project (みんなのMES) là giải pháp quản lý thực thi sản xuất (MES - Manufacturing Execution System) dành cho các nhà máy quy mô vừa và nhỏ (SME). Mục tiêu cốt lõi là số hóa (DX) hiện trường sản xuất, quản lý toàn diện từ khâu lập kế hoạch, xuất/nhập kho, theo dõi tiến độ sản xuất, quản lý trạng thái máy móc thiết bị đến kiểm soát chất lượng sản phẩm. Hệ thống hoạt động trên nền tảng Web-based, sử dụng kiến trúc Monolithic với Django, cơ sở dữ liệu PostgreSQL và được triển khai qua Docker container.
Các chức năng hệ thống và độ ưu tiên phân bổ
- User Management (Quản lý người dùng) - Ưu tiên: High
- Phân quyền, đăng nhập/đăng xuất, tạo tài khoản. Bắt buộc để truy cập an toàn vào các module khác.
- Master Data Management (Quản lý Master Data) - Ưu tiên: High
- Quản lý thông tin cốt lõi: nguyên vật liệu, sản phẩm, đối tác/nhà cung cấp, cấu trúc BOM (Bill of Materials), Routing (Quy trình sản xuất).
- Production Management (Quản lý sản xuất) - Ưu tiên: High
- Lập lệnh sản xuất (Work Order), giao việc xuống xưởng (Shop floor), theo dõi tiến độ realtime, báo cáo hoàn thành nguyên công.
- Inventory Management (Quản lý kho) - Ưu tiên: High
- Quản lý quy trình nhập/xuất kho nguyên vật liệu và thành phẩm. Kiểm tra, đối soát số lượng tồn kho (bù trừ tự động khi xuất cho sản xuất).
- Quality Management (Quản lý chất lượng) - Ưu tiên: Medium
- Lưu trữ và phân tích kết quả kiểm tra chất lượng (QC), tính toán và cảnh báo tỷ lệ phế phẩm (Defect rate).
- Machine/Equipment Management (Quản lý máy móc thiết bị) - Ưu tiên: Medium
- Ghi nhận trạng thái hoạt động máy móc, thống kê hiệu suất (OEE), lưu trữ dữ liệu nhật ký bảo trì định kỳ.
- Base / Dashboard (Hệ thống điều khiển trung tâm) - Ưu tiên: Low
- Hiển thị thông số tổng quan của nhà máy, báo cáo thống kê trực quan.
2. Các đối tượng tham gia (Actors)
- Admin / System Manager (Quản trị hệ thống): Quản lý tài khoản, phân quyền, cấu hình hệ thống và dữ liệu Master.
- Production Manager (Quản đốc sản xuất): Tạo và phân bổ lệnh sản xuất, theo dõi tiến độ tổng thể.
- Warehouse Manager (Thủ kho): Quản lý xuất/nhập kho, đảm bảo lượng tồn khoNVL luôn đáp ứng tiến độ.
- Operator / Worker (Công nhân viên): Nhận lệnh sản xuất trên màn hình/tablet, thực hiện và báo cáo số liệu thực tế (thành phẩm, phế phẩm).
- QC Manager (Nhân viên KCS/QC): Đánh giá chất lượng thực tế ở từng công đoạn chuyển tiếp, nhập kết quả Pass/Fail.
3. Các ca sử dụng chính (Use Cases)
- Quản đốc: Create Work Order $\rightarrow$ Assign to Work Center $\rightarrow$ Monitor Progress.
- Thủ kho: Nhận thông báo xuất kho $\rightarrow$ Xác nhận xuất nguyên vật liệu cho Work Order $\rightarrow$ Nhận lưu kho thành phẩm từ sản xuất.
- Công nhân: Start Work Order (Time in) $\rightarrow$ Input production output (Good/Reject) $\rightarrow$ End Work Order (Time out).
- QC: Inspect Output $\rightarrow$ Approve/Reject $\rightarrow$ Log defect reasons.
4. Business Flow Sequence (Luồng nghiệp vụ cốt lõi)
sequenceDiagram
autonumber
actor Admin as Admin/System
actor PM as Production Manager
actor WH as Warehouse Depart
actor Worker as Shop Floor (Worker)
actor QC as QA/QC Depart
participant MES as Open MES System
participant DB as PostgreSQL DB
Admin->>MES: Setup Master Data (BOM, Routing, Users)
MES->>DB: Save Master Data
PM->>MES: Lập lệnh sản xuất (Create Work Order)
MES->>DB: Insert Order Record
MES-->>PM: Order Created Successfully
PM->>MES: Release Lệnh sản xuất xuống xưởng
MES->>WH: (System Alert) Yêu cầu cấp xuất NVL
WH->>MES: Xác nhận xuất kho vật liệu (Issue Materials)
MES->>DB: Trừ tồn kho NVL
MES-->>Worker: Hiển thị lệnh trên Dashboard máy trạm
Worker->>MES: Nhấn "Bắt đầu" (Time Tracking Start)
Worker->>MES: Báo cáo kết quả gia công (Qty, Scrap)
MES->>QC: Yêu cầu kiểm định chất lượng bán/thành phẩm
QC->>MES: Thực hiện kiểm tra và Log kết quả (Pass/Fail)
alt Đạt tiêu chuẩn (Passed)
MES->>WH: (System Alert) Nhập kho thành phẩm
WH->>MES: Xác nhận nhập kho (Stock In)
MES->>DB: Tăng tồn kho Thành phẩm
MES-->>PM: Lệnh sản xuất hoàn tất
else Không đạt (Failed)
MES-->>Worker: Yêu cầu Rework hoặc loại bỏ (Scrap)
MES->>PM: Gửi cảnh báo chất lượng bất thường
end
5. Edge Cases (Các kịch bản ngoại lệ)
- Thiếu nguyên vật liệu khi cấp phát: Khi lệnh sản xuất được Release, nếu tồn kho NVL thực tế trong MES < định mức BOM $\rightarrow$ Hệ thống cảnh báo đỏ và giữ Work Order ở trạng thái
Pending Materialscho đến khi thủ kho xác nhận nhập thêm NVL. - Lỗi thiết bị đứt gãy giữa chừng: Trong quá trình công nhân bấm Start lệnh, thiết bị phần cứng gặp sự cố $\rightarrow$ Công nhân thao tác "Pause" trên MES, chọn lý do "Machine Breakdown". Lệnh sản xuất tạm dừng tính thời gian, thông báo được gửi đến chức năng Machine Management (Bảo trì).
- Chênh lệch số lượng báo cáo: Công nhân báo cáo hoàn thành 100 sản phẩm, nhưng QC đếm thực tế có 98 cái $\rightarrow$ Yêu cầu tính năng Validation chéo. Số lượng nhập vào kho không được vượt quá số lượng Quality Approved.
6. Tiêu chí chấp nhận (Acceptance Criteria)
- AC1 - Phân quyền truy cập: Người dùng chỉ có thể thao tác (Create/Edit) dữ liệu thuộc chức năng của mình (Worker không thể chỉnh sửa BOM).
- AC2 - Data Consistency: Bất kỳ thao tác Tiêu hao nguyên vật liệu nào trong Production cũng phải tự động ánh xạ bằng một giao dịch Deduct Inventory (- số lượng) trong module Inventory.
- AC3 - Tracking: Mọi sự thay đổi trên Work Order phải ghi lại nhật ký bao gồm: User, Timestamp, Lượng thay đổi.
7. BA Q&A (Các vấn đề cần khách hàng làm rõ)
- Giao tiếp phần cứng: Trong hệ thống nhà máy của anh/chị, việc nhập liệu sản lượng/trạng thái thiết bị chủ yếu do con người nhập thủ công bằng UI màn hình hay có thiết bị đọc Barcode/IoT sensors gắn vào máy tự động đếm sản phẩm?
- Quản lý lô (Lot & Batch Tracking): Hệ thống có bắt buộc phải truy xuất theo Lot/Batch từ nguyên liệu đầu vào cho ra thành phẩm không? Nếu có sự cố chất lượng, có yêu cầu truy ngược (Traceability) về lô cung cấp cụ thể không?
- Tích hợp bên thứ ba: Khách hàng có đang sử dụng ERP (SAP, Odoo..) hoặc Phần mềm kế toán không? Phần mềm MES có cần xuất API để đồng bộ lệnh bán hàng (Sales Order) xuống thành lệnh sản xuất (Work Order) tự động?
- Offline Mode: Hệ thống là Web-based, nếu đang gia công mà mất kết nối WiFi cục bộ, ứng dụng có cần tính năng hoạt động Offline tạm thời sau đó đồng bộ (Sync) lại dữ liệu hay không?