# 调压任务模块说明(`src/tasks`) ## 1. 目标 - 管理调压主任务 `Task` 与明细 `TaskItem`。 - 支持状态机流转与事件触发,保证设备压力同步更新。 ## 2. 状态机 - `PENDING -> ACCEPTED -> COMPLETED` - `PENDING/ACCEPTED -> CANCELLED` 非法流转会返回 `409` 冲突错误(中文消息)。 ## 3. 角色权限 - 医生:发布任务、取消自己创建的任务 - 工程师:接收任务、完成自己接收的任务 - 其他角色:默认拒绝 ## 4. 事件触发 状态变化后会发出事件: - `task.published` - `task.accepted` - `task.completed` - `task.cancelled` 用于后续接入微信通知或消息中心。 ## 5. 完成任务时的设备同步 `completeTask` 在单事务中执行: 1. 更新任务状态为 `COMPLETED` 2. 读取 `TaskItem.targetPressure` 3. 批量更新关联 `Device.currentPressure` 确保任务状态与设备压力一致性。