⚙️ 生产形式
📅 班次日历(产能设定)
人员:全自动一体机 3人/台;半自动装卡机 1人/台 + 半自动装袋机 1人/台。
| 机器名称 | 类型 | 速率(人份/小时) | 维保日历 | 状态 |
|---|
| 编号 | 人数/线 | 状态 |
|---|
| 卡型 → 速率(人份/人·时) 新增卡型为占位值,请按实际修改 |
|---|
| 袋型 → 速率(人份/人·时) 新增袋型为占位值,请按实际修改 |
|---|
👷 产线人数 & 产能可视化
需要多少人(计算器)
| 贴板工序 → 速率(人份/人·时) 新增工序为占位值,请按实际修改 |
|---|
| 喷码 / 灌装 → 速率(人份/人·时) 新增项目为占位值,请按实际修改 |
|---|
① 订单录入(待处理 / 已处理 两张独立表 · 新增订单进入待处理表)
| W码 | W唯一码 | 检测标志物 | 卡型 | 外包规格 | 数量 (盒) | 人份 | 交期 | 物料齐套日期 | 物料状态 | 排产状态 |
|---|
| W码 | W唯一码 | 检测标志物 | 卡型 | 外包规格 | 数量 (盒) | 人份 | 交期 | 物料齐套日期 | 物料状态 | 排产状态 |
|---|
📦 生产记件
或连扫同一人2次
普诺基生物
④ 排产分析
合并后的生产批次
逐日排产(机器/手工负载 · 换型次数)
🧾 生产用工表(每天生产什么 / 哪些 W唯一码 / 几号交货 / 生产所需人员工时)
报警
③ 排产计划(勾选待排产订单 → ▶ 运行排产 · 排产表三态:已排已生产 / 已排未生产 / 待排)
📋 排产表(三态分组 · 已排已生产不可更改 · 待排可勾选排产)
🔁 重排(包含所有重排:延期 · 特殊订单提前)
② 物料计划(三区块:待处理 / 已处理 / 已到货 · 只有已处理和已到货可排产)
| ☐ | W唯一码 | 产品/标志物 | 交期 | 物料状态 | 到货日期 /齐套时间 | 状态提示 | 缺料备注 |
|---|
📅 未来 3 天排产物料情况
⑤ 销售订单进度(W码 · W唯一码 · 计划日期 · 完成情况)
📜 AI自动排产系统规则标准及负面清单(程序执行无歧义版)
本标准为排产引擎唯一执行依据;与旧版逻辑冲突时,以本标准为准(V1.0 起生效)。
展开完整标准(总则 / 优先级 / 物料 / 班次 / 合并 / 优化 / 负面清单)
一、总则
本规则为车间 AI 自动排产系统的唯一执行依据,定义全流程判定条件、执行逻辑、禁止场景与输出规范。所有规则采用可量化、可枚举、是非明确的判定标准,确保程序执行无歧义、无例外漏洞,保障排产结果可落地、可追溯、可复核;如前面有和本次逻辑冲突的,则按照此标准执行。
二、排产优先级总层级(四级递减)
第1级(最高)已逾期订单:物料齐套,且当前日期 > 订单计划交付日期。第2级特批加急订单:物料齐套,且标记为「客户特批加急/紧急插单」。第3级即将逾期订单:物料齐套,且 交付日期 − 当前排产日期 ≤ 1 个工作日。第4级(常规)正常交付订单:物料齐套,且不属于以上三类,按交付日期升序排序。程序每次先从第1级取单,空了再取第2级,以此类推;同层级按交付日期由早到晚,相同则按订单创建时间排序。
三、物料齐套判定(W号体系)
排产最小单元为主 W 号,1 主 W 号对应 N 个唯一子 W 号。主 W 号「物料齐套」唯一标准:该主 W 号下属所有子 W 号对应物料均已完成齐套校验(入库/可用)。任意子 W 号物料缺失 → 整主 W 号标记「未齐套」,不得进入排产队列,自动进入待料池。拆分豁免:子 W 号同时满足①自身物料完全齐套 ②量级阈值(1人份 ≥10000 份 / 2人份及以上人份 ≥100000 份),可脱离主 W 号独立排产,其余继续待料。
四、时间与班次排产规则
默认可用生产日:周一至周六,周日默认关闭。每日两班:白班、夜班;常规状态下夜班默认关闭,仅白班排产。排产标注格式固定为 YYYY-MM-DD 白班 / YYYY-MM-DD 夜班,无标识视为无效。周日启用条件:待排订单属第1/3级(已逾期/即将逾期),且未来7天周一至周六白班 + 手动启用夜班产能已全部排满仍无法消化。常规/特批加急订单均不得占用周日班次。
五、订单合并排产规则
合并前提:参与订单均属第3/4级常规订单(无逾期、无加急);合并后总数量不超过单批次最大产能;合并后不导致任一参与订单逾期。合并匹配维度:同标志物同卡型。逾期/加急订单禁止与任何订单合并,必须单独优先排产。
六、排产执行与优化规则
产能顺移:当前班次排满后剩余订单自动顺延下一可用班次,不得超产能;跨日优先下一工作日白班,白班满额再评估夜班。连续生产优先:同标志物同卡型订单在不打乱交期优先级前提下优先连续排产。排产锁定:已生成且确认的排产计划自动锁定不可自动修改;已开始生产的订单强制锁定,禁止插队/改序/删除。人工干预:仅支持对未锁定计划微调,所有修改须记录操作人、原因、时间。
七、系统负面执行清单(硬性拦截)
① 禁止未齐套排产 ② 禁止违规加班(常规单排夜班/周日,未满足条件自动启用夜班/周日)③ 禁止优先级插队(低优先级排在高优先级前,未齐套进队列)④ 禁止违规合并(逾期/加急与普通合并,不同标志物卡型强合)⑤ 禁止超产能排产 ⑥ 禁止违规拆分(子W未达量级阈值私自拆分)⑦ 禁止随意改单(无授权改锁定计划,无修改日志)⑧ 禁止无标识排产 ⑨ 禁止本末倒置加班(周一~六产能未用尽优先启用周日/夜班)。
八、系统输出与日志要求
排产结果须含:主W号、子W号、产品规格、数量、交付日期、排产日期、排产班次、优先级标签、批次号。全流程可追溯:自动排产/合并/拆分/加班/人工修改均生成系统日志(时间、触发条件、内容、关联订单)。异常留痕:触发负面清单被拦截的操作须记录拦截原因、触发规则、关联订单,支持导出排查。
⑥ 排产规则(系统按以下规则自动排产)
① 单位:所有产能、订单、排产统一用「人份」。订单填盒数,系统按规格自动换算人份(规格人份 × 盒数)。
② W唯一码:=W码+产品号(如 W001-01),是排产与物料追溯的最小单位,全局不可重复(含历史)。
③ 路由规则(按批总人份):仅单卡可走自动化设备(v0.39 确认):单卡 >2000人份→全自动一体机;单卡 500–2000人份→半自动装卡+装袋;单卡 <500人份→手工;其余卡型(双卡及以上 / 笔型 / 尿杯 / pannel 系列)→ 全部手工;裸条(独立形态,非卡型工序)→内包+外包全手工。
④ 人数模型:全自动一体机 3人/台(完成内包+外包);半自动装卡机 1人/台 + 半自动装袋机 1人/台(完成内包,外包另由手工做);手工线内包装卡装袋、外包装盒装袋各按各自速率,每 11 人时折算 1 人。
⑤ 合并(v0.39):合批键=标志物+卡型(不看规格、不看物料日);内包外包独立核算——内包可合批,外包各订单按自身规格分别计工。同批不同物料日:合并后不逾期→整批等最晚物料日开工;会使某单逾期(最晚物料日+1 晚于该单交期)→该单不合批,按各自物料日独立成批。保留来源 W唯一号。
⑥ 机器可用性:每台用📅维保日历点选停用日;关闭或维保当天不计入产能。
⑦ 换型:机器池与手工池各自按"当天不同批"扣换型时间,计入产能损耗。
⑧ 需求人数:排产表「生产所需人员」= 机器人员(全自动×3+装卡×1+装袋×1)+ 手工内包人数 + 外包人数。
⑨ 物料齐套:已齐套→须填「齐套时间」(最早开工日);未齐套填预计到货日→回填包材就绪日,排产自动等料。
展开完整规则细节与历史版本说明(点开查看)
⑩ 产能升级顺序(避免逾期的优先级):默认周一至周六生产、然后再周日。为不逾期,产能按以下顺序逐级升级,前一级用尽才进下一级:①机器日班连产——一张机器单可跨多天连续上机,尽量不碰手工线;②日班机器产能不够时,加周日时间;③周日仍不够时,开夜班(当天产能+1班,周日也可加夜班);④仅当夜班+周日机器产能仍不足以按期完成时,才动用手工线(溢出兜底)。多联系卡 / 单卡小批量(本就须手工)不受①②③限制,直接走手工线。
⑪ 历史档案 + 暂停重优化:每次「运行排产」生成方案后,需人工点「✅ 确认排产并归档」才写入档案、不停累加;档案中已完成(已排完)的订单灰色显示,未完成的留在「③ 排产计划」。订单行可⏸暂停(暂不参与排产、仍保留),重新运行走增量重排——尽量不动整体排产、可插入后期订单、可等待新订单进入;需要时再「▶恢复」续排。
⑫ 增量重排(新单最小扰动):开启「增量重排」后,再排产会锚定上一版未来日的排产,只对新录入 / 增量的订单做最小改动:优先塞进未来日的空闲产能(最早日优先),原计划的其余部分一行不动。仅当某张紧急新单在空闲产能下会逾期时,才按策略B挤占最不紧急(交期最晚)的老单——把老单推后重排,给急单腾位;被挤占的老单在排产表标 ↻挤占,新单标 🆕新。关闭该开关则每次从零全量重排。
⑬ 机器线 + 人工线并行(v0.45 起):从排产第①级(周一到周六白天)起,机器线与人工线同时开工、并列贡献产能——机器优先吃单,机器吃满后当天的富余量自动溢出到人工线(同批内包合批、外包按规格分别计),二者当日并行而非先后。升级顺序(仅当产能性逾期未消除才逐级放开):工作日白班 → 周日白班 → 周一到六夜班 → 周日夜班 → 全开(详见 ㊾)。排产表明细里出现「手工(自动溢出) / 手工(内包溢出)」代表当天机器已吃满、由人工线补齐;若大量出现,说明已到人工兜底,可考虑增机 / 增人或放宽交期。
⑭ 齐套时间缺失:若运行排产时发现某些 W 唯一码已标"已齐套"但未填齐套时间,会弹窗二选一:确定=用订单交期作为齐套时间(自动回填后继续排);取消=先不做排单(这些 W 码本次不排,其他订单继续排)。回填后下次排产会沿用,不会重复弹问。
⑮ 每日人员小计(红框·人·时):③ 排产计划每天的所有分配行结束后,插入一条红色边框的小计行,写明当天「共 N 人 × 11h = X 人时/天 · 机a·内b·外c」;每条分配行的「生产所需人员」列按 route 折算该行占用的 人·时——机器人员(全自动/半自动)按当天机器产量占比分摊到各行、手工按内+外包算,全部按 11 小时=1 人 折算。
⑯ 时间优先级 + 班次分段:排产填时间槽顺序:① 周一~周五白班 ② 周六白班 ③ 周日白班 ④ 周一~周五夜班 ⑤ 周六夜班 ⑥ 周日夜班。即所有白班整体排完仍不够才动用夜班;白班内优先工作日、周日最后;夜班整体排在白班之后。展示层所有排产表(③ 排产计划 / 总览甘特 / 🏭 生产视图 / ⑧ 历史档案)按 (日期,班次) 拆行渲染——每天最多两行(白班段 + 夜班段);没有排产的日期不显示;每天在日期后明确标注「白班 / 夜班」标签。
⑰ 机器人时计入:开机器(全自动一体机 ×3 人、半自动装卡/装袋各 ×1 人)的相关人员同样按 11h/人 折算成人·时,并分摊到对应机器行展示,不再"不单算"。
⑱ 跨度异常自动检测 + 状态配色(v0.22):增量排产时若发现某批次在上一版计划中任意两次排产间隔超过 14 天(如 8 月排几天、11 月再排几天,中间长期空白),视为「跨度异常」,不再锚定旧计划,整批重新排——把量均匀填进早期空闲产能,避免出现数月空白;首排 horizon 也扩展到 180 天兜底。状态配色:所有表格(批次表 / 甘特 / 排产表)整行按批次状态染色 + 左边框色 + 圆点徽章——⚠️逾期(红) 排不下且已过交期 / 完成日晚于交期;⚠️/🟠产能不足(红) 交期 7 天内或更远仍排不下;🎉提前(绿) 完成日早于交期;✓准时(蓝) 按交期当天完成或已排完。
⑲ 页面新顺序 + 销售订单进度(v0.24):导航按业务流排列:① 订单录入 → ② 物料计划 → ③ 排产计划 → ④ 排产分析 → ⑤ 销售订单进度 → ⑥ 规则 → ⑦ 历史 → 🏭 生产视图 → 👤 用户 → ⑧ 机器 → ⑨ 人工产能。新增「⑤ 销售订单进度」页:按 W 码 / W 唯一码展示每张订单的计划日期(首末产日)与完成情况(待排产 / 已排·未生产 / 生产中 / 已完成 / 已暂停),支持右上角搜索,销售角色可直接查看自己订单的进度。
⑳ W码 / W唯一码 双列 + 订单页只看进度(v0.24):订单录入页 W 码(如 W001)与 W 唯一码(如 01)分两列分开保存(合成后仍为 W001-01);右上角搜索框可按 W 码 / 唯一码 / 产品 / 标志物过滤;页面按「⏳ 待排产订单」「📅 已排产订单」两组分组显示——「▶ 运行排产」按钮已移至 ③ 排产计划页。
㉑ 物料计划三区块门控(v0.24):物料计划页分为三个区块:🕐 待处理(物料齐套时间未确认,不可排产)、📋 已处理(已填「预计齐套时间」,可排产)、✅ 已到货(已点「齐套已到货」,可排产)。运行排产时待处理订单会被自动拦截(弹窗提示),仅「已处理 / 已到货」的订单参与排产(v0.25 起需在订单录入页勾选「📦 申请物料计划」建档,不再自动建档)。
㉒ 重排(延期 / 特殊订单提前,v0.26 升级):③ 排产计划页顶部显示「⏳ 待排产 / 📅 已排·未生产 / 🏭 已排·已到生产期」三态统计与明细,支持右上角搜索。「🔁 重排」功能覆盖所有已排产订单(不再限于已到生产期):在重排列表勾选订单 + 选「新的最早开工日」——早于当前首产日=⏩ 提前(特殊急单插队,强制从新日期起排)、晚于=⏳ 延期(缺料/设备/客户改期,不早于新日期);该订单脱离旧锚定整批重排,其余订单最小扰动;可一次勾选多张统一重排,重排记录留档可查。
㉓ 申请物料计划流程 + 必填校验(v0.25):① 订单录入页加宽、单元格不换行(不再出现一行内容竖排占多行)。必填项:W码、W唯一码、标志物、卡型、数量、交期(未填齐不能申请物料计划 / 排产)。订单行最左侧新增 ☐ 勾选列(表头 ☐ 全选),底部「📦 申请物料计划」把勾选订单提交到 ② 物料计划·待处理区块(不再自动建档,未申请的订单不出现在物料计划页)。
㉔ 物料状态三选 + 到货日期必填(v0.25):② 物料计划页每行改为状态下拉:🟡 未到货(黄色标识)→ 📋 已处理(须选「预计齐套时间」)→ ✅ 已到货(选后立即弹出选择到货日期,选完日期才能确认提交,否则无法完成提交)。可排产的=已处理+已到货。
㉕ 排产计划两张清单 + 生产用工表分离(v0.25):③ 排产计划页精简为两张表:⏳ 待排产订单表(可勾选,勾选物料未齐备订单时提示「无法完成物料未齐备的,只排物料已齐备的」)和 📅 已排产订单表(W码 / W唯一码 / 产品 / 交期 / 排产日期 / 到货状态,分「已排未生产」「已排已生产」两组)。原总排产表(生产所需工时 / 人员 / 运行状态明细)移至「④ 排产分析 · 🧾 生产用工表」。
㉗ v0.26 订单录入升级:① 卡型新增裸条(走装袋机路线),外包规格新增100人份;订单页按「📝 待处理(未申请物料计划)/ 📦 已处理(已申请物料计划)」分组显示;交期 / 包材就绪日两列平时只显示 月-日、点击后弹出完整 年-月-日 日期选择(选完仍收起为 月-日),节省横向空间让卡型 / 外包规格完整可见。
㉖ 销售进度按 W码合并(v0.25):⑤ 销售订单进度页按 W 码分组,相同 W 码的多个产品(如 W001-01、W001-02)排在一起,第一列 W 码合并单元格只显示一次,并标注该 W 码下的产品数。
㉘ v0.29 订单录入升级(清理 + 锁定 + 审批闭环):① 表头清理 — 去掉「(产品号)/(自动)/(到料日期)/(W码-产品号)/…」等括注型副标题,只保留主表头名称(如 W唯一码 / 人份 / 包材就绪日);② 批量导入待处理 — 订单录入页加 「📥 批量导入待处理」 按钮,弹出粘贴框(Tab/逗号分隔 8 列),解析后按行进入 待处理表;③ 已处理 锁定 7 个字段(v0.29)— 订单被勾选「📦 申请物料计划」后进入 「📦 已处理」表,W码 / W唯一码 / 检测标志物 / 卡型 / 外包规格 / 数量 / 人份 7 列的 input/select 被设为 read-only,不可直接修改;④ 已排产 锁定 交期(v0.29)— 排产(含通用重排)完成后,订单的 交期 列同样不可直接修改;⑤ 「请联系计划人员」修改申请 + 审批闭环(v0.29)— 点被锁的字段 → 弹窗 「该字段已锁定 · 请联系计划人员」 → 填写新值 / 修改原因 提交 → 写入 修改申请队列;侧栏 「📋 修改申请审批」 入口(带未处理数徽标)列出所有申请,批准后自动写入订单并解除锁定,驳回则保留原状。请见 ⑩ 用户与权限 / 角色说明。
㉘ v0.27 订单两表分离 + 完成新增必填:① 订单录入页「📝 待处理」与「📦 已处理」拆为两张独立表格(各自表头、各自 ☐ 全选、各自计数,不再合用一张表);新增订单一律进入待处理表,勾选后点「📦 申请物料计划」移入已处理表。必填校验升级:除「包材就绪日(到料时间)」非必填外,其余(W码 / W唯一码 / 标志物 / 卡型 / 外包规格 / 数量 / 交期)全部必填——未填齐的行标「⚠️ 待补全」并红框缺失单元格,且不能申请物料计划 / 排产,填齐才算完成订单新增。
㉙ v0.30 排产表三态 + 生产清单(本版):① ③ 排产计划页改为一张「排产表」三态分组——🏭 已排已生产(置顶、灰显划线、不可更改) / 📅 已排未生产 / ⏳ 待排产(可勾选 → ▶ 运行排产);列统一为 检测标志物 · W唯一码 · 人份数 · 交期 · 齐套时间 · 排产/生产时间(首产日),其中「已排已生产」行的末列标注「生产时间」、「已排未生产」标注「排产时间」,齐套时间=物料已到货日期或预计齐套时间。② 侧栏「🏭 生产视图」合并改名为「📋 生产清单」(一页两区块):保留原「产线 × 日期」矩阵供生产人员看,新增「📋 生产清单」列表——⏳ 待生产(标志物 / W唯一码 / 人份数 / 交期 / 齐套时间 / 排期=首产日)与 ✅ 已生产(同列 + 完成日期=末产日,末产日 ≤ 今天判定),仅列出已排产订单。
㉚ v0.31 生产清单/视图拆分 + 完成确认 + 订单页黑显 + 物料同步按钮调整(本版):① 侧栏「🏭 生产视图」与「📋 生产清单」拆为两个独立页面——生产视图=产线×日期矩阵(给生产人员看),生产清单=待生产/已生产列表(仅已排产订单)。② 生产清单「✅ 完成」确认流程:待生产每行有「✅ 完成」按钮,点击弹窗填生产完成日期(默认今天)并需销售/生产人员确认,确认后该单移入「已生产」并持久化保存(写入 localStorage)。③ 订单录入页重组:「📦 申请物料计划」按钮移到待处理表下方;「📦 已处理」表锁定不可改但改为正常黑色(去掉 v0.30 的浅灰);订单表「包材就绪日」列改名为「物料齐套日期」。④ 物料/排产按钮调整:物料计划页「💾 保存并同步到订单」改名「💾 数据同步至订单与排产端」并隐藏「↻ 同步并排产」;③ 排产计划页「▶ 运行排产」按钮移到排产表下方。⑤ 排产表「已排已生产」去掉灰显划线、改为正常黑色(仍不可更改)。⑥ 重排门控:重排日期须 ≥ 物料齐套日期(已到货日期 / 预计齐套时间),物料未齐备(无到货且无预计)不可重排。
㉛ v0.32 物料齐套后才开工 + 紧急单判定(本版):① 默认规则:物料齐套后的下一个生产日才开工——排产门控由「物料齐套当天可排」收紧为「物料齐套时间之后的下一个生产日」才开始生产(应对晚到物料,避免物料未到就上线)。② 紧急单自动判定(系统自动,无需手动勾选):系统按日产能估算生产周期,若「物料齐套时间 + 生产周期 > 交期」(即不提前就会逾期),自动判定为紧急单。③ 紧急单不自动排产、留人工点击:运行排产(全量自动)时,紧急单不会被系统擅自当天开工,而是留在「⏳ 待排产」列表(带「⚡ 急单·将当天排产」提示),由人工勾选后点排产(像正常订单一样点击一次)才排。④ 人工排产时允许当天排产 + 强制标识:人工勾选排产紧急单时,系统允许其从「物料齐套当天」起排(当天排产),并在排产表 / 生产清单行内打红色「⚠ 当天排产·物料未齐套」标识。判定用的产能系数(estDailyCap÷2)可在代码内调整。
㉜ v0.33 紧急单改「人工排产」(修正 v0.32 自动排产导致订单从排产表消失的问题):v0.32 中紧急单(到料 / 生产 / 交期同一天等)会被系统自动从当天排产——运行排产后这些单直接离开「⏳ 待排产」、用户无法再干预。v0.33 改为:运行排产(全量自动)只排非紧急单,紧急单一律留在待排产列表等人工勾选点击;人工勾选排产时仍允许「物料齐套当天」开工并打「⚠ 当天排产·物料未齐套」标识。这样紧急单与正常订单一样受人工控制,不会悄悄被系统排掉。
㉝ v0.34 合批不再拖拽交期(修正「同标志物订单被最晚物料拖到远日」):排产合批键由「标志物+卡型+规格」改为「标志物+卡型+规格+物料齐套日」。此前若同标志物/卡型/规格的多张订单物料到货日不同(如 W005 物料 8/25、交期 8/26,与 W002 物料 8/28 同批),整批 earliest 取所有来源物料齐套日的最大值,导致交期紧的 W005 被最晚物料(8/28)拖到 8/29 才开工。改为按物料齐套日各自成批后,W005 自行从「物料齐套日+1」(8/26)开工,不再被同批其它单的晚到物料拖拽;日产能充足时(默认全自动约 6.4 万人份/天),单张 9000 人份订单当天即可排下。增量重排的锚定匹配键同步带上物料齐套日,旧方案重排不会错位。
㉞ v0.35 物料延期自动重排 + 排产表增加「是否逾期/提前」列(本版):① 物料延期自动触发重排——在「② 物料计划」点「💾 数据同步至订单与排产端」时,系统比对每张已排产订单的新物料齐套日(已到货日期 / 预计齐套时间)与其当前首产日:若新物料齐套日晚于当前首产日(即「物料延期到生产之后」),则该单自动脱离旧计划、转入「⏳ 待排产」并以新物料齐套日为起点重新排产,其余已排产订单增量锚定不动、不被扰动。② 排产表新增「📊是否逾期/提前」列——与「④ 排产分析」同口径(逾期红 / 准时蓝 / 提前绿):对每张已排产订单按其所属批次的「剩量 / 完成日 / 交期」判定「⚠️逾期 / ✓准时 / 🎉提前」并染色显示;「⏳ 待排产」行标注「⏳ 待排产」。③ 交期与物料齐套时间始终可见——排产表的「交期」「齐套时间」两列(已排产与待排产均显示),保证重新排产后的订单同样带齐交期与物料齐套时间。
㉟ v0.36 批量导入支持 Excel 模板 + 重复 W唯一码逐行报失败:① 两种导入方式——(方式一)沿用「粘贴导入」:从 Excel 复制多行粘贴到文本框(Tab/逗号分隔);(方式二)Excel 模板:点「⬇️ 下载导入模板(.xlsx)」获取标准模板(列=W码 / 产品号 / 检测标志物 / 卡型 / 外包规格 / 数量(盒) / 交期 / 包材就绪日),在 Excel 填写后点「📂 选择 Excel/CSV 文件」上传 .xlsx / .xls / .csv。② 重复检测逐行报错——导入时按 W唯一码(W码-产品号) 校验三重重复:导入内重复(同一次导入两行 W 相同,标明「与第 X 行冲突」)、当前订单表已存在、历史已归档(wHistory,非在档基线);命中即该行 标为失败并跳过,并在结果区列出「第 N 行:原因」,未重复的整批 标为成功导入。③ 离线兜底——Excel(.xlsx/.xls) 解析依赖按需联网加载的 SheetJS(jsdelivr CDN);若无法联网,模板下载与 .xlsx 上传会提示改用「粘贴导入」,而 .csv/.txt 上传无需联网(纯 JS 解析)。列校验(标志物/卡型/规格 必填、卡型/规格 取值合法)同样逐行报错。
㊱ v0.37 物料性逾期不再误开夜班(本版):修正第⑩级产能升级阶梯的触发条件:此前只要任一批「未排完 或 完成日晚于交期」就逐级升级(周日 → 夜班 → 手工线),但若逾期是「物料晚到」造成的(最早开工日=物料齐套日+1 已晚于交期),开夜班/周日/手工线都无济于事——开工门控卡在物料日,加再多产能也只能从物料日后起排。原逻辑导致此类场景下所有日期被标成「夜班」,白班产能其实足够,页面显示与实际产能矛盾。现改为:只有「产能性逾期」(最早开工日≤交期,却仍排不完或完成晚于交期)才逐级升级产能阶梯;物料性逾期仅按第⑱条正常标红「⚠️逾期」提醒(属供应链问题,需催料或与客户改期,而非加产能),不再误开夜班/手工线。
㊲ v0.38 卡型扩展 + 裸条全手工 + 效率口径(本版):① 卡型扩充为 21 种——单卡 / 双卡 / 三卡 / 四卡 / 五卡 / 六卡 / 裸条 / 笔型 / 尿杯 / pannel-1 ~ pannel-12,订单录入、批量导入、计算器、内包速率表全部同步(内包速率表改为按卡型自动生成,新卡型速率为占位值,请在「产能配置」改成实际值)。② 裸条改为独立形态、全手工——裸条不是卡型工序,内包+外包都必须手工完成,不再走半自动装袋机路线。③ 效率口径——内包整体计效(含装卡+装袋两道工序),只有半自动机器内部才再分「装卡机/装袋机」;外包不分装盒/装袋,按「外包」单一口径核算(外包速率表合并待下版实现)。
㊳ v0.39 合批规则定版 + 内包外包独立核算 + 外包速率表合并 + 产能默认值(本版):① 合批键改为「标志物+卡型」(不再看规格、不看物料日);同批不同物料日——合并后不逾期则整批等最晚物料日开工,会使某单逾期(最晚物料日+1 晚于该单交期)则该单不合批、按各自物料日独立成批(迭代拆分直到无拖累)。② 内包外包独立核算——内包按合批总量计效;外包各做各的:每批的外包工时按各源订单自身规格速率分别累计(混规格批显示「多规格」,明细按等效速率展示)。③ 外包速率表合并为单行——不分「装盒/装袋」,按规格一行「外包」速率;旧存档自动迁移(取原装盒/装袋较慢者为初始值)。④ 产能参数默认值写入代码(已确认)——全自动一体机 1台×4000、半自动装卡机 1台×1600、半自动装袋机 1台×1600、每班 11 小时 × 1 班;旧存档首次打开自动按新默认迁移(机器表与班次参数一次性重置,其余数据不动)。⑤ 新卡型内包效率后台可设——在「⑨ 人工产能」页内包速率表直接改并保存即可(新卡型当前仍为占位值)。
㊴ v0.40 跨表数据同步 + 修改确认弹窗(本版):① 全站数据联动——任何一处确认修改后,订单录入(含物料状态/齐套时间/排产状态列)、物料计划、排产表(齐套时间/生产时间)、生产清单、未来3天物料预警、顶部预警横幅全部同步刷新并持久化,不再需要逐页手动刷新或点同步。② 修改确认弹窗(替代 v0.29 审批闭环)——已处理数据(订单表已处理字段、已排产交期、物料状态/到货日期/预计齐套时间)全部放开可改(浅琥珀底标识),修改时弹出确认框显示「原值→新值」:确认=应用并同步所有表格;取消=自动回滚原值。改 W唯一码 会自动迁移全部关联数据(物料档案/完成标记/历史记录)。③ 生产完成时间全站同步——生产清单标记完成后,订单表排产状态变「✅已生产」、排产表移入「已排已生产」组并显示完成日期;已生产行可点「✏️改完成日期」。④ 物料延期改为手动重排——物料齐套时间改晚后不再自动重排,弹提示列出受影响订单,由计划员到「③ 排产计划」勾选后手动重排(排产计划保持不变直到手动操作)。⑤ 修复 bug:订单表「排产状态」列因函数重名永远显示待排产,现按 已生产/已排产/待排产 三态正确显示。
㊵ v0.41 订单录入弹窗 + 排产分析去红 + 历史档案表格化 + 生产清单常显(本版):① 新增订单弹窗录入——点「➕ 新增订单」弹出独立录入窗,含 W码/W唯一码/标志物/卡型/规格/数量/交期/包材就绪日;必填项(W码·W唯一码·标志物·数量·交期)未填无法提交,并实时校验「W唯一码」是否与当前表/历史档案重复。② 导入更稳——粘贴导入支持 Tab / 逗号 / 连续空格 多格式分隔;Excel(.xlsx/.xls) 仍依赖联网 SheetJS,.csv/.txt 离线可用。③ 排产分析去红——批次表/生产用工表的状态列去掉大红表头与红框,逾期仅用浅红行底+「逾期」标识,其余行底改为中性浅灰/浅绿;工时表达简化为「共 N 人」(机/内/外以小字附后)。④ 历史档案表格化——每次归档改为「批次汇总表 + 排产明细表(按天)」两张表格,列含标志物/卡型/规格/总人份/来源W/交期/最早开工/预计完成/状态,更直观。⑤ 生产清单常显——未排产/已暂停订单也进入生产清单(归入「📋 待排产」组,排期显示待定),不再因未排产而整列消失。⑥ W码/W唯一码/标志物 仅订单录入页可改——这两三项是订单身份,只有「① 订单录入」页(待处理+已处理表)可改并同步全表;物料计划/排产计划/生产清单等页面一律只读显示。
㊶ v0.42 合批+当天发 + 全部现选/重新计划 + 优化建议逐条确认(本版):① 合批与当天生产当天发货——合批键仍为「标志物+卡型」(v0.39):不同 W唯一码 只要标志物相同+卡型相同即视为同一产品,可安排内包合批生产;系统按交期与物料准备情况合并,若合并后各单均不逾期,则合并批次在单日产能内完成时标记为「🚚 当天生产当天发货」(批次表与历史档案均显示「📦 内包合批(N单)」与「🚚 当天发」徽章)。② 排产计划页新增两个按钮——「☐ 全部现选」一键勾选「⏳ 待排产」全部订单(再点取消全选);「🔄 重新计划排产(全部已有订单)」对全部已录入订单跳过增量锚定、从零全量重算(历史档案不受影响)。③ 💡 优化建议(逐条确认)——系统基于当前订单/物料齐套/最近一次排产结果,自动生成可执行的优化建议:内包合批机会、逾期风险(物料晚于交期)、物料计划未申请、产能利用偏低日、急单未排,以及 5 条经验性建议(同标志物对齐交期、优先内包合批、交期前留 1 天缓冲、大批量单卡走全自动、尽早确认物料齐套时间);每条可「✓ 确认」(持久化记录),也支持「✓ 全部确认」。
㊷ v0.42.1 批次表「最晚交期」= 合并批中最早到期日(修复 bug):此前 groupToBatch .把合并批的 batchDue 算成各源订单交期的最大值(最松),导致紧单(W002 交期 8/26)被合到松单(W005 交期 8/31)下,页面却显示「8/31 当天完成」—— 实际整批的硬约束是最紧交期。v0.42.1 改为 min(dues):「最晚交期」列 = 合并批中最早到期日(最紧约束——决定整批是否逾期),「最早可开工」列 = 物料齐套最晚日(要等齐才能开工),并校验不变式 最晚交期 ≥ 最早可开工日(违反则被 groupOrders 拆出该单,单独成批);批次表头加副标「(合并批中最早到期日)」「(物料最晚齐套日)」便于理解,状态列新增「🔴 物料晚于交期」防御性提示(仅在 matReady 已晚于交期时显示)。
㊸ v0.42.2 批次排产「开工 / 交期」三层时序规则(新增,按您口径固化):① 正常开工时间 ≥ 物料到达后一个生产日——非特例情形下,最早可开工(开工下限)= 物料齐套最晚日 + 1 个生产日(周日自动顺延);② 排产完成以「最晚交期」为界(小计 = 最晚交期)——批次的计划完工绝不允许超过最晚交期(不逾期),引擎按「当日 > 最晚交期 则跳过不排」执行;③ 齐套时间 = 最后交期 → 当日直接排产——当某批「物料齐套最晚日」恰好等于「最晚交期」时,豁免 +1 缓冲,允许当日开工(否则会被误判「物料晚于交期」无法排),此情形下合并批可在当天生产当天发货。三层关系:物料齐套最晚日 ≤ 最早可开工 ≤ 最晚交期,且「齐套=交期」时最早可开工可等于最晚交期。
㊹ v0.42.3 「不逾期优先合并」成本最优合批原则(新增,您截图反馈后固化):合批的核心目标是在所有单都不逾期的前提下,把能并到一起的 W 唯一码 尽量并到同一批内包生产(减少换品种/换批次数,节约工时和包材)。引擎行为:① 同标志物 + 同卡型 的多张订单默认全部并入同一批(合批键只看 mark+card,不看规格、不看物料齐套日);② 只有当合并会让「最早可开工 > 某单交期」(即该单会被拖成逾期)时,才把该单拆出来按各自物料日独立成批——此为唯一的拆分条件;③ 即使合并后某单比它「自己能最早完成的日期」晚 1 天,只要不逾最晚交期,也优先合并(例如 W001/W002 物料 8/23、due 8/30 与 W005 物料 8/25、due 8/26 合并,整批 earliest=8/26,W001/W002 晚一天到 8/26 完成也不逾期,仍然合并为一批)。测试 /tmp/test_v0_42_3.js 已固化该场景。
㊺ v0.42.4 生产时间安排「可行窗口」正式规则(您完整口径固化,全局唯一权威定义):① 基本约束:交货时间 ≥ 生产日期 > 齐套时间(每一个生产日都满足)。② 齐套 = 交货:生产日期 = 齐套时间 = 交货时间(特例豁免 +1 缓冲,当日直接排产,可当天生产当天发货)。③ 齐套 < 交货:生产日期可以是「齐套时间(不含)~ 交货时间(含)」区间内的任意一天(即严格晚于齐套、不晚于交期);引擎默认取窗口内最早可行日(ASAP),但窗口内任一天均合法。④ 合并批可行窗口 = 各源单窗口之交集 = (max 齐套, min 交期];若该区间为空(max 齐套 ≥ min 交期)则至少一单被拆出单独成批(唯一拆分条件)。⑤ 优先合并:在不逾期前提下,尽量把更多同标志物 + 同卡型 W 唯一码并到同一批(省换批 / 工时 / 包材);引擎已默认 mark|card 全并、仅拆不可行单。
㊻ v0.42.5 订单录入「🤖 AI 批量建单」(DeepSeek 智能解析不规则订单):针对同事从微信 / Excel / 客户聊天里复制来的不规则文本(字段顺序乱、可能缺字段),新增「🤖 AI 批量建单」按钮(订单录入页,与「📥 批量导入待处理」并列):① 粘贴整段文本 → 点「🔍 用 DeepSeek 解析」→ AI 按系统提示词(内置卡型 21 种 / 规格 6 种枚举,避免乱猜)解析成结构化订单,并根据项目名推断检测标志物(如 乙肝五项→乙肝、新冠抗原检测→新冠抗原、梅毒→梅毒);② 解析结果渲染成可编辑预览表(项目 / 标志物 / 卡型 / 规格 / 数量 / 交期 / 齐套日期,每行可改、带「✅ 可导入 / ⚠️ 待补全」状态),工作人员逐条确认哪些正确,或直接「全选确认」;③ 点「✓ 导入选中」→ 自动生成 W 码(基于当前最大 W 号顺延,如 W106-01)并复用既有导入校验(去重 / 卡型规格合法性 / 必填项),成功行进入「📝 待处理」表,失败行逐条列明原因。④ Key 安全策略:DeepSeek 的 API Key 仅保存在用户本机浏览器 localStorage(设置卡片里填写一次即可),绝不写入网页源码,避免部署后任何人都能窃取 Key(各终端各自配置)。
㊼ v0.43 物料计划「批量勾选 + 批量设置」& 排产「全部现选 + 重新排产所选」(本版):① ② 物料计划 批量操作——物料计划表每行新增左侧 ☐ 勾选框,表头新增「☐ 全部现选(物料)」:一键勾选 / 取消全部已申请物料计划的订单;并新增批量设置面板(状态下拉 + 日期 + 「应用到所选」按钮),可一次把勾选的多张订单统一设为「🟡 未到货 / 📋 已处理 / ✅ 已到货」并填同一日期(设为已处理须填「预计齐套时间」、设为已到货须填「到货日期」),应用后自动同步全表。② ③ 排产计划 全部现选(含已排)——排产表「📅 已排未生产」行新增左侧 ☐ 勾选框(「🏭 已排已生产」为已完成、不可重排,不加勾选),新增「☐ 全部现选(全部,含已排)」:一键勾选 / 取消全部「⏳ 待排产 + 📅 已排未生产」订单。③ ③ 排产计划 重新排产所选——新增「🔄 重新排产所选(勾选)」按钮:仅对勾选的项目重新排产,其余订单增量锚定不动(不扰动);已排未生产单会以「脱离旧计划、按当前物料/订单数据重新排」的方式重排,待排产单则按正常增量排入,二者均只动所选、不波及未勾选项目。原「☐ 全部现选(待排产)」「🔄 重新计划排产(全部已有订单)」保留。
㊽ v0.44 AI 批量建单增强:内置默认 Key · 卡型智能推断 · 截图上传 · W码产品号自动补齐(本版):① 内置默认 DeepSeek Key——您提供的 API Key 已内置为默认值(设置卡片里可见、可改;若清空则回退到内置默认值,修改后仅存本浏览器 localStorage)。② 卡型智能推断——解析后若某行「卡型」留空:项目名含「/」按斜杠数推断窗口数(1 个「/」= 双卡、2 个 = 三卡 … 最多六卡),无「/」且仍空则默认「单卡」;项目名带「/」时以斜杠推断为准(覆盖 AI 猜测)。③ 截图上传——AI 批量建单弹窗新增「📷 上传截图」:可上传订单截图(微信 / Excel / 客户聊天),AI 用视觉模型(deepseek-v4-flash-vision-exp)直接读取图中订单并解析,图文一致以图为准;大图自动压缩到 1600px 以内再上传。④ W码产品号自动补齐——粘贴 / Excel 导入时若只给了「W码」没给「产品号」,系统按 01→99 顺序自动补齐(自动跳过当前表 / 历史已占用的产品号,数字自动补零);AI 批量建单仍按最大 W 号顺延生成新 W 码。
㊾ v0.45 排产优先级过关 + AI 逾期急救(本版):① 不逾期优先的 5 级产能升级(机器线 + 人工线并行,从第一级就同时开工):第①级 周一到周六白天(机器 + 手工并行,最优先、最省成本);仍产能性逾期 → 第②级 +周日白天;仍逾期 → 第③级 +周一到周六夜班(不含周日);仍逾期 → 第④级 +周日夜班(仅周日);仍逾期 → 第⑤级 全开(周末 + 夜班 + 手工)。每级只在「产能性逾期」未消除时才升级(物料晚到导致的逾期不计入升级,见⑰ v0.37)。② 逾期急救(AI 3 方案):当开到第⑤级仍有产能性逾期时,排产页顶部出现红色横幅 + 「🆘 AI 逾期急救(3 方案)」按钮;点开后调用 DeepSeek,基于当前订单 / 产能 / 逾期清单,返回 3 套优化方案(目标都是尽量少的 W 号逾期),每套附优点 / 缺点 / 推荐度,点「采用此方案」即按该方案口径(base / sunday / weekday_night / all_night / full / outsource / redistribute)重排并记录;outsource / redistribute 类方案引擎自动以「全开」口径重排并提示需配合外发或增机。注:5 级升级与 AI 急救都用同一套「产能性逾期」判定(earliest≤交期 却仍排不完),物料晚到不算。③ 🧹 清空订单记录:订单录入页新增「🧹 清空订单记录」按钮——二次确认后一次性清掉订单行(待处理+已处理)/ 物料状态 / W码历史 / 排产结果与历史档案 / 延期记录 / 生产完成标记 / 修改申请 / 优化确认,但保留机器 / 手工线 / 班制 / 效率参数 / DeepSeek 设置,用于正式使用前清空演示数据。
㊿ v0.46 生产清单批量设置完成(本版):「📋 生产清单」页新增批量设置完成能力:① 每个「⏳ 待生产」行首新增 ☑ 选择框(表头新增「选择」列),清单上方工具栏有「☑ 全选待生产」与「✅ 批量设置完成」按钮(未勾选时禁用,并显示已选数量);② 勾选若干待生产订单后点「批量设置完成」→ 弹出确认框,列出所选 W 唯一码、填统一的生产完成日期(默认今天),须销售 / 生产人员确认;③ 确认后所选订单一次性写入「已生产」清单(prodDone 批量赋值)、持久化保存并同步全部表格(订单表排产状态、排产表分组、未来3天预警、顶部横幅同步刷新)。单条「✅ 完成 / ✏️ 改完成日期」流程(v0.31 / v0.40)保持不变,两种入口并存。注意:仅「待生产」行可勾选批量完成;「📋 待排产」行(未运行排产)不参与批量完成,需先到「③ 排产计划」运行排产。
v0.47 AI 批量建单增强:卡型按标志物分组推断 · 长图切片 · 解析汇总(本版):① 卡型推断改按「标志物分组」(您定的标准):「/」是「同联多指标」连接符(不增加联数),顶层用 空格 / 逗号 / 分号 / 换行 分隔不同联,联数 = 分组数。例:HCG→单卡;HCG/FSH/LH→单卡(一联三指标);HCG FSH LH→三联卡;HCG/FSH LH→双卡(首联双指标)。裸条 / 笔型 / 尿杯 / pannel-x 等特殊形态仍以 AI 明确给出的 card 为准。AI 提示词同步更新:project 用规范「联结构」写法(多联空格分、同联用/连、中文组合如乙肝两对半展开为各指标空格分隔),普通联卡 AI 不再填 card(系统按分组推断)。② 长图自动切片识别:上传很高的长截图时,系统自动纵向切片(每段约 1400px、相邻段重叠 200px 防截断),每段分别送视觉模型识别,合并后按(标志物+项目+交期+数量)跨段去重,确保长图所有订单行都被识别、不被截断。③ 解析汇总条:预览表格顶部新增「📊 解析汇总」——显示共识别 N 条 / 可导入 M 条 / 待补全 K 条,并逐条列出待补全原因(缺 标志物 / 卡型 / 规格 / 数量),可点「定位待补全行」跳转高亮;编辑任意字段实时刷新。导入后仍有「成功/失败 + 失败原因明细」汇总(沿用 v0.42.5 的 applyImport)。
v0.48 AI 批量建单识别「W码」(本版,按您口径):「W码」= 直接从订单截图 / 文本里识别出来的 W 码(如 W1019、W1079,字母 W + 数字,可能连带产品号如 W1019-01)。① AI 提示词新增 wcode 字段——要求视觉模型尽量从图中识别出每张订单的 W 码并填入;② 预览表新增「W码」列(每行可编辑,placeholder「如 W1019」),导入时使用识别到的 W 码作为该订单的 W码(产品号缺省由 applyImport 按 01-99 自动补齐、跳过已占用,沿用 v0.44);③ 归一化容错:w1019→W1019、纯数字 1019→W1019、W1019-01 自动拆为 W码 W1019 + 产品号 01;④ 兜底:若某行图中确实没识别出 W 码(留空),则退回 v0.44 的「按当前最大 W 号顺延自动生成」逻辑,保证仍可导入;⑤ 长图去重:跨段重叠时,优先保留带 wcode 的那一版,避免 W 码丢失。
v0.49 批量导入「预览 + 🤖 AI 分析填入」& 规格新增 2/3/5 人份(本版,按您两条需求):① Excel/CSV/粘贴导入改为「先预览后导入」——原来解析后直接入表,现改为先渲染可编辑预览表(W码 / 产品号 / 标志物 / 卡型 / 规格 / 数量(盒) / 交期 / 齐套日 + 状态列,带「✅ 可导入 / ⚠️ 待补全」校验),工作人员可逐条改;顶部有「📊 导入预览」汇总(共 N 行 / 可导入 / 待补全 + 原因 + 定位)。② 🤖 AI 分析填入——预览表上方新增该按钮,点后调用 DeepSeek(同 🤖 AI 批量建单的 Key/设置),对勾选行做分析:把空白的 标志物(按产品名/W码推断标准简称)、卡型(限枚举)、规格(限枚举)、数量、交期 自动补全;只填空不覆盖已填内容,且枚举值非法时不写入(避免脏数据);分析后状态实时刷新,再点「✓ 导入选中」经 applyImport 入表。③ 规格型号新增 2人份 / 3人份 / 5人份——SPECS 与 SPEC_PPL(人份/盒=2/3/5)同步扩充,订单录入下拉、计算器、AI 规格枚举、外包速率表(⑨ 人工产能)均自动带上这三项(外包默认速率 150/120/100 人份/时,可按实际改)。
v0.50 Excel/CSV 批量导入改「AI 智能识别整表」(按您口径,不再按模板对应):原来 Excel/CSV 上传是按固定模板列序一一对应取数(首列 W码、第二列产品号…),列顺序或表头一变就错位;现改为:上传后系统读取整表原始二维内容(任意列顺序、任意表头、可含合计/说明行),直接交给 DeepSeek,像识别图片一样自动判断哪一列是 W码/标志物/卡型/规格/数量/交期/齐套日,逐行提取为标准订单字段,再渲染成可编辑预览表(沿用 v0.49 的预览 + 🤖 AI 分析填入 + ✓ 导入选中)。即「不按模板、AI 理解表格」,业务员发来的任意排布 Excel 都能直接选文件识别。粘贴模式(方式一)仍保留「按列解析预览」作为手动兜底。
v0.51 「🤖 AI 批量建单」统一为唯一 AI 入口(按您最新口径,删除旧的两个独立入口):① 删除按钮:「📥 批量导入待处理」、「载入示例」(及其对应 batchImpModal 模态框与全部相关函数),订单录入区现仅保留「+ 新增订单」「🤖 AI 批量建单」「🧹 清空订单记录」。② 统一 AI 入口:「🤖 AI 批量建单」模态框内同时支持 4 种输入方式——📷 订单截图、📂 Excel(xlsx/xls)/CSV、📝 粘贴订单文本;用户上传哪一种都行,DeepSeek 按业务语义理解并映射到标准订单字段,不靠列名相等匹配。③ Excel/CSV 语义映射流程(核心新增):上传文件后系统只读取、不修改整表原始二维数组;调 DeepSeek 时按 5 步提示词执行——步骤 1 语义字段映射(列 → 目标系统表单字段 W码/产品号/标志物/卡型/规格/数量盒/交期/齐套日,输出含 pos/header/semantic/mapped_to/confidence/candidates/note 的对照行;≥80 自动绑、40‑79 列候选数组、<40 不绑、多余列保留原始、缺失必填列入 stats);步骤 2 逐行清洗(去空格/统一日期/-→空,混杂多信息按映射拆分,异常数据打「数据异常」标记,严禁编造);步骤 3 输出两份(标准 JSON 数组 + 原始行内容数组);步骤 4 统计报告(总行数/有效行/待人工确认/数据异常/缺失必填)。④ 预览面板:依次展示 🧭 语义映射对照表(带置信度色阶)→ 📑 原始行 vs 清洗后映射对比(高亮 AI 推断值)→ { } 标准 JSON 数组(折叠查看)→ 📊 导入统计报告 → 原有的可编辑导入行(沿用 v0.42.5 applyImport 走 W码去重/必填校验)。⑤ 硬性约束:低置信度不强行绑定、严禁伪造业务数据、原始 Excel 保留不修改、不直接写库,由人工核对后再 ✓ 导入选中。⑥ 截图+文本+长图(v0.47/v0.48 逻辑)保留兼容,DeepSeek 调用按输入类型自动分发到对应流程。
v0.52 AI 批量建单(Excel 语义映射)JSON 输出契约强化(按您最新约束,功能不变、仅收紧 AI 输出格式与标志物口径):针对 v0.51 的「🤖 AI 批量建单」统一入口与 Excel/CSV 语义映射提示词,新增并固化 6 条强制约束:① JSON 纯净输出——AI 返回仅含纯数据,禁止注释、禁止多余说明文字、禁止 markdown 符号(仅整体 ```json 代码块围栏除外);② 转义规范——字符串内双引号转义为 \"、换行转义为 \n,禁止裸换行 / 裸回车 / 硬换行,原始单元格多行文本(地址、备注跨行等)一律转义为 \n;③ 数组逗号——对象之间正确加逗号、最后一个对象禁止尾随逗号;④ 整体包裹——输出用 ```json 和 ``` 围栏包裹,围栏内仅纯净 JSON,结构固定为 { "mapping":[...], "orders":[...], "originalRows":[...], "stats":{...} };⑤ 解析兼容——前端解析改为「优先提取 ```json 围栏内、否则回退首个 { 到末个 } 的对象」,两种输出都能正确解析;⑥ 标志物口径——标志物根据【项目名称】填,全部中文,并标注「抗原 / 抗体」(如 新冠抗原 / 乙肝表面抗体),项目本身明确或无需区分(如 HCG、HPV)可不标注。以上约束已写入 aiBulkExtractExcel 的 DeepSeek 提示词。
v0.53 修复 Excel 导入「解析错误」+ 上传状态可视化 + 手动列映射兜底(按您反馈):① 修复 Excel 解析错误根因——原 ensureXLSX 只从单一 CDN(jsdelivr)加载 SheetJS 解析库,国内访问常不稳定导致脚本加载失败、文件根本没被读取(表现就是「无法导入 / 解析错误」)。现改为同源优先(把 xlsx.full.min.js 随站点一起部署,浏览器从同服务器取,彻底摆脱 CDN 依赖),失败再依次兜底 unpkg / cdnjs;任一失败给出明确报错而非静默。② 上传状态可视化(明确的「上传中 vs 上传完成」视图)——模态框新增状态徽标 + 进度条:选文件后显示「⏳ 读取中…(上传中)」蓝色脉冲进度条,读完后变「✅ 已读取 N 行(上传完成)」绿条,AI 解析时显示「⏳ 语义映射中…」,完成/失败分别绿/红。③ 手动列映射兜底——新增「🛠 手动列映射(手工补齐)」按钮:不依赖 AI,把系统字段(W码/产品号/标志物/卡型/规格/数量盒/交期/齐套日)逐个对应到 Excel 列(含智能预选 + 可改「数据起始行」),点「应用」即生成可编辑订单表,缺失/错处直接在表格里手改再导入;AI 解析失败时也会提示改用此入口。④ 编辑体验:可编辑导入行沿用「✅ 可导入 / ⚠️ 待补全」校验与解析汇总,部分行不行可逐行手工修复补齐后再 ✓ 导入选中。
v0.54 AI 识别→分析优化→理解转换填写(按您要求放宽到「推断补全」,Excel 与图片双入口生效):原 v0.51 硬性约束里「禁止编造」过严,导致 AI 不敢补全任何需理解推断的字段(如从「新冠试剂」推断 标志物=新冠抗原、卡型=单卡,或把「10T/25人份」换算为 规格),只能留空交人填。现改为:① 识别优化——先识别原始文字,再结合上下文纠正模糊/歧义/识别误差、补全截断内容;② 理解转换填写——允许基于任何线索做归一化与换算(日期转 YYYY-MM-DD、规格单位换算、W码拆分、从品名推断标志物/卡型);③ 放宽红线·推断补全——只要源文/图片存在任何线索就必须推断补全缺失字段,仅在完全无任何线索时才留空交人工,不允许把「能推断却留空」当保守。该口径同时写入 Excel 语义映射提示词(步骤 2 / 步骤 5)与图片识别提示词(识别与填写总则),并软化了 stats.missing_required 口径(能从其它列推断则不计入缺失)。
v0.55 修复大表「JSON 解析失败 position 14647」(AI 输出被 token 上限截断,按您反馈):原 `aiBulkExtractExcel` 的 fetch 请求未传 max_tokens,DeepSeek 默认 8K 输出上限,大表(如您测试的 141 行 × 7 列)会撞上限被截断,表现为「❌ JSON 解析失败: Expected \",\" or \"]\" after array element …」——本质是输出截断而非格式错误。修复:① 显式传 max_tokens:8192;② 截断兜底:检测 `choices[0].finish_reason === 'length'` 直接报「⚠️ AI 输出被 token 上限截断,可改用手动列映射或继续分批」并退出,避免给用户混淆性的「JSON 格式错误」;③ 分批解析:数据行 >50 时按 50/批 拆分,每批拼回表头行发送,AI 在每批 user 消息中收到「⚠️ 第 1 行是表头,请勿解析为订单行」的显式提示;分批循环中按批进度显示「⏳ 正在分批语义映射(k/N,本批 50 行)…」;最终合并 orders / originalRows,mapping 取第一批,stats 聚合(总行数/有效行/数据异常行求和,缺失必填字段取并集)。仍可继续叠加使用 🛠 手动列映射兜底(v0.53)。
v0.56 产品号自动编号 + 异常订单置顶 + 「导入选中」按钮失效 bug 修复(按您反馈):针对您截图与说明:① 「✓ 导入选中」按钮点击无效——根因是 aiBulkImport 用 pv.querySelectorAll("tbody tr") 同时选到了映射对照表/原始vs清洗表/可编辑行三处的 tr,前两处无 .aiCk,首次 tr.querySelector(".aiCk").checked 即触发 null 崩溃(无 try/catch),导致按钮「无效」。修复:用 tbody tr[data-i] 只选可编辑行。② 产品号自动 01/02/03 编号(按 W号 分组)——新增 assignAIBulkUid(),对产品号空白的行按 W号 分组顺序填 01/02/03(跳过本组已用、跳过非空、超 99 留空交人工);不毁坏源数据、可在表格里手改再导入;状态栏新增「产品号自动编 N 条」提示。③ 异常(缺必填)订单置顶——同一函数把 标志物/卡型/规格/数量盒 任一项空白的行排到最上面,方便逐行手改;其余按 W码/产品号 二级升序。原始行对照表 / 标准 JSON 自动同步重排。该规则同时作用于 AI 路径与「🛠 手动列映射」路径,状态栏结尾追加「异常订单已置顶」。
\nv0.57 产品号生成规则明确化 + 未导入订单「待补充」清单(按您明确规则):① 产品号生成规则(依据 W 码分组,严格两位)——重写 assignAIBulkUid():同一 W 码下子项序号按 01、02、03、04…… 顺序递增;遇到新 W 码 重新从 01 计数;不同 W 码之间序号互不连续、各自独立;输出固定两位数字(01/02/03,不写成 1/2/3)。即该 W 码组内全部行统一重新两位编号,空 W 码的行无法分组、产品号留空交人工。② 需人工介入/确认的排最上面——缺必填字段(标志物/卡型/规格/数量盒)的行排到最前,方便优先处理。③ 未导入记录「待补充」清单——新增持久化(localStorage `paichan_pending_import_v1`):点「✓ 导入选中」时,未勾选的行(多为缺必填待补全)自动记入模态框内的「📋 待补充(未导入)订单」列表(含 W码/产品号/标志物/卡型/规格/数量/未导入原因/记录时间),可随时打开查看、后期补录;本次已导入的行会从清单移除;提供「🧹 清空」按钮。状态栏追加「⚠️ N 条未导入已记入待补充列表」。
v0.58 导入失败行置顶(可手工操作完成正常导入)+ 订单齐套日自动同步物料计划并批量确认(按您两条需求):① 导入失败行置顶——点「✓ 导入选中」时,凡被 applyImport 校验拒绝(W码/产品号缺失、标志物/卡型/规格必填缺失、卡型/规格非法、W唯一码重复/历史归档、01-99 产品号占满)的失败行不再被丢弃,而是保留原填写值、整体重渲染到预览表最上方(红框 + 「⚠️ 导入失败:原因」),仍保持勾选,方便你逐行改完直接再点「✓ 导入选中」完成正常导入;本批已成功导入的行从预览移除(避免重复导入);未勾选行仍按 v0.57 记入「📋 待补充」。② 订单齐套日自动同步物料计划——订单录入或导入时若带了「物料齐套日期(齐套日)」,系统自动把该时间写入「② 物料计划」对应 W唯一码 的「预计齐套时间」,并在物料计划行打「⏳ 待确认齐套时间(来自订单)」标记、默认勾选;物料计划在批量面板新增「✅ 批量确认按此标准齐套时间」按钮,可一键(勾选行或全部待确认行)确认采用该标准(确认后标记消除、订单正式进入「已处理」);若在订单录入页手动修改齐套日,也会同步回物料计划(并视为已确认)。
v0.59 待确认齐套时间「置顶 + 逐条确认」(按您反馈「这些往上排给一个确认按钮」):在 v0.58 基础上:① 待确认行置顶——「② 物料计划」列表最上方新增独立的「⏳ 待确认齐套时间(来自订单,请逐条确认是否采用此日期)」区块,把全部带「⏳ 待确认齐套时间」标记的行抽到顶部、高亮黄底,不再埋在中间「已处理」组里;其余「待处理 / 已处理 / 已到货」三段照旧。② 逐条确认按钮——每条待确认行右侧新增两个按钮:「✓ 采用此日期」(确认把订单带来的齐套日作为物料计划标准,标记消除、行回到「已处理」)与「✕ 不用」(不采用该日期,行退回「待处理」需手动设置齐套时间)。③ 批量确认仍在——顶部「✅ 批量确认按此标准齐套时间」按钮保留(勾选行优先,未勾选则确认全部待确认行)。其余一切照旧:订单录入/导入带齐套日仍默认同步、手动改齐套日仍回写、排产门控不变。
v0.60 修正「到料时间 → 齐套时间」同步源(按您指正「物料计划优化不对」):v0.58/59 的自动同步仅在「新增订单」时触发,而多数实操流程是先录入订单、再点「📦 申请物料计划」——该按钮创建物料计划条目时 `eta` 为空、未把订单里的「到料时间(物料齐套日期)」带过去,导致物料计划齐套时间为空、要手工重填,您看到即「没同步」。修正:① 申请物料计划时回填——`applyMatPlan` 新建条目时读取该订单行的「到料时间(物料齐套日期)」(订单表第 9 列),自动写入「预计齐套时间」并标记 `needAck`(待确认),有值才带、空值不强制;② 改到料时间即重新待确认——订单页修改「到料时间」会回写物料计划齐套时间并把 `needAck` 重新置真(不再自动视为已确认),需再到物料计划逐条/批量确认;③ 订单表表头第 9 列由「物料齐套日期」改为「到料时间(物料齐套日期)」,与您口径对齐。语义澄清:订单里的「到料时间」是输入,物料计划的「齐套时间」是由它建议填充、需手工确认是否采用的输出,二者不再混为一谈。其余(置顶区块、采用/不用按钮、批量确认、排产门控)照旧。
v0.61 物料计划回退到 v0.57 行为(按您「还是不行,回复到以前吧物料计划页面」的反馈):撤除 v0.58/59/60 全部「订单到料时间自动灌入物料计划齐套时间 + 待确认置顶区块 + 逐条/批量确认采用/不用」逻辑,恢复为最原始状态——① 订单录入/导入的「物料齐套日期(原到料时间列)」不再自动写到物料计划;② 「📦 申请物料计划」新建条目时 `eta` 留空,齐套时间全部由您在物料计划页手动选「📋 已处理」并填预计齐套时间;③ 物料计划页不再有「⏳ 待确认齐套时间」置顶区块、逐行「✓ 采用/✕ 不用」按钮与「✅ 批量确认按此标准齐套时间」按钮,恢复为 待处理 / 已处理 / 已到货 三段;④ 订单表表头第 9 列恢复为「物料齐套日期」。其余(导入失败行置顶、AI 批量建单、排产逻辑)不受影响。订单页的到料时间字段保留可填,但不再联动物料计划。
㉘ W码整体逾期 + 交期优先 + 同 W码集中生产(v0.62,按您的排产口径):① W码整体逾期——同一 W码(如 W001)下全部子单(W唯一码 01/02/03…)都已交付完成(已生产)且未逾期,该 W码才不算逾期;只要有一个子单未交付(未生产/无完成日)或逾期完成,整个 W码默认全部按逾期对待(订单录入「排产状态」、销售进度汇总、生产清单均会标注「⚠️ W码逾期」)。② 排产最优先考虑交期——排产引擎在分配产能时,批的优先级=交期最早优先(合批键仍为标志物+卡型,但同交期优先把同一 W码 排到相邻日期)。③ 同 W码尽量一起生产、生产完及时清走——生产清单按 W码 分组显示(同一 W码 放一起),每组标注「⚠️ W码逾期·未清走 / ✅ W码可清走」,便于生产完即整批发完清走、减少在制。
㉙ 排产以 W号 为唯一标准(v0.63,按您的口径「一个 W号 一个数据组、一批次排产」):① 合批键改为 W号——同一 W号(如 W001)下全部子单(W唯一码 01/02/03…)作为一个数据组、做一批次排产(不再按「标志物+卡型」拆分;整批取最紧约束:最早交期=batchDue、最晚物料日=matReady)。② 排产方式以 W号 为单位——批次优先级比较器(batchCmp)维持「交期最早优先 → 同交期同 W号相邻 → 标志物|卡型」;增量重排的锚定键也从「标志物+卡型」改为「W号」,保证连续排产仍锚定原 W号 批次。③ 展示以 W号 为主线——排产计划批次表、排产明细、生产清单、历史档案均新增/突出「W号」列;(同一 W号 内多产品时)批次的 标志物/卡型/规格 列改为汇总显示,并在「来源 W唯一号」旁标注「N 种产品」。④ 与 v0.62 的「W码整体逾期 / 同 W码集中生产清走」口径完全一致,且更彻底(整批即整 W号)。
注意:若某 W号 内混合了不同卡型(如 单卡+三卡),整批会按「非单卡」走手工线(保守、不会挤爆机器);通常以同一 W号 内产品一致,机器/手工路由判断照常准确。
㉚ W号优先级分类排产(A/B/C/D/T,v0.64,按您「全链路W号聚合、排产优先级A>B>C>D」口径):在 v0.63「排产以 W号 为唯一标准」基础上,新增基于 W号整体维度的优先级分类与按类产能窗口约束:① W号客户要求交期=同一 W号 下所有子订单客户要求交期的最晚日期(取 max);② 分类判定(以 W号 整体而非子订单)——A类=W号已逾期(W号计划真实交货日期>W号客户要求交期)且 W号下全部子订单物料已全齐套;B类=未逾期且全齐套;C类=已逾期但物料仅部分齐套(先安排已齐套子单生产,未到料子单等待);D类=未逾期且物料未全部齐套;T‑特大订单=单 W号 体量≥5万人份 或 预估人工工时>100小时(不抢占A/B/C/D产能,只插空生产)。③ 排产执行顺序=A类 > B类 > C类 > D类 > T特大(batchCmp 改为大类优先、同类再按交期),A类可全开加班资源(白班/夜班/周末)全力往前赶,B/D类仅安排周一~周六白班,C类可在周末/夜班安排已齐套部分,T特大仅插产线空余间隙。④ 刚性约束:W号允许内部分拆投产、小批量子订单可掺杂其他批次混做,但混做合并不是必须,核心硬性前提——不得抬高 W号计划真实交货日期、不得造成逾期恶化;禁止为凑批次把小批量子订单向后拖延生产,有前置空闲窗口才提前插混,没有窗口就独立排产。⑤ 全链路 W号 聚合绑定:订单→物料→齐套→生产计划→排产,全程以 W号 为主对象;界面优先展示 W号 汇总(含优先级分类徽标 + 客户要求交期),点开展开查看该 W号 下全部子订单明细;生产可拆分子单,但交期/逾期判定/优先级分类/销售视图均保持 W号 聚合。
㉛ 所有清单统一「按 W号 从大到小排序 + 相同 W号 合并」视图(v0.65):为满足「所有清单列表按 W号 从大到小排序、相同 W号 合并」的诉求,对各列表做一致化处理:① 订单录入(待处理/已处理两张表)新增 W号 子表头行(灰色 `Wxxxx · N 个产品`),同一 W号 的子订单聚合在该表头下,整体按 W号 字符串降序排列;② 物料计划(待处理/已处理/已到货 三段)每段内按 W号 降序并合并同 W号;③ 排产计划(已排已生产/已排未生产/待排 三组)每组内按 W号 降序并合并同 W号;④ 生产清单(按 W号 分组,沿用 v0.63 的 emitWcodeGroups,已按 W号 降序);⑤ 销售进度(按 W码 rowspan 合并显示)改为按 W号 降序;⑥ 历史档案(每次排产快照)批次汇总表按 W号 降序。所有分组均以「W号」(W唯一码去后缀 `-NN` 的主码)为聚合键,保证同一 W号 下不同子单(01/02/03…)始终归并到同一分组中。
㉜ 排产计划表列重排 + 科技感排产进度条 + 分类 A+T 组合显示(v0.66):① 排产计划表列序重排(已排已生产/已排未生产/待排 三组统一):列序改为 W码(同 W码 rowspan 合并显示·降序)| ☑ | W唯一码 | 产品 | 规格 | 盒数 | 数量(人份) | 齐套时间 | 排产/生产时间(首产日) | 📊是否逾期/提前(共 10 列,保留 ☑ 勾选列);原独立的「交期」列已并入「是否逾期/提前」单元格(内含逾期/提前天数与红绿配色),避免信息重复。② 排产按钮「按下去没反应」修复:根因是排产引擎 `runSchedule` 为同步计算(约数十毫秒),点击时主线程短暂冻结且无任何反馈,造成"卡死/没反应"错觉。新增科技感进度遮罩(`#schedProgress`,青→蓝→紫渐变 + 流光动画 + 百分比/阶段文案),统一入口 `runScheduleWithUI`:先显示遮罩 → 延迟 40ms 让浏览器绘制 → 跑同步排产 → 隐藏遮罩并刷新排产页。所有排产触发点(勾选排产 / 全量重排 / 重排所选 / 延期重排 / 采用救援方案 / 同步并排产)已全部路由到该入口,反馈一致。③ 分类显示改为 A+T 组合:基础类仍为 A/B/C/D(A=逾期·齐备 / B=未逾期·齐备 / C=逾期·部分 / D=未逾期·部分);若某 W号 同时满足"特大"条件(总人份 ≥50000 或 预估工时 >100h),则附加显示为 `A+T` / `B+T` / `C+T` / `D+T`(紫色 +T 后缀 + 紫边框),不再作为独立优先级类;产能窗口跟随其 ABCD tier,销售进度汇总计数 base A/B/C/D 并单列"含特大(T)"数量。
㉝ 排产崩溃热修(v0.66.1):修复排产时报「Cannot read properties of null (reading 'value')」导致排产中断的问题。根因:val(id) 对缺失元素不守卫,当订单的卡型/规格文字与「产能配置」里的速率输入框(in_<卡型> / out_<规格>)对不上时(如卡型写成"笔形"但只建了"笔型"、或规格大小写/空格不一致),getElementById(...).value 取到 null 而抛错。修复:val() 对缺失元素返回 0(手工速率 in_ 默认 30 人份/小时兜底),排产不再崩溃;并在排产完成后给出可见提示列出未配置速率的卡型/规格(该笔订单已按默认速率兜底排产),便于核对订单卡型/规格名称是否填错。
㉞ 排产"跳过 90 天大空档"修复(v0.66.2):修复「排期莫名跳到 11 月下旬、中间两三个月完全不安排生产」的问题。根因:普通"运行排产"在已有上次排产后走增量重排通道(incrementalSchedule),其产能回填的 4 个循环里对全部订单类(A/B/C/D)都写了 `if(b.batchDue && d.ds > b.batchDue) continue;`(即"交期之后的日子一律跳过")。对 C 类(已逾期·部分齐套)这类本身交期已早于排产起始日的订单,视野内(起始日 ~ 起始日+90 天)的每一天都落在交期之后 → 被整轮跳过 → 剩余量只能甩到视野末尾的延长区块(第 90 天起)→ 全部堆到约 11-23/24 完成,于是 8 月底到 11 月中旬之间出现长达约 90 天的"生产真空"。修复:新增放行判定 _passDueOk(b)=b.cls==='A'||b.cls==='C'(已逾期类),仅对 A/C 放开"可排在交期之后"(B/D 未逾期类仍严格卡在交期前,不恶化逾期);4 个回填循环均已加 `&&!_passDueOk(b)` 条件。效果:C 类(及 A 类)逾期单会在交期之后紧接排产(如 8-26 起),不再被甩到 90 天外,排期连续无空洞。注:该 bug 只影响"增量重排"路径;全新"从零重排"路径(schedCore)本就无此限制,不受影响。
㉟ 班次升级"累加"+ 对 B/D/T 生效(v0.66.3,按您「班次日序优先、累加、保证 ABCDT 各类都及时交货」):班次模型为每天=1 白班+1 夜班=两个班;升级按累加优先(低档产能一直保留、高档在基础上加):① 周一到周六白班(优先)→ ② 不够则白班照开 + 周日白班 → ③ 还不够则白班+周日白班 + 周一到周日全部夜班(夜班不分工作日/周日,整体一档)。原先有两类问题:⑴ 升级只放开"全局产能池",但每批 allowedTier 按分类固定(A=4/C=3 全开、B/D/T=0 仅白班),B/D/T 被窗口门控永远挡在周日/夜班外,升级对 B/D/T 实际无效——白班排不下时静默溢出到 ~90 天后反而严重逾期;⑵ 夜班被拆成"工作日夜班/周日夜班"两档,与您"夜班整体一档"口径不符。修复:① 升级循环改为3 档累加(白班→+周日白班→+全部夜班),opts.mode 的 base/sunday/weekday_night/all_night/full 仍各自映射到位;② 升级到某档时动态 b.allowedTier = Math.max(b.allowedTier, 当前档)——低档排得下就只用白班(保优先次序),排不下才升档去用周日/夜班兜底,A/B/C/D/T 各类均靠升级及时交货。③ 同步修正 place() 的急单门控与 v0.45 口径对齐——自动排产不再整体拦死"急单"(runSchedule 已预先剔除"当天须开工"的急单 earliest===today),到达排产引擎的急单(物料已齐备·未来开工·仅产能不足将逾期,即"产能性急单")一律放行进入排产、交给 3 档升级+AI 急救兜底;此前这类单会被整体跳过、永远进不了排产表,等价于 B/D/T 大单被静默漏排。验证(jsdom):B 类单卡 1000万(白班 90 天排不完、交期 11-20)——旧窗口 doneDay=2027-01-06(逾期+推后 38 天)❌;新窗口 doneDay=2026-10-22(准时,落在 90 天内、零溢出)✅。回归测试入 /tmp/test_v0_51.js 第 Y/Z 节。
㊱ 排产排序主轴改为「逾期优先」(v0.66.4,按您「排产规则全部重新定义」口径):此前排序主轴是 v0.64 的「A>B>C>D>T 分类优先」,与您本次「排产优先排逾期的」不符,故降级为纯展示徽标,排序主轴改为:① 逾期优先——W号客户交期已过 / 物料晚于交期(clsOverdue)的批次置顶;② 逾期与未逾期内部均按 交期最早优先(EDD)——「尽量优化交期、让更少 W号 逾期」的贪心近似,逾期类内交期越早=逾期越久越先救;③ 同交期同一 W号 相邻(wcodeOf),保证一个 W号 连续排、一起清走(合批 v0.63)。班次次序(周一到周六白班→周日白班→周一到周日全部夜班·夜班不分工作日/周日,3 档累加,v0.66.3)、物料门控(物料到期=earliest=齐套+1 才可排,v0.42)、一个 W号 一起排(合批 v0.63)均不变。ABCD 分类不再决定排产先后,仅作展示徽标 + _passDueOk 的 post-due 放行判定(仍放行 A/C 已逾期类排在交期之后防 90 天空档)。回归测试入 /tmp/test_v0_51.js 第 AA 节。
👤 用户与权限(仅计划部负责人可访问)
| 账号 | 姓名 | 手机 | 企微 | 角色 |
|---|