Skip to content

派单评分策略规则

适用于物业维修、上门服务、巡检分配等多维度评分派单场景。

规则文件内容

请复制以下内容,保存为 .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_breakdown
  • dispatch_records 必须包含:task_id, worker_id, dispatch_round, status, dispatched_at
  • worker_metrics 必须包含:worker_id, avg_response_minutes, completion_rate, last_active_at

8. 实施注意事项

  • 距离计算建议缓存栅格,降低高并发开销。
  • 评分明细建议对外可审计,便于运营调参。
  • 派单策略需支持按项目/时段配置差异化权重。

## 适用场景

- 物业维修派单
- 上门服务分配
- 巡检与维保任务分派

基于 AI 辅助开发,快速、灵活、可靠