Files
aiot-platform-cloud/docs/ops-architecture/README.md

175 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ops 业务运营模块架构文档
> **文档定位**Ops 模块的深度架构设计与演进文档
> **维护策略**按架构演进版本记录保留历史设计决策ADR
> **最后更新**2026-01-14
> **文档版本**v2.1.0
---
## 📖 文档说明
### Ops 模块简介
**OpsOperations业务运营模块**是 AIoT Platform 的核心业务模块,承载万物梁行的四大业务线:
| 业务线 | 代码模块 | 业务范围 |
|--------|----------|----------|
| **保洁** | `environment-biz` | 排班、巡检、耗材、智能调度 |
| **安保** | `security-biz` | 巡更、报警、岗位管理 |
| **工程** | `facilities-biz` | 维保、巡检、备件管理 |
| **客服** | `service-biz` | 投诉、建议、满意度 |
**核心能力**
- 工单引擎(基于状态机)
- 智能调度系统(自动派单、优先级队列)
- IoT 设备集成(工牌、信标、传感器)
- 绩效评价系统
### 文档结构
本文档分为 10 个部分,从架构总览到具体实现,全方位记录 Ops 模块的设计与演进。
```
Part 1: [架构总览](./part1-架构总览.md) - 业务背景、系统架构、核心概念
Part 2: [架构演进史](./part2-架构演进史.md) - 从阶段1到阶段3的演进历程
Part 3: [核心架构设计](./part3-核心架构设计.md) - 服务职责、分层设计、技术方案
Part 4: [关键技术方案](./part4-关键技术方案.md) - 状态机、队列、派单、事件驱动、P0打断
Part 5: [架构重构实践](./part5-架构重构实践.md) - 问题识别、重构方案、实施过程
Part 6: [性能与可靠性](./part6-性能与可靠性.md) - 优化、并发、可靠性保障
Part 7: [扩展性设计](./part7-扩展性设计.md) - 如何新增业务类型、扩展策略
Part 8: [测试指南](./part8-测试指南.md) - 单元测试、集成测试、性能测试
Part 9: [技术决策记录ADR](./part9-技术决策记录.md) - 记录重要技术决策
Part 10: [附录](./part10-附录.md) - 类图、时序图、术语表、变更日志
```
### 适用人群
- **Ops 模块开发者**:了解架构设计,参与功能开发
- **架构师**:理解设计决策,参与架构评审
- **技术负责人**:掌握技术债务,规划重构方向
- **新成员**:快速了解 Ops 模块的全貌
### 版本管理
| 版本 | 日期 | 主要内容 |
|------|------|----------|
| v1.0 | 2025-12 | 阶段2完成工单引擎、状态机、事件溯源 |
| v2.0 | 2026-01 | 阶段3规划智能调度系统 |
| v2.1 | 2026-01-06 | 架构重构方案(重新定义组件职责) |
---
## 🗂️ 快速导航
### 我想知道...
**业务相关**
- [Ops 模块有哪些业务线?](./part1-架构总览.md#14-四大业务线)
- [保洁工单的完整流程是什么?](./part1-架构总览.md#13-核心业务流程)
- [如何处理紧急任务打断?](./part4-关键技术方案.md#45-p0-紧急任务打断)
**架构相关**
- [Ops 模块的整体架构是什么?](./part1-架构总览.md#12-系统架构)
- [服务职责如何划分?](./part3-核心架构设计.md#31-服务职责划分)
- [为什么要重构 DispatchEngine](./part5-架构重构实践.md#51-问题识别)
**技术实现**
- [状态机如何实现?](./part4-关键技术方案.md#41-状态机实现详解)
- [Redis + MySQL 混合队列如何设计?](./part3-核心架构设计.md#33-redis--mysql-混合队列)
- [事件驱动架构如何实现?](./part4-关键技术方案.md#44-事件驱动架构)
**开发相关**
- [如何新增一个业务类型?](./part7-扩展性设计.md#71-新增业务条线流程)
- [如何扩展派单策略?](./part7-扩展性设计.md#72-自定义派单策略)
- [如何编写单元测试?](./part8-测试指南.md#81-单元测试规范)
- [有哪些重大的技术决策?](./part9-技术决策记录.md)
- [如何查询术语定义?](./part10-附录.md#101-核心术语表)
---
## 📚 核心概念
### 工单Work Order
工单是 Ops 模块的核心业务对象,代表一个需要处理的任务。
**工单类型**
- `CLEAN` - 保洁工单
- `REPAIR` - 维修工单
- `SECURITY` - 安保工单
- `SERVICE` - 客服工单
**工单状态**
- `PENDING` - 待接单
- `ASSIGNED` - 已分配
- `ARRIVED` - 已到岗
- `PAUSED` - 已暂停
- `COMPLETED` - 已完成
- `CANCELLED` - 已取消
### 优先级Priority
**优先级等级**
- `P0` - 紧急(可打断当前任务)
- `P1` - 重要(优先处理)
- `P2` - 普通(正常排队)
**关键特性**
- P0 任务会打断保洁员当前正在执行的任务
- P0 任务完成后,自动恢复被中断的任务
### 队列Queue
每个保洁员/维修工都有一个优先级队列,存储待处理的任务。
**队列状态**
- `WAITING` - 等待中
- `PROCESSING` - 处理中
- `PAUSED` - 暂停中
- `REMOVED` - 已移除
**技术实现**Redis Sorted Set + MySQL 混合队列
### 派单引擎Dispatch Engine
根据策略自动推荐最合适的执行人员。
**派单策略**
- 区域优先策略(就近分配)
- 负载均衡策略(考虑当前任务数)
- 技能匹配策略(维修工单需要相应技能)
### 状态机State Machine
管理工单的状态转换,保证状态一致性。
**核心能力**
- 状态转换规则验证
- 事件记录(事件溯源)
- 监听器/事件处理器通知
---
## 🔗 相关文档
- [AIoT Platform 技术全景文档](../technical-overview/README.md)
- [部署指南](../deployment-guide.md)
- [工单调度系统技术实现汇报文档](../工单调度系统技术实现汇报文档.md)
- [阶段2实现总结](../phase2-implementation-summary.md)
---
## 📧 贡献指南
本文档是 Ops 模块的官方架构文档,欢迎团队成员贡献:
1. **新增内容**:在对应章节添加,更新目录和版本号
2. **修正错误**:标注修正位置和原因
3. **补充示例**:添加代码示例和图表
4. **记录决策**:使用 ADR 格式记录技术决策
---
**下一章**[Part 1: 架构总览](./part1-架构总览.md)