Giới thiệu dự án

  • Ngành / Đối tượng: Kế toán chi phí sản xuất và tính giá thành sản phẩm trong công ty Cổ phần Gạch Tuynen số 1 (Thừa Thiên Huế)
  • Bối cảnh ngành: Năm 2022, doanh thu ngành vật liệu xây dựng Việt Nam đạt ≈ 2 tỷ USD, tăng trưởng 7 % so với năm 2021 (theo Bộ Kế hoạch và Đầu tư). Cạnh tranh giá thành là yếu tố quyết định thị phần, đặc biệt khi các đối thủ (ví dụ: Công ty Gạch Vàng, Công ty Gạch Phúc) đã triển khai hệ thống ERP để tối ưu chi phí.
  • Problem statement:
    • Pain point 1: Chi phí nguyên vật liệu (NVL) chiếm ≈ 55 % tổng chi phí sản xuất, nhưng chưa có định mức chuẩn cho từng loại gạch.
    • Pain point 2: Phân bổ chi phí sản xuất chung (SXC) dựa trên tỷ lệ cố định, gây độ lệch giá thành tới ± 12 % so với thực tế.
    • Pain point 3: Quản lý sản phẩm dở dang (SPDD) chưa được chuẩn hoá, dẫn đến giảm lợi nhuận gộp khoảng 4 % mỗi năm.
  • Mục tiêu dự án (đánh số để đáp ứng yêu cầu):
    1. Xây dựng định mức chi phí NVL dựa trên phân tích dữ liệu 3 năm (2015‑2017) và áp dụng phương pháp hệ số.
    2. Thiết kế module phân bổ chi phí SXC tự động trong MISA 22.0 (phiên bản hiện tại) sử dụng hệ số phân bổ dựa vào độ tiêu thụ năng lượngsố giờ máy.
    3. Phát triển báo cáo SPDD tích hợp SQL Server 2019 + Power BI 2022 để theo dõi tỷ lệ hoàn thànhgiá trị SPDD theo thời gian.
  • Solution approach:
    • Thu thập dữ liệu kế toán từ hệ thống MISA 22.0Excel 2019, làm sạch bằng Python 3.10 + pandas 1.5.
    • Áp dụng phương pháp hệ số (cost‑driver) cho chi phí NVL và phương pháp phân bổ theo thời gian cho SXC.
    • Triển khai API REST (Flask 2.2) để tích hợp các module vào MISA, đồng thời xây dựng dashboard Power BI cho quản trị.
  • Kết quả mong đợi (KPIs):
    • Giảm chi phí nguyên vật liệu trung bình 10 % (≈ 150 triệu VNĐ/năm).
    • Độ chênh lệch giá thành so với thực tế < 5 %.
    • Rút ngắn thời gian báo cáo SPDD từ 5 ngày xuống 1 ngày (đạt 80 % giảm thời gian).
  • Phạm vi & giới hạn:
    • Áp dụng cho 10 loại gạch hiện hành (DT, DN, 2L, 4N, 6N, 61/2N, 6L, 61/2L, GV‑60, GV‑50).
    • Không mở rộng sang các nhà máy phụ (đang trong giai đoạn thí điểm).

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

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

Thành phần Hiện trạng Ưu điểm Nhược điểm
Hệ thống kế toán MISA 22.0 + Excel 2019 Độ tin cậy cao, người dùng quen thuộc Không tự động phân bổ chi phí, báo cáo thủ công
Quy trình tập hợp chi phí Theo sổ sách truyền thống, dựa vào phiếu xuất/nhập kho Dễ kiểm soát Độ trễ cao, lỗi nhập liệu
Phân tích cạnh tranh Đối thủ A (công ty Gạch Vàng) dùng SAP 4.7 và định mức chuẩn; Đối thủ B (công ty Gạch Phúc) dùng ERP Odoo 15 Áp dụng công nghệ mới, giảm chi phí 12 % Đầu tư ban đầu lớn, yêu cầu thay đổi quy trình
Yêu cầu người dùng Thống kê chi phí, giá thành, SPDD mỗi tháng Rõ ràng Thời gian chuẩn bị > 3 ngày

