Skip to content

SCHED-003: 应急调度

优先级: 🔴 高 (16.5分) | 实施周期: 2-3周

客户原话

"农业生产最怕天气突变。去年夏天,天气预报说后天有暴雨,农户着急抢收小麦,一下子来了50个紧急订单。我们只有20台收割机,根本忙不过来。不知道该先去哪家,哪家更紧急。有的农户地块大,有的地块小,有的离得近,有的离得远。手忙脚乱地调度,还是有几家没收完就下雨了,损失惨重。想要个系统能处理这种紧急情况,自动排优先级,快速调度,尽量减少损失。"

—— 某农机合作社理事长

客户类型需求差异

农机合作社(10-50台,本地作业)

需求程度: ⭐⭐⭐⭐⭐ 必需

核心需求:

  • 紧急订单快速响应
  • 优先级自动排序
  • 应急调度方案
  • 实时调度调整

关键功能:

  • 紧急订单标记
  • 优先级计算
  • 快速派单
  • 实时监控

农机服务站(跨区作业)

需求程度: ⭐⭐⭐⭐⭐ 必需

核心需求:

  • 跨区域应急支援
  • 多地协同调度
  • 应急资源调配
  • 应急预案管理

关键功能:

  • 跨区域支援
  • 应急预案
  • 资源调配
  • 协同指挥

大型农场(自有农机队)

需求程度: ⭐⭐⭐⭐ 重要

核心需求:

  • 农场应急作业
  • 设备应急调配
  • 应急预案执行
  • 损失评估

关键功能:

  • 应急预案
  • 设备调配
  • 进度监控
  • 损失统计

农机租赁公司(租赁+作业)

需求程度: ⭐⭐⭐ 一般

核心需求:

  • 租赁设备应急调用
  • 应急费用计算
  • 应急服务保障

关键功能:

  • 设备应急调用
  • 费用计算
  • 服务保障

业务场景描述

典型场景

场景1: 暴雨前抢收

  • 天气预报:后天暴雨
  • 接到50个紧急抢收订单
  • 系统评估:只有20台收割机
  • 优先级排序:按地块大小、距离、损失风险
  • 快速派单:优先派大地块、近距离、高风险
  • 实时监控:跟踪作业进度,动态调整

场景2: 设备故障应急

  • 正在作业的收割机突然故障
  • 农户着急:必须今天收完
  • 系统查找:附近有无空闲机器
  • 应急派单:派最近的机器支援
  • 故障机器:安排维修,尽快恢复
  • 完成作业:按时完成,农户满意

场景3: 跨区域应急支援

  • 河北暴雨,订单激增
  • 本地机器不足,无法应对
  • 系统提示:河南有空闲机器
  • 跨区域支援:紧急调10台机器
  • 快速转场:高速直达,4小时到达
  • 投入作业:立即开始抢收

场景4: 多订单并发应急

  • 同时接到多个紧急订单
  • 系统分析:订单紧急程度、地块大小、距离
  • 智能排序:生成最优作业顺序
  • 批量派单:所有机器同时出动
  • 协同作业:多台机器协同完成大地块
  • 全部完成:赶在暴雨前完成所有订单

场景5: 应急预案启动

  • 接到极端天气预警
  • 启动应急预案:提前准备
  • 通知机手:做好应急准备
  • 预留资源:保留部分机器应急
  • 快速响应:紧急订单立即处理
  • 有序应对:按预案执行,井然有序

核心痛点

  1. 响应速度慢 - 紧急情况下,人工调度慢,错过最佳时机
  2. 优先级难定 - 不知道哪个订单更紧急,容易顾此失彼
  3. 资源调配难 - 紧急情况下,资源紧张,调配困难
  4. 协调沟通难 - 多方协调靠电话,效率低易出错
  5. 损失难评估 - 无法评估损失风险,决策缺乏依据

业务流程图

当前人工流程

系统化流程

用户故事

故事1: 调度员快速处理紧急订单

作为 调度员 我想要 系统自动处理紧急订单 以便 快速响应,减少损失

验收标准:

  • 紧急订单自动标记
  • 系统自动评估紧急程度
  • 生成应急调度方案
  • 一键快速派单
  • 实时监控进度

故事2: 系统智能排优先级

作为 系统 我想要 智能计算订单优先级 以便 优先处理最紧急的订单

验收标准:

  • 综合考虑时间、距离、损失风险
  • 自动计算优先级评分
  • 按优先级排序
  • 动态调整优先级
  • 提供决策依据

故事3: 机手快速响应

作为 机手 我想要 快速接收紧急任务 以便 立即出发,抢抓时间

验收标准:

  • 收到紧急通知(声音、震动)
  • 查看紧急程度和原因
  • 一键确认接单
  • 导航最快路线
  • 实时上报进度

故事4: 管理员启动应急预案

作为 管理员 我想要 启动应急预案 以便 有序应对紧急情况

验收标准:

  • 查看应急预案列表
  • 选择合适的预案
  • 一键启动预案
  • 自动执行预案步骤
  • 监控预案执行

故事5: 系统评估损失风险

作为 系统 我想要 评估订单损失风险 以便 优先处理高风险订单

验收标准:

  • 根据天气、时间、作物评估风险
  • 计算潜在损失金额
  • 标注高风险订单
  • 提供风险预警
  • 记录实际损失

数据模型

核心实体

