工作负荷分析 (Workload Analysis)
概述
分析指定时间段内员工的工时和加班数据,按项目维度和员工维度输出统计报告。
默认仅统计项目名含「数字能源」的产品,其他项目自动过滤。数字能源运维(特殊班次)不参与排序,固定放最后。
工作流程
1. 交互引导
调用本 skill 时,必须依次引导用户输入(未提供则逐项询问):
- 账号 — 中思互联 accountId
- 密码 — 登录密码
- 开始日期 — YYYY-MM-DD
- 结束日期 — YYYY-MM-DD
- 是否需要发送企业微信群 — 需提供 webhook URL
- 是否需要发送邮件 — 需提供 SMTP 配置 + 收件人
2. 执行分析
python3 scripts/workload_analysis.py \
--account "<账号>" \
--password "<密码>" \
--start "YYYY-MM-DD" \
--end "YYYY-MM-DD" \
--output json
| 参数 | 说明 |
|------|------|
| --output json | JSON 格式(推荐) |
| --output text | 可读文本 |
| --send-email <addr> | 发送邮件 |
| --smtp-host / --smtp-port / --smtp-user / --smtp-password / --smtp-from | SMTP 配置 |
3. 结果呈现
Agent 收到 JSON 后:
- 对话窗口:表格呈现三部分(项目 → Top 10 → Bottom 10)
- 企业微信群:通过 webhook POST Markdown 消息
- 邮件:脚本内置 HTML 表格 + 纯文本双版本;端口 465 走 SMTP_SSL,587 走 STARTTLS
4. 报告结构
| 部分 | 内容 | |------|------| | 按项目分析 | 人数、日均工时、日均加班、节假日加班人数、人均节假日加班、加班率 | | Top 10 | 排名、员工、项目、日均工时、均上班、均下班、工作日OT、节假日OT、总OT | | Bottom 10 | 同上 |
计算规则
详见 references/calculation_rules.md。核心:
| 项目 | 规则 | |------|------| | 打卡窗口 | 每天 05:00 ~ 次日 05:00 | | 上班/下班 | 窗口内最早/最晚打卡 | | 休息排除 | 午休 12:00-13:30 | | 工作日加班 | 18:00 起至下班 | | 非工作日加班 | 首末次打卡差值 | | 节假日判定 | 2026 年国务院安排硬编码 + API 后备 | | 项目过滤 | 仅含「数字能源」的产品 | | 排序 | 日均加班 + 节假日加班率降序,运维固定最后 |
数据 API
| 步骤 | 接口 | 说明 |
|------|------|------|
| 1 | POST https://my.chinasie.com/certification/api/v1/certificate/login | 获取 token |
| 2 | POST https://ihr.chinasie.com/punch/api/v1/punch/attendance/punchdetail/list | 打卡明细(自动分页) |
| 3 | POST https://my.chinasie.com/datacenter/api/spot/findSpotManageInfo/0/200 | 员工→项目映射 |
Token 放在 Cookie: token=xxx 和 Authorization: Bearer xxx 中。
依赖
pip install requests
Scan to join WeChat group