📖 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.
📐 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.
📂 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.
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.
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 BomProduct và BomComponent để 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.
✨ 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.
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ỗ.
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.
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.
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.
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.
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.
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 🔎