09
编排 · D 型(国家电投)

劳勤月度考勤(核电类)

attendance-laoqin-monthly
⚛️
入口与编排 skills/attendance/
把「顾问名单 → 劳勤 WTS 逐人导出 PDF → 科室 Excel 汇总 → 确认单回填 → 科服交付」的月度流程标准化。本 skill 只负责流程编排与阶段门禁;PDF 归档交 data-prep、PDF 读取交 pdf-llm-preprocess、公式/单据异常交 exception-review

FIT & CLIENTS

适用画像 / 试点 / 不适用
D适用画像
客户自有劳勤 WTS 考勤系统(非飞书/钉钉宽表);按客户科室/车间组织(非「考勤部门」);主交付员工考勤 PDF + 「人员工作量及考核结果确认单」;靠考勤表 + 确认单签字回流闭环,不逐一截图核对。
试点客户
国家电投 / 核电(PMC North Qing wu)。约 16+ 科室各一份确认单模板;约 300 人、约 180 人逐人导出、1 名 HR。
不适用
追觅类数据员宽表流程 → 改用 monthly-reconcile,勿套用按人截图、飞书凭证。

CONFIRMED · 2026-06

顾问确认口径(伍青)与录屏冲突时以此为准
劳勤系统
山东核电劳勤系统,登录 https://att.snpemc.com:81/user/login;账号由顾问按员工维护,目前由项目驻场用每名员工账号逐一登录导出。
PDF 命名
员工姓名 + 工号,如 于洋L361(非仅姓名)。截图版面可能截断考勤信息,须核对完整性。
审批/异常单据
请假/加班/出差等审批单据为线下补充材料无法从劳勤系统导出
科室 Excel
由 PDF 誊写/汇总;文件名含月份(生产技术部-结构科-月份.xlsx)。每科人数不等(1 人 ~ 20–30 人);个别考勤员交叉管理 2–3 科室。
签字闭环
考勤表 + 确认单都需科室负责人签字;确认单含考勤 & 考核结果,以扫描件回流;考勤凭证按员工逐人留存。
交付变更
2026-06 起客户侧不再需要劳勤 PDF;劳勤 PDF 仅作内部留存/核对凭证。
规则口径
迟到按 0.5h 四舍五入取整;缺卡与顾问沟通后修改;出差无需特殊处理;无夜班;资料长期保存

TRIGGERS

触发场景
国家电投 / 核电月度考勤
劳勤 WTS 逐人导出 PDF
工作量确认单回填、核电确认单
约每月 10–11 日接收月度名单

INPUT & OUTPUT

输入 / 产出
↘ INPUT · 输入
  • 目录名(data/raw/ 下)+ 薪资月 YYYYMM
  • 顾问提供的当月核对名单(含劳勤账号/密码)
  • 各科确认单空白模板路径
  • 可选:已核对跳过名单(本月不做劳勤)
↗ OUTPUT · 产出
  • 考勤PDF/<科室>/<姓名工号>.pdf(出差/审批单据线下补充)
  • 科室 Excel 汇总表(由 PDF 誊写,文件名含月份)
  • 回填的「人员工作量及考核结果确认单」(含考核结果)
  • 交付:考勤表 + 确认单送签字回流(2026-06 起客户侧不含劳勤 PDF)

CONFIRMATION COLS

确认单关键回填列
出勤工作日天数
科服津贴据此计;阶段 5 回填时单独标注。
公休日加班小时数 / 延长工作时间小时数 / 法定节假日加班小时数
三项加班口径,分别对应 Excel 标黄列、延长工时列、法定假日行。
已执行/计划执行换休小时数
含计划换休,从合计中扣减;勿只算已执行。
计算加班费小时数(本月合计)
由上述三加班项减换休得出,须顾问书面确认后写入 attendance_config.json
🪜

PHASE GATES

