牛 牛逼WIKI English

排班主管生产波次人力配置小工具——洗切、炒制、分装、包装四段按节拍算人头,技能不能互替就分开排

适用模型:Claude / GPT-4 级别分类:中央厨房难度:高级 更新

你是一个编码代理。请为我做一个单文件 HTML 的「波次人力
配置」工具,给中央厨房排班主管用:按生产波次和工序节拍
测算各工序需要几个人、瓶颈在哪、谁能交叉顶岗。浏览器
本地运行,不联网、不装依赖、不引任何外部资源。

一、输入(四块)
1. 波次任务表:波次 / 品项 / 任务量(公斤或份)/
   完成时限
2. 工序节拍表:工序(洗切/炒制/分装/包装,可自增)/
   品项 / 单位任务量的工时(分钟每公斤这类)
3. 工序前置关系:哪个工序必须等哪个工序产出才能
   开工,以及最少提前量(如 洗切须先于炒制
   【90】分钟)
4. 人员技能矩阵:姓名(或工号)/ 会哪些工序 / 本周
   可用工时 / 连续上班第几天

二、计算(规则固定)
- 工序所需人数 = 该波次该工序的总工时 ÷ 可用时长,
  向上取整
- 瓶颈识别:所需人数最大且前置链最长的工序标红,
  并算出「该工序延后 1 小时,波次完成推迟多久」
- 首班开工时刻倒推:从波次完成时限出发,沿前置
  关系倒推各工序最迟开工时刻——凌晨班几点到岗,
  由这个数说话,不靠经验
- 技能约束下的可行性:某工序所需人数超过会这个
  工序的人数,标「技能缺口」,并从技能矩阵里找
  「会相邻工序、可短期顶岗」的交叉名单(按本周
  剩余工时排序)
- 疲劳约束:连续上班超过【6】天的人不进交叉名单,
  单日排班不超过【8】小时的不进可加班名单

三、输出
- 表一:逐工序——所需人数 / 最迟开工时刻 / 瓶颈
  标记 / 现有会此技能的人数 / 缺口
- 表二:交叉顶岗名单——谁 / 会什么 / 顶哪个工序 /
  本周剩余工时
- 表三:单人排班汇总——每人当天在哪个工序、几点
  到几点、是否触发疲劳约束
- 一键复制为文本排班表(粘微信群用的格式,姓名
  对工序对时间)

四、防错
- 前置关系存在环(A 等 B、B 等 A):检测并拒绝
  计算
- 同一人同一时段被排进两个工序:检测并标红
- 任务量与节拍单位不匹配(公斤对份):录入时
  校验,不一致标黄提示换算

五、数据
- 节拍表、前置关系、技能矩阵存 localStorage,导出
  JSON 备份、可导入;波次任务每次粘贴即用不保存
- 不替人做「谁休谁上」的 fairness 判断——工具输出
  约束内的可行解,取舍留给主管

界面:桌面优先,排班主管早晨到岗先看表一。交付一个
完整 HTML 文件,内联全部 CSS 与 JS,附两百字以内的
中文使用说明。

为什么这样写

按工序节拍算人头、而不是按波次总人数拍,是这个工具的根本逻辑:中央厨房的四段工序技能不通用(会炒制的不会分装是常态),总人数够、结构不够,产线照样卡住。所需人数逐工序算出来之后,「洗切堆人、分装等人」这种最常见的错配第一次变成可见的数字——表一直接告诉你缺的不是人,是会分装的人。

最迟开工时刻倒推是给凌晨班的:几点到岗是排班主管每天的第一个决定,也是最容易拍脑袋的决定。从完成时限沿前置链倒推,洗切班 4:20 到、炒制班 6:00 到,每个时刻都有出处——迟到影响的传导(洗切晚半小时,波次整体推迟多久)也一并算出。经验丰富的主管脑子里有这张表,但脑子里的表没法给新主管、没法给老板看,也没法在品项变动时自动重算。

疲劳约束写进交叉名单的筛选条件,而不是事后提醒,是因为顶岗名单的真实使用场景就是「今天缺人,抓一个顶上」——事后提醒等于没有。连续六天、单日八小时这两个数做成变量,不同厂不同,但「不进名单」的机制是死的:缺人的日子恰恰是最容易出安全和质量事故的日子,工具必须在那个时点比人冷静。

工具不算公平性、只给可行解,是边界也是自保:谁的加班多、谁的班次差,是主管和员工之间的人情与制度问题,算法一旦替主管决定,每个不满意的人都有了指责工具的理由。工具把可行解、约束、缺口摆清楚,取舍动作留给人——这也让主管的位置不可替代。

变量

变量 说明
工序前置提前量 洗切先于炒制多少分钟开工等,决定凌晨班到岗时刻,按设备预热与转运实测
疲劳约束阈值 连续上班几天、单日几小时封顶,触发即不进加班与顶岗名单

波次排产人力测算单文件工具