# 需求 - 请假考勤修正规约 **版本**:1.0 **日期**:2026-05-09 **状态**:模块级开发规约 **上级事实源**:[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md) **相关事实源**:[需求 - 统一审批中心规约](./需求-统一审批中心规约.md)、[需求 - 企业微信基础设施规约](./需求-企业微信基础设施规约.md) **体验总依据**:[产品设计规则基线](./product-design-rules.md) 本规约细化请假、补卡、外出、加班与考勤修正的产品要求。正式审批记录以 OA 为准;企业微信打卡只作为原始采集来源,不直接决定最终考勤结论。PC 和移动页面体验以产品设计规则基线为依据,不重复定义通用审批链和移动导航规则。 --- ## 1. 模块目标与边界 ### 1.1 目标 - 员工能在 OA PC 或移动端提交请假、补卡、外出、加班申请。 - 主管、HR/管理员在 OA 内审批并留痕。 - 已通过的考勤修正影响团队状态、日历展示和后续正式考勤口径。 - 企业微信打卡原始记录后续可同步到 OA,但必须结合 OA 审批结果解释。 ### 1.2 适用对象 - 请假:年假、事假、病假、调休、其他假别。 - 补卡:漏打卡、忘打卡、设备异常、外勤导致未打卡等修正。 - 外出:工作时间内外勤、客户拜访、项目现场、临时外出。 - 加班:工作日加班、周末加班、节假日加班。 - 出差:首批只保留后续扩展边界,不在本规约内做完整差旅单。 ### 1.3 不做范围 - 不使用企业微信原生审批处理请假、补卡、外出、加班。 - 首批不重造企业微信打卡的定位、人脸识别、Wi-Fi、排班和防作弊规则。 - 首批不新增企业微信打卡 API 同步实现。 - 首批不做复杂假期余额、调休余额、薪资计算、排班引擎和法定节假日自动规则。 - 不把企业微信打卡异常直接作为 OA 最终考勤结论。 --- ## 2. 角色与权限 | 角色 | 可做动作 | 权限边界 | | --- | --- | --- | | 申请人 | 新建草稿、提交、撤回、查看自己的申请、按退回意见修改重提 | 只能编辑本人草稿、已退回或允许重提的申请 | | 主管/审批人 | 查看分配给自己的待办,通过、驳回、退回、转审 | 只能处理当前分配给自己的 OA 审批任务 | | HR/管理员 | 复核请假、补卡、外出、加班,维护基础假别和考勤口径 | 不能绕过流程直接改审批结果;必要修正必须审计 | | 老板/总经理 | 处理长假、高风险或特殊事项 | 操作仍需写入审批历史和审计日志 | | 系统管理员 | 维护权限、通知、入口、基础配置 | 默认不具备业务审批权 | 审批动作、转审、撤回、退回、驳回和历史留痕以 [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) 为总依据。 --- ## 3. 入口与对象 | 入口 | 场景 | 要求 | | --- | --- | --- | | PC 请假/考勤修正页 | 批量查看、较复杂申请、管理员复核 | 可查看完整字段、审批历史和团队影响 | | 移动工作台 | 员工日常提交请假、补卡、外出、加班 | 操作路径短,适合手机填写 | | 移动审批 | 主管或 HR 处理待办 | 进入 OA 审批页处理,不进入企业微信原生审批 | | 团队状态页 | 查看今天谁在岗、请假、外出、出差 | 使用已批准申请影响展示 | | 日历视图 | 查看请假和外出安排 | 首批可轻量展示,不做复杂排班 | | 企业微信 deeplink | 通知提醒和跳转 | 点击后回 OA 页面 | --- ## 4. 申请字段 ### 4.1 通用字段 | 字段 | 含义 | 要求 | | --- | --- | --- | | 申请编号 | OA 生成的唯一编号 | 提交前或首次保存时生成,必须唯一 | | 申请类型 | 请假、补卡、外出、加班 | 必填 | | 申请人 | 发起人 | 必填 | | 部门 | 申请人所属部门 | 系统带出 | | 开始时间 | 申请开始时间 | 请假、外出、加班必填 | | 结束时间 | 申请结束时间 | 请假、外出、加班必填 | | 时长 | 小时或天 | 系统计算,允许按业务规则人工修正并留痕 | | 原因 | 申请说明 | 必填 | | 附件 | 病假证明、外出证明、加班依据等 | 按类型和规则决定 | | 关联项目/客户 | 项目现场、客户拜访、项目加班等 | 外出、加班、项目相关请假建议填写 | | 审批状态 | 草稿、审批中、已通过等 | 系统维护 | | 生效状态 | 是否已影响团队状态或考勤口径 | 系统维护 | ### 4.2 类型专属字段 | 类型 | 专属字段 | 要求 | | --- | --- | --- | | 请假 | 假别、请假时段、是否半天、是否需证明 | 病假或特殊假别可要求附件 | | 补卡 | 补卡日期、补卡时间点、上班/下班卡、异常原因 | 必须指向具体缺失或异常打卡时间点 | | 外出 | 外出地点、外出事由、客户/项目、预计返回时间 | 应说明是否影响当天在岗状态 | | 加班 | 加班日期、加班开始/结束、加班原因、补偿口径 | 补偿口径首批仅记录:无补偿、调休、加班费待定 | | 出差预留 | 出差地点、开始/结束、交通住宿 | 首批只保留后续扩展,不作为完整差旅验收 | --- ## 5. 审批规则与状态 ### 5.1 审批规则 以下是 10 人以下公司试运行建议值,不等于最终公司制度。正式制度可由管理员配置调整。 | 类型 | 阈值 | 默认审批链 | HR/管理员复核 | 兜底审批人 | | --- | --- | --- | --- | --- | | 请假 | `<=1` 天 | 直属主管 | 无 | HR/管理员 | | 请假 | `>1` 天 | 直属主管 | HR/管理员复核 | 老板/总经理 | | 补卡 | 所有 | 直属主管 | HR/管理员复核 | HR/管理员 | | 外出 | 所有 | 直属主管 | HR/管理员按需复核 | HR/管理员 | | 加班 | 所有 | 直属主管 | HR/管理员复核 | HR/管理员 | 若找不到审批人,提交必须阻断,不生成半截流程。审批规则与通用状态转换以统一审批中心规约为准。 ### 5.2 状态模型 | 状态 | 含义 | 允许动作 | | --- | --- | --- | | 草稿 | 申请人编辑中 | 编辑、提交、删除 | | 审批中 | 已提交,等待审批 | 审批人通过、驳回、退回、转审;申请人按规则撤回 | | 已通过 | 审批完成 | 生效到团队状态、日历或考勤解释 | | 已驳回 | 审批否决 | 查看原因、复制重提或新建 | | 已退回 | 需要申请人修改 | 修改后重提、撤回 | | 已撤回 | 申请人撤回 | 查看历史、复制重提 | | 已生效 | 已影响团队状态或考勤口径 | 查看、审计 | | 已取消 | 已批准后由授权人员取消影响 | 必须填写原因并审计 | 已通过不等于一定已生效;若团队状态或日历更新失败,审批记录仍保持已通过,生效失败应进入可重试或管理员处理状态。 --- ## 6. 考勤口径 ### 6.1 基本原则 - 企业微信打卡记录是原始采集事实。 - OA 请假、补卡、外出、加班审批是考勤解释事实。 - 最终正式考勤口径应由企业微信打卡原始记录加 OA 审批结果共同形成。 - 企业微信打卡异常不直接等于最终考勤异常。 - OA 首批不重造定位、人脸识别、Wi-Fi、排班和防作弊规则。 ### 6.2 口径示例 | 场景 | 原始打卡 | OA 审批 | 正式解释 | | --- | --- | --- | --- | | 已批准请假 | 无打卡或不完整 | 请假已通过 | 按请假处理,不直接记异常 | | 忘打卡 | 缺少上班或下班卡 | 补卡已通过 | 按补卡修正解释 | | 客户现场 | 打卡地点异常或无办公室打卡 | 外出已通过 | 按外出处理 | | 晚间工作 | 正常下班后继续工作 | 加班已通过 | 记录加班事实,补偿另按制度处理 | | 无审批异常 | 缺卡或迟到 | 无有效 OA 审批 | 保持异常待处理或人工复核 | --- ## 7. 团队状态与日历 - 已批准请假应影响对应日期的团队状态,展示为 `请假`。 - 已批准外出应在对应时段展示为 `外出`,必要时显示项目或客户摘要。 - 已批准加班可进入团队日历或个人记录,首批不强制进入工资计算。 - 补卡审批通过后影响考勤解释,不一定展示在团队状态中。 - 团队状态和日历更新失败不得回滚审批结果,应记录失败原因并允许重试。 - 普通员工只能查看自己和授权范围内的团队状态;HR/管理员和老板按权限查看更大范围。 --- ## 8. 异常规则 | 异常 | 处理规则 | 用户提示 | | --- | --- | --- | | 时间不合法 | 结束时间早于开始时间、跨区间异常时阻断 | “请检查开始和结束时间” | | 时长为 0 | 阻断提交 | “申请时长必须大于 0” | | 重复申请 | 同一时间段已有有效申请时提示或阻断 | “该时间段已有申请,请确认” | | 无审批人 | 阻断提交,不生成半截流程 | “当前审批规则未找到审批人,请联系管理员” | | 权限不足 | 服务端拒绝 | “无权处理该申请” | | 团队状态更新失败 | 审批保持成功,生效状态进入失败可重试 | “申请已审批通过,状态同步稍后重试” | | 已生效后取消 | 仅授权 HR/管理员处理,必须填写原因 | “已生效申请取消需管理员处理” | | 企业微信打卡未同步 | 不影响 OA 申请审批 | “打卡原始记录暂未同步,审批结果已在 OA 留痕” | --- ## 9. 验收场景 | 场景 | 步骤 | 预期结果 | | --- | --- | --- | | 请假主管审批 | 员工提交 `0.5` 天请假;主管通过 | 申请已通过,并影响团队状态 | | 长假 HR 复核 | 员工提交 `2` 天请假;主管通过;HR 复核 | 审批链完整,HR 复核后生效 | | 补卡审批 | 员工提交缺失下班卡补卡;主管和 HR 通过 | 补卡记录影响考勤解释 | | 外出审批 | 员工提交客户现场外出;主管通过 | 团队状态显示外出或相关摘要 | | 加班审批 | 员工提交晚间加班;主管和 HR 通过 | 加班记录留痕,补偿口径被记录 | | 退回修改 | 审批人退回申请;员工修改后重提 | 保留退回历史,重新进入审批 | | 撤回 | 员工在审批完成前撤回 | 审批待办失效,历史保留 | | 无审批人阻断 | 删除或缺失主管后提交 | 提交失败,不生成半截流程 | | 企业微信提醒回 OA | 待办产生后发送企业微信提醒 | 点击 deeplink 回 OA 审批页处理 | | 团队状态失败不破坏审批 | 模拟团队状态更新失败 | 审批保持已通过,生效状态可重试 | --- ## 10. 后续开发拆分建议 - A1:请假/补卡/外出/加班申请对象和字段收口。 - A2:请假、补卡、外出、加班接入统一审批中心。 - A3:审批规则配置,覆盖请假天数、补卡、外出、加班和兜底审批人。 - A4:团队状态和日历生效逻辑,覆盖成功、失败重试和权限展示。 - A5:考勤口径解释,预留企业微信打卡原始记录同步后的合并逻辑。 - A6:企业微信通知 deeplink 回 OA,覆盖申请详情和审批待办。 - A7:移动端提交与审批体验,覆盖普通手机和企业微信 WebView。 - A8:请假考勤主链路回归脚本和人工验收数据集。 - A9:出差完整流程后续专项,不进入本轮首批。 涉及审批状态、团队状态、生效记录或后续打卡同步的 Issue,必须写明失败重试、回滚策略和人工修正路径。