序列图说明
编写人:刘洋
场景:员工提交事假并由主管审批
样例时间:9月19日 16:14 至 16:40
样例单据:LV-0000-054
一、场景说明
本文描述行政协同平台中一条请假从提交到办结的调用顺序。样例为 9月19日陈静向主管张伟提交事假 1 天,单据号 LV-0000-054。参与方包括员工浏览器、网关、请假服务、数据库、通知服务和主管浏览器。整条链路在 26 分钟内结束,其中系统处理约 3 秒,其余时间为主管阅读和点击。
二、参与对象
- 员工浏览器负责填写类型、日期和事由,并展示处理中与已完成。
- 网关校验令牌、生成 requestId,并把请求转发到请假服务。
- 请假服务写入单据、更新状态,并调用通知服务。
- 通知服务向主管发送待办,在审批完成后向员工发送办结消息。
- 主管浏览器展示待办,提交同意或驳回以及意见。
三、主成功过程
陈静于 16:14 提交事假,事由为「家中办事」,日期为次日一天。请假服务写入状态「处理中」,并请通知服务给张伟发待办。张伟于 16:40 打开待办,核对日期后选择同意,意见为「同意,注意交接」。请假服务把状态更新为「已完成」,再通知陈静。陈静的页面在刷新后显示已完成,企业微信消息于 16:40:02 送达。
四、步骤明细
下表按实际发生顺序记录。耗时取自测试环境日志,requestId 前缀为 REQ-0919。
五、分支情况
- 结束日期早于开始日期时,请假服务在步骤 2 返回业务码 40031,数据库不插入单据。
- 张伟选择驳回时,步骤 5 必须带意见。状态改为已驳回,员工收到驳回消息和意见原文。
- 通知服务超时则步骤 4 重试 2 次,间隔 5 秒。仍失败时单据保持处理中,页面提示稍后查看待办。
- 陈静在张伟审批前撤回,状态改为已撤回,主管待办同时消失,本次样例未走该分支。
六、时限与幂等
提交接口的幂等键由前端按员工工号、类型和起止日期生成。陈静在 16:14 因网络重试提交了两次,服务只保留 LV-0000-054 一张单据。主管同意请求同样携带幂等键,重复点击只更新一次。待办超过 48 小时未处理时,通知服务于每个工作日 09:30 再提醒主管一次,最多提醒 3 次。刘洋要求步骤 1 至步骤 4 的系统耗时在 3 秒以内,9月19日这条样例为 2 秒。
步骤 4 与步骤 7 使用固定模板。主管待办模板编号为 TPL-LEAVE-TODO,员工办结模板编号为 TPL-LEAVE-DONE。9月19日两条发送日志均为成功,通道为企业微信。主管超过 48 小时未处理时,下一工作日 09:30 按步骤 4 再发一次提醒,单据保持处理中,最多提醒 3 次。陈静确认处理中页面展示「等待主管审批」,主管姓名取自员工档案中的直属主管,样例中显示张伟。