1. 应急调度任务 (EmergencyDispatch)

typescript
interface EmergencyDispatch {
  id: string
  dispatchNo: string
  orderId: string
  
  // 紧急信息
  emergencyType: 'weather' | 'equipment' | 'customer' | 'other'
  emergencyLevel: 'critical' | 'high' | 'medium'
  emergencyReason: string
  
  // 优先级
  priorityScore: number
  priorityFactors: {
    timeUrgency: number
    lossRisk: number
    distance: number
    areaSize: number
  }
  
  // 时间要求
  deadline: Date
  remainingTime: number
  
  // 损失评估
  estimatedLoss: number
  actualLoss?: number
  
  // 调度信息
  dispatchedMachines: string[]
  dispatchedAt: Date
  responseTime: number
  
  // 状态
  status: 'pending' | 'dispatched' | 'in_progress' | 'completed' | 'failed'
  
  createdAt: Date
  updatedAt: Date
}

2. 应急预案 (EmergencyPlan)

typescript
interface EmergencyPlan {
  id: string
  planName: string
  planType: string
  
  // 触发条件
  triggers: {
    weatherCondition?: string
    orderCount?: number
    timeWindow?: number
  }
  
  // 执行步骤
  steps: {
    stepNo: number
    stepName: string
    action: string
    responsible: string
    timeout: number
  }[]
  
  // 资源配置
  resources: {
    reservedMachines: number
    reservedOperators: number
    budget: number
  }
  
  isActive: boolean
  createdAt: Date
  updatedAt: Date
}

接口设计

1. 创建应急调度

typescript
POST /api/emergency-dispatches

Request:
{
  orderId: string,
  emergencyType: string,
  emergencyLevel: string,
  deadline: Date
}

Response:
{
  code: 0,
  message: "success",
  data: {
    dispatchId: string,
    priorityScore: number,
    recommendations: Machine[]
  }
}

2. 计算优先级

typescript
POST /api/emergency-dispatches/{dispatchId}/calculate-priority

Response:
{
  code: 0,
  message: "success",
  data: {
    priorityScore: number,
    factors: {
      timeUrgency: number,
      lossRisk: number,
      distance: number,
      areaSize: number
    },
    rank: number
  }
}

3. 快速派单

typescript
POST /api/emergency-dispatches/{dispatchId}/quick-dispatch

Request:
{
  machineIds: string[]
}

Response:
{
  code: 0,
  message: "success",
  data: {
    dispatchId: string,
    status: "dispatched",
    responseTime: number
  }
}

4. 启动应急预案

typescript
POST /api/emergency-plans/{planId}/activate

Response:
{
  code: 0,
  message: "success",
  data: {
    planId: string,
    status: "activated",
    steps: Step[]
  }
}

关键业务规则

1. 紧急等级判定

  • 极紧急: 6小时内必须完成
  • 高紧急: 12小时内必须完成
  • 中紧急: 24小时内必须完成

2. 优先级计算

  • 时间紧迫度: 40%
  • 损失风险: 30%
  • 距离远近: 20%
  • 地块大小: 10%

3. 应急响应时间

  • 极紧急: 15分钟内响应
  • 高紧急: 30分钟内响应
  • 中紧急: 1小时内响应

技术实现要点

1. 优先级计算算法

typescript
function calculatePriority(dispatch: EmergencyDispatch): number {
  const timeScore = calculateTimeUrgency(dispatch.deadline);
  const lossScore = calculateLossRisk(dispatch.estimatedLoss);
  const distanceScore = calculateDistanceScore(dispatch.distance);
  const areaScore = calculateAreaScore(dispatch.area);
  
  return timeScore * 0.4 + lossScore * 0.3 + 
         distanceScore * 0.2 + areaScore * 0.1;
}

2. 损失评估算法

typescript
function estimateLoss(order: Order, weather: Weather): number {
  const cropValue = order.area * order.cropType.pricePerMu;
  const lossRate = calculateLossRate(weather, order.deadline);
  return cropValue * lossRate;
}

实施建议

第一阶段: 基础功能(1周)

  • [ ] 应急调度任务管理
  • [ ] 优先级计算
  • [ ] 快速派单
  • [ ] 实时监控

第二阶段: 优化功能(1周)

  • [ ] 应急预案管理
  • [ ] 损失评估
  • [ ] 跨区域支援
  • [ ] 数据分析

成功案例

案例1: 某农机合作社暴雨抢收

实施前:

  • 人工调度,响应慢
  • 优先级不明,顾此失彼
  • 损失惨重

实施后:

  • 系统自动调度,响应快
  • 优先级清晰,有序应对
  • 损失大幅减少

关键数据:

  • 响应时间: 从2小时降到15分钟
  • 完成率: 从60%提升到95%
  • 损失减少: 80%

相关场景

  • SCHED-001 作业调度: 常规订单调度
  • SCHED-002 跨区域调度: 跨区域应急支援

常见问题

Q1: 如何判断订单是否紧急?

A: 系统综合考虑时间、天气、损失风险等因素,自动判断紧急程度。

Q2: 紧急订单会打乱原有计划吗?

A: 会的,但系统会评估影响,尽量减少对其他订单的影响。

Q3: 如何保证应急响应速度?

A: 系统自动派单,机手手机收到紧急通知,立即响应。


本场景文档版本: v2.0 | 最后更新: 2024-03-07

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