牛 牛逼WIKI English

麻辣烫兼职拼班工具——两个高峰夹一段死谷,把学生工的零散时段拼成不养闲人的周班表

适用模型:Claude / GPT-4 级别分类:麻辣烫难度:高级 更新

你是资深前端工程师。请为我(麻辣烫店的排班主管)做一个单文件
HTML 拼班工具,无外部依赖、无构建步骤,保存为 .html 双击就用,
手机浏览器也能用,所有计算在本地完成。

工具名:兼职拼班表

一、人员库(可增删改,存 localStorage)
- 每个兼职一条记录:姓名、可用时段(按「星期 × 起止时间」多条
  添加,如 周一 16:00—21:30)、每周工时上限(小时)、单班最短
  时长(小时,默认 3)、备注(学生课表变动等)
- 支持标记「暂停排班」(请假月中不排,人不删)

二、需求表(按星期 × 时段块设置)
- 时段块由我定义,默认三块:午市 10:30—14:00、谷段
  14:00—17:00、晚市 17:00—21:30
- 每块每天需要的人数分别设(工作日和周末通常不同)
- 谷段需求默认 1—2 人,可以按天改

三、一键拼班(核心按钮)
- 规则按顺序执行:
  1. 只给「可用时段完全覆盖该块」的人排该块;跨块的可用时段
     (如 16:00—21:30 横跨谷段后半和晚市)允许切成连续两块
     排给同一人,中间不中断
  2. 每人每周累计工时不超过其上限,到达上限后不再参与拼班
  3. 单班时长不足该人「单班最短时长」的不排(跑一趟不值)
  4. 同一人同一天两班之间间隔不足 1 小时的,合并成一个班或
     只保其一
  5. 在以上硬规则内,尽量把班均摊给每个人(避免一个人连排
     六天另一个人只排一天),可用人数多于需求时优先给
     「本周已排工时最少」的人
- 拼不出来的格子(需求有、无人可排)标红空着,并在表下方
  列成清单:星期 / 时段块 / 缺几人

四、班表输出
- 周视图:行 = 人,列 = 星期,格子里写班次起止和所属时段块
- 每人自动汇总本周工时,与上限并列显示
- 两类提醒:黄色 = 本周工时低于其历史均值或我标记过「承诺
  最低工时」的差额;红色 = 覆盖缺口
- 「导出文本」按钮:生成一段纯文本周班表(按人分行),复制后
  直接粘进员工微信群

五、验收标准(做完自测这四条)
1. 录入一人「仅周二周四 17:00 后可用」,周工时上限 8,需求表
   晚市每天 2 人——该人应只出现在周二周四晚市,且第四天
   因超上限自动不再排
2. 需求午市每天 3 人但可用仅 2 人——对应格子标红,缺口清单
   显示每天午市缺 1 人
3. 一人可用 16:00—21:30 且谷段需求 1 人、晚市需求 2 人——
   应排成连续的谷段+晚市一个班,中间无缝
4. 清空 localStorage 后刷新,显示空态引导而不是报错

界面要求:单屏为主,手机上竖排;按钮和文字偏大——排班场景
常在店里跑动的间隙操作,不是坐在电脑前。

限制:
- 不引入任何 CDN、字体、图标库——完全离线可用
- 不做用户系统、不做云端同步——localStorage 是唯一存储
- 不预填任何「行业需求人数」——所有需求由我按本店实际录
- 不内置任何工时法规数字——上限、最短时长全部由我录入,
  工具只执行我给的规则,不做合规判断

为什么这样写

麻辣烫的兼职拼班和便利店、奶茶店的排班不是一回事:需求集中在两个不到四小时的高峰块,中间一段死谷,而学生兼职的可用时间几乎从不和这两块整齐对齐——「四点以后」横跨谷段和晚市,「周末全天」又能覆盖三块。用通用的周排班表一格一格手填,等于每周做一次带约束的填字游戏。这个工具的核心就是把「可用时段完全覆盖才可排、跨块连续可切」这条规则交给代码执行,人只处理它排不出来的红格。

红格是整个工具最重要的输出,比排出来的班更重要:拼班失败的时段清单,就是主管接下来要去解决的招人 / 调时间 / 自己顶的问题清单。工具如果悄悄把覆盖不了的格子用「勉强可用的次优人选」填掉,主管反而看不见缺口——所以设计上宁可空着标红,也不悄悄降级。

「单班最短时长」作为每人一个的字段而不是全局值,是因为它实际上是双方谈好的条件:有的学生住得近 3 小时也愿意来,有人跑一趟要 40 分钟公交、排 4 小时以下就等于白干。这个参数留错,人就会慢慢不来了——兼职流失的原因很少是钱,多半是「跑一趟不值」。

工时均摊规则(优先给本周已排最少的人)写进拼班逻辑,是因为兼职群里最伤士气的不是班少,是「凭什么她连排六天我一班没有」。均摊不总是最优解(熟练度有差异),所以它排在硬规则之后、作为默认倾向而不是铁律,主管生成后仍可手动微调再导出。

「不内置任何工时法规数字」是刻意的:各地对兼职工时的规定不一样,工具替用户记法规既是越权也是隐患。上限由主管录入、工具只负责执行——合规判断留给人,计算留给代码。

变量

变量 说明
时段块 本店的班块划分,默认午市 / 谷段 / 晚市三块,外卖占比高的店可加「夜宵块」
单班最短时长 每人单独谈的底线【小时】,默认 3,通勤远的人建议 4
周工时上限 每人每周封顶【小时】,学生兼职按其本人意愿和当地规定填
承诺最低工时 谈好的保底班量,用于黄色提醒,没谈过就不填

排班兼职用工单文件工具