Dinh Muc Nguyen Lieu (BOM — Bill of Materials)
1. Khai niem nghiep vu
Dinh Muc Nguyen Lieu (BOM) la "cong thuc san xuat" cua mot loai vai moc (fabric). No dinh nghia:
- De san xuat 1 met vai moc X, can nhung loai soi (yarn) nao?
- Moi loai soi chiem bao nhieu phan tram (%) trong thanh phan?
- Tieu hao bao nhieu kg soi cho moi met vai (
consumption_kg_per_m)? - Ty le hao hut mac dinh (
standard_loss_pct) la bao nhieu?
2. Cau truc Database
He thong su dung 3 bang chinh:
| Bang | Vai tro |
|---|---|
| bom_templates | Bang chinh — luu thong tin dinh muc: ma, ten, san pham moc muc tieu, hao hut, trang thai |
| bom_yarn_items | Cac dong nguyen lieu soi — moi dong la 1 loai soi voi ti le va muc tieu hao |
| bom_versions | Lich su phien ban bat bien (immutable) — moi lan duyet tao 1 snapshot |
Bang bom_templates
| Column | Type | Mo ta |
|---|---|---|
| id | UUID (PK) | Khoa chinh |
| code | string | VD: BOM-COTTON65-Y001 |
| name | string | Ten cong thuc |
| target_fabric_id | UUID (FK) | Vai moc muc tieu |
| target_width_cm | number | Kho vai (cm) |
| target_gsm | number | Dinh luong (gsm) |
| standard_loss_pct | number | Hao hut mac dinh (%) |
| active_version | number | Phien ban hien tai |
| status | enum | draft | approved | deprecated |
Bang bom_yarn_items
| Column | Type | Mo ta |
|---|---|---|
| id | UUID (PK) | Khoa chinh |
| bom_template_id | UUID (FK) | Lien ket den BOM Template |
| yarn_catalog_id | UUID (FK) | Loai soi |
| ratio_pct | number | Ti le (%) |
| consumption_kg_per_m | number | Tieu hao (kg/m) |
| version | number | So phien ban |
3. Vong doi trang thai (Lifecycle)
| Trang thai | Nhan | Mau sac | Mo ta |
|---|---|---|---|
draft |
Ban Nhap | Slate | Dang soan, co the sua |
approved |
Da Duyet | Green | Dang ap dung trong san xuat |
deprecated |
Ngung Ap Dung | Red | Da bao phe, khong con su dung |
Cac hanh dong trang thai
| Hanh dong | RPC / API | Dieu kien |
|---|---|---|
| Tao ban nhap | atomic_create_bom |
Bat ky luc nao |
| Cap nhat nhap | atomic_update_bom |
BOM phai o trang thai draft |
| Phe duyet | atomic_approve_bom |
BOM phai o draft, tong ti le = 100%, co it nhat 1 loai soi |
| Bao phe | atomic_deprecate_bom |
BOM phai o approved, bat buoc nhap ly do |
| Tao Revision | atomic_revise_bom |
BOM phai o approved, bat buoc nhap ly do |
4. Validation Rules
| Truong | Rang buoc |
|---|---|
| name | Bat buoc, khong duoc de trong |
| target_fabric_id | Bat buoc — phai chon san pham vai moc muc tieu |
| standard_loss_pct | 0% - 100%, mac dinh 5% |
| bom_yarn_items | Toi thieu 1 dong nguyen lieu |
| yarn_catalog_id | Bat buoc — phai chon loai soi (moi dong) |
| ratio_pct | 0.01% - 100% (moi dong) |
| consumption_kg_per_m | > 0.0001 kg/m (moi dong) |
| Tong ti le | Tong ratio_pct cua tat ca cac loai soi phai bang dung 100% |
5. Cau truc Code
src/ schema/bom.schema.ts // Zod validation + constants api/bom.api.ts // API layer (CRUD, RPC calls) features/bom/ bom.module.ts // Plugin registration types.ts // Domain types BomPage.tsx // Trang chinh (list|create|edit|detail) BomList.tsx // DataTable + mobile card BomForm.tsx // Form tao/sua BOM BomDetail.tsx // Chi tiet + lich su version index.ts // Barrel export application/production/ // Use-case hooks
6. Tinh nang dac biet
Khi tao moi, ma BOM tu dong sinh theo quy tac: BOM-<ma vai moc>-<ma soi>. Khi sua, ma khong thay doi.
Moi lan phe duyet → snapshot bat bien vao bom_versions. Can sua → "Tao Revision" → ban nhap moi voi version tang len.
Chi admin va manager moi truy cap duoc tinh nang BOM. Cau hinh tai requiredRoles.
Tat ca 3 bang deu co tenant_id → du lieu duoc co lap giua cac tenant.
7. Tich hop voi Work Orders
BOM la input bat buoc khi tao Lenh San Xuat (Work Order):
- WorkOrderForm su dung Combobox de chon BOM da duyet
- Truong
bom_template_idvabom_versionduoc luu trong bangwork_orders - He thong cung luu
bom_ratio_pctde tinh toan dinh muc nguyen lieu can thiet
8. Quy trinh su dung nghiep vu
Tao ban nhap BOM, chon san pham moc, them cac loai soi
Dam bao tong ti le = 100%, nhap muc tieu hao
Phe duyet BOM
BOM san sang de dung trong Work Order
Khi can thay doi → "Tao Revision" (ban cu van hoat dong cho den khi ban moi duyet)
Khi BOM khong con phu hop → "Bao phe"