You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

8.8 KiB

考勤相关功能

模块编码attendance 端侧:微信小程序 关联文档01-模块划分.mdv4.0、02-功能清单-小程序端.md§5、03-业务流转逻辑-小程序端.md§5、05-接口规范.md§9、06-项目技术要求.md

功能概览

项目 说明
菜单名称 考勤打卡
子菜单 上班打卡 / 下班打卡 / 打卡记录 / 异常申诉 / 考勤日历 / 考勤审核
功能编号 MP-AT-01 ~ MP-AT-06
权限编码 attendance:record:、attendance:appeal:、attendance:supplement:*

页面清单

页面1上班打卡

  • 页面路径/pages/attendance/clock-in
  • 适用角色:全部
  • 页面元素
    • 当前时间显示(大字时钟)
    • 打卡状态指示(未打卡/已打卡)
    • 蓝牙扫描状态指示器
    • 当前打卡点名称
    • 蓝牙信号强度显示
    • 打卡按钮
    • 补录/申诉入口
  • 查询条件:无
  • 列表字段:无
  • 界面布局
    • 顶部:当前时间大字显示
    • 中部:打卡点信息 + 蓝牙状态
    • 底部:打卡按钮(圆形大按钮)
  • 操作按钮
    • 「上班打卡」→ 记录上班打卡权限attendance:record:create
    • 「异常申诉」→ 跳转异常申诉页(蓝牙未检测到时显示)

蓝牙策略判断逻辑

  • 调用 GET /system/bluetooth-policy → attendance_check
  • 策略=REQUIRED必须连接指定打卡点蓝牙Beacon后才可打卡
    • 验证Beacon属于本人班组打卡点
    • 打卡成功记录 check_method=BLUETOOTH
  • 策略=OPTIONAL可选蓝牙打卡或手动打卡
    • 手动打卡:check_method=MANUAL

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-01 上班打卡 02-小程序端 §5 记录操作日志 考勤记录、打卡点管理

页面2下班打卡

  • 页面路径/pages/attendance/clock-out
  • 适用角色:全部
  • 页面元素
    • 当前时间显示(大字时钟)
    • 打卡状态指示(未打卡/已打卡)
    • 上班打卡时间显示
    • 蓝牙扫描状态指示器
    • 当前打卡点名称
    • 打卡按钮
    • 补录/申诉入口
  • 查询条件:无
  • 列表字段:无
  • 界面布局
    • 顶部:当前时间 + 上班打卡时间
    • 中部:打卡点信息 + 蓝牙状态
    • 底部:打卡按钮(圆形大按钮)
  • 操作按钮
    • 「下班打卡」→ 记录下班打卡权限attendance:record:create
    • 「异常申诉」→ 跳转异常申诉页

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-02 下班打卡 02-小程序端 §5 记录操作日志 考勤记录

页面3打卡记录

  • 页面路径/pages/attendance/records
  • 适用角色:全部
  • 页面元素
    • 月份选择器
    • 统计信息卡片(出勤天数/迟到/早退/缺卡)
    • 打卡记录列表
    • 记录详情弹窗
  • 查询条件
    • 月份筛选
    • 状态筛选(全部/正常/迟到/早退/缺卡/补录)
  • 列表字段
字段 类型 说明
日期 日期 打卡日期
上班时间 时间 上班打卡时间
下班时间 时间 下班打卡时间
打卡方式 标签 蓝牙/手动/补录
状态 标签 正常/迟到/早退/缺卡
  • 界面布局
    • 顶部:月份选择器 + 统计数字横向排列
    • 中部:按日期分组的打卡记录列表
    • 底部:无操作栏
  • 操作按钮
    • 「查看详情」→ 查看打卡详情(含打卡点、蓝牙信息等)
    • 「异常申诉」→ 对异常记录发起申诉

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-03 打卡记录 02-小程序端 §5 考勤日历

