Production Execution Domain / HTML Specification
Bounded Context 4

Production Execution Domain

Tài liệu đặc tả nghiệp vụ chi tiết về phân rã Nhiệm vụ sản xuất (Production Tasks), quản lý Vé việc (Tickets) và nhật trình check-in tiến độ xưởng.

📖 1. Ngôn Ngữ Chung (Ubiquitous Language)

Chuẩn hóa các thuật ngữ điều hành phân xưởng và thực thi sản xuất sử dụng thống nhất trong codebase.

Thuật ngữ (Việt - Anh) Mã nguồn (Model) Định nghĩa nghiệp vụ & Ranh giới
Nhiệm Vụ Sản Xuất
Production Task
ProductionTask Các tác vụ sản xuất gom cụm số lượng kế hoạch dựa trên Lệnh sản xuất, BOM và từng công đoạn Routing giao xuống phân xưởng.
Vé Việc / Phiếu Việc
Ticket
Ticket Phiếu giao việc chi tiết được in ra hoặc phân công trực tiếp cho một Công nhân hoặc Tổ sản xuất tại trạm xưởng thực thi.
Phụ Thuộc Vé Việc
Ticket Parent
TicketParent Quản lý mối quan hệ tuần tự giữa các vé việc (ví dụ: chỉ được làm Sơn sau khi công đoạn Hàn hoàn thành).
Nhật Trình Check-in
Ticket Log
TicketLog Nhật ký check-in ghi nhận sản lượng hoàn thành thực tế và trạng thái do công nhân báo cáo qua mobile app.

📐 2. Sơ Đồ Thiết Kế Domain Model

Sơ đồ biểu diễn ProductionTask Bounded Context và ranh giới Vé việc sản xuất.

1 - N 1 - N 1 - N ProductionTask Aggregate ProductionTask Aggregate Root Ticket Entity TicketParent TicketLog

📂 3. Các Aggregates & Ranh Giới Nghiệp Vụ

Bản đặc tả chi tiết quy tắc nghiệp vụ tĩnh và ranh giới giao dịch của phân hệ Điều hành xưởng.

Execution Core

ProductionTask Aggregate (Giao dịch vé việc tại xưởng)

Ranh giới quản lý tiến độ chạy thực tế và các nhật trình của công nhân. Ranh giới này bảo đảm các phiếu giao việc được điều phối đúng tổ đội và ghi nhận sản lượng chính xác.

  • Quy tắc 1: Không cho phép bắt đầu (IN_PROGRESS) vé việc con khi vé việc cha trong `TicketParent` vẫn ở trạng thái chưa hoàn thành (`stillDependent = true`).
  • Quy tắc 2: Số lượng sản phẩm giao trong các Ticket không được vượt quá số lượng của Lệnh sản xuất gốc.
  • Quy tắc 3: Trạng thái của ProductionTask cha tự động cập nhật đồng bộ dựa trên tiến độ check-in thực tế của các Ticket con bên dưới.

🔌 4. Domain Events & Domain Services

Các sự kiện và dịch vụ nghiệp vụ liên vùng được tích hợp trong phân hệ.

Domain Events (Sự kiện nghiệp vụ)

  • `TicketAssignedEvent`: Phát ra khi vé việc được chỉ định cho công nhân/tổ sản xuất. Hệ thống đẩy tin báo mobile cho công nhân vào xưởng nhận việc.
  • `CheckInSubmittedEvent`: Phát ra khi công nhân gửi lượng hoàn thành. Kích hoạt cập nhật lũy kế sản lượng của trạm, và tự động kiểm tra giải phóng các mối quan hệ phụ thuộc công đoạn.

Domain Services (Dịch vụ nghiệp vụ)

`TicketDispatchService` (Phân rã lệnh xưởng)

Đảm nhiệm bóc tách Lệnh sản xuất tổng thể thành các nhiệm vụ chi tiết cho từng công đoạn công nghệ:

  • Đọc cấu hình công đoạn trong `BomWorkStep`.
  • Tạo các Ticket giao việc cho từng phân xưởng tương ứng.
  • Phân tích `dependsOnStepIds` để lập mối quan hệ `TicketParent` chặn chạy lệnh sai thứ tự công nghệ.

🏁 5. Luồng Nghiệp Vụ Chính (Happy Path Flow)

Quy trình dòng chảy công việc chuẩn từ khi tạo vé việc đến khi hoàn thành đóng gói xuất xưởng.

1

Phân rã vé việc

Hệ thống tự động bóc tách Lệnh sản xuất thành các Ticket theo công đoạn.

2

Tổ trưởng phân việc

Tổ trưởng nhận vé việc trên bảng điều khiển, chia nhỏ cho công nhân trong tổ.

3

Check-in tiến độ

Công nhân quét mã nhận việc, gửi báo cáo sản lượng qua mobile app sinh ra TicketLog.

4

Giải phóng công đoạn

Hoàn thành 100% công đoạn trước, hệ thống tự động gỡ chặn công đoạn tiếp theo.