系统落地:应急抢修调度
系统实现
这个场景已经作为"易活PLUS 工单管理平台"的应急模块落地实施。
在完整系统中的位置
易活PLUS 工单管理平台
├── 常规工单管理
├── 应急抢修调度 ← 本场景核心模块
│ ├── 事件上报
│ ├── 智能派单
│ ├── 实时定位
│ └── 抢修跟踪
└── 数据统计功能模块
1. 上报端(微信小程序)
快速上报界面:
┌───────────────────────────┐
│ 应急抢修上报 │
├───────────────────────────┤
│ 紧急程度: │
│ ( ) 一级危急(电梯困人等) │
│ ( ) 二级紧急(水管爆裂等) │
│ ( ) 三级重要(门禁故障等) │
│ ( ) 四级普通(一般维修) │
│ │
│ 故障类型: │
│ [ ] 电梯 │
│ [ ] 水管 │
│ [ ] 电路 │
│ [ ] 空调 │
│ [ ] 其他 │
│ │
│ 问题描述: │
│ [________________] │
│ │
│ 位置:[自动获取] │
│ │
│ [立即上报] │
└───────────────────────────┘核心功能:
- ✓ 快速上报,一键选择紧急程度
- ✓ 自动获取位置
- ✓ 实时查看抢修进度
2. 师傅端(移动 App)
任务列表:
┌───────────────────────────┐
│ 我的任务 │
├───────────────────────────┤
│ [待接单] [处理中] [已完成] │
│ │
│ ┌─────────────────────┐ │
│ │ ⚠️ 一级危急 │ │
│ │ 电梯困人 │ │
│ │ 位置:1号楼 │ │
│ │ 距离:200米 │ │
│ │ 时间:2分钟前 │ │
│ │ │ │
│ │ [立即接单] │ │
│ └─────────────────────┘ │
│ │
│ ┌─────────────────────┐ │
│ │ 二级紧急 │ │
│ │ 水管爆裂 │ │
│ │ 位置:2号楼 │ │
│ │ 距离:500米 │ │
│ │ 时间:5分钟前 │ │
│ │ │ │
│ │ [接单] [查看详情] │ │
│ └─────────────────────┘ │
└───────────────────────────┘核心功能:
- ✓ 实时接收任务通知
- ✓ 一键接单
- ✓ 实时位置上报
- ✓ 抢修进度更新
3. 调度端(Web 后台)
实时监控看板:
┌─────────────────────────────────────┐
│ 应急抢修调度系统 - 实时监控 │
├─────────────────────────────────────┤
│ │
│ 今日数据 │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ 上报 │ │ 处理中│ │ 已完成│ │
│ │ 12 │ │ 3 │ │ 9 │ │
│ └──────┘ └──────┘ └──────┘ │
│ │
│ 平均响应时间:8分钟 ⬇️ 73% │
│ 任务完成率:100% ⬆️ 25% │
│ │
│ 师傅状态 │
│ ┌─────────────────────────────┐ │
│ │ 张师傅:在线空闲 ✓ │ │
│ │ 位置:1号楼附近 │ │
│ │ 技能:电工、水工 │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 李师傅:在线忙碌 ⚠️ │ │
│ │ 位置:2号楼 │ │
│ │ 当前任务:1个 │ │
│ └─────────────────────────────┘ │
│ │
│ 待处理任务 │
│ ⚠️ 一级危急:电梯困人(待派单) │
│ ⚠️ 二级紧急:水管爆裂(已派单) │
│ │
│ [查看详细报表] │
└─────────────────────────────────────┘地图视图:
┌───────────────────────────┐
│ 实时地图 │
├───────────────────────────┤
│ [地图显示] │
│ │
│ 师傅位置: │
│ • 张师傅 [在线空闲] │
│ • 李师傅 [在线忙碌] │
│ • 王师傅 [在线空闲] │
│ │
│ 任务位置: │
│ ⚠️ 电梯困人(1号楼) │
│ ⚠️ 水管爆裂(2号楼) │
│ │
│ [智能派单] [手动派单] │
└───────────────────────────┘实施效果
定量效果
| 指标 | 上线前 | 上线后 | 提升 |
|---|---|---|---|
| 平均响应时间 | 30 分钟 | 8 分钟 | ⬇️ 73.3% |
| 一级危急响应时间 | 15 分钟 | 4 分钟 | ⬇️ 73.3% |
| 任务完成率 | 80% | 100% | ⬆️ 25% |
| 调度效率 | 基准 | +60% | ⬆️ 60% |
| 业主满意度 | 3.5/5.0 | 4.7/5.0 | ⬆️ 34.3% |
定性效果
调度员反馈:
"最大的变化是派单快了,以前要一个个打电话,现在系统自动推荐,几秒钟就能派单。而且师傅位置实时显示,知道谁在附近,派单更准确。" —— 张调度员
维修师傅反馈:
"任务通知及时了,而且能看到任务位置和距离,知道哪些是紧急的,工作安排更合理。一级危急的任务会广播通知,不会错过。" —— 李师傅(维修工)
物业经理反馈:
"应急响应时间从30分钟缩短到8分钟,业主投诉大幅减少。特别是电梯困人这种危急情况,现在4分钟就能响应,业主满意度大幅提升。" —— 王经理(物业经理)
技术实现
技术栈
后端:
- Node.js + Express
- MySQL 数据库
- Redis 缓存
- WebSocket 实时通信
前端:
- 微信小程序(上报端)
- Android/iOS App(师傅端)
- Vue 3 + Element Plus(PC 调度端)
集成:
- 地图服务(高德/百度)
- 推送服务(极光推送/个推)
- 短信服务(阿里云/腾讯云)
核心代码片段
typescript
// 应急抢修调度服务
class EmergencyDispatchService {
async dispatchTask(taskId: string): Promise<Worker> {
// 1. 获取任务信息
const task = await this.getTask(taskId);
// 2. 一级危急事件:广播通知
if (task.urgency === 'critical') {
return await this.broadcastTask(task);
}
// 3. 其他级别:智能派单
const candidates = await this.getAvailableWorkers({
skills: [task.skillType],
status: 'online-idle',
inShift: true
});
// 4. 计算评分
const scoredWorkers = await Promise.all(
candidates.map(async worker => ({
worker,
score: await this.calculateScore(worker, task)
}))
);
// 5. 选择评分最高的
scoredWorkers.sort((a, b) => b.score - a.score);
const selectedWorker = scoredWorkers[0].worker;
// 6. 派单
await this.assignTask(taskId, selectedWorker.id);
// 7. 通知师傅
await this.notifyWorker(selectedWorker.id, {
type: 'NEW_TASK',
taskId: task.id
});
return selectedWorker;
}
private async broadcastTask(task: EmergencyTask): Promise<Worker> {
// 1. 广播通知所有在线师傅
const onlineWorkers = await this.getOnlineWorkers({
skills: [task.skillType]
});
await Promise.all(
onlineWorkers.map(worker =>
this.notifyWorker(worker.id, {
type: 'CRITICAL_TASK',
taskId: task.id,
allowGrab: true // 允许抢单
})
)
);
// 2. 等待抢单(2分钟)
const grabbedWorker = await this.waitForGrab(task.id, 2 * 60 * 1000);
if (grabbedWorker) {
return grabbedWorker;
}
// 3. 无人抢单,自动指派最近的
const nearestWorker = await this.findNearestWorker(task);
await this.assignTask(task.id, nearestWorker.id, true); // 强制指派
// 4. 通知主管
await this.notifySupervisor({
type: 'CRITICAL_TASK_NO_GRAB',
taskId: task.id,
assignedWorker: nearestWorker
});
return nearestWorker;
}
}扩展应用
这个场景的逻辑已经被复用到以下场景:
- 医院应急抢修 - 手术室、ICU设备故障应急
- 工厂设备故障 - 生产线停机抢修
- 酒店应急维修 - 客房设施紧急维修
查看完整系统
本场景是"易活PLUS 工单管理平台"的应急模块。
系统演示
如需查看系统演示或了解部署方案,请 联系我们 →