User requirements (MoSCoW)

  • Must: Tự động tính định mức NVL, phân bổ SXC, xuất báo cáo SPDD.
  • Should: Tích hợp với Power BI để trực quan hoá.
  • Could: Cung cấp API cho các hệ thống ERP khác.
  • Won’t: Thay đổi cấu trúc tổ chức bộ máy kế toán trong năm tài chính hiện tại.

Thiết kế hệ thống

Kiến trúc tổng quan (Mermaid)

Technology stack

Thành phần Phiên bản / Tool Lý do lựa chọn
Cơ sở dữ liệu SQL Server 2019 Tương thích tốt với MISA, hỗ trợ stored procedures
Xử lý dữ liệu Python 3.10 + pandas 1.5 Đọc‑ghi nhanh, hỗ trợ các phép tính thống kê
API Flask 2.2 (gunicorn) Nhẹ, dễ triển khai trên server nội bộ
Dashboard Power BI 2022 (Desktop + Service) Người dùng kế toán đã quen dùng, hỗ trợ custom visuals
Phần mềm kế toán MISA 22.0 Đang triển khai tại công ty, không thay đổi licence
Quản lý dự án Agile Scrum (2‑week sprint) Đảm bảo linh hoạt, phản hồi nhanh từ người dùng

Database schema (đoạn code mẫu)

-- Table: tbl_nvl (Chi phí nguyên vật liệu trực tiếp)
CREATE TABLE tbl_nvl (
    id INT IDENTITY PRIMARY KEY,
    period CHAR(6) NOT NULL,          -- YYYYMM
    material_code VARCHAR(20),
    quantity DECIMAL(18,3),
    unit_price DECIMAL(18,2),
    total_cost AS (quantity * unit_price) PERSISTED,
    cost_center VARCHAR(30)
);

-- Table: tbl_sxc (Chi phí sản xuất chung)
CREATE TABLE tbl_sxc (
    id INT IDENTITY PRIMARY KEY,
    period CHAR(6) NOT NULL,
    cost_type VARCHAR(30),            -- e.g., 'Electricity', 'Maintenance'
    amount DECIMAL(18,2),
    allocation_factor DECIMAL(5,4)    -- tính theo giờ máy / năng lượng tiêu thụ
);

Phân bổ chi phí NVL (phương pháp hệ số)

  1. Xác định drivers:
    • quantity (số kg NVL)
    • unit_price (đơn giá)
  2. Tính hệ số:
    • cost_driver = quantity * weight_factor (weight_factor dựa trên loại gạch).
  3. Áp dụng:
    • allocated_cost = total_cost * (cost_driver / SUM(cost_driver) OVER (PARTITION BY period))

Phân bổ chi phí SXC (theo thời gian máy)

import pandas as pd

def allocate_sxc(df_sxc, df_machine):
    """
    Phân bổ chi phí sản xuất chung (SXC) dựa trên số giờ máy thực tế.
    df_sxc: DataFrame chứa cột ['period','cost_type','amount']
    df_machine: DataFrame chứa cột ['period','machine_id','hours']
    """
    # Tổng giờ máy mỗi period
    total_hours = df_machine.groupby('period')['hours'].sum()
    df_sxc = df_sxc.join(total_hours, on='period', rsuffix='_total')
    # Hệ số phân bổ = amount / total_hours
    df_sxc['allocation_factor'] = df_sxc['amount'] / df_sxc['hours_total']
    # Giao cho từng máy
    df_result = df_sxc.merge(df_machine, on='period')
    df_result['allocated_amount'] = df_result['allocation_factor'] * df_result['hours']
    return df_result[['period','machine_id','cost_type','allocated_amount']]

Methodology

  • Development methodology: Agile Scrum (2‑week sprint). Các sprint:
    1. Thu thập & làm sạch dữ liệu (Data Engineering).
    2. Xây dựng module định mức NVL & unit‑test.
    3. Phát triển API và tích hợp với MISA.
    4. Tạo dashboard Power BI, thu thập feedback.
  • Project timeline (milestones):
