Files
skills/dameng-salary/SKILL.md
T

203 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: dameng-salary
description: 大梦 by 可能实验室 月度工资计算 + 工资单生成 + 营收/出品分析。触发关键词:「大梦工资」「可能实验室工资」「N月工资单」「月度结薪」「算工资」「出工资单」「大梦N月账务」「大梦营收分析」「出品/菜单分析」。覆盖能力:(1) 从腾讯文档「工资表V2」读写月度数据 (2) 处理本地考勤资料(图片 OCR / xlsx / 腾讯文档夜班考勤)(3) 营收交叉聚合(部门×班次)+ 从原始订单生成营收分析 (4) 套用计薪公式(基本/加班/绩效/节假日/提成/社保)(5) 西湖/滨江两店分色 (6) 生成精美 HTML 工资单 + 一键导出 PNG (7) 部门收入起伏根因 + 菜单在架SKU卖最差分析。
homepage: https://docs.qq.com/sheet/DVkxTQXZTdnF2WXpV
version: 1.1.0
author: 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-255月 = 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%:
```bash
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 · 计算并写入营收数据(部门业绩 / 班次业绩 / 部门×班次业绩)
1. 打开月度营收 xlsx
- `部门收入` sheet → 取"含团购套餐合计"列 → `部门业绩`
- `班次营收` sheet → 取"顾客实付"列 → `班次业绩`
2.`compute_cross.py` 计算 `部门×班次业绩`
```bash
python3 ~/.claude/skills/dameng-salary/compute_cross.py "~/Downloads/大梦N月账务处理"
```
会输出按比例校正后的 (店, 部门, 班次) 矩阵。
3. 按行号写入 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 · 应用店色
```bash
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 · 生成工资单
1. 确保 `~/Downloads/大梦N月账务处理/工资单生成器/` 存在;如不存在,从此 skill 复制:
```bash
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"
```
2. 拉取 N 月数据:
```bash
cd "~/Downloads/大梦N月账务处理/工资单生成器" && python3 fetch_data.py 2026NN
```
3. 打开页面:
```bash
open "~/Downloads/大梦N月账务处理/工资单生成器/salary_slips.html"
```
4. 用户点页面右上角「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月营收分析 / 部门起伏 / 出品(菜单)分析」:
1. 若无预制营收分析xlsx → `python3 build_analysis.py <目录> <YYYY-MM>` 生成(13 sheets + summary.json)。
2. 部门起伏根因 → `python3 dept_deepdive.py <本月目录> <上月目录>` 出各部门 MoM SKU 拆解。
3. 菜单卖最差 → `python3 menu_onsale_ranking.py <月度目录>`(**在架口径**:用"当月有售"代理,菜品库无售卖状态字段)。
4. **强烈建议跑完用 Workflow 做多路独立复核** —— 5月就靠对抗式验证抓出 2 个真 bug(幽灵汇总行翻倍、酒头畅饮票误归调酒)。
详见 `references/analysis_playbook.md`。