阶段门禁(必须按序)7 阶段 0–6 · 不可跳门
  1. 0
    收名单与确认单GATE
    约每月 10–11 日接收。各科模板齐全;已核对跳过名单已标记。
  2. 1
    科室筛人 + 账号GATE
    按科室打开顾问名单(如「生产技术部-结构科」),复制每人劳勤工号/密码,与确认单模板逐一比对。门禁:本科室人员与确认单行数一致。
  3. 2
    劳勤导出 PDFGATE
    逐人登录 WorkbenchCalendar 切月份,看汇总(出勤/差旅/加班/审批状态),打印保存 PDF,文件名=姓名+工号(如 于洋L361)。门禁:每人有 <姓名工号>.pdf(出差/审批单据线下补充)。
  4. 3
    填科室 ExcelGATE
    标黄周末加班、法定假日行、批注加班转调休;差旅>0 走出差分支。门禁:日出勤/加班/调休与劳勤一致。
  5. 4
    加班费合计GATE
    公休日 + 延长工时 + 法定节假日 − 已执行/计划执行换休小时数。门禁:公式已按月调整;合计列已算。
  6. 5
    回填确认单 + 送科室签字GATE
    Excel 汇总列复制到确认单对应行,标注出勤工作日天数;可用 fill_confirmation_form.py 自动回填并生成 confirmation_fill_report.xlsx,送签前用 validate_laoqin_consistency.py 做三方校验。考勤表 + 确认单一并发科室负责人签字(确认单含考核结果)。退回则改 Excel 重出确认单再送签。门禁:各科确认单与 Excel 一致。
  7. 6
    交付科服GATE
    各科签字确认单 + 加班情况说明。门禁:考勤表 + 确认单已送签并回流。2026-06 起客户侧不再需要劳勤 PDF,PDF 转内部留存。
禁止
  • 未导出劳勤 PDF 就填确认单。
  • 未处理出差单据就交付科服。
  • 跳过公式按月(30/31 天)调整。

LAOQIN SYSTEM

劳勤系统操作与状态口径
系统路径
劳勤 WTS 4.0 → 考勤日历 WorkbenchCalendar。登录需账号 + 密码 + 验证码;切换用户 = 右上角退出后下一员工登录。
延长工作时间审批中
员工已申请、领导未批 —— 仍按申请/实际时长填 Excel,不因审批未过而漏记。
双休日加班
表现为日历橙色格;填 Excel 时该列标黄(公休日加班)。
差旅 > 0
进入阶段 3 出差分支;出差/审批单据为线下补充材料,劳勤不可导出,须向员工/顾问索取后与考勤同目录归档。

TRAVEL & FORMULA

出差分支与 Excel 公式注意
  1. 1
    向员工/顾问索取出差单据
    出差/审批单据为线下补充材料,劳勤系统不可导出;定位该员工已审批通过的出差申请。
  2. 2
    覆盖跨月全部时段
    确保跨月出差的所有时段都覆盖到。
  3. 3
    与考勤 PDF 同目录归档
    命名:姓名工号.pdf + 姓名工号-申请单据.pdf
公休日 / 工作日加班列
有公式,每月须按 30/31 天调整,否则合计偏差。
调休列
无公式,手工记录(批注加班转调休,如 7.5h)。

OVERTIME TOTAL

加班费合计公式
计算加班费小时数(本月合计)
  = 公休日加班小时数
  + 延长工作时间小时数
  + 法定节假日加班小时数
   已执行/计划执行换休小时数

PIPELINE

与其他 skill 衔接
归档劳勤 PDF(推荐)→ data-prepprepare_attendance_data.py
PDF 视觉/文本预处理(辅助读取出勤加班)→ pdf-llm-preprocess 的 pdf_llm_preprocess.py
异常审核(审批中、出差缺单据、公式不平)→ exception-reviewbuild_exception_review.py
追觅类数据员宽表客户不适用 → 改用 monthly-reconcile

RUN

运行命令(编排下游 + 本 skill 校验/回填/签回)
RUN · 入口变量 · 下游 skill · 校验/回填/签回
DATASET_NAME="PMC North Qing wu 国家电投考勤"
PAY_PERIOD="<YYYYMM>"
SOURCE_DIR="data/raw/${DATASET_NAME}"
OUTPUT_DIR="outputs/${DATASET_NAME}-${PAY_PERIOD}"

# 1. 按人/科室归档劳勤 PDF(推荐)
uv run python skills/attendance/attendance-data-prep/scripts/prepare_attendance_data.py \
  "${SOURCE_DIR}" "${OUTPUT_DIR}" \
  --base-table <顾问名单.xlsx>

