Bỏ qua, đến nội dung

@digiforce-nc/plugin-workflow-aggregate

Plugin đăng ký node tính toán tổng hợp (aggregate) trong workflow, mở rộng plugin-workflow. Thực hiện các phép tính count, sum, avg, min, max trên collection dữ liệu ngay trong luồng xử lý.

Plugin này làm gì?

Node Aggregate truy vấn dữ liệu từ một collection, áp dụng filter, rồi tính toán giá trị tổng hợp. Kết quả được lưu vào biến workflow để các node tiếp theo sử dụng cho logic điều kiện hoặc hiển thị.

Phép tính được thực thi ở tầng SQL (database aggregate function), không load toàn bộ dữ liệu vào memory - đảm bảo hiệu suất ngay cả với collection lớn.

Cấu hình

Tham sốKiểuMô tả
collectionstringCollection cần tính toán tổng hợp
aggregatorstringPhép tính: count, sum, avg, min, max
fieldstringField tính toán (bắt buộc với sum, avg, min, max)
filterobjectĐiều kiện lọc dữ liệu trước khi tính
associatedbooleanTính trên dữ liệu association thay vì toàn bộ collection
paramsobjectTham số bổ sung cho query

Input / Output

HướngDữ liệuMô tả
InputcollectionTên collection nguồn
InputfilterĐiều kiện lọc (hỗ trợ biến workflow trong filter)
OutputresultGiá trị tổng hợp (number)
OutputdataTypeKiểu dữ liệu kết quả: integer hoặc double

Tính năng chính

#Tính năngChi tiết
15 phép tínhcount, sum, avg, min, max - đáp ứng mọi nhu cầu thống kê
2Filter linh hoạtLọc dữ liệu bằng điều kiện phức tạp trước khi tính
3Biến động trong filterSử dụng biến từ node trước trong điều kiện lọc
4AssociationTính toán trên dữ liệu quan hệ (hasMany, belongsToMany)
5Hiệu suất caoSử dụng SQL aggregate thay vì load toàn bộ dữ liệu

Trường hợp sử dụng

#Kịch bảnMô tả
1Đếm đơn hàngĐếm số đơn hàng pending của khách hàng để quyết định ưu tiên
2Tổng doanh thuTính sum trên field amount để kiểm tra ngưỡng phê duyệt
3Trung bình đánh giáTính avg rating sản phẩm để tự động đánh dấu hot/trending
4Kiểm tra tồn khoTính min stock để cảnh báo hết hàng
5Giá trị cao nhấtTính max trên field bid trong phiên đấu giá

Các phép tính hỗ trợ

Phép tínhÝ nghĩaYêu cầu fieldVí dụ kết quả
countĐếm số bản ghiKhông42
sumTổng giá trịCó (kiểu số)1500000
avgTrung bình cộngCó (kiểu số)35000.5
minGiá trị nhỏ nhất100
maxGiá trị lớn nhất999999

Lưu ý quan trọng

  • Với count, không cần chỉ định field - đếm tất cả bản ghi khớp filter
  • Với sum, avg, min, max - bắt buộc chỉ định field kiểu số
  • Filter hỗ trợ tất cả toán tử của collection filter: $eq, $gt, $lt, $in, ...
  • Kết quả avg trả về kiểu double, các phép tính khác trả về integer (trừ sum trên field decimal)
  • Nếu không có bản ghi nào khớp filter: count = 0, sum = 0, avg/min/max = null

Dependencies

PackageVai trò
@digiforce-nc/plugin-workflowWorkflow engine (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/databaseDatabase ORM - thực thi aggregate query (peer)

Mục lục chi tiết