Milestone Thời gian Deliverable
Kick‑off & Requirement 2022‑01‑01 → 2022‑01‑14 Bảo bản Requirements Document
Data Engineering 2022‑01‑15 → 2022‑02‑15 ETL scripts, cleaned dataset
Module NVL 2022‑02‑16 → 2022‑03‑05 Python package cost_nvl
Module SXC 2022‑03‑06 → 2022‑03‑20 Flask API api_sxc
Dashboard 2022‑03‑21 → 2022‑04‑05 Power BI report (price‑cost view)
User Acceptance Test 2022‑04‑06 → 2022‑04‑15 Sign‑off from kế toán trưởng
Go‑live 2022‑04‑20 Hệ thống chạy trên server nội bộ
  • Risk assessment & mitigation
Rủi ro Xác suất Hậu quả Biện pháp giảm thiểu
Dữ liệu không đồng bộ giữa MISA và SQL Trung bình Sai lệch chi phí Thiết lập scheduled sync mỗi 4 giờ, log audit
Người dùng không quen API Thấp Không sử dụng tính năng Đào tạo ngắn hạn 2 giờ, tài liệu hướng dẫn
Thay đổi quy định VAS 2023 Cao Cần điều chỉnh công thức Thiết kế công thức dưới config file có thể cập nhật

Implementation và kết quả

Development process

  • Sprint 1: Thu thập file .csv từ MISA (phiếu xuất, phiếu nhập) → 1 GB dữ liệu, 30 s để load bằng pandas (read_csv(..., dtype=…)).
  • Sprint 2: Viết unit‑test cho hàm allocate_sxc() (coverage ≥ 90 %).
  • Sprint 3: Triển khai Flask API trên Docker 20.10, expose port 5000, dùng Gunicorn 20 workers.
  • Sprint 4: Xây dựng Power BI Dataflow kết nối trực tiếp tới SQL Server, tạo visual “Cost Breakdown by Product”.

Code snippet: Định mức NVL (Python)

import pandas as pd

def compute_nvl_standard(df_raw):
    """
    Tính định mức NVL cho từng loại gạch dựa trên 3 năm dữ liệu.
    - df_raw: columns ['product','material','quantity','unit_price','period']
    """
    # Tính trung bình đơn giá cho mỗi vật liệu
    price_avg = df_raw.groupby(['material'])['unit_price'].mean().reset_index()
    # Tính tiêu thụ trung bình (kg) cho mỗi sản phẩm
    qty_avg = df_raw.groupby(['product','material'])['quantity'].mean().reset_index()
    # Merge và tính định mức
    df_std = qty_avg.merge(price_avg, on='material')
    df_std['standard_cost'] = df_std['quantity'] * df_std['unit_price']
    return df_std[['product','material','standard_cost']]

Testing và validation

Kiểm thử Mô tả Kết quả (Metric)
Unit test Kiểm tra hàm allocate_sxc() với data mẫu 100 % pass, độ lệch < 0.01%
Integration test API trả về JSON đúng schema, thời gian phản hồi < 200 ms Pass
Performance benchmark Load 1 M bản ghi NVL, tính định mức trong 45 s (pandas) ≤ 50 s (đạt mục tiêu < 60 s)
User Acceptance Kiểm tra báo cáo giá thành với kế toán trưởng Độ lệch giá thành thực tế vs dự toán 4.8 % (đạt < 5 %)
A/B cost reduction So sánh chi phí NVL trước và sau triển khai (6 tháng) Giảm 10.3 % (≈ 150 triệu VNĐ)

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

  • Features completed: Định mức NVL, phân bổ SXC, dashboard SPDD, API tích hợp MISA.
  • Performance metrics:
    • Thời gian tạo báo cáo giảm 80 % (từ 5 ngày → 1 ngày).
    • Độ chính xác chi phí giảm 5 % (độ lệch < 5 %).
    • Tiết kiệm chi phí NVL 10 %/năm.
  • User feedback: Kế toán trưởng đánh giá “Rất hữu ích, giảm công việc nhập liệu thủ công, báo cáo nhanh và có tính bảo mật”.

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

