📖 1. Ngôn Ngữ Chung (Ubiquitous Language)
Chuẩn hóa các thuật ngữ quản lý kho trạm xưởng và cung ứng vật tư sử dụng thống nhất trong codebase.
📐 2. Sơ Đồ Thiết Kế Domain Model
Sơ đồ mối quan hệ giữa các Aggregates, Entities, và Value Objects trong phân hệ Kho & Vật tư.
📂 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ệ Quản lý kho xưởng.
WorkstationInventory Aggregate (Giao dịch tồn kho trạm xưởng)
Ranh giới quản lý toàn bộ các biến động bán thành phẩm và vật tư dở dang tại trạm máy. Ranh giới này bảo vệ tính đúng đắn của lượng tồn kho xưởng thực tế.
- Quy tắc 1: Không cho phép lượng tồn kho thực tế âm. Hành vi xuất kho chỉ được thực hiện khi lượng tồn khả dụng (quantity - reservedQuantity) lớn hơn hoặc bằng lượng xuất.
- Quy tắc 2: Mỗi dòng tồn kho được ràng buộc duy nhất bởi tổ hợp: Trạm máy, Cấu phần BOM, Lệnh sản xuất, Chi tiết lệnh sản xuất và Công đoạn.
- Quy tắc 3: Các biến động xuất nhập bắt buộc phải tạo nhật trình ghi nhận vào bảng `WorkstationInventoryLog`.
🔌 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ụ)
- `InventoryUpdatedEvent`: Phát ra khi tồn kho trạm máy thay đổi, kích hoạt đồng bộ hóa bảng báo cáo sản lượng tồn kho xưởng.
- `GoodsReceiptConfirmedEvent`: Phát ra khi xác nhận bàn giao thành công, tự động trừ kho trạm nguồn, cộng kho trạm đích tương ứng và ghi nhận lịch sử biến động.
Domain Services (Dịch vụ nghiệp vụ)
`InventoryMetricService` (Đồng bộ tồn kho trạm)
Thực hiện tổng hợp số lượng xuất/nhập/tồn tại trạm máy và quy đổi đơn vị đo theo 3 nhóm vật liệu:
- Sắt/Nhôm: Trọng lượng (kg) = component.weightKg × Q.
- Gỗ: Thể tích (m³) = (lengthOfBoxCm × widthOfBoxCm × thicknessCm / 1,000,000) × Q.
- Cần nhập: = Kế hoạch plannedQuantity - Đã nhập thực tế (WIP_IN).
🏁 5. Luồng Nghiệp Vụ Chính (Happy Path Flow)
Quy trình dòng chảy bàn giao bán thành phẩm và cập nhật số lượng tồn kho trạm máy xưởng.
Tạo phiếu bàn giao
Tạo GoodsReceipt khi trạm nguồn hoàn thành một lượng sản lượng nhất định.
Vận chuyển nội bộ
Bán thành phẩm được vận chuyển vật lý sang khu vực trạm máy đích tiếp quản.
Xác nhận tiếp nhận
Trạm đích kiểm đếm số lượng và bấm xác nhận, chuyển trạng thái phiếu sang CONFIRMED.
Cập nhật báo cáo
Hệ thống tự động trừ kho trạm nguồn, cộng kho trạm đích và cập nhật metrics (Sắt/Nhôm/Gỗ).