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
8.8 KiB
考勤相关功能
模块编码:attendance 端侧:微信小程序 关联文档:01-模块划分.md(v4.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端) |
业务规则
- 蓝牙策略:考勤打卡受蓝牙策略控制(
GET /system/bluetooth-policy → attendance_check) - 蓝牙强制打卡:策略=REQUIRED时,必须在指定打卡点连接蓝牙Beacon后才可打卡
- 验证Beacon属于本人班组打卡点
- 打卡成功记录
check_method=BLUETOOTH+ Beacon标识
- 非强制蓝牙:策略=OPTIONAL时,可选蓝牙打卡或手动打卡(
check_method=MANUAL) - 打卡点验证:蓝牙打卡时验证Beacon属于本人班组绑定的打卡点
- 打卡时间:自动记录精确到秒
- 异常申诉审核:主管在Web端或小程序端均可审核
- 补录标记:审核通过后系统自动补录打卡记录,标记
is_supplement=true - 操作日志:所有打卡操作记录审计日志
- 双端审批:打卡异常申诉支持Web+小程序双端审核
状态流转
打卡状态
未打卡 → 已打卡(正常/迟到/早退)
↓
缺卡 → 异常申诉 → 审核通过 → 补录打卡(标记补录)
→ 审核驳回 → 保持缺卡
申诉审核状态
待审核 → 审核通过 → 系统补录打卡记录
→ 审核驳回 → 通知员工