62 lines
3.7 KiB
Markdown
62 lines
3.7 KiB
Markdown
# 00-Ops领域总览
|
||
|
||
本文档是 AIOT 平台 Ops(人工作业)领域的核心入口。
|
||
Ops 领域是平台当前的第一阶段核心基本盘,主要处理由人执行的各项业务流转。
|
||
|
||
## 一、业务边界定义
|
||
|
||
**Ops 领域负责:**
|
||
- 工单的完整生命周期管理(创建、派单、抢单、执行、挂起、验收)。
|
||
- 具体业务场景的人工作业标准(如保洁打卡、安保巡检)。
|
||
- 现场人员的排班与绩效数据基础收集。
|
||
|
||
**Ops 领域绝不负责:**
|
||
- **设备底层协议解析**:Ops 不关心设备是 MQTT 还是 HTTP 报文,它只接收 IoT 领域转化后的标准"事件"。
|
||
- **硬件实时控制**:Ops 不直接发指令给设备,若工单需要反控设备,必须调用 IoT 领域的内部 API。
|
||
- **财务计费结算**:Ops 只记录耗时和耗材,真正的结算和财务账单属于更上层的计费域。
|
||
|
||
## 二、当前落地状态
|
||
|
||
| 模块 | 状态 | 说明 |
|
||
|------|------|------|
|
||
| **基础工单状态机** | 🟢 已实现 | PENDING -> ACCEPT -> PROGRESS -> COMPLETED 闭环已通 |
|
||
| **工单队列系统** | 🟢 已实现 | 基于 `OrderQueueStatusEnum` 的公共队列,支持 P0 打断机制 |
|
||
| **抢单/派单基础逻辑** | 🟢 已实现 | 基础区域派单与并发抢单控制(基于 Redis)已上 |
|
||
| **安保巡检路线** | 🟡 建设中 | 基础空间树复用完成,防作弊打卡待深化 |
|
||
| **保洁耗材管理** | 🟡 建设中 | 耗材库存扣减与工单的事务一致性仍在打磨 |
|
||
| **智能派单算法** | 🔴 规划中 | 下阶段迭代,基于位置与手头任务数的智能派发 |
|
||
| **复杂异常流转** | 🔴 规划中 | 超时自动退回、不可抗力挂起的补偿机制待完善 |
|
||
|
||
## 三、核心基础设施
|
||
|
||
### 3.1 工单状态机 (`WorkOrderStatusEnum`)
|
||
所有 Ops 工单(保洁、安保、维修、客服)共享统一的状态流转:
|
||
- `PENDING` (待分配) → `QUEUED` (排队中) → `DISPATCHED` (已推送) → `CONFIRMED` (已确认) → `ARRIVED` (已到岗) → `COMPLETED` (已完成)
|
||
- 详见:[[01-工单生命周期与状态机.md]]
|
||
|
||
### 3.2 工单队列系统 (`OrderQueueStatusEnum`)
|
||
**公共基础设施**,所有需要排队调度的工单类型(目前主要是保洁)都依赖此系统:
|
||
- **队列状态**:`WAITING` (等待中) → `PROCESSING` (处理中) → `PAUSED` (暂停中) → `REMOVED` (已移除)
|
||
- **核心能力**:P0 紧急任务可打断当前执行中的低优先级任务
|
||
- **排序算法**:基于 `queueScore = 优先级分数 + 时间戳` 的复合排序
|
||
- 详见:[[02-工单队列系统.md]]
|
||
|
||
## 四、下属核心文档阅读指引
|
||
|
||
在深入具体业务前,请按以下顺序阅读:
|
||
|
||
1. **[[01-工单生命周期与状态机.md]]**
|
||
- 必读。这是所有 Ops 业务的底层底座,搞懂了状态机,就搞懂了代码里的核心 Enum 和边界校验。
|
||
2. **[[02-工单队列系统.md]]**
|
||
- 必读。理解工单如何在队列中排队、如何被 P0 紧急任务打断、如何计算优先级分数。
|
||
3. **[[03-保洁业务核心链路.md]]**
|
||
- 偏向"抢单执行与过程留存",重点看并发控制和防篡改。
|
||
4. **[[04-安保业务核心链路.md]]**
|
||
- 偏向"空间巡检与突发响应",重点看基于空间的点位设计和告警强推。
|
||
5. **[[05-保洁巡检与归属判定链路.md]]**
|
||
- 保洁特有的巡检业务,重点看基于停留时长的归属判定算法。
|
||
|
||
## 五、协作约束
|
||
|
||
- **状态机不可私增**:前端/移动端绝对禁止硬编码状态流转逻辑。所有合法状态流转必须由后端判断,任何新增状态必须先落文档。
|
||
- **领域数据隔离**:Ops 模块查询设备信息时,允许在工单表里冗余存储当时的设备名称和位置信息,禁止每次都跨模块 `JOIN` 设备表。 |