# 2. PDF 视觉/文本预处理(辅助读取出勤加班)
uv run python skills/utility/pdf-llm-preprocess/scripts/pdf_llm_preprocess.py \
  "${OUTPUT_DIR}/考勤PDF/<科室>/<姓名>.pdf" \
  --out-dir "${OUTPUT_DIR}/pdf_pages/<姓名>"

# 3. 异常审核(审批中、出差缺单据、公式不平)
uv run python skills/attendance/attendance-exception-review/scripts/build_exception_review.py \
  "${OUTPUT_DIR}" "${PAY_PERIOD}" \
  "${OUTPUT_DIR}/exception_review.xlsx" \
  --source-dir "${SOURCE_DIR}" \
  --config <attendance_config.json>

# 4. 三方一致性校验(科室 Excel / 确认单 / PDF 留存 + 加班费合计)
uv run python skills/attendance/attendance-laoqin-monthly/scripts/validate_laoqin_consistency.py \
  "${OUTPUT_DIR}/laoqin_consistency_check.xlsx" \
  --department-excel <科室Excel.xlsx> \
  --confirmation <确认单.xlsx> \
  --pdf-dir "${OUTPUT_DIR}/考勤PDF"

# 5. 从科室 Excel 回填确认单模板(识别两行合并表头)
uv run python skills/attendance/attendance-laoqin-monthly/scripts/fill_confirmation_form.py \
  --department-excel <科室Excel.xlsx> \
  --template <确认单模板.xlsx> \
  --output "${OUTPUT_DIR}/已回填确认单.xlsx" \
  --report "${OUTPUT_DIR}/confirmation_fill_report.xlsx"

# 6. 检查考勤表 + 确认单签回件
uv run python skills/attendance/attendance-laoqin-monthly/scripts/check_laoqin_signbacks.py \
  "${OUTPUT_DIR}/laoqin_signback_check.xlsx" \
  --department-excel <科室Excel.xlsx> \
  --signback-dir "${OUTPUT_DIR}/签回件"

ROADMAP

自动化路线图耗时 · 约 5 人日/月
优先级脚本状态
P0validate_laoqin_consistency.py已实现首版 · 科室Excel/确认单/PDF 三方一致 + 加班费合计
P0fill_confirmation_form.py已实现首版 · 科室Excel 回填确认单(识别两行合并表头)
P0check_laoqin_signbacks.py已实现首版 · 按科室检查考勤表/确认单签回件
P1organize_laoqin_pdfs.py待实现
P2劳勤批量导出依赖系统 API,短期 SOP 为主
耗时基准
逐人导出约 1.5 分钟/人(约 180 人);科室 Excel 约 40–50 分钟/科室;客户签字回流约 2 工作日;退回重做约 20–25 分钟/次;全项目约 5 人日/月
回填 / 校验门禁
确认单为两行合并表头(「加班情况」横跨 5 个加班子列);脚本已识别合并表头,6 个对比列全部回填/比对。只有对比列全部映射、确有回填、且无缺员confirmation_fill_report.xlsx 才报「可送签:是」。

RETRY & NOTES

失败重试 / 注意事项
登录/导出失败
记录失败人员单独重试,不跳门继续汇总。
PDF 识别失败
先跑 data-prep / pdf-llm-preprocess 修复后再回填确认单。
合计不一致
回到对应科室 Excel 逐行核对,不直接交付科服。
域名/界面变更
以顾问最新 SOP 为准(顾问确认 att.snpemc.com:81;旧录屏 att.snpmc.com 为笔误),不沿用过期录屏。
科室模板
结构应一致,差异须记录在 rules_catalog_draft.md;个别考勤员交叉管理 2–3 科室单独记录。
操作视频
两段内容基本一致,处理一份即可。

ACCEPTANCE

闭环验收

ANTI-PATTERNS

反例检查
套用 monthly-reconcile 的按人截图、飞书凭证流程。
未核对顾问名单就开始逐人劳勤导出。
确认单回填后未验算 Excel 加班费合计。
确认单两行表头只映射到出勤天数列,5 个加班列空着却报「可送签」。
科室模板结构不一致却未记录在 rules_catalog_draft.md