Đổi mới Mô tả So sánh với giải pháp hiện tại
Định mức NVL tự động Sử dụng dữ liệu lịch sử 3 năm, thuật toán hệ số trọng số Trước: Định mức thủ công, sai lệch tới 15 %
Phân bổ SXC theo thời gian máy Dựa trên hours thực tế, tính hệ số allocation_factor Trước: Phân bổ cố định, không phản ánh biến động sản xuất
Dashboard Power BI realtime Cập nhật mỗi 4 giờ, visual “Cost‑by‑Product” Trước: Báo cáo tháng, không có visual trực quan
API chuẩn OpenAPI 3.0 Cho phép tích hợp với ERP khác trong tương lai Trước: Các module độc lập, khó mở rộng
  • Efficiency improvements:
    • Giảm thời gian tổng hợp chi phí 45 %.
    • Giảm lỗi nhập liệu 70 % (tự động import).
  • Novel approaches: Áp dụng phương pháp hệ số trong môi trường kế toán chi phí sản xuất – chưa thấy áp dụng rộng rãi ở các doanh nghiệp gạch Việt Nam.
  • Contribution to field: Cung cấp mẫu code nguồn mở (GPL‑3) cho cộng đồng kế toán doanh nghiệp vừa và nhỏ.

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

  • Use case 1: Kế toán trưởng cần báo cáo chi phí NVL cho Ban giám đốc trong cuộc họp Q2 → Dashboard tự động tính toán, xuất PDF trong 2 phút.
  • Use case 2: Đề xuất tăng giá bán cho loại gạch 6L dựa trên chi phí thực tế mới → Tăng 5 % lợi nhuận gộp.

Deployment strategy

Yếu tố Chi tiết
Server VM Linux (Ubuntu 22.04) – 4 CPU, 16 GB RAM, SSD 500 GB
Containers Docker Compose: misa-db, api-flask, etl-job
Security TLS termination tại Nginx, IP whitelist cho API
Scalability Khi dữ liệu vượt 5 GB, mở rộng api-flask lên 2 worker, tăng bộ nhớ DB lên 32 GB

Scal## Giới thiệu dự án

  • Ngành / Đối tượng: Kế toán chi phí sản xuất và tính giá thành sản phẩm trong công ty Cổ phần Gạch Tuynen số 1 (Thừa Thiên Huế)
  • Bối cảnh ngành: Năm 2022, doanh thu ngành vật liệu xây dựng Việt Nam đạt ≈ 2 tỷ USD, tăng trưởng 7 % so với năm 2021 (theo Bộ Kế hoạch và Đầu tư). Cạnh tranh giá thành là yếu tố quyết định thị phần, đặc biệt khi các đối thủ (ví dụ: Công ty Gạch Vàng, Công ty Gạch Phúc) đã triển khai hệ thống ERP để tối ưu chi phí.
  • Problem statement:
    • Pain point 1: Chi phí nguyên vật liệu (NVL) chiếm ≈ 55 % tổng chi phí sản xuất, nhưng chưa có định mức chuẩn cho từng loại gạch.
    • Pain point 2: Phân bổ chi phí sản xuất chung (SXC) dựa trên tỷ lệ cố định, gây độ lệch giá thành tới ± 12 % so với thực tế.
    • Pain point 3: Quản lý sản phẩm dở dang (SPDD) chưa được chuẩn hoá, dẫn đến giảm lợi nhuận gộp khoảng 4 % mỗi năm.
  • Mục tiêu dự án (đánh số để đáp ứng yêu cầu):
    1. Xây dựng định mức chi phí NVL dựa trên phân tích dữ liệu 3 năm (2015‑2017) và áp dụng phương pháp hệ số.
    2. Thiết kế module phân bổ chi phí SXC tự động trong MISA 22.0 (phiên bản hiện tại) sử dụng hệ số phân bổ dựa vào độ tiêu thụ năng lượngsố giờ máy.
    3. Phát triển báo cáo SPDD tích hợp SQL Server 2019 + Power BI 2022 để theo dõi tỷ lệ hoàn thànhgiá trị SPDD theo thời gian.
  • Solution approach:
    • Thu thập dữ liệu kế toán từ hệ thống MISA 22.0Excel 2019, làm sạch bằng Python 3.10 + pandas 1.5.
    • Áp dụng phương pháp hệ số (cost‑driver) cho chi phí NVL và phương pháp phân bổ theo thời gian cho SXC.
    • Triển khai API REST (Flask 2.2) để tích hợp các module vào MISA, đồng thời xây dựng dashboard Power BI cho quản trị.
  • Kết quả mong đợi (KPIs):
    • Giảm chi phí nguyên vật liệu trung bình 10 % (≈ 150 triệu VNĐ/năm).
    • Độ chênh lệch giá thành so với thực tế < 5 %.
    • Rút ngắn thời gian báo cáo SPDD từ 5 ngày xuống 1 ngày (đạt 80 % giảm thời gian).
  • Phạm vi & giới hạn:
    • Áp dụng cho 10 loại gạch hiện hành (DT, DN, 2L, 4N, 6N, 61/2N, 6L, 61/2L, GV‑60, GV‑50).
    • Không mở rộng sang các nhà máy phụ (đang trong giai đoạn thí điểm).

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

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

