Product & BOM Domain / HTML Specification
Bounded Context 1

Product & BOM Domain

Tài liệu đặc tả nghiệp vụ chi tiết về cấu trúc thiết kế kỹ thuật R&D, định mức nguyên vật liệu sản xuất (BOM) và cơ chế cấu hình biến thể động độc lập trên từng cụm linh kiện.

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

Chuẩn hóa danh từ và động từ nghiệp vụ được sử dụng thống nhất giữa R&D, xưởng và codebase.

Thuật ngữ (Việt - Anh) Mã nguồn (Model) Định nghĩa nghiệp vụ & Ranh giới
Dòng Sản Phẩm Gốc
Product
Product Bản ghi Master Data đại diện cho một model thiết kế gốc của R&D (Ví dụ: Sofa góc S066). Chưa bao gồm các tùy chọn màu sơn, đan dây, v.v.
Kết Cấu Kỹ Thuật
Product Structure
ProductStructure Bản vẽ phân rã kỹ thuật xác định sơ đồ cấu trúc lắp ráp. Một Product có thể có nhiều cấu trúc (chân sắt, chân gỗ).
Cấu Phần / Linh Kiện
Component
Component Các cụm linh kiện con (cụm chân, tựa...) được định nghĩa dưới một Kết cấu kỹ thuật. Có thể tự làm (MAKE) hoặc mua ngoài (BUY).
Biến Thể SKU
Variant
Variant Thành phẩm thương mại hoàn chỉnh, có SKU riêng biệt và giá bán cụ thể để kinh doanh. Được tạo bằng cách gán thuộc tính hoàn thiện chi tiết vào các cụm của Kết cấu.
Thuộc Tính Cấu Phần Biến Thể
Variant Component Attribute
VariantComponentAttribute Lưu trữ giá trị thuộc tính cụ thể (màu sơn, dầu gỗ, chất đan) được chỉ định độc lập cho từng Component của Variant đó.
Định Mức Kỹ Thuật (BOM)
Bill of Materials
Bom / BomComponent Định mức kỹ thuật cho sản xuất. Khi được phê duyệt, hệ thống chụp lại Snapshot của Product và Component thành BomProduct và BomComponent để cách ly dữ liệu sản xuất.
Công Đoạn Định Mức
BOM Work Step
BomWorkStep Các công đoạn gia công chế tạo (Routing steps - Cắt, Uốn, Hàn, Sơn, Đóng gói) có định mức thời gian và quan hệ phụ thuộc lẫn nhau.

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

Sơ đồ biểu diễn ranh giới các Aggregates, Entities và Value Objects trong phân hệ Product & BOM.

1 - N 1 - N Tham chiếu 1 - N Gán thuộc tính Định mức 1 - N 1 - N Product Aggregate Product Aggregate Root ProductStructure Entity Component Entity Variant Aggregate Root VariantCompAttr Value Object BOM Aggregate BOM (Định mức) Aggregate Root BomComponent Snapshot Entity BomWorkStep Routing Entity

📂 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 từng Aggregate.

R&D Core

Product Aggregate (Vòng đời kết cấu vật lý)

Đóng vai trò là ranh giới quản lý bản vẽ và kết cấu cơ khí. Toàn bộ các thay đổi về linh kiện, kích thước phôi phải đi qua Aggregate Root Product.

  • Quy tắc 1: Không được xóa Component khi đang có Variant ở trạng thái ACTIVE tham chiếu đến kết cấu của Component đó.
  • Quy tắc 2: Cấu phần Component bắt buộc phải có thuộc tính `frameTypeId` (nhóm vật liệu Sắt, Nhôm, Gỗ) để làm cơ sở quy đổi số lượng tồn kho WIP tại xưởng.
  • Quy tắc 3: ProductStructure hoạt động phải qua phê duyệt (APPROVED) trước khi đưa vào cấu hình Variant hoặc BOM sản xuất.
📖 Xem đặc tả chi tiết Product Aggregate
Manufacturing Core

BOM Aggregate (Định mức & Định tuyến động)

Đảm nhiệm vai trò ranh giới giao dịch tính toán chi phí sản xuất định mức và lập quy trình công nghệ (Routing) chế tạo tại xưởng.

  • Quy tắc 1: Khi BOM được phê duyệt (status = APPROVED), hệ thống bắt buộc chụp lại Snapshot của Product và Component sang BomProductBomComponent để khóa cố định thông số dữ liệu sản xuất.
  • Quy tắc 2: BomWorkStep phải có thuộc tính `dependsOnStepIds` để thiết lập mối quan hệ thứ tự công nghệ (ví dụ: công đoạn Sơn chỉ bắt đầu sau khi công đoạn Hàn hoàn thành).
  • Quy tắc 3: Công đoạn cuối cùng phải được đánh dấu `isLastStep = true` để báo hiệu kết thúc dây chuyền chế tạo, sẵn sàng đóng gói.
