# 工单模块第二阶段功能设计方案 ## 1. 状态流转设计 ### 状态机模型 ```mermaid stateDiagram-v2 [*] --> Pending Pending --> InProgress: 开始处理\n(创建人/管理员) Pending --> Cancelled: 取消\n(创建人) InProgress --> Resolved: 解决\n(处理人) InProgress --> Pending: 退回\n(处理人) InProgress --> Escalated: 升级\n(处理人/系统) Resolved --> Closed: 确认关闭\n(创建人) Resolved --> Reopened: 重新打开\n(创建人) Escalated --> InProgress: 处理\n(上级) Escalated --> Closed: 强制关闭\n(管理员) ``` ### 状态转换规则 ```typescript const statusTransitions = { Pending: ['InProgress', 'Cancelled'], InProgress: ['Resolved', 'Pending', 'Escalated'], Resolved: ['Closed', 'Reopened'], Escalated: ['InProgress', 'Closed'], Reopened: ['InProgress', 'Closed'] }; ``` ### 权限控制矩阵 | 操作 | 允许角色 | |----------------|----------------------------| | 开始处理 | 创建人、管理员 | | 取消 | 创建人 | | 解决 | 处理人 | | 退回 | 处理人 | | 升级 | 处理人、系统自动 | | 确认关闭 | 创建人 | | 重新打开 | 创建人 | | 强制关闭 | 管理员 | ## 2. 处理时限设计 ### 超时提醒机制 - 普通工单:48小时未处理提醒 - 紧急工单:12小时未处理提醒 - 重大工单:2小时未处理提醒 ### 紧急程度分级 1. Low(低):72小时处理时限 2. Medium(中):48小时处理时限 3. High(高):24小时处理时限 4. Critical(紧急):4小时处理时限 ### 自动升级规则 1. 超时未处理自动升级 2. 同一工单被退回3次自动升级 3. 客户投诉触发升级 ## 3. 技术实现方案 ### 数据库变更 ```sql -- 新增字段 ALTER TABLE work_orders ADD COLUMN deadline TIMESTAMP; ALTER TABLE work_orders ADD COLUMN timeout_count INTEGER DEFAULT 0; ALTER TABLE work_orders ADD COLUMN escalation_level INTEGER DEFAULT 0; -- 超时日志表 CREATE TABLE work_order_timeout_logs ( id SERIAL PRIMARY KEY, work_order_id INTEGER REFERENCES work_orders(id), timeout_at TIMESTAMP NOT NULL, notified_at TIMESTAMP, resolved_at TIMESTAMP ); ``` ### API接口扩展 ```typescript // 状态变更接口增强 POST /work-orders/:id/status // 请求体新增参数 { "status": "in_progress", "operator": "user123", // 操作人 "comment": "开始处理" // 变更备注 } // 新增接口 POST /work-orders/:id/escalate // 工单升级 GET /work-orders/timeout // 获取超时工单 POST /work-orders/:id/remind // 发送提醒 ``` ### 前端交互优化 1. 状态变更弹窗增加必填备注 2. 超时工单显示红色倒计时 3. 紧急工单添加特殊标识 4. 自动刷新超时状态 5. 状态变更历史记录展示 ## 实施计划 1. 数据库变更(1天) 2. 后端API开发(3天) 3. 前端交互开发(2天) 4. 联调测试(2天)