---
name: e10-attendance-docs
description: Use when E10 attendance/考勤/出勤 secondary development needs hooks, RegHookEvent/WeaHookReg examples, attendance browser custom SQL hooks, attendance calendar/report extension points, overtime/leave/timecard tables, attendance report SQL, scheduling tables, or attendance data table usage examples.
---

# E10 出勤二开文档

E10 出勤模块二开文档归档。用于让 Agent 根据用户开发场景检索出勤 Hook、埋点编码、表结构关系、SQL 示例和实现约束，再生成后端二开代码或 SQL。

保持单 Skill 入口。两篇资料同属出勤二开；拆成多个 Skill 会让 Agent 过早判断“Hook”或“数据表”，降低跨文档召回。先按业务意图检索，再按命中文档 `type`、`scenario`、`hookCodes`、`tables` 决定实现方式。

## 命令

```bash
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search.mjs search "班次浏览按钮 自定义SQL"
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search.mjs search "加班流程 attend_overtime_detail"
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search.mjs load 出勤二开钩子 --section summary
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search.mjs load 出勤管理数据表在项目上应用举例 --section "根据加班结果查询加班流程"
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search.mjs load 出勤二开钩子 --section all --max-bytes 20000
```

## 使用规则

- 先用业务词、Hook 编码、类名、表名、字段名、标题或 SQL 关键词检索。
- 候选最多三个；先看搜索结果里的 `type`、`scenario`、`hookCodes`、`tables`、`whenToUse`，再加载 `summary`。
- 生成代码或 SQL 前必须加载相关文档；需要完整示例时再加载具体章节或 `all`。
- 原始 Markdown 在 `references/docs/`；图片在 `references/docs/media/`。
- 大文档禁止一次性全量读取；用章节名、Hook 编码、表名或字段名缩小。

## 场景路由

| 用户意图 | 优先检索词 | 优先类型 | 文档 | 生成目标 |
| --- | --- | --- | --- | --- |
| 出勤浏览框筛选、班次/考勤规则/假期/加班规则自定义 SQL | `自定义SQL`、`浏览按钮`、`ATTEND_SHIFT_BROWSER_CUSTOM_SQL_001`、`ATTEND_CONFIG_BROWSER_CUSTOM_SQL_001` | `backend-hook` | `出勤二开钩子` | Java Hook，返回 SQL 条件 |
| 出勤日历、汇总报表日历、明细、导出扩展 | `出勤日历`、`汇总报表`、`日历明细`、`导出口子` | `backend-hook` | `出勤二开钩子` | Java Hook，扩展返回或导出数据 |
| 打卡、加班、请假、人事状态、排班保存后处理 | `打卡`、`加班`、`请假`、`排班保存`、`RegHookEvent` | `backend-hook` | `出勤二开钩子` | Java Hook，流程/数据处理 |
| 考勤报表、出勤汇总、缺勤、迟到早退、实际出勤时长 SQL | `ATTEND_STATUS_DETAIL`、`PERIOD_LENGTH`、`ACTUAL_WORK_LENGTH`、`考勤报表` | `database-sql` | `出勤管理数据表在项目上应用举例` | SQL、字段映射、报表取数 |
| 加班、请假、出差、调休、外勤、补卡、申诉数据查询 | `attend_overtime_detail`、`attend_status_detail_link`、`attend_flow_data`、`timecard` | `database-sql` | `出勤管理数据表在项目上应用举例` | SQL、表关系说明 |
| 排班规则、班次版本、历史班次、休息时间查询 | `attend_scheduling`、`attend_shift`、`attend_config_range`、`attend_status_shift_detail` | `database-sql` | `出勤管理数据表在项目上应用举例` | SQL、规则/班次查询 |

## 选择准则

- 用户说“口子/钩子/埋点/二开类/RegHookEvent/WeaHookReg”：优先 `backend-hook`。
- 用户说“表/字段/SQL/报表/查询/统计”：优先 `database-sql`。
- 用户只描述业务效果，先检索业务词；如果命中 Hook 和 SQL，先加载 Hook 确定扩展点，再加载 SQL 文档补取数逻辑。
- 输出实现时标明采用的 Hook 编码、表名、字段名、章节标题。

## 交付证据

使用本 Skill 时记录：

- 检索词
- 命中文档路径与标题
- 命中文档 `type`、`scenario`
- 加载章节
- 采用的 Hook 编码、表名、字段名或 SQL 依据

<!-- business-api-index:start -->
## 结构化 API 检索

```bash
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search-api.mjs search "关键词"
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search-api.mjs load <api-id> --section summary
node skills/e10-local-knowledge/modules/e10-attendance-docs/scripts/search-api.mjs load <api-id> --section params
```

- 先查 `search-api.mjs` 定位结构化契约；需要原始上下文时，优先 `load --section all`，若该 Skill 存在 Markdown 文档索引再用 `search.mjs` 补证据。
- 普通检索默认排除冲突记录；废弃接口输出 `deprecated`。
- 禁止批量读取 `references/api-records/`；必须先 search，再 load 单条命中。
<!-- business-api-index:end -->
