# 实施路线 ## M0:工程基线 - [x] 仓库、目录、环境和编码约定 - [x] 本地基础依赖配置 - [x] OpenAPI 基础契约 - [x] Kotlin 后端 Wrapper、测试和构建入口 - [x] Trace ID、统一异常和数据库基础迁移 - [x] GitLab CI 格式检查、测试和 Android 构建流水线 ## M1:身份与组织 - [x] Keycloak Realm、移动客户端和开发测试身份 - [x] Flutter OIDC Authorization Code + PKCE、安全 Token 存储、刷新与退出 - [x] 当前用户 OA 数据查询 - [x] 租户、部门、人员、岗位、任职关系和角色基础模型 - [x] 统一鉴权、错误结构、Trace ID 和审计基础 - [x] Keycloak 与后端容器端到端验证 - [x] 设备注册、撤销与远程注销 - [x] 数据范围与工具权限 ## M2:请假审批闭环 - [x] 请假草稿数据模型和版本 - [x] 草稿创建、修改、本人查询与列表 API - [x] 创建幂等、租户/用户隔离和乐观锁 - [x] 提交、撤回、状态时间线和同步审计 - [x] Flowable 部门主管审批流程发布与执行 - [x] 发起、主管待办、批准、驳回、撤回和时间线 - [x] 多任务流程的中间审批事件与最终流程结束判定 - [x] 按请假时长路由的主管与 OA 条件串行审批 - [x] 长期年假的 OA 与 HR 并行会签及任一驳回终止 - [x] Flutter 工程、四栏导航和 Schema 驱动请假表单卡片 - [x] 后端表单定义 API、客户端远程加载与离线缓存 - [x] 移动端未完成草稿自动保存、损坏隔离与弱网恢复 - [x] 移动端后端草稿创建与失败提交幂等重试 - [x] 请假附件元数据、MinIO 预签名上传、完成校验、下载与删除 API - [x] Flutter 附件选择、上传进度、MinIO 直传与附件卡片 - [x] 站内通知、未读数、已读状态、审批待办与结果通知 - [x] Flutter 主管待办列表、批准驳回与幂等安全重试 - [x] Flutter 我的申请、提交、撤回、详情和流程时间线 - [x] APNs / FCM 推送(Firebase 配置存在时启用,缺失时降级站内通知) ## M3:AI 最小闭环 - [x] 千问自然语言生成受约束请假草稿建议 - [x] 查询本人流程进度 - [x] 确认卡片、Kotlin 代理鉴权和 AI 审计 ## Definition of Done 每项功能必须同时具备:权限校验、审计、自动化测试、契约更新、错误处理和最小可观测性。