📖 Xem đặc tả chi tiết BOM Aggregate

✨ 4. Cơ Chế Biến Thể Động (Dynamic Variant Attributes VCA)

Đặc tả cơ chế gán thuộc tính độc lập cho các cụm chi tiết linh kiện của biến thể thành phẩm.

1. Product Structure

Thiết kế kết cấu

Phân rã R&D thành các cụm: Chân ghế, Khung tựa, Thanh mè gỗ.

2. Variant VCA

Gán VCA độc lập

Chân ghế: Sơn tĩnh điện Đen Cát.
Thanh mè: Dầu lau gỗ Walnut.

3. Output SKU

Mã SKU Thương Mại

Tự động sinh mã SKU dựa trên tổ hợp VCA linh kiện và thuộc tính kết cấu.

Quy tắc hoạt động nghiệp vụ:

Thay vì lưu trữ thuộc tính hoàn thiện ở cấp độ sản phẩm lớn (làm tăng số lượng SKU tĩnh lên cấp số nhân khi có thêm màu sơn hay hiệu ứng sắt), Kingston áp dụng cơ chế VariantComponentAttribute (VCA). Mỗi Variant sẽ liên kết với một ProductStructure cụ thể. Với từng Component của kết cấu đó, người dùng chốt phương án hoàn thiện độc lập (ví dụ cụm chân sơn Đen, cụm khung sơn Trắng). Việc này giúp bóc tách nhu cầu sơn và bột tĩnh điện chính xác theo diện tích bề mặt của từng linh kiện.

🔌 Xem chi tiết luồng xử lý VCA

🔌 5. 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ụ)

  • `BOMApprovedEvent`: Phát ra khi một BOM được phê duyệt. Kích hoạt tính toán chi phí định mức Standard Costing và cho phép lập lịch Lệnh sản xuất.
  • `VariantCreatedEvent`: Phát ra khi một Variant thương mại mới được tạo ra, thông báo cho phân hệ CRM/Sales cập nhật bảng giá bán thành phẩm.
  • `ProductStructureArchivedEvent`: Phát ra khi một kết cấu kỹ thuật bị hủy bỏ, giúp kiểm tra tính hợp lệ trước khi khóa dữ liệu.

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

`BOMCalculationService` (Dịch vụ bóc tách MRP)

Tự động tính toán lượng nguyên vật liệu cần mua dựa trên số lượng đơn hàng (Q) và thuộc tính VCA của Variant:

  • Sắt/Nhôm: Trọng lượng = Component.weightKg × Q (kg)
  • Gỗ: Thể tích = (lengthOfBoxCm × widthOfBoxCm × thicknessCm / 1,000,000) × Q (m³)
  • Tự động cộng dồn hao phí bột sơn, khí CO2 và phụ liệu hàn.

🏁 6. 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 có ý tưởng sản phẩm gốc R&D đến khi đưa định mức kỹ thuật vào nhà máy sản xuất.

1

Thiết kế Product gốc

Định nghĩa Dòng sản phẩm Master Data với các thông số kích thước bao chung.

2

Phân rã Kết cấu

Tạo ProductStructure, thêm các Component vật lý và chỉ định nhóm vật liệu.

3

Khởi tạo Variant & VCA

Tạo Variant thương mại và gán thuộc tính VCA hoàn thiện chi tiết cho các cụm.

4

Thiết lập & Phê duyệt BOM

Xây dựng BOM và công đoạn. Phê duyệt BOM và tự động chụp Snapshot dữ liệu.

🛠️ 7. Đặc Tả Kỹ Thuật Chi Tiết (Technical Specs)

Liên kết xem sơ đồ thiết kế chi tiết, database schema DDL và tài liệu APIs cho lập trình viên.

💾 Database Schema

Mã nguồn khai báo schema Prisma và câu lệnh tạo bảng SQL DDL của phân hệ.

Xem DB Schema 🔎

🔌 REST APIs & Endpoints

Đặc tả endpoints Swagger, các tham số DTO và mã phản hồi HTTP của API.

Xem API Specs 🔎

⚙️ Thuật Toán Routing

Mô tả chi tiết thuật toán DFS/DAG tự động validate chu trình công đoạn Routing.

Xem Thuật Toán 🔎