页面4异常申诉

  • 页面路径/pages/attendance/appeal
  • 适用角色:全部(蓝牙失灵/系统宕机时)
  • 页面元素
    • 异常日期选择
    • 异常类型选择(上班/下班/全天)
    • 异常原因选择(蓝牙故障/手机异常/系统异常/忘记打卡/其他)
    • 补充说明输入框(多行文本)
    • 照片上传区补充证据≤9张
    • 提交按钮
  • 查询条件:无
  • 列表字段:无
  • 界面布局
    • 顶部:申诉模式提示
    • 中部:原因选择 + 说明填写 + 照片上传
    • 底部:提交按钮
  • 操作按钮
    • 「提交申诉」→ 提交打卡异常申诉权限attendance:appeal:create
    • 申诉提交后等待主管审核Web/小程序均可审核)

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-04 异常申诉 02-小程序端 §5 主管审核 考勤审核

页面5考勤日历

  • 页面路径/pages/attendance/calendar
  • 适用角色:全部
  • 页面元素
    • 月历视图(日历格子)
    • 每日状态标记(颜色点)
    • 点击日期显示详情弹窗
    • 图例说明
  • 查询条件
    • 月份切换(左右滑动)
  • 列表字段:无(日历模式)
  • 界面布局
    • 顶部:月份切换 + 统计信息
    • 中部:月历网格,每日格子中用颜色点标记状态
      • 绿色:正常
      • 黄色:迟到/早退
      • 红色:缺卡
      • 蓝色:补录
      • 灰色:休息日
    • 底部:图例说明
  • 操作按钮
    • 「点击日期」→ 显示当日打卡详情弹窗

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-05 考勤日历 02-小程序端 §5 打卡记录

页面6考勤审核

  • 页面路径/pages/attendance/review
  • 适用角色:主管
  • 页面元素
    • 待审核申诉列表
    • 申诉详情查看
    • 审核操作区(通过/驳回)
    • 驳回原因输入框
  • 查询条件
    • 状态筛选(待审核/已通过/已驳回)
    • 日期筛选
    • 人员筛选
  • 列表字段
字段 类型 说明
申诉人 文本 员工姓名
申诉日期 日期 异常打卡日期
异常类型 标签 上班/下班/全天
申诉原因 文本 原因摘要
提交时间 时间 申诉提交时间
审核状态 标签 待审核/已通过/已驳回
  • 界面布局
    • 顶部:筛选条件
    • 中部:申诉卡片列表
    • 底部:审核操作按钮(通过/驳回)
  • 操作按钮
    • 「通过」→ 系统自动补录打卡记录,标注"补录"权限attendance:appeal:approve
    • 「驳回」→ 填写驳回原因,通知员工

审核流程

员工提交异常申诉(小程序端)
      │
  主管审核Web+小程序均可)
      │
  ┌─审核通过─┐  ┌─审核驳回─┐
  系统自动补录      通知员工
  打卡记录          申诉未通过
  标注"补录"        记录审核日志
  记录审核日志

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-AT-06 考勤审核 02-小程序端 §5 补录打卡记录 操作日志、考勤管理Web端

业务规则

  1. 蓝牙策略:考勤打卡受蓝牙策略控制(GET /system/bluetooth-policy → attendance_check
  2. 蓝牙强制打卡:策略=REQUIRED时必须在指定打卡点连接蓝牙Beacon后才可打卡
    • 验证Beacon属于本人班组打卡点
    • 打卡成功记录 check_method=BLUETOOTH + Beacon标识
  3. 非强制蓝牙:策略=OPTIONAL时可选蓝牙打卡或手动打卡check_method=MANUAL
  4. 打卡点验证蓝牙打卡时验证Beacon属于本人班组绑定的打卡点
  5. 打卡时间:自动记录精确到秒
  6. 异常申诉审核主管在Web端或小程序端均可审核
  7. 补录标记:审核通过后系统自动补录打卡记录,标记 is_supplement=true
  8. 操作日志:所有打卡操作记录审计日志
  9. 双端审批打卡异常申诉支持Web+小程序双端审核

状态流转

打卡状态

未打卡 → 已打卡(正常/迟到/早退)
    ↓
  缺卡 → 异常申诉 → 审核通过 → 补录打卡(标记补录)
                  → 审核驳回 → 保持缺卡

申诉审核状态

待审核 → 审核通过 → 系统补录打卡记录
      → 审核驳回 → 通知员工