派单评分策略规则
适用于物业维修、上门服务、巡检分配等多维度评分派单场景。
规则文件内容
请复制以下内容,保存为 .cursor/rules/dispatch-score-policy.mdc:
markdown
---
description: 派单评分、候选筛选与超时升级业务规则
globs: src/modules/dispatch/**, src/modules/workers/**, src/modules/tasks/**
---
# 派单评分策略业务规则
## 1. 核心原则
- **先筛选后评分**:先过滤不合格候选,再计算综合分。
- **权重可配置**:评分权重可按项目阶段动态调整。
- **紧急任务优先**:紧急任务使用更激进的派单策略。
## 2. 候选筛选规则
- 必须在线:`status = online`
- 必须技能匹配:`task.type in worker.skills`
- 必须未超负载:`current_tasks < max_concurrent_tasks`
不满足任一条件的候选直接剔除。
## 3. 评分维度与默认权重
- 类型匹配:`30%`
- 距离得分:`30%`
- 工作量得分:`20%`
- 历史响应得分:`20%`
```ts
interface ScoreWeights {
typeMatch: number;
distance: number;
workload: number;
response: number;
}
const DEFAULT_WEIGHTS: ScoreWeights = {
typeMatch: 0.3,
distance: 0.3,
workload: 0.2,
response: 0.2
};4. 紧急任务加权规则
urgent任务提升距离与响应权重:- 距离:
40% - 响应:
30% - 工作量:
20% - 类型匹配:
10%
- 距离:
5. 分配与并发规则
- 取综合分最高候选进行派单。
- 同分时按“距离更近 -> 当前负载更低 -> 最近一次接单时间更早”排序。
- 派单成功后立即写入分配记录,防止重复派发。
6. 超时与升级规则
- 派单后
5分钟未接单:自动重派一次。 - 连续重派
>= 2次失败:升级调度员人工处理。 - 紧急任务重派失败立即触发管理通知。
7. 数据模型约束
dispatch_candidates必须包含:task_id,worker_id,score,score_breakdowndispatch_records必须包含:task_id,worker_id,dispatch_round,status,dispatched_atworker_metrics必须包含:worker_id,avg_response_minutes,completion_rate,last_active_at
8. 实施注意事项
- 距离计算建议缓存栅格,降低高并发开销。
- 评分明细建议对外可审计,便于运营调参。
- 派单策略需支持按项目/时段配置差异化权重。
## 适用场景
- 物业维修派单
- 上门服务分配
- 巡检与维保任务分派
