Tóm tắt
Mỗi bước quy trình có thể khai báo SLA (số giờ xử lý tối đa). Task ở quá SLA của bước hiện tại được gắn cờ
isOverdue: true (để board hiện "Quá hạn" và đếm "Z Quá hạn" theo bước), người phụ trách nhận cảnh báo trước khi
hết hạn và thông báo khi đã quá hạn.
Chi tiết
POST /workflows/:id/stepsnhận thêmslaHours?: number(số nguyên ≥ 1, bỏ trống = bước không có SLA) vàisBusinessHours?: boolean(mặc địnhtrue= tính theo giờ làm việc của người phụ trách;false= giờ đồng hồ). ObjectWorkflowStepở mọi response có thêmslaHours: number | null,isBusinessHours: boolean.- Object
WorkflowTaskở mọi response có thêmisOverdue: boolean. Cờ được đặt bởi job kiểm tra SLA (mặc định mỗi 60 giây) và tự vềfalsekhi task chuyển bước. - Số đếm "Z Quá hạn" theo bước: FE tự đếm từ
GET /workflows/:id/tasks(currentStepId+isOverdue), không có endpoint tổng hợp riêng. - Hạn xử lý được tính lúc task vào bước, từ lịch làm việc của người phụ trách tại thời điểm đó (snapshot) — sửa lịch làm việc sau đó không làm đổi hạn của task đang chạy. Không có người phụ trách → tính giờ đồng hồ.
- Thông báo mới (
entityType: "workflow_task", gửi bởi hệ thống, không có actor):
type |
actionCategory |
Người nhận | Khi nào |
|---|---|---|---|
workflow.task.sla_warning |
action_required |
người phụ trách | đã dùng 80% SLA của bước (chưa quá hạn) |
workflow.task.overdue |
action_required |
người phụ trách | quá SLA của bước |
workflow.task.overdue |
watching |
người tạo (nếu khác người phụ trách) | như trên |
Contract (trước → sau)
| Trước | Sau | |
|---|---|---|
| Endpoint | POST /workflows/:id/steps |
không đổi |
| Request | { name } |
{ name, slaHours?, isBusinessHours? } |
| Response | WorkflowStep, WorkflowTask |
WorkflowStep + slaHours, isBusinessHours; WorkflowTask + isOverdue |
| Lỗi | — | 400 nếu slaHours không phải số nguyên ≥ 1 |
Việc bên nhận cần làm
- FE: form thêm bước — thêm ô "SLA (giờ)" + lựa chọn "Tính theo giờ làm việc".
- FE: board — hiện cờ "Quá hạn" trên thẻ task có
isOverdue, và "Z Quá hạn" ở đầu cột theo từng bước. - FE: thêm
slaHours/isBusinessHoursvào typeWorkflowStep,isOverduevào typeWorkflowTask.
Cách kiểm tra
Thêm bước với slaHours: 1, isBusinessHours: false, tạo task có người phụ trách ở bước đó → sau ~48 phút người
phụ trách nhận workflow.task.sla_warning, sau ~1 giờ task có isOverdue: true và thông báo workflow.task.overdue.
Thảo luận
[BE] 2026-09-24 @ThaiThanhLuan — raised
Ngưỡng cảnh báo sớm 80% là giả định (tài liệu không định lượng) — cần sản phẩm xác nhận. Chưa có API sửa SLA của
bước đã tạo (chưa có PATCH bước). Mobile n/a: mobile/ chưa có code.
[FE] 2026-09-24 @NinelXram — applied
Form thêm bước có "SLA (giờ)" + "Tính theo giờ làm việc", builder hiện SLA; board hiện "Quá hạn" trên thẻ,
"Z quá hạn" đầu cột (đếm mọi nhiệm vụ của bước, không theo bộ lọc) và trong panel (WORKFLOW-FE-004, nhánh
feat/WORKFLOW-FE-004-sla-overdue, commit f2fb360..c4085e8). Góp ý: AddWorkflowStepDto.slaHours chưa có @Max,
nên số vượt Int sẽ thành lỗi 500. FE đang chặn ở 2147483647.