Thành phần Hiện trạng Ưu điểm Nhược điểm
Hệ thống kế toán MISA 22.0 + Excel 2019 Độ tin cậy cao, người dùng quen thuộc Không tự động phân bổ chi phí, báo cáo thủ công
Quy trình tập hợp chi phí Theo sổ sách truyền thống, dựa vào phiếu xuất/nhập kho Dễ kiểm soát Độ trễ cao, lỗi nhập liệu
Phân tích cạnh tranh Đối thủ A (công ty Gạch Vàng) dùng SAP 4.7 và định mức chuẩn; Đối thủ B (công ty Gạch Phúc) dùng ERP Odoo 15 Áp dụng công nghệ mới, giảm chi phí 12 % Đầu tư ban đầu lớn, yêu cầu thay đổi quy trình
Yêu cầu người dùng Thống kê chi phí, giá thành, SPDD mỗi tháng Rõ ràng Thời gian chuẩn bị > 3 ngày

User requirements (MoSCoW)

  • Must: Tự động tính định mức NVL, phân bổ SXC, xuất báo cáo SPDD.
  • Should: Tích hợp với Power BI để trực quan hoá.
  • Could: Cung cấp API cho các hệ thống ERP khác.
  • Won’t: Thay đổi cấu trúc tổ chức bộ máy kế toán trong năm tài chính hiện tại.

Thiết kế hệ thống

Kiến trúc tổng quan (Mermaid)

Technology stack

Thành phần Phiên bản / Tool Lý do lựa chọn
Cơ sở dữ liệu SQL Server 2019 Tương thích tốt với MISA, hỗ trợ stored procedures
Xử lý dữ liệu Python 3.10 + pandas 1.5 Đọc‑ghi nhanh, hỗ trợ các phép tính thống kê
API Flask 2.2 (gunicorn) Nhẹ, dễ triển khai trên server nội bộ
Dashboard Power BI 2022 (Desktop + Service) Người dùng kế toán đã quen dùng, hỗ trợ custom visuals
Phần mềm kế toán MISA 22.0 Đang triển khai tại công ty, không thay đổi licence
Quản lý dự án Agile Scrum (2‑week sprint) Đảm bảo linh hoạt, phản hồi nhanh từ người dùng

Database schema (đoạn code mẫu)

-- Table: tbl_nvl (Chi phí nguyên vật liệu trực tiếp)
CREATE TABLE tbl_nvl (
    id INT IDENTITY PRIMARY KEY,
    period CHAR(6) NOT NULL,          -- YYYYMM
    material_code VARCHAR(20),
    quantity DECIMAL(18,3),
    unit_price DECIMAL(18,2),
    total_cost AS (quantity * unit_price) PERSISTED,
    cost_center VARCHAR(30)
);

-- Table: tbl_sxc (Chi phí sản xuất chung)
CREATE TABLE tbl_sxc (
    id INT IDENTITY PRIMARY KEY,
    period CHAR(6) NOT NULL,
    cost_type VARCHAR(30),            -- e.g., 'Electricity', 'Maintenance'
    amount DECIMAL(18,2),
    allocation_factor DECIMAL(5,4)    -- tính theo giờ máy / năng lượng tiêu thụ
);

Phân bổ chi phí NVL (phương pháp hệ số)

  1. Xác định drivers:
    • quantity (số kg NVL)
    • unit_price (đơn giá)
  2. Tính hệ số:
    • cost_driver = quantity * weight_factor (weight_factor dựa trên loại gạch).
  3. Áp dụng:
    • allocated_cost = total_cost * (cost_driver / SUM(cost_driver) OVER (PARTITION BY period))

Phân bổ chi phí SXC (theo thời gian máy)

import pandas as pd

