牛 牛逼WIKI English

便利店排班主管:全天周排班表工具——每小时都要有人不是每班有人:夜班双人安全线、交接重叠分钟、工时红线全做成硬约束,凑不齐就红字不许静默放宽

适用模型:Claude / GPT-4 级别分类:便利店难度:高级 更新

你是编码代理。请做一个单文件 HTML 的「便利店
全天周排班表工具」,给 24 小时便利店的排班
主管用:排出一张逐小时无缝覆盖的周表,把所有
违反硬约束的地方红字摆出来。本地运行,不联
网、无外部依赖。

定位(按此设计,不做通用排班器):便利店的
特有前提是「24 小时不打烊」——不是早晚两个
班,是 168 个小时每小时都要有人,深夜有安全
双人线,每次交接要面交面接。餐饮的时段式排班
模板在这里套不上,不要做。

录入四块:
一、员工名单:姓名、技能标签(收银 / 鲜食 /
    理货,标签可增删)、期望周工时
二、可用性:每人每周可用时段——兼职的可用
    时段是硬边界,任何人不可被排在其不可用
    的时间
三、规则设置(数值全部由我配置):夜班双人
    时段【】(开关 + 起止小时,时段内每小时
    至少 2 人)、周工时上限【】(全职、兼职
    可分开设)、连勤天数上限、两班间隔休息、
    交接重叠【】分钟
四、逐小时需求:每小时最少几人,可按天不同

硬约束(不满足必须红字列出,禁止静默放宽任何
一条去排一张「看起来可行」的表):
1. 逐小时覆盖:每小时在岗人数 ≥ 该小时需求
   (最低 1 人),空档格子标红
2. 夜班双人时段内每小时在岗 ≥ 2 人
3. 每个夜班小时至少 1 人有收银标签、能独立
   开台收款
4. 交接重叠:相邻班次在交接处重叠 ≥ 设定
   分钟——现金、钥匙、鲜食效期与温度记录
   面交面接,不过夜空转
5. 工时红线:周工时、连勤天数、两班间隔任何
   一条超线,该员工整行标红

输出:
- 周表:7 天 × 24 小时网格,格子可点选调人,
  任何手动改动后全部检查即时重算
- 逐小时人数投影:每小时「在岗数 / 需求数」
  并排,缺人的小时一眼可见
- 红项清单:每条写明违反哪条约束、涉及谁与
  哪个小时、最小改法建议(例:「周二 02:00
  缺 1 人:把某人周二班前移两小时即全绿」)
- 一键复制纯文本周表(按天、按人两个版本),
  直接发到员工群

实现要求:
- 单文件 HTML,内联 CSS 与 JS,双击打开即用,
  无网络请求
- 数据不落盘,刷新即清空
- 预置一个示例门店(约 8 人,含 2 名学生
  兼职),打开即见覆盖、红项与交接重叠效果

你不许做的:
- 不做「自动优化人力成本」之类的花活——先把
  五条硬约束全绿做实
- 不静默放宽任何约束数值;凑不齐就红字说
  凑不齐,怎么改由我决策
- 不加账号、云同步、外部库

为什么这样写

用逐小时网格而不是班次块,是这条和站内其他餐饮排班工具的分界。餐饮有天然的峰谷边界,班次就是格子;24 小时便利店没有这个边界——覆盖是每一个小时各自的属性,早晚两班的模板会把 05:00 到 06:00 的一小时空档藏进两班的接缝里。从 168 个小时格出发,空档直接标红,接缝里藏不住东西。

红项清单加「禁止静默放宽」是整条提示词最重要的一句。排班工具最危险的失败不是排不出表,是排得出一张「看起来可行」的表——把交接重叠偷偷抹掉、把单人的夜班当双人放过去,发出去的表到凌晨两点才暴露。凑不齐就红字说凑不齐,每条红项附最小改法,改不改、怎么改归主管:工具的诚实比工具的聪明值钱。

夜班双人线与交接重叠这两条做成一等约束,是因为它们是便利店真正特有的:深夜双人不是人力冗余,是安全岗——突发状况的第一分钟靠的是第二个人在场;交接重叠保证现金、钥匙、鲜食效期记录面交面接,不经过一段没人负责的空转。时段、分钟数全部留给用户配,因为各家的安保制度与交接清单长度差得很远,提示词只焊结构不焊数值。

预置示例门店与数据不落盘配套,是可用性的两面。这个工具的价值要在打开十秒内看见——红项长什么样、重叠怎么显示,空表说明不了;预置一个带学生兼职的示例,看懂了改掉就是自己的店。排班数据是员工的个人信息,不落盘、刷新即清,工具才敢放在店里任何一台电脑上用。

变量

变量 说明
夜班双人时段 深夜安全岗的开关与起止小时——按门店位置治安与公司安保制度定;开了就当硬约束查,别只在心里当目标
周工时上限 按当地法规与公司制度填,不沿用别店的数;全职与兼职上限不同时分开设
交接重叠分钟 每次交接要完成的事越多(点现金、对钥匙、鲜食效期与温度记录)给得越长;定了就别随意缩短,缩到零等于取消面交面接
连勤天数与两班间隔 防「打烊班接着次日开档班」的连轴转——间隔按通勤时间与当地规定定,数值照硬约束执行

排班表单文件工具24小时营业