-->

pipeline

Dựa vào cấu trúc thư mục và cấu hình package.json của dự án Vĩnh Phát ERP v3, hiện tại hệ thống đang có 4 nhóm Pipeline chính phục vụ cho tự động hóa, kiểm tra và triển khai như sau:

1. GitHub Actions (CI/CD Pipelines trên Server)

Nằm trong thư mục .github/workflows/, đây là các pipeline chạy trên môi trường GitHub Actions mỗi khi có thay đổi trên repository:

  • ci.yml (Continuous Integration): Thường chạy khi có Push/Pull Request để thực thi Unit Test (vitest), Lint, và Typecheck đảm bảo code không bị lỗi trước khi merge.
  • deploy.yml: Pipeline triển khai (Deployment) ứng dụng lên môi trường Production/Staging sau khi test thành công.
  • release.yml: Pipeline tạo các bản Release/Tag phiên bản (Versioning) khi có update quan trọng.

2. Local Git Hooks (Husky Pipelines)

Các pipeline này chạy ngay trên máy tính của bạn để chặn lỗi ngay từ đầu (Fail-fast), được cấu hình trong thư mục .husky/:

  • pre-commit: Kích hoạt ngay khi bạn gõ lệnh git commit. Nó sẽ tự động gọi luồng lint-staged để format và fix code.
  • pre-push: Kích hoạt ngay trước khi git push. Nó chạy pipeline AI Audit (npm run ai:audit). Nếu AI phát hiện lỗi vi phạm kiến trúc, quá trình Push sẽ bị hủy.

3. Lint-staged (Pre-commit Code Format Pipeline)

Được định nghĩa trong package.json và được kích hoạt bởi pre-commit. Nó chỉ quét qua các file bạn vừa chỉnh sửa (staged files) để tăng tốc độ:

  • Phân tích file *.{ts,tsx}: Tự động sửa lỗi cú pháp (eslint --fix) và format code (prettier --write).
  • Phân tích file *.{json,md,css}: Định dạng lại code cho gọn gàng (prettier --write).

4. NPM Script Pipelines (Các cụm lệnh chạy thủ công/CI)

Đây là các pipeline được tổ hợp từ nhiều script nhỏ trong package.json:

  • npm run check: Pipeline dọn dẹp lỗi. Sẽ tuần tự chạy npm run lint sau đó đến npm run typecheck.
  • npm run build:all: Pipeline build ứng dụng hoàn chỉnh. Chạy build cho phần Client/Frontend và chuyển sang thư mục server để build backend.
  • npm run ai:audit: Pipeline kiểm toán mã nguồn bằng AI Agent, thực thi file scripts/ai-audit.js.

Pipeline tính toán

Trong hệ thống Vĩnh Phát ERP v3 hiện tại, nếu xét về Business Logic (Nghiệp vụ cốt lõi), chúng ta đang có 2 "Pipeline tính toán" chính phục vụ cho việc dự toán và báo giá sản xuất.

Dưới đây là chi tiết các pipeline tính toán này:

1. Pipeline Dự Toán Giá Vải Mộc (Greige Cost Pipeline)

Đây là chuỗi tính toán giá thành sản xuất và giá bán khuyến nghị cho các Lệnh dệt (được đặt trong tệp src/shared/utils/greige-price.util.ts). Hàm này hoạt động độc lập (Pure Function) không dính đến giao diện.

Quy trình tính toán 6 bước:

  1. Validation (Zod): Xác thực mọi thông số đầu vào (không cho số âm, sai kiểu dữ liệu).
  2. Base Cost (Giá nguyên liệu): Khối lượng (kg) × Đơn giá sợi/kg.
  3. Waste Cost (Chi phí hao hụt): Base Cost × Tỉ lệ hao hụt (%). Bù trừ đi lượng sợi bị hao hụt trong quá trình máy chạy.
  4. Additional Costs (Chi phí cộng dồn): Tổng hợp phí gia công (dệt), phí vận chuyển và các phụ phí khác (additionalCosts).
  5. Total Cost (Tổng giá vốn): Bằng Base Cost + Waste Cost + Additional Costs.
  6. Final Price (Giá bán đề xuất): Total Cost × (1 + Biên lợi nhuận kỳ vọng / 100).

2. Pipeline Tính Giá Sợi Bình Quân (Weighted Average Price Pipeline)

Nằm trong component GreigePriceEstimator.tsx và mô-đun phân tích định mức (explain-wo.ts), pipeline này nhằm tìm ra con số Đơn giá sợi/kg chuẩn nhất để đẩy vào Pipeline số 1.

Quy trình tính toán:

  1. Trích xuất định mức (BOM): Bóc tách xem Lệnh sản xuất này sử dụng những mã sợi nào, mỗi loại chiếm bao nhiêu kg.
  2. Lấy giá Real-time: Query dữ liệu từ phiếu nhập kho (yarn_receipt_items) để lấy đơn giá mới nhất của từng loại sợi đó.
  3. Tổng giá trị (Total Value): Cộng dồn (Khối lượng sợi A × Giá sợi A) + (Khối lượng sợi B × Giá sợi B).
  4. Giá trung bình: Chia Total Value cho Tổng khối lượng kg để ra được Đơn giá sợi trung bình gia quyền (suggestedAverageYarnPrice). Con số này giúp hệ thống chống bị lỗ do biến động giá sợi ngoài thị trường.

Hai pipeline này kết hợp với nhau trực tiếp trên màn hình "Tạo lệnh SX" (hoặc Sửa lệnh), giúp nhân viên kinh doanh nhìn thấy ngay lập tức giá vốn thực tế của một lô hàng trước khi đưa máy vào chạy.

#Pipeline #BusinessLogic #TinhToanGiaThanh #ERP #VinhPhatERP #ThuatToan #SanXuat

Đăng nhận xét

Mới hơn Cũ hơn