--- 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-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%: ```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 (参数: <目录> ) ├── 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 <目录> ` 生成(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`。