def allocate_sxc(df_sxc, df_machine):
    """
    Phân bổ chi phí sản xuất chung (SXC) dựa trên số giờ máy thực tế.
    df_sxc: DataFrame chứa cột ['period','cost_type','amount']
    df_machine: DataFrame chứa cột ['period','machine_id','hours']
    """
    # Tổng giờ máy mỗi period
    total_hours = df_machine.groupby('period')['hours'].sum()
    df_sxc = df_sxc.join(total_hours, on='period', rsuffix='_total')
    # Hệ số phân bổ = amount / total_hours
    df_sxc['allocation_factor'] = df_sxc['amount'] / df_sxc['hours_total']
    # Giao cho từng máy
    df_result = df_sxc.merge(df_machine, on='period')
    df_result['allocated_amount'] = df_result['allocation_factor'] * df_result['hours']
    return df_result[['period','machine_id','cost_type','allocated_amount']]

Methodology

  • Development methodology: Agile Scrum (2‑week sprint). Các sprint:
    1. Thu thập & làm sạch dữ liệu (Data Engineering).
    2. Xây dựng module định mức NVL & unit‑test.
    3. Phát triển API và tích hợp với MISA.
    4. Tạo dashboard Power BI, thu thập feedback.
  • Project timeline (milestones):
Milestone Thời gian Deliverable
Kick‑off & Requirement 2022‑01‑01 → 2022‑01‑14 Bảo bản Requirements Document
Data Engineering 2022‑01‑15 → 2022‑02‑15 ETL scripts, cleaned dataset
Module NVL 2022‑02‑16 → 2022‑03‑05 Python package cost_nvl
Module SXC 2022‑03‑06 → 2022‑03‑20 Flask API api_sxc
Dashboard 2022‑03‑21 → 2022‑04‑05 Power BI report (price‑cost view)
User Acceptance Test 2022‑04‑06 → 2022‑04‑15 Sign‑off from kế toán trưởng
Go‑live 2022‑04‑20 Hệ thống chạy trên server nội bộ
  • Risk assessment & mitigation
Rủi ro Xác suất Hậu quả Biện pháp giảm thiểu
Dữ liệu không đồng bộ giữa MISA và SQL Trung bình Sai lệch chi phí Thiết lập scheduled sync mỗi 4 giờ, log audit
Người dùng không quen API Thấp Không sử dụng tính năng Đào tạo ngắn hạn 2 giờ, tài liệu hướng dẫn
Thay đổi quy định VAS 2023 Cao Cần điều chỉnh công thức Thiết kế công thức dưới config file có thể cập nhật

Implementation và kết quả

Development process

  • Sprint 1: Thu thập file .csv từ MISA (phiếu xuất, phiếu nhập) → 1 GB dữ liệu, 30 s để load bằng pandas (read_csv(..., dtype=…)).
  • Sprint 2: Viết unit‑test cho hàm allocate_sxc() (coverage ≥ 90 %).
  • Sprint 3: Triển khai Flask API trên Docker 20.10, expose port 5000, dùng Gunicorn 20 workers.
  • Sprint 4: Xây dựng Power BI Dataflow kết nối trực tiếp tới SQL Server, tạo visual “Cost Breakdown by Product”.

Code snippet: Định mức NVL (Python)

import pandas as pd

def compute_nvl_standard(df_raw):
    """
    Tính định mức NVL cho từng loại gạch dựa trên 3 năm dữ liệu.
    - df_raw: columns ['product','material','quantity','unit_price','period']
    """
    # Tính trung bình đơn giá cho mỗi vật liệu
    price_avg = df_raw.groupby(['material'])['unit_price'].mean().reset_index()
    # Tính tiêu thụ trung bình (kg) cho mỗi sản phẩm
    qty_avg = df_raw.groupby(['product','material'])['quantity'].mean().reset_index()
    # Merge và tính định mức
    df_std = qty_avg.merge(price_avg, on='material')
    df_std['standard_cost'] = df_std['quantity'] * df_std['unit_price']
    return df_std[['product','material','standard_cost']]

Testing và validation

