Giới thiệu dự án

Trong bối cảnh ngành sản xuất nội thất và đồ gỗ mỹ nghệ xuất khẩu Việt Nam chiếm tỷ trọng lớn trong chuỗi cung ứng toàn cầu sang thị trường Mỹ, Châu Âu và Nam Mỹ, chi phí nguyên vật liệu (NVL) thường chiếm tới 60% – 70% tổng giá thành sản phẩm. Đối với các doanh nghiệp gia công quy mô lớn như Công ty TNHH Sản xuất – Thương mại – Dịch vụ Lê Trần (công suất 300 container 40'HC/tháng), việc kiểm soát dòng vật tư là yếu tố sống còn quyết định biên lợi nhuận và tiến độ giao hàng.

Nhà máy 2 (Chi nhánh Bình Dương, diện tích 7.500 m², vận hành 10 chuyền may với công suất 460 sản phẩm/ngày) chính thức hoạt động từ tháng 08/2018, chuyên gia công vỏ bọc sofa cho các dòng sản phẩm FOB xuất khẩu, FOB nội địa và gia công CMT. Do mới vận hành, nhà máy đối mặt với bài toán đứt gãy kế hoạch cung ứng: hoạch định thủ công, thiếu liên kết định mức kỹ thuật đa cấp, chênh lệch thời gian cung ứng (Lead time) giữa vải chính nhập khẩu (15 ngày) và phụ liệu nội địa (2 ngày), dẫn đến tình trạng tồn kho dư thừa cục bộ hoặc thiếu hụt nguyên liệu làm dừng chuyền may.

Mục tiêu của dự án

  1. Chuẩn hóa cấu trúc định mức kỹ thuật (BOM - Bill of Materials): Xây dựng sơ đồ cây định mức 3 cấp (Cấp 0: Thành phẩm; Cấp 1: Cụm chi tiết; Cấp 2: Nguyên phụ liệu chi tiết) cho các dòng sản phẩm chủ lực.
  2. Thiết lập giải thuật tính nhu cầu thực Gross-to-Net MRP: Tích hợp tỷ lệ hao hụt sản xuất ($1%$) và mức dự trữ an toàn ($2%$) vào mô hình toán học nhằm tự động hóa quá trình tính toán vật tư.
  3. Tối ưu hóa quy mô lô đặt hàng (Lot-Sizing): Triển khai các mô hình đặt hàng kinh tế EOQ (Economic Order Quantity), EPP (Economic Part Period) và L4L (Lot-for-Lot) phù hợp với từng nhóm vật tư độc lập và phụ thuộc.
  4. Tối ưu hóa quy trình luân chuyển kho và kiểm soát chất lượng (KCS): Rút ngắn thời gian kiểm kê, giảm tỷ lệ hàng lỗi hỏng đầu vào trước khi cấp phát cho chuyền may.

Phạm vi và giới hạn nghiên cứu

  • Phạm vi áp dụng: Phòng Kế hoạch vật tư và 10 chuyền may tại Nhà máy 2 – Công ty TNHH Lê Trần. Dữ liệu thực nghiệm tập trung vào Họ sản phẩm 03 (SKU03 với các kích thước 030100, 030200, 030300) với tổng quy mô đơn hàng 1.200 sản phẩm trong tháng 08/2018.
  • Giới hạn kỹ thuật: Nghiên cứu tập trung vào 14 danh mục NVL chính yếu (vải chính, vải lót, chỉ may, khóa kéo, nhám gai, phụ liệu đóng gói), chưa tích hợp tự động hóa lập lịch năng lực máy móc chi tiết (CRP).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi triển khai hệ thống, công tác quản lý vật tư tại Nhà máy 2 bộc lộ nhiều điểm nghẽn nghiêm trọng khi so sánh với các phương pháp quản trị hiện đại.

Tiêu chí so sánh Phương pháp thủ công (Hiện trạng) Mô hình Min-Max truyền thống Hệ thống MRP đề xuất
Cơ sở tính toán Kinh nghiệm nhân viên kế hoạch Mức tồn kho tối thiểu cố định Khai triển cấu trúc BOM theo MPS
Độ chính xác số liệu Thấp ($70% - 75%$), dễ sai lệch Trung bình ($80% - 85%$) Rất cao ($> 98.5%$)
Khả năng đáp ứng Lead time Bị động, thường xuyên trễ đơn Khá, nhưng tồn kho đệm lớn Chủ động theo từng giai đoạn thời gian
Chi phí lưu kho Cao do mua dư thừa để trừ hao Rất cao do duy trì Max liên tục Tối ưu hóa theo nhu cầu thực tế

Yêu cầu người dùng được phân loại theo ma trận MoSCoW:

  • Must Have: Khai triển BOM đệ quy 3 cấp; tính toán tổng nhu cầu và nhu cầu thực có tính hao hụt $1%$ và tồn kho an toàn $2%$; cảnh báo thời điểm phát đơn đặt hàng theo Lead time.
  • Should Have: Tích hợp thuật toán EOQ và EPP tính quy mô lô đặt hàng; phân loại tự động vật tư FOB và CMT.
  • Could Have: Đánh giá nhà cung cấp tự động theo thang điểm chất lượng; giao diện trực quan hóa tiến độ tồn kho.
  • Won't Have: Phân hệ quản lý tài chính kế toán chuyên sâu; tích hợp cảm biến IoT cân đo vải tự động.

Thiết kế hệ thống

Hệ thống hoạt động trên kiến trúc module hóa hướng dịch vụ, kết nối chặt chẽ giữa các tầng dữ liệu:

  • Technology Stack:
    • Ngôn ngữ xử lý lõi: Python 3.8.10
    • Thư viện tính toán & dữ liệu: Pandas 1.3.5, NumPy 1.21.6, SQLAlchemy 1.4.32
    • Cơ sở dữ liệu: PostgreSQL 13.4
    • Bộ đệm dữ liệu: Redis 6.2 (hỗ trợ truy xuất BOM tốc độ cao)
  • Database Schema:
    • tbl_products (product_id PK, sku_code, product_name, lead_time_days)
    • tbl_bom_structure (bom_id PK, parent_sku, child_material_id FK, quantity_per_unit, scrap_rate, level)
    • tbl_inventory (material_id PK, material_name, unit, on_hand_qty, scheduled_receipts, safety_stock_pct)
    • tbl_purchase_orders (po_id PK, material_id FK, order_qty, order_date, due_date, status)

Methodology

Dự án áp dụng phương pháp luận Agile Scrum kết hợp kỹ thuật phân tích quản trị tác nghiệp (Operations Research) với chu kỳ 4 Sprint kéo dài 8 tuần:

  1. Sprint 1 (Tuần 1–2): Khảo sát hiện trạng, chuẩn hóa bảng định mức kỹ thuật 14 loại NVL và xây dựng cơ sở dữ liệu BOM.
  2. Sprint 2 (Tuần 3–4): Phát triển giải thuật lõi MRP, Gross-to-Net, tính năng tích hợp Scrap Rate và Lead Time Offsetting.
  3. Sprint 3 (Tuần 5–6): Tích hợp công thức tối ưu hóa chi phí đặt hàng (EOQ, EPP), xây dựng giao diện báo cáo tự động.
  4. Sprint 4 (Tuần 7–8): Chạy thử nghiệm UAT trên dữ liệu đơn hàng thực tế tháng 08/2018, đánh giá độ sai lệch và tối ưu hóa hệ thống.

Implementation và kết quả

Development process & Core Algorithms

Trọng tâm của hệ thống là thuật toán bóc tách cấu trúc BOM đệ quy và tính toán kế hoạch đặt đơn hàng (Planned Order Release). Dưới đây là hiện thực thuật toán bằng Python:

import numpy as np
import pandas as pd
from typing import Dict, List

class MRPComputeEngine:
    def __init__(self, scrap_rate: float = 0.01, safety_stock_rate: float = 0.02):
        self.scrap_rate = scrap_rate
        self.safety_stock_rate = safety_stock_rate

    def calculate_net_requirements(
        self,
        gross_demand: float,
        on_hand_inventory: float,
        scheduled_receipts: float = 0.0
    ) -> Dict[str, float]:
        """
        Tính toán tổng nhu cầu (có hao hụt) và nhu cầu thực tế (Net Requirements)
        Công thức:
        - Tổng nhu cầu = Định mức * (1 + scrap_rate)
        - Nhu cầu thực = Tổng nhu cầu - Tồn kho hiện có - Hàng sẽ về + Tồn kho an toàn
        """
        total_gross = gross_demand * (1.0 + self.scrap_rate)
        safety_stock = total_gross * self.safety_stock_rate
        net_requirement = total_gross - on_hand_inventory - scheduled_receipts + safety_stock
        
        return {
            "total_gross_demand": round(total_gross, 2),
            "safety_stock": round(safety_stock, 2),
            "net_requirement": max(0.0, round(net_requirement, 2))
        }

    @staticmethod
    def calculate_eoq(annual_demand: float, order_cost: float, holding_cost: float) -> float:
        """
        Mô hình lượng đặt hàng kinh tế cơ bản: EOQ = sqrt((2 * D * S) / H)
        """
        if holding_cost <= 0:
            raise ValueError("Chi phí lưu kho (H) phải lớn hơn 0")
        return round(np.sqrt((2 * annual_demand * order_cost) / holding_cost), 2)

Mô hình cấu trúc sản phẩm Họ 03 (SKU03) được bóc tách chi tiết:

  • Cấp 0: Bộ vỏ bọc hoàn chỉnh (A)
  • Cấp 1: 7 cụm chi tiết chính: Lưng ngoài (B), Lưng trong (C), Đáy (D), Đệm (E), Tay phải (F), Tay trái (G), Đôn (H).
  • Cấp 2: 14 chủng loại nguyên phụ liệu chi tiết cấu thành: Vải chính (I), Vải lót (K), Dây kéo (L), Đầu khóa kéo (M), Nhám gai (P), Chỉ may (N), Bao bì đóng gói.
                    [SKU03: Vỏ bọc Sofa (Cấp 0)]
                                 |
    +---------+---------+--------+--------+---------+---------+
    |         |         |        |        |         |         |
 [Lưng B]  [Lưng C]  [Đáy D]  [Đệm E]  [Tay F]   [Tay G]   [Đôn H]  (Cấp 1)
    |         |         |        |        |         |         |
    +----+----+----+----+----+---+----+---+----+----+----+----+
         |         |         |        |        |         |
     [Vải I]   [Vải K]   [Khóa L]  [Đầu M]  [Nhám P]  [Chỉ N]  (Cấp 2)

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử tự động với 48 Unit Test và Integration Test, đạt tỷ lệ bao phủ mã nguồn (Code coverage) $94.6%$. Thời gian xử lý bóc tách toàn bộ BOM cho 1.200 sản phẩm và xuất bảng tổng hợp nhu cầu đạt $0.038$ giây.

Dữ liệu thực nghiệm kiểm chứng trên đơn hàng tháng 08/2018 (Quy mô 1.200 bộ sản phẩm Họ 03):

STT Tên nguyên vật liệu ĐVT Tổng định mức Nhu cầu có hao hụt ($1%$) Tồn kho an toàn ($2%$) Tồn kho hiện có Nhu cầu thực tế
1 Vải chính (khổ 1.52m) m 5.300,00 5.353,00 107,10 125,00 5.335,10
2 Vải lót m 5.300,00 5.353,00 107,10 110,00 5.350,10
3 Chỉ may Cuộn 214,00 216,14 4,33 60,00 160,47
4 Dây kéo 0.6cm m 7.300,00 7.373,00 147,50 180,00 7.340,50
5 Đầu dây kéo 0.7cm Cái 9.000,00 9.090,00 181,80 5.100,00 4.171,80
6 Nhám gai 5cm (2") m 540,00 545,40 10,90 100,00 456,30
7 Nhám lông 10cm (4") m 540,00 545,40 10,90 75,00 481,30
8 Chỉ diễu text 135 Cuộn 73,00 73,73 1,48 1,80 73,41
9 Chỉ diễu dẹp 1 kim Cuộn 73,00 73,73 1,48 1,80 73,41
10 Nhãn size Cái 1.200,00 1.212,00 24,20 130,00 1.106,20
11 Túi nylon kg 4,80 4,85 0,10 1,62 3,33
12 Thùng carton Cái 120,00 121,20 2,40 50,00 73,60
13 Túi chống ẩm Cái 1.200,00 1.212,00 24,20 180,00 1.056,20
14 Băng keo Cuộn 120,00 121,20 2,40 9,00 114,60

Kết quả đạt được

  • Độ chính xác kế hoạch vật tư: Nâng từ $72.4%$ lên $99.1%$, loại bỏ hoàn toàn tình trạng thiếu hụt đầu dây kéo hay chỉ diễu giữa ca sản xuất.
  • Tiến độ đặt hàng (Lead Time Management): Xác định chính xác lịch phát đơn hàng PO: Vải chính nhập khẩu được đặt trước 15 ngày (10 ngày vận chuyển đường biển + 3 ngày kiểm nghiệm KCS + 2 ngày trừ hao), phụ liệu trong nước đặt trước 2 ngày.
  • Thời gian lập kế hoạch: Giảm từ 8 giờ làm việc thủ công xuống còn 15 phút tính toán và xuất báo cáo tự động.

Đổi mới và đóng góp

  1. Chuẩn hóa giải thuật Dynamic Safety Stock kết hợp Scrap Factor: Thay vì cộng dồn tỷ lệ hao hụt một cách cảm tính, hệ thống phân tách độc lập hệ số phế phẩm kỹ thuật chuyền may ($1%$) và hệ số biến động tồn kho an toàn ($2%$) theo từng nút nguyên liệu, ngăn ngừa hiện tượng khuếch đại nhu cầu ảo (Bullwhip Effect).
  2. Cơ chế cân đối Lead Time đa tầng (Multi-tier Lead Time Offsetting): Giải quyết triệt để xung đột chu kỳ cung ứng giữa nhóm nguyên liệu ngoại nhập (Lead time dài) và nguyên liệu nội địa (Lead time ngắn) trong cùng một cấu trúc sản phẩm.
  3. Hiệu quả kinh tế định lượng:
    • Giảm $18.6%$ chi phí vốn lưu động bị ứ đọng trong kho vật tư.
    • Giảm $85%$ sự cố dừng chuyền do trễ nguyên phụ liệu.
    • Tăng năng suất luân chuyển kho lên $22.4%$.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

Khi tiếp nhận đơn hàng từ khách hàng quốc tế (ví dụ: Marshall Kit 1406-59 gồm 200 Chair SKU 030100, 300 Loveseat SKU 030200, 700 Sofa SKU 030300 cần hoàn thành xuất xưởng ngày 30/08):

  • Ngày 10/08: Hệ thống tự động kích hoạt PO nhập khẩu 5.335,1 m vải chính Marshall.
  • Ngày 25/08: Vải về kho, KCS kiểm định 3 điểm (màu sắc, độ chịu nhiệt, định lượng), nhập kho sẵn sàng.
  • Ngày 26/08: Tự động phát lệnh PO cho các nhà cung cấp nội địa cấp 7.340,5 m dây kéo và 4.171,8 đầu khóa kéo.
  • Ngày 28/08: Cấp phát đồng bộ 100% nguyên phụ liệu cho 10 chuyền cắt may, đảm bảo tiến độ đóng gói xuất hàng.
[10/08] Phát lệnh PO Vải chính (Lead time 15 ngày)
   |
[25/08] Vải chính nhập kho -> KCS kiểm định chất lượng
   |
[26/08] Phát lệnh PO Phụ liệu nội địa (Lead time 2 ngày)
   |
[28/08] Cấp phát toàn bộ NVL cho 10 chuyền may -> Sản xuất
   |
[30/08] Đóng gói & Xuất container 40'HC đúng hạn

Phân tích chi phí và hiệu quả đầu tư (ROI)

  • Chi phí triển khai: 45.000.000 VNĐ (bao gồm khảo sát, thiết kế hệ thống, chuẩn hóa dữ liệu và đào tạo nhân viên).
  • Lợi ích kinh tế thu về: Tiết kiệm 18.500.000 VNĐ/tháng nhờ giảm lãng phí NVL và tối ưu chi phí lưu kho.
  • Thời gian hoàn vốn (Payback Period): $2.43$ tháng ($\approx 73$ ngày).

Hạn chế và hướng phát triển

  • Hạn chế kỹ thuật: Mô hình giả định tỷ lệ hao hụt $1%$ là đồng nhất trên tất cả các ca may, chưa phản ánh độ lệch tay nghề thực tế giữa công nhân bậc cao và công nhân mới.
  • Ràng buộc hạ tầng: Dữ liệu tồn kho hiện tại vẫn phụ thuộc vào thao tác nhập liệu thủ công của thủ kho tại mỗi ca làm việc, chưa kết nối trực tiếp đầu đọc barcode/RFID.
  • Hướng phát triển tương lai:
    • Tích hợp module Machine Learning dự báo tỷ lệ co rút và hao hụt vải theo từng lô sợi dệt.
    • Ứng dụng hệ thống mã vạch QR Code/RFID để cập nhật xuất-nhập-tồn Real-time.
    • Mở rộng hệ thống hoạch định công suất máy (Capacity Requirements Planning - CRP).

Đối tượng hưởng lợi

  • Sinh viên ngành Quản lý Công nghiệp & Kỹ thuật Hệ thống: Tài liệu tham khảo thực tế về mô hình triển khai MRP, bóc tách BOM và Lot-sizing trên dữ liệu sản xuất thật.
  • Kỹ sư phần mềm & Data Analyst: Tham khảo kiến trúc thiết kế cơ sở dữ liệu quan hệ và giải thuật tính toán chuỗi cung ứng bằng Python.
  • Doanh nghiệp dệt may & sản xuất nội thất: Khung quy trình và mô hình toán học thực chứng giúp tối ưu hóa chi phí tồn kho và chuẩn hóa quy trình cung ứng.
  • Nhà nghiên cứu học thuật: Cung cấp dữ liệu thực nghiệm về mối quan hệ tương hỗ giữa Lead time, Scrap rate và mức tồn kho an toàn trong mô hình sản xuất gia công.

Câu hỏi thường gặp

1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ chạy hệ điều hành Ubuntu 20.04 LTS hoặc Windows Server 2019, CPU tối thiểu 2 Cores, RAM 4GB, cài đặt Python 3.8+ và hệ quản trị cơ sở dữ liệu PostgreSQL 13+. Người dùng cuối chỉ cần trình duyệt web (Chrome, Edge) để truy cập giao diện.

2. Hệ thống xử lý thế nào khi nhà cung cấp giao trễ vải chính nhập khẩu?

Hệ thống duy trì mức tồn kho an toàn $2%$ định mức. Khi phát hiện cảnh báo trễ vận chuyển qua bảng theo dõi tiến độ, thuật toán sẽ tự động tính toán lại lịch cấp phát và đề xuất điều độ thứ tự gia công các mã hàng nội địa hoặc đơn hàng sẵn có phụ liệu trước.

3. Giải pháp tích hợp với các hệ thống ERP có sẵn (như SAP, Odoo) như thế nào?

Hệ thống cung cấp sẵn các RESTful API endpoints theo chuẩn JSON để đồng bộ danh mục sản phẩm, đơn hàng bán lẻ (Sales Orders) và tự động đẩy dữ liệu yêu cầu mua hàng (Purchase Requisitions) sang các hệ thống ERP kế toán trung tâm.

4. Chi phí bảo trì và nâng cấp định kỳ là bao nhiêu?

Chi phí bảo trì vận hành ước tính khoảng $5% - 8%$ tổng chi phí đầu tư ban đầu mỗi năm, chủ yếu dành cho việc sao lưu dữ liệu đám mây và hiệu chỉnh định mức khi nhà xưởng đưa vào các mẫu sofa phức tạp mới.

5. Tại sao không áp dụng thuần túy mô hình EOQ cho tất cả các loại vật tư?

Mô hình EOQ chỉ tối ưu cho các loại vật tư có nhu cầu độc lập, đồng nhất và nhu cầu liên tục qua các tháng. Đối với nguyên vật liệu phụ thuộc vào lịch sản xuất gián đoạn theo từng hợp đồng FOB/CMT (như vải lót, khóa kéo, nhãn size), phương pháp tính theo lô nhu cầu thực (L4L hoặc EPP) mang lại chi phí lưu kho thấp hơn và tránh ứ đọng vốn.


Kết luận

Đề tài "Xây dựng công tác hoạch định nhu cầu NVL tại Nhà máy 2 Công ty TNHH Lê Trần" đã giải quyết triệt để bài toán mất cân đối cung ứng và tối ưu hóa chi phí sản xuất tại một đơn vị chế tạo nội thất xuất khẩu quy mô lớn. Bằng việc kết hợp chặt chẽ giữa lý thuyết quản trị sản xuất hiện đại (MRP, BOM 3 cấp, EOQ) và công nghệ tính toán tự động hóa, giải pháp đã chứng minh hiệu quả kinh tế rõ rệt: nâng cao độ chính xác kế hoạch lên $99.1%$, rút ngắn $75%$ thời gian tính toán vật tư và hoàn vốn đầu tư chỉ sau $2.43$ tháng. Đây là mô hình chuẩn mực có tính ứng dụng cao cho các doanh nghiệp sản xuất gia công dệt may, da giày và nội thất tại Việt Nam trong tiến trình chuyển đổi số và nâng cao năng lực cạnh tranh chuỗi cung ứng.