0. 文档说明
- 本文档为需求文档,只定义"做什么":第 1~~8 节为页面与交互,第 9 节为系统执行与发放的业务流程。具体技术实现(平台接口、数据结构等)由技术侧自主决策,本文档不做限定。
- 文中「」表示 UI 元素,「『』」表示枚举值/状态码。
1. 功能总览
一句话:给每个客户配一条加班餐规则,系统按规则定时去客户的考勤平台拉打卡/补卡数据,判定谁加班了,自动发券或充值,并可选发站内信通知。
1.1 模块关系
规则配置页(本 PRD)
│ 写入规则
▼
规则表 ──► 定时任务调度器(按「触发任务」配置的时间点触发)
│ 1. 按客户选的平台,拉取该平台的考勤数据
│ 2. 按「加班判定」过滤
│ 3. 按「考勤日期+员工」去重
│ 4. 按「补贴配置」发放
│ 5. 按「通知配置」发站内信
▼
悠饭现有能力
├─ 优惠券系统(发券)
├─ 员工月补账户(充值)
├─ 员工钱包账户(充值)
├─ 站内信(通知 / 强推)
└─ 法定日历(工作日判定)
1.2 关键约束(全局,不可配置)
| 约束 | 说明 |
|---|---|
| 一客户一规则 | 同一 companyId 只能存在 1 条规则 |
| 一客户一平台 | 一个客户只会使用一个考勤平台,不存在多平台并存 |
| 防重复发放 | 同一员工同一考勤日期,无论打卡/补卡触发多少次,只发放 1 次 |
| 每人独立发券 | 不允许"内容相同则合并",必须每人一张独立券 |
| 发放记录不新建页面 | 复用悠饭现有的「优惠券列表页 / 员工钱包充值记录页 / 员工月补充值记录页」 |
| 平台凭证不在此处录入 | 凭证由系统其他位置统一维护,规则里只选平台类型 |
2. 权限
接入悠饭现有权限体系,不新建权限模型。
| 权限类型 | 控制内容 |
|---|---|
| 页面权限 | 控制谁能进入「运营工具-加班餐」页面。无权限则不显示菜单入口 |
| 操作权限 | 控制 查看 / 新建 / 编辑 / 启用停用 / 删除 五个动作 |
权限不足时的表现:
- 无「新建」权限 → 不显示「新建规则」按钮,同时列表开关置灰不可点
- 无「编辑」权限 → 操作列不显示「编辑」,详情弹窗底部不显示「编辑」按钮
- 无「删除」权限 → 操作列不显示「删除」
3. 规则列表页
原型要点:筛选条(4 项 + 重置靠右)→ 工具条(「新建规则」+ 汇总)→ 规则表格 → 分页。
3.1 筛选条
筛选为实时生效:任一筛选项变更(含清空),列表立即过滤并回到第 1 页。
| 控件 | 类型 | 说明 |
|---|---|---|
| 「客户名称」 | 可搜索下拉框 | 输入关键字过滤;选项取当前账号资源权限下的客户简称 |
| 「考勤平台」 | 下拉单选 | 全部 / 飞书 / 企业微信 / 钉钉 |
| 「补贴形式」 | 下拉单选 | 全部 / 发优惠券 / 充值月补 / 充值钱包 |
| 「启用状态」 | 下拉单选 | 全部 / 已启用 / 未启用 |
| 「重置」 | 按钮 | 靠右;点击清空全部筛选项并立即恢复全量(回到第 1 页) |
3.2 汇总条
文案:共 X 条规则,其中 Y 条已启用(X、Y 橙色高亮)。随筛选结果实时变化。
3.3 表格列
| 列 | 宽度 | 内容 |
|---|---|---|
| 序号 | 50 | 跨页连续(第 2 页第 1 条 = 11) |
| 客户名称 | 弹性(min 140) | 超长省略 + tooltip |
| 考勤平台 | 100 | 彩色标签(飞书蓝 / 企微绿 / 钉钉橙) |
| 补贴形式 | 100 | 发优惠券 / 充值月补 / 充值钱包 |
| 金额(元) | 90 | 右对齐,红色加粗 ¥30.00 |
| 触发任务 | 90 | N 条 |
| 下班窗口 | 130 | 21:00 ~ 04:00 |
| 创建时间 | 150 | yyyy-MM-dd HH:mm |
| 启用状态 | 90 | 开关 |
| 操作 | 130 | 查看 / 编辑 / 删除(文字按钮,删除红色),固定右列 |
3.4 交互
- 「新建规则」:跳配置页(清空,默认未启用)
- 「查看」:打开规则详情弹窗(第 6 节)
- 「编辑」:跳配置页,回填该条数据
- 「删除」:弹二次确认(第 7 节)
- 启用开关:点击后开关先视觉还原,弹二次确认;确认才真正改状态,取消则保持原值
- 分页:默认 10 条/页,可选 10/20/50/100,显示总数与跳页
- 空态:列表无数据时显示「暂无加班餐规则,点击右上角「新建规则」创建」
4. 规则配置页(新建 / 编辑)
原型要点:独立页面(非弹窗)。顶部「返回」+ 标题;五张卡片:基础信息 / 触发任务 / 加班判定 / 补贴配置 / 通知配置;底部「取消 / 保存规则」吸底常显。
4.1 基础信息
| 控件 | 类型 | 状态/规则 |
|---|---|---|
| 「客户名称」 | 可搜索下拉框(必填) | 新建可改;编辑时只读不可改。列表获取当前账号资源权限下的客户简称;若该客户已有规则,新建时提示并拦截 |
| 「考勤平台」 | 单选按钮组(必填) | 飞书 / 企业微信 / 钉钉。切换平台时清空已勾选的排除状态 |
平台说明文案:平台接口凭证由系统统一维护,此处仅选择客户使用的考勤平台
4.2 触发任务
一行 = 一条触发任务 = 一个定时任务。
| 列 | 控件 | 规则 |
|---|---|---|
| 执行时间 | 时间选择器 | 每天 HH:mm 执行。禁选 11:30-13:00、17:30-19:00(餐段高峰期):选择器置灰 + 保存校验双保险 |
| 查询内容 | 下拉单选 | 打卡记录 / 补卡记录 / 全部记录 |
| 查询范围 | 数字输入 | 最近 N 天,1~90 |
| 预览 | 只读文本 | 每天 xx:xx 执行 / 查询最近 x 天的 xx 记录 |
| 删除 | 图标按钮 | 仅剩 1 条时置灰 |
- 「添加触发任务」虚线按钮,可无限加行(不超过 6 条)
- 重复校验:执行时间 + 查询内容 + 查询范围三者完全相同即重复 → 整行红色高亮 +
与第 N 条任务重复,不允许保存+ 保存被拦截;改掉任一项提示即消失 - 默认两条:
04:30 查打卡记录(最近 1 天)、05:00 查补卡记录(最近 40 天) - 顶部提示条:
执行时间已禁用餐段高峰期 11:30-13:00 / 17:30-19:00,以免影响订单查询性能。推荐配置在下班窗口结束后(如 04:30 起,避免窗口未结束导致漏发)。
4.3 加班判定
| 控件 | 类型 | 状态/规则 |
|---|---|---|
| 防重复发放 | 橙色提示条(固定,不可关闭) | 同一员工在同一天内,无论触发多少次(打卡或补卡),系统都只发放一次补贴,按「考勤日期 + 员工」去重 |
| 「下班时间窗口」 | 两个时间选择器(必填) | 支持跨天,21:00 ~ 04:00 = 当日 21:00 后至次日 04:00 前 |
| 「加班总时长」 | 开关 + 数字输入 | 默认关(不限制)。开启后设「不低于 N 小时」,0.5~12,步长 0.5 |
| 「累计工时」 | 开关 + 数字输入 | 默认关。开启后设「不低于 N 小时」,1~16,步长 0.5 |
| 「工作日类型」 | 开关 + 单选按钮组 | 默认关(不区分)。开启后单选:工作日 / 周末 / 法定节假日 / 任意。判定读取悠饭系统现有法定日历 |
| 「排除状态」 | 多选勾选框 | 选项随考勤平台切换;员工被识别为勾选状态即不发放 |
下班窗口解释文案:下班时间窗口:员工当日最后一次下班打卡时间落在此时间范围内,即视为加班。支持跨天窗口,如 21:00 ~ 04:00 表示当日 21:00 后至次日 04:00 前下班均计入。
工作日类型解释文案:工作日 / 周末 / 法定节假日的判定读取悠饭系统的法定日历。
排除状态说明文案:仅排除勾选的状态(多选)。同一员工只要被识别为这些状态(含迟到/早退/旷工等考勤异常),就不再发放当日补贴。
各平台排除状态选项:
| 平台 | 选项 |
|---|---|
| 飞书 | 出差 / 请假 / 外出 / 补卡申请中 / 补卡(事后补录)/ 外勤打卡 |
| 企业微信 | 请假 / 补卡 / 出差 / 外出 / 审批打卡 / 外勤 |
| 钉钉 | 补卡 / 早退 / 迟到 / 严重迟到 / 旷工 / 未打卡 / 出差 / 请假 / 外出 |
钉钉额外提示条:钉钉考勤接口不直接返回出差/请假/外出,需通过审批流程关联判定。下方"出差/请假/外出"项由系统自动调用审批接口实现,勾选效果与其他平台一致。
4.4 补贴配置
| 控件 | 类型 | 状态/规则 |
|---|---|---|
| 「补贴形式」 | 单选按钮组(必填) | 发优惠券 / 充值月补 / 充值钱包,三选一 |
| 「补贴金额」 | 数字输入(必填) | 范围 0.01~500 元,精度 2 位;发券时单位「元 / 张」,充值时「元 / 人 / 次」 |
选择「发优惠券」时展开:
| 控件 | 类型 | 状态/规则 |
|---|---|---|
| 「餐段」 | 多选勾选框(必填) | 不限 / 早餐 / 午餐 / 晚餐 / 下午茶 / 宵夜。勾「不限」自动清空其他;勾其他自动取消「不限」 |
| 「券有效期」 | 数字输入 | 1~24 个月,默认 6 |
| 「商家范围」 | 单选按钮组 | 不限 / 指定门店 |
| 「指定门店」 | 多选搜索框 | 仅当商家范围 = 指定门店时显示 内可选内容为该客户的商家库商家列表 |
选择「充值月补」/「充值钱包」时展开:
| 控件 | 内容 |
|---|---|
| 「补贴金额」 | 元 / 人 / 次 |
| 「账户说明」 | 月补:橙色标签 月补账户 · 当月有效,次月自动清零;钱包:绿色标签 钱包账户 · 长期有效,不清零 |
提示:每人独立发券,不合并(现有券功能只能按券停用,合并会导致停一张影响多名员工)
4.5 通知配置
| 控件 | 类型 | 状态/规则 |
|---|---|---|
| 「通知开关」 | 开关 | 默认关。关时右侧显示 不发通知(员工自行查看账户/券) |
| 「通知内容」 | 文本域 | 仅开关打开时显示。支持变量占位符,上限 200 字 |
| 「强推通知」 | 开关 | 仅通知开关打开时显示 |
- 可用变量:
{员工名}{日期}{补贴形式}{金额}{餐段},发送时自动替换。适用条件:{日期}指考勤日期;{餐段}仅补贴形式为「发优惠券」时有值,充值月补/钱包时替换为空。 - 强推提示条:
强推开关说明:启用后会使用站内信强推功能,用户进入订餐系统后会置顶该通知。
4.6 底部操作栏
「取消」(返回不保存)/ 「保存规则」(橙色)。滚动时始终可见。
5. 控件状态 × 联动矩阵
这是本文档的核心表,请对照实现。
| # | 控件 | 取值状态 | 模块内联动 | 跨模块 / 后续流程联动 | 校验与提示 |
|---|---|---|---|---|---|
| 1 | 客户名称 | 空 | — | 保存拦截 | 请选择客户名称 |
| 1 | 客户名称 | 已选(新建) | — | 保存时校验该客户是否已存在规则 | 该客户已存在加班餐规则 |
| 1 | 客户名称 | 已选(编辑) | 控件只读置灰 | — | — |
| 2 | 考勤平台 | 飞书 | 排除状态选项切换为飞书 6 项 | 定时任务对接飞书平台数据 | — |
| 2 | 考勤平台 | 企业微信 | 排除状态切换为企微 6 项 | 对接企微平台数据 | — |
| 2 | 考勤平台 | 钉钉 | 排除状态切换为钉钉 9 项 + 显示审批关联提示条 | 对接钉钉平台数据(排除状态需读审批数据) | — |
| 2 | 考勤平台 | 发生切换(任一→另一) | 清空已勾选的排除状态 | — | 无提示,直接清空 |
| 3 | 触发任务·执行时间 | 11:30-13:00 / 17:30-19:00 | 时间选择器该时段置灰 | 保存拦截 | 触发任务时间 HH:mm 处于餐段高峰期,请调整 |
| 3 | 触发任务·执行时间 | 其他时间 | — | 生成对应 cron 表达式 | — |
| 3 | 触发任务·执行时间 | 空 | — | 保存拦截 | 请完善所有触发任务的时间 |
| 3 | 触发任务·查询内容 | 打卡记录 | 预览文案更新 | 执行时只查打卡接口 | — |
| 3 | 触发任务·查询内容 | 补卡记录 | 预览文案更新 | 执行时只查补卡接口 | — |
| 3 | 触发任务·查询内容 | 全部记录 | 预览文案更新 | 执行时打卡 + 补卡接口都查 | — |
| 3 | 触发任务·查询范围 | 1~90 | 预览文案更新 | 查询天数作为数据拉取范围。平台硬限制:企微单次最多查 30 天、钉钉单次最多查 7 天、钉钉查不了 180 天前的数据 | 超出平台可查范围时技术侧记录日志(配置上限 90 天,正常不触发) |
| 3 | 触发任务行 | 与本表其他行三项完全相同 | 整行红色高亮 + 行内提示 | 保存拦截 | 与第 N 条任务重复,不允许保存 |
| 3 | 触发任务行 | 仅剩 1 条 | 删除按钮置灰 | — | — |
| 4 | 下班时间窗口 | 未填 | — | 保存拦截 | 请设置下班时间窗口 |
| 4 | 下班时间窗口 | 开始 > 结束(如 21:00~04:00) | — | 判定为跨天窗口,次日凌晨下班计入当日 | — |
| 4 | 下班时间窗口 | 开始 < 结束(如 18:00~23:00) | — | 判定为当日窗口 | — |
| 5 | 加班总时长 | 关 | 显示 不限制时长,隐藏数字输入 | 判定流程跳过该条件 | — |
| 5 | 加班总时长 | 开 | 显示 不低于 [N] 小时(当日加班持续的时长) | 判定流程增加该条件,不满足不发 | 0.5~12 |
| 6 | 累计工时 | 关 | 显示 不限制,隐藏输入 | 判定流程跳过 | — |
| 6 | 累计工时 | 开 | 显示 不低于 [N] 小时(当日累计总工时,含正常上班时长) | 判定流程增加该条件 | 1~16,步长 0.5 |
| 7 | 工作日类型 | 关 | 显示 不区分工作日类型,隐藏单选组 | 判定流程跳过 | — |
| 7 | 工作日类型 | 开 + 工作日 | — | 调法定日历,非工作日剔除 | — |
| 7 | 工作日类型 | 开 + 周末 | — | 调法定日历,非周末剔除 | — |
| 7 | 工作日类型 | 开 + 法定节假日 | — | 调法定日历,非节假日剔除 | — |
| 7 | 工作日类型 | 开 + 任意 | — | 不区分,全部纳入 | — |
| 8 | 排除状态 | 未勾任何项 | — | 不排除任何人 | — |
| 8 | 排除状态 | 勾中 N 项 | — | 命任一项即剔除 | — |
| 9 | 补贴形式 | 发优惠券 | 展开券子表单(餐段/有效期/商家范围);隐藏账户说明标签 | 发放时调优惠券系统,写「优惠券列表页」 | — |
| 9 | 补贴形式 | 充值月补 | 隐藏券子表单;显示橙色账户标签 | 发放时调月补充值接口,写「员工月补充值记录页」 | — |
| 9 | 补贴形式 | 充值钱包 | 隐藏券子表单;显示绿色账户标签 | 发放时调钱包充值接口,写「员工钱包充值记录页」 | — |
| 9 | 补贴形式 | 发生切换 | 子表单整体切换,金额保留不清空 | — | — |
| 10 | 餐段 | 勾「不限」 | 自动清空早/午/晚/下午茶 | 券在所有餐段可用 | — |
| 10 | 餐段 | 勾其他任一项 | 自动取消「不限」 | 券仅在勾选餐段可用 | — |
| 10 | 餐段 | 全不勾 | — | 保存拦截 | 请选择餐段 |
| 11 | 商家范围 | 不限 | 隐藏「指定门店」选择器 | 券全门店通用 | — |
| 11 | 商家范围 | 指定门店 | 显示「指定门店」多选搜索框(必填) | 券仅限指定门店使用 | 未选门店时保存拦截 |
| 12 | 通知开关 | 关 | 隐藏「通知内容」「强推通知」 | 发放后不发站内信 | — |
| 12 | 通知开关 | 开 | 显示「通知内容」「强推通知」 | 发放后发站内信 | — |
| 12 | 通知开关 | 开→关 | 隐藏两个子控件(内容保留不清除,再次打开仍在) | — | — |
| 13 | 强推通知 | 关 | — | 普通站内信 | — |
| 13 | 强推通知 | 开 | — | 站内信置顶强推,员工进入订餐系统首屏可见 | — |
| 14 | 列表·启用开关 | 点击 | 开关先视觉还原,弹确认框 | 确认:真正改状态 + 定时任务启停;取消:保持原值 | 见第 7 节文案 |
| 15 | 列表·查看 | 点击 | 打开只读详情弹窗 | 弹窗内「编辑」可跳编辑页 | — |
| 16 | 列表·删除 | 点击 | 弹确认框 | 确认:删规则 + 停所有定时任务 | 见第 7 节文案 |
6. 规则详情弹窗
列表页「查看」打开,只读展示五个分区,底部「关闭 / 编辑」。
展示内容:
| 分区 | 展示项 |
|---|---|
| 基础信息 | 客户名称、考勤平台、启用状态、创建时间(规则创建时间) |
| 触发任务 | 每行:每天 HH:mm 执行 · 查询最近 N 天的 XXX 记录 |
| 加班判定 | 下班时间窗口、加班总时长(或「不限制」)、累计工时(或「不限制」)、工作日类型(或「不区分」)、排除状态(标签组,无则显示「无」) |
| 补贴配置 | 补贴形式、补贴金额;发券时追加:餐段、券有效期、商家范围(+ 门店列表);充值时追加:账户说明标签 |
| 通知配置 | 通知开关(启用/未启用)、通知内容原文、强推(是/否) |
「编辑」按钮:跳转编辑页并回填该条数据(无编辑权限时隐藏)。
- 空态:某分区无值时,对应区域显示「无」。
7. 二次确认弹窗(启用 / 停用 / 删除)
三套弹窗结构一致:标题 + 主问句(客户名橙色加粗)+ 影响说明块 + 「取消 / 确认」按钮。
7.1 启用
标题:启用规则
主文案:确认启用客户「悠星网络」的加班餐规则?
说明块(蓝色 info 样式):
启用后:
① 系统将按配置的触发任务自动执行查询
② 符合加班判定的员工将自动收到补贴
③ 建议先与客户确认规则配置无误再启用
按钮:取消 / 确认启用(橙色)
7.2 停用
标题:停用规则
主文案:确认停用客户「悠星网络」的加班餐规则?
说明块(黄色 warning 样式):
停用后:
① 该规则的所有触发任务将不再执行
② 未来满足条件的员工不再发放加班餐补贴
③ 已发放的券/月补/钱包金额不受影响,员工可继续使用
④ 规则配置仍保留,可在列表中重新启用
按钮:取消 / 确认停用(橙色)
7.3 删除
标题:删除规则
主文案:确认删除客户「悠星网络」的加班餐规则?
说明块(黄色 warning 样式):
影响范围:
① 该规则的所有触发任务将立即停用
② 未来触发时该客户全员不再发放加班餐
③ 已发出但未消费的优惠券将保留(按券设置过期失效)
④ 已充值到月补/钱包的金额不会被撤回
⑤ 删除后不可恢复,请确认。(红色)
按钮:取消 / 确认删除(danger 红色)
8. 校验规则清单
8.1 前端校验(保存时逐条,命中即报错并滚动定位)
| # | 校验项 | 错误提示 |
|---|---|---|
| 1 | 客户名称非空 | 请选择客户名称 |
| 2 | 客户唯一性(仅新建) | 该客户已存在加班餐规则 |
| 3 | 考勤平台已选 | 请选择考勤平台 |
| 4 | 触发任务至少 1 条且时间非空 | 请完善所有触发任务的时间 |
| 5 | 触发时间不落在 11:30-13:00 / 17:30-19:00 | 触发任务时间 HH:mm 处于餐段高峰期,请调整 |
| 6 | 触发任务无重复(时间+内容+范围三项全同) | 第 M 条与第 N 条触发任务重复 |
| 7 | 下班时间窗口已填 | 请设置下班时间窗口 |
| 8 | 加班总时长开启时数值在 0.5~12 | 加班总时长需在 0.5 ~ 12 小时之间 |
| 9 | 累计工时开启时数值在 1~16 | 累计工时需在 1 ~ 16 小时之间 |
| 10 | 工作日类型开启时已单选 | 请选择工作日类型 |
| 11 | 补贴形式已选 | 请选择补贴形式 |
| 12 | 补贴金额在 0.01 ~ 500 元之间 | 补贴金额需在 0.01 ~ 500 元之间 |
| 13 | 发券时餐段至少勾 1 项 | 请选择餐段 |
| 14 | 券有效期在 1~24 | 券有效期需在 1 ~ 24 个月之间 |
| 15 | 商家范围=指定门店时门店非空 | 请选择指定门店 |
| 16 | 通知开启时通知内容非空,且 ≤ 200 字 | 请填写通知内容 |
| 17 | 触发时间晚于下班窗口结束时间 | 触发时间需晚于下班窗口结束,避免漏发 |
8.2 后端校验(保存接口必须重复校验,不能只信前端)
- 全部 8.1 项在服务端重复一遍
- 客户唯一性校验需防并发(避免同时保存产生两条同客户规则),实现方式由技术侧决定
- 触发任务改动后需同步更新调度器中的定时任务(新增/删除/改时间都要生效)
9. 系统执行与发放流程(业务视角)
本章描述规则启用后,系统自动执行的完整业务闭环。只定义每一步"做什么、什么结果",具体实现方式由技术侧决定。
9.1 触发
- 每条「触发任务」落地为一个定时任务,到点自动执行
- 规则的新增 / 编辑 / 启用 / 停用 / 删除即时生效(改完即生效,无需重启服务)
- 规则停用 = 该规则下所有定时任务暂停执行;删除 = 立即停止
9.2 单次执行流程(六步闭环)
① 拉取考勤数据
按客户所选平台拉取,内容和范围按「触发任务」配置(打卡 / 补卡 / 全部,最近 N 天)
② 排除人员
命中「排除状态」的员工剔除
③ 加班判定
已开启的判定条件需同时满足:下班窗口、加班总时长、累计工时、工作日类型
④ 防重复
同一员工同一考勤日期,只发放一次(打卡、补卡、多次触发都不重复发)
⑤ 发放
按补贴形式发放:发优惠券 / 充值月补 / 充值钱包,并记录发放结果
⑥ 通知
通知开关打开时发站内信;强推开关决定是否置顶
9.3 关键业务规则
| 规则 | 说明 |
|---|---|
| 跨天窗口归属 | 下班窗口跨天时(如 21:00 ~ 04:00),次日凌晨下班计入前一考勤日 |
| 补卡补发 | 补卡任务拉到历史日期记录时,按防重复规则处理:已发放过则跳过,未发放且符合判定的正常补发 |
| 停用的影响 | 停用后触发任务不再执行,但已发放的券 / 月补 / 钱包不受影响,员工可继续使用 |
| 删除的影响 | 已发出未消费的券按券有效期自然失效;已充值金额不撤回(文案见第 7 节确认弹窗) |
| 发放记录 | 复用现有「优惠券列表页 / 员工月补充值记录页 / 员工钱包充值记录页」,本功能不新建页面(标识规范见 9.4) |
9.4 发放记录标识规范
发放记录复用现有页面、不新建。为保证对账时能一眼区分"这条是加班餐发的",三种记录按下表写入标识信息。
| 发放形式 | 记录位置 | 标识字段 | 内容格式 | 示例 |
|---|---|---|---|---|
| 发优惠券 | 优惠券列表页 | 优惠券名称 | 加班餐·{考勤日期YYYY-MM-DD}·{员工姓名} | 加班餐·2026-09-13·张三 |
| 充值月补 | 员工月补充值记录页 | 备注 | 加班餐·{考勤日期YYYY-MM-DD} | 加班餐·2026-09-13 |
| 充值钱包 | 员工钱包充值记录页 | 备注 | 加班餐·{考勤日期YYYY-MM-DD} | 加班餐·2026-09-13 |
格式说明:
- 考勤日期取触发本次发放的考勤日期(跨天窗口按 9.3 归属规则),不是发放当天的日期
- 金额、员工、时间等其余信息以各记录页现有字段为准,除优惠券外,不重复写进备注
9.5 异常与兜底(业务口径)
| 场景 | 口径 | 告警 |
|---|---|---|
| 考勤平台数据拉取失败 | 自动重试;仍失败则触发告警机器人发送至研发中心群,不影响下一次执行 | 严重·立即 |
| 部分员工数据失败 | 只影响该部分员工,其余正常发放;失败名单留档供人工核对 | 一般·汇总 |
| 发放失败(发券 / 充值) | 自动重试数次;仍失败则记录失败名单并触发告警,是否补发、如何补发由人工自行决定,系统不承载补发流程 | 严重·立即 |
| 平台凭证失效 | 刷新后仍不可用则停止本次执行 | 严重·立即 |
| 任务执行超时 | 超过设定阈值即中止,并保留已处理进度 | 严重·立即 |
| 通知发送失败 | 不影响发放结果,仅记录日志 | 一般·汇总 |
| 某天无数据(如休息日) | 正常结束 | 不告警 |
| 连续多天执行失败 | 同一规则连续 2 天失败,人工介入排查 | 严重·立即 |
9.6 失败告警(机器人推送研发中心群)
发放链路上的失败都必须触发告警机器人推送到研发中心群,不允许静默失败。
告警场景与级别
| 场景 | 触发条件 | 级别 | 是否影响发放 |
|---|---|---|---|
| 考勤数据拉取失败 | 重试后仍失败 | 严重 | 是(该考勤日无法发放) |
| 平台凭证失效 | 刷新后仍不可用 | 严重 | 是 |
| 发放失败(发券 / 充值) | 自动重试耗尽 | 严重 | 是(该员工本次未发放) |
| 任务执行超时 | 超过阈值 | 严重 | 是 |
| 连续多天执行失败 | 同一规则连续 2 天失败 | 严重 | 是 |
| 部分员工数据失败 | 存在失败名单 | 一般 | 否(其余正常发放) |
| 站内信通知发送失败 | 通知发不出去 | 一般 | 否(不影响发放) |
消息逻辑
- 严重级别:立即推送,不等待
- 一般级别:按小时汇总后推送一条,避免刷屏
- 去重:同一规则 + 同一考勤日期 + 同一失败类型,只告警一次;后续重试成功不再重复推送
- 恢复通知:失败后重试成功的,推送一条「已恢复」消息,确认问题闭环
- 接收群:研发中心群(告警机器人)
消息模板
【加班餐-执行告警】
级别:严重 / 一般
客户:{客户名称}
规则:{规则ID}
考勤日期:{YYYY-MM-DD}
失败类型:{失败类型}
失败原因:{平台返回错误信息或异常描述}
影响范围:{受影响员工数 / 全部}
发生时间:{YYYY-MM-DD HH:mm:ss}
处理建议:{按失败类型映射的固定建议,见下表}
处理建议对照表
「处理建议」不是自由填写,而是按失败类型映射的固定文案,变量只取告警上下文已有的值(如平台名称),保证同类告警的提示一致、收到的人照着就能做。
| 失败类型 | 处理建议(告警消息中展示) |
|---|---|
| 考勤数据拉取失败 | 确认 {平台} 接口状态与调用频率,排除后重跑该考勤日任务 |
| 平台凭证失效 | 联系客户管理员在 {平台} 后台重新授权,凭证恢复后重跑本次任务 |
| 发放失败(发券 / 充值) | 到对应记录页(9.4)核对发放结果,人工判断是否需要补发 |
| 任务执行超时 | 排查耗时环节(员工量 / 接口响应),进度已保留,重跑从断点继续 |
| 连续多天执行失败 | 非单次抖动,需排查根因;排查期间可先暂停该规则 |
| 部分员工数据失败 | 核对员工身份映射(离职 / 工号变更 / 未入职),修正后重跑 |
| 通知发送失败 | 排查消息通道,发放结果不受影响 |
边界:处理建议只负责"告诉人下一步该看什么、做什么"。是否补发、怎么补发,由人工用现有功能自行处理,不在本功能范围内——系统不做补发流程,也不在告警中替人下结论(如"已转人工")。
示例
示例 1|考勤数据拉取失败(严重)
【加班餐-执行告警】
级别:严重
客户:悠星网络
规则:R20260901001
考勤日期:2026-09-13
失败类型:考勤数据拉取失败
失败原因:企业微信接口返回 45009(接口调用超过频率限制)
影响范围:全部 328 人未发放
发生时间:2026-09-14 04:32:15
处理建议:确认企业微信接口状态与调用频率,排除后重跑该考勤日任务
示例 2|发放失败(钱包充值)(严重)
【加班餐-执行告警】
级别:严重
客户:悠星网络
规则:R20260901001
考勤日期:2026-09-13
失败类型:发放失败(充值钱包)
失败原因:钱包充值接口连续 3 次超时
影响范围:2 人未发放:张三(1001)、李四(1002)
发生时间:2026-09-14 04:35:02
处理建议:到「员工钱包充值记录页」核对发放结果,人工判断是否需要补发
示例 3|部分员工数据失败(一般,汇总)
【加班餐-执行告警】
级别:一般
客户:悠星网络
规则:R20260901001
考勤日期:2026-09-13
失败类型:部分员工考勤数据缺失
失败原因:5 名员工在考勤平台查无记录(可能离职或工号变更)
影响范围:5 人未发放(其余 323 人已正常发放)
发生时间:2026-09-14 04:33:40
处理建议:核对 5 名员工的身份映射(离职 / 工号变更 / 未入职),修正后重跑
示例 4|恢复通知
【加班餐-执行恢复】
客户:悠星网络
规则:R20260901001
考勤日期:2026-09-13
恢复类型:考勤数据拉取失败(已恢复)
恢复时间:2026-09-14 04:40:11
结果:328 人已全部发放完成