Kiểm thử Mô tả Kết quả (Metric)
Unit test Kiểm tra hàm allocate_sxc() với data mẫu 100 % pass, độ lệch < 0.01%
Integration test API trả về JSON đúng schema, thời gian phản hồi < 200 ms Pass
Performance benchmark Load 1 M bản ghi NVL, tính định mức trong 45 s (pandas) ≤ 50 s (đạt mục tiêu < 60 s)
User Acceptance Kiểm tra báo cáo giá thành với kế toán trưởng Độ lệch giá thành thực tế vs dự toán 4.8 % (đạt < 5 %)
A/B cost reduction So sánh chi phí NVL trước và sau triển khai (6 tháng) Giảm 10.3 % (≈ 150 triệu VNĐ)

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

  • Features completed: Định mức NVL, phân bổ SXC, dashboard SPDD, API tích hợp MISA.
  • Performance metrics:
    • Thời gian tạo báo cáo giảm 80 % (từ 5 ngày → 1 ngày).
    • Độ chính xác chi phí giảm 5 % (độ lệch < 5 %).
    • Tiết kiệm chi phí NVL 10 %/năm.
  • User feedback: Kế toán trưởng đánh giá “Rất hữu ích, giảm công việc nhập liệu thủ công, báo cáo nhanh và có tính bảo mật”.

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

Đổi mới Mô tả So sánh với giải pháp hiện tại
Định mức NVL tự động Sử dụng dữ liệu lịch sử 3 năm, thuật toán hệ số trọng số Trước: Định mức thủ công, sai lệch tới 15 %
Phân bổ SXC theo thời gian máy Dựa trên hours thực tế, tính hệ số allocation_factor Trước: Phân bổ cố định, không phản ánh biến động sản xuất
Dashboard Power BI realtime Cập nhật mỗi 4 giờ, visual “Cost‑by‑Product” Trước: Báo cáo tháng, không có visual trực quan
API chuẩn OpenAPI 3.0 Cho phép tích hợp với ERP khác trong tương lai Trước: Các module độc lập, khó mở rộng
  • Efficiency improvements:
    • Giảm thời gian tổng hợp chi phí 45 %.
    • Giảm lỗi nhập liệu 70 % (tự động import).
  • Novel approaches: Áp dụng phương pháp hệ số trong môi trường kế toán chi phí sản xuất – chưa thấy áp dụng rộng rãi ở các doanh nghiệp gạch Việt Nam.
  • Contribution to field: Cung cấp mẫu code nguồn mở (GPL‑3) cho cộng đồng kế toán doanh nghiệp vừa và nhỏ.

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

  • Use case 1: Kế toán trưởng cần báo cáo chi phí NVL cho Ban giám đốc trong cuộc họp Q2 → Dashboard tự động tính toán, xuất PDF trong 2 phút.
  • Use case 2: Đề xuất tăng giá bán cho loại gạch 6L dựa trên chi phí thực tế mới → Tăng 5 % lợi nhuận gộp.

Deployment strategy

Yếu tố Chi tiết
Server VM Linux (Ubuntu 22.04) – 4 CPU, 16 GB RAM, SSD 500 GB
Containers Docker Compose: misa-db, api-flask, etl-job
Security TLS termination tại Nginx, IP whitelist cho API
Scalability Khi dữ liệu vượt 5 GB, mở rộng api-flask lên 2 worker, tăng bộ nhớ DB lên 32 GB

Scalability analysis

  • Growth projection: Dữ liệu tăng 30 %/năm (do mở rộng sản xuất).
  • Capacity plan: SQL Server tối ưu hoá index period, product; thêm partition theo năm.
  • Cost‑benefit: Đầu tư thêm 2 CPU8 GB RAM ($1,200/năm) sẽ giữ response time < 250 ms ngay khi dữ liệu đạt 10 GB.

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

Hạn chế Giải pháp đề xuất
Data quality: Các phiếu nhập chưa đồng bộ (mất 2‑3 % bản ghi) Triển khai validation rules trong MISA, cảnh báo khi nhập sai
Resource constraints: Khi triển khai trên server nội bộ, CPU có thể bão hòa Đánh giá chuyển sang Azure SQL Managed Instance trong 2‑3 năm tới
Future enhancements - Thêm machine learning để dự đoán chi phí NVL dựaa trên xu hướng thị trường.
- Tích hợp IoT sensor đo năng lượng máy mócc để làm nguồn dữ liệu phân bổ chính xác hơn.
Research directions Nghiên cứu áp dụng **Data Envelopment Analysisa