11 KiB
name, description, homepage, version, author
| name | description | homepage | version | author |
|---|---|---|---|---|
| dameng-salary | 大梦 by 可能实验室 月度工资计算 + 工资单生成 + 营收/出品分析。触发关键词:「大梦工资」「可能实验室工资」「N月工资单」「月度结薪」「算工资」「出工资单」「大梦N月账务」「大梦营收分析」「出品/菜单分析」。覆盖能力:(1) 从腾讯文档「工资表V2」读写月度数据 (2) 处理本地考勤资料(图片 OCR / xlsx / 腾讯文档夜班考勤)(3) 营收交叉聚合(部门×班次)+ 从原始订单生成营收分析 (4) 套用计薪公式(基本/加班/绩效/节假日/提成/社保)(5) 西湖/滨江两店分色 (6) 生成精美 HTML 工资单 + 一键导出 PNG (7) 部门收入起伏根因 + 菜单在架SKU卖最差分析。 | https://docs.qq.com/sheet/DVkxTQXZTdnF2WXpV | 1.1.0 | william |
大梦 by 可能实验室 · 月度工资 SKILL
✅ 触发判断
用户说"出 N 月工资单"、"算 N 月工资"、"大梦 N 月账务"等 → 立即按下方流程执行。
📦 关键资源
| 资源 | ID / 路径 |
|---|---|
| 工资表 V2(写入目标) | file_id=VLSAvSvqvYzU, sheet_id=BB08J2("员工档案"工作表) |
| 工资表 V2 链接 | https://docs.qq.com/sheet/DVkxTQXZTdnF2WXpV |
| 夜班考勤(腾讯文档) | file_id=IEqftKNqdqKa |
| 本月账务目录 | ~/Downloads/大梦N月账务处理/ |
| 考勤本地资料 | ~/Downloads/大梦N月账务处理/考勤表/ |
| 营收分析 xlsx | ~/Downloads/大梦N月账务处理/大梦可能实验室_N月营收分析_西湖店vs滨江店.xlsx |
| 订单明细 / 菜品库 | 同上目录 |
| 工资单生成器 | ~/Downloads/大梦N月账务处理/工资单生成器/(首次创建,后续复用脚本+模板) |
👥 13 名员工(截至 5月 · 西湖7 + 滨江6)
行号每月递增(见下方「行号约定」);下表是标准结构,具体值以 V2 最新月为准。 5月新增 舒尧轩(小胖,西湖调酒晚班)。
| 姓名 | 归属 | 部门 | 班次 | 岗位 | 兼任 | 基本std | KPI | 管理 | 行为 |
|---|---|---|---|---|---|---|---|---|---|
| 蔡逸丰 | 西湖 | 精酿 | 晚班 | 精酿侍酒师 | — | 5800 | 1200 | 0 | 500 |
| 何简 | 西湖 | 厨房 | 白班 | 出品厨师 | — | 5500 | 300 | 0 | 300 |
| 宋群喜 | 西湖 | 咖啡 | 白班 | 咖啡师 | — | 5400 | 1300 | 0 | 500 |
| 胡舒 | 西湖 | 调酒 | 晚班 | 调酒师 | 晚班店长 | 8000 | 1300 | 2000 | 500 |
| 舒尧轩 | 西湖 | 调酒 | 晚班 | 调酒师 | — | 5600 | 1000 | 0 | 500 |
| 郭思儒 | 西湖 | 咖啡 | 白班 | 咖啡师 | 白班店长 | 6000 | 1300 | 2000 | 500 |
| 秦天 | 西湖 | 厨房 | 晚班 | 主厨 | 总厨 | 8000 | 1300 | 2000 | 500 |
| 李想 | 滨江 | 调酒 | 晚班 | 调酒师 | 晚班店长 | 8000 | 1100 | 1000 | 500 |
| 王瑛胤 | 滨江 | 咖啡 | 白班 | 咖啡师 | 白班店长 | 5800 | 1100 | 1000 | 500 |
| 刘润祥 | 滨江 | 厨房 | 晚班 | 主厨 | — | 6600 | 1100 | 1000 | 500 |
| 朱秋风 | 滨江 | 精酿 | 晚班 | 前厅运营 | — | 5500 | 1000 | 0 | 500 |
| 叶磊 | 滨江 | 厨房 | 白班 | 出品厨师 | — | 6000 | 800 | 0 | 300 |
| 尹志艳 | 滨江 | 厨房 | 中班 | 出品厨师 | — | 6000 | 400 | 0 | 300 |
行号约定:4月 = rows 14-25;5月 = rows 27-39(西湖27-33/滨江34-39);6月 = rows 41-53(西湖41-47/滨江48-53);月间留1空行。下月起始 = 上月末+2(7月预计 55-67)。写前必须 sheet.get_cell_data 确认末行。
昵称映射:小胡=胡舒、丰丰=蔡逸丰、小宋=宋群喜、小儒=郭思儒、秋风=朱秋风、小胖=舒尧轩。
保洁曾阿姨:兼职,不写入工资表。
社保在册(4 人,每月扣 ¥523.53 个人 + 公司转个人 ¥1222.25):胡舒、王瑛胤、刘润祥、朱秋风
🔄 月度结薪标准流程
Step 0 · ★ 生成伪菜品库(6月起必做)
build_analysis.py 依赖菜品库做部门归类,但本地菜品库是旧月份的,当月新上的 SKU 不在库里会掉进关键词兜底、容易归错。
6月起老板提供「菜品销售明细」导出,自带 菜品大类/菜品小类(POS 真实归类)。用它反向生成菜品库,覆盖率 100%:
python3 ~/.claude/skills/dameng-salary/make_menu_lib.py "$PWD" # 两店各生成一份
生成的文件名符合 大梦_可能实验室_{店}店_菜品库_*.xlsx,build_analysis.py 会自动 glob 到。
6月实测:滨江 247 SKU / 西湖 219 SKU,未归类仅 2 笔(扑克/雨伞,本就不属四部门)。
Step 1 · 采集考勤数据
读取 ~/Downloads/大梦N月账务处理/考勤表/ 下所有文件:
- 图片(手写)→ 用 Read tool 直接看图识字
- xlsx 文件(如
李想N月考勤.xlsx、秋风N月考勤.xlsx)→ openpyxl 读取 - xls 文件(如
评估N月-白班店长-王瑛胤 月度评估.xls)→ xlrd 读取(pip 装一下) - 腾讯文档「大梦西湖店夜班员工考勤」 →
mcporter call tencent-docs get_content --args '{"file_id":"IEqftKNqdqKa"}'
详见 references/attendance_rules.md。
Step 2 · 写入考勤到 V2 的 N 月行
每个员工写入这些字段(如有数据):
- col 22: 出勤天数
- col 23: 法定假期天数(清明 1 天,国庆 3 天等)
- col 24: 加班小时数("存"的也填进去,工资单 HTML 会自动按备注隐藏)
- col 42: 备注(休息日期 + 年假说明 + 加班是"存"还是"换钱")
如果是首次写 N 月(V2 还没 N 月行):在末尾追加 12 行,紧跟上月之后留 1 空行分隔。
Step 3 · 计算并写入营收数据(部门业绩 / 班次业绩 / 部门×班次业绩)
-
打开月度营收 xlsx:
部门收入sheet → 取"含团购套餐合计"列 →部门业绩班次营收sheet → 取"顾客实付"列 →班次业绩
-
跑
compute_cross.py计算部门×班次业绩:python3 ~/.claude/skills/dameng-salary/compute_cross.py "~/Downloads/大梦N月账务处理"会输出按比例校正后的 (店, 部门, 班次) 矩阵。
-
按行号写入 V2 cols 19/20/21。
重要规则:
- 滨江厨房团队(刘润祥/叶磊/尹志艳):班次业绩 = 0、部门×班次 = 0(只算部门业绩)
- 中班(尹志艳):班次业绩 = 0
- 前厅运营/无部门:部门业绩 = 0
详见 references/revenue_methodology.md。
Step 4 · 套用公式计算
详见 references/formulas.md。关键公式:
基本工资 = 基本工资标准 × 出勤天数 / 26.08
加班工资 = (加班小时数 / 9) × 基本工资标准 / 26.08
└─ 备注含"存"的不发,加班工资 = 0
KPI绩效结果 = KPI标准 × KPI倍数 (默认 1.0)
管理绩效奖金 = 管理标准 × 管理倍数 (默认 1.0)
行为规范结果 = 行为标准 (合格全额)
出品提成 = 部门业绩 × 角色费率 (西湖部分员工有,滨江暂无;见 commission_rates.md)
节假日出勤补贴 = 基本工资标准 / 26.08 × 法定假期天数 × 2
工资汇总 = 上述之和
剩余应发 = 工资汇总 - 职工社保个人承担(公账代扣)
写入字段(cols 2/3/26-37, 39/40 social insurance for 4 enrolled)。
Step 5 · 应用店色
mcporter call tencent-docs sheet.set_cell_style --args \
'{"file_id":"VLSAvSvqvYzU","sheet_id":"BB08J2","start_row":<西湖起始>,"end_row":<西湖结束>,"start_col":0,"end_col":42,"bg_color":"FFE2EFDA"}'
mcporter call tencent-docs sheet.set_cell_style --args \
'{"file_id":"VLSAvSvqvYzU","sheet_id":"BB08J2","start_row":<滨江起始>,"end_row":<滨江结束>,"start_col":0,"end_col":42,"bg_color":"FFDDEBF7"}'
- 西湖店:
FFE2EFDA(浅绿) - 滨江店:
FFDDEBF7(浅蓝)
Step 6 · 生成工资单
-
确保
~/Downloads/大梦N月账务处理/工资单生成器/存在;如不存在,从此 skill 复制:mkdir -p "~/Downloads/大梦N月账务处理/工资单生成器" cp ~/.claude/skills/dameng-salary/fetch_salary.py "~/Downloads/大梦N月账务处理/工资单生成器/fetch_data.py" cp ~/.claude/skills/dameng-salary/slip_template.html "~/Downloads/大梦N月账务处理/工资单生成器/salary_slips.html" -
拉取 N 月数据:
cd "~/Downloads/大梦N月账务处理/工资单生成器" && python3 fetch_data.py 2026NN -
打开页面:
open "~/Downloads/大梦N月账务处理/工资单生成器/salary_slips.html" -
用户点页面右上角「EXPORT ALL」或单卡片下方「DOWNLOAD PNG」导出工资单图片。
🔧 字段参考
详见 references/columns.md(V2 完整 43 列定义)。
⚠️ 注意事项
- 跨月不能动 N-1 及更早的数据,仅写本月新行
- 行号偏移坑:腾讯文档 set_range_value 偶发 +1 偏移,写完务必读回校验
- 岗位级别 / 兼任岗位等保留 3 月模板设定,每月仅更新动态字段
- 新增员工:先问用户是否要写入 V2(保洁阿姨等兼职不写)
📂 文件清单
~/.claude/skills/dameng-salary/
├── SKILL.md ← 你正在读
├── fetch_salary.py ← 拉V2数据→data.js (参数化, 默认本月)
├── build_analysis.py ← 从原始订单生成营收分析xlsx+summary.json (参数: <目录> <YYYY-MM>)
├── compute_cross.py ← 部门×班次交叉聚合 (旧版, build_analysis 已含同逻辑)
├── dept_deepdive.py ← 各部门收入起伏 MoM 根因 SKU 拆解 (参数: <本月目录> <上月目录>)
├── menu_onsale_ranking.py ← 各部门在架SKU卖最差排名 (参数: <月度目录>)
├── slip_template.html ← HTML 工资单模板(店色/印章/大写金额/社保注明/提成行按需隐藏)
└── references/
├── formulas.md ← 公式手册
├── columns.md ← V2 43 列详细定义
├── workflow.md ← 完整月度流程(含逐月踩坑回顾)
├── attendance_rules.md ← 考勤规则(年假计入出勤/调休/"存vs换钱")
├── revenue_methodology.md ← 营收归口规则
├── commission_rates.md ← 出品提成费率参考
└── analysis_playbook.md ← 营收/出品分析打法(验真/在架口径/已知坑)
📊 营收/出品分析能力(5月新增)
当用户要「N月营收分析 / 部门起伏 / 出品(菜单)分析」:
- 若无预制营收分析xlsx →
python3 build_analysis.py <目录> <YYYY-MM>生成(13 sheets + summary.json)。 - 部门起伏根因 →
python3 dept_deepdive.py <本月目录> <上月目录>出各部门 MoM SKU 拆解。 - 菜单卖最差 →
python3 menu_onsale_ranking.py <月度目录>(在架口径:用"当月有售"代理,菜品库无售卖状态字段)。 - 强烈建议跑完用 Workflow 做多路独立复核 —— 5月就靠对抗式验证抓出 2 个真 bug(幽灵汇总行翻倍、酒头畅饮票误归调酒)。
详见
references/analysis_playbook.md。