aps-agent/docs/round-87-w3-report.md

6.3 KiB
Raw Permalink Blame History

第87轮 W3:主数据实际参与试排

状态:工作片自检通过,交主控集成审查;未合并 main、未推送、未操作用户服务。

实现

  • 新增 masterdata_consumption.py,对带排产资料上下文的输入采用明确约束消费;旧演示路径保持兼容。
  • 使用工作簿 2026-08-04 08:00 起点、21天周期及24小时冻结。正式批准/发布版本的冻结段继承到新版本;历史版本和输入快照不回写。
  • 按人员编码、技能等级、班次选择人员;多技能人员不会同时占两道工序。执行中任务未提供人员时,保守占用对应合格人员池至预计结束,版本中公开该策略,不猜具体执行人。
  • 已完成工序不重复安排;执行中设备从计划起点至原表预计结束预占。缺预计结束时预占至周期尾;缺前序完成事实、未知设备及仍缺料在制任务按订单返回阻断问题。
  • 工作片段遵循每个班次启停、工作日、午休、设备日期覆盖和维护,允许跨班次暂停。周期内找不到资源不会回退硬排。小数工时向上取整到分钟,避免格式化丢失时长。
  • BOM损耗参与需求;多订单共用库存按本版实际成功订单分配,失败候选不占库存;在途须使用已记录日期,不能用系统当前日期加三天替代。
  • run_flex_schedule 保持源资料 trialOnly,默认请求也进入受控试排,保留 productionReady=false;标准工时demo来源在齐备度和工单中保留。

真实文件验收

唯一输入:<ROUND87_SOURCE>。

SHA-256:c0598c422567a35029d32504d2020780bf6b0417e0887a9749fc86584a5aa687,验收前后相同。没有上传替代文件,没有修改日期或源表。

通过真实 preview_file → apply_import_commit → apply_master_action → run_flex_schedule:

验收 实际结果
全量主数据 45物料、15设备、42BOM、15工艺、26人员、5在制、1维护
订单分离 5正式订单,SO-006留沙盒;排产工单没有SO-006
关键数据 12关键料、在途420、15道demo工时来源保留
原表风险 5单因缺PAINT人员及部分WIP事实不足阻断,0工单;SO-004明确报告A00247未知
完成工序 选SO-001验收时CUT不重排,只生成后续4工序
在制占用 SO-002的运行占用使SO-001折弯到16:00才开始
工时维护 普通维护入口修改折弯单件工时后,排产runMin从88.9变177.8
库存维护 普通维护入口库存和在途改0后0工单;补回后4工单
设备停用 停用A00047后新方案换到其他设备,仍4工单
导入维护 8月10日A00047维护时选A00048;明确反事实副本移除维护选A00047
周末维护 普通周模板指定六/日生成2条班次,实际开工从8月10日08:00变8月8日08:00
历史一致 新工时、新库存、新设备状态没有修改旧方案与旧输入快照
重复导入 同文件SHA再导入unchanged,主数据不重复也不覆盖维护

正向验证是明确的隔离用户修改场景:选择有首道已完成事实的SO-001,补1名TEST-PAINT-ONLY喷涂人员、补该订单相关库存、启用周末白班。原始全量表没有被这些补充值改变,每项修改记录在脚本JSON的supplements中。此结果证明修改进入计算,不代表客户已确认这些数据。

验证证据

  • tests/golden/test_masterdata_consumption.py:15项,包含真实指定Excel完整验收,缺文件直接失败,不skip。
  • 组合回归:87 passed(5.83秒);包含主数据一致性、锐扬输入、flex_trial、atomic、readiness、pool、rolling、closed_loop_runtime。
  • 独立命令:python scripts/round87_masterdata_e2e.py --source <ROUND87_SOURCE> --output <证据路径>。此次JSON位于 <TEMP>/round87-w3-master-evidence.json,status=PASS;临时APS_HOME/数据库已移除,userServiceTouched=false。
  • GitNexus修改前:solve LOW(动态调用另作人工检查);run_flex_schedule HIGH(7直接、24影响);check_order与check_readiness CRITICAL(分别1/12直接、29/38影响),已向主控告知并扩大回归。
  • 本工作树重建索引:16,724节点、68,816关系、300流程。detect_changes覆盖预期排产/齐备度函数与新增helper,无范围外产品变更;生成的AGENTS/CLAUDE/技能统计已恢复。

自检与边界

  • 仅修改分配的消费文件、新增helper、测试、脚本及本报告;W1/W2依赖仅cherry-pick已确认提交,主控仅需取W3自己的提交。
  • 原文件、原main、用户服务、其他项目数据未变;没有发放生产版本或ERP/MES下发。
  • 未在此片做浏览器操作,页面上传/确认/展示由主控完成汇合态验收。
  • 本轮对WIP前序不明采取阻断、执行人不明保守占用人员池;仍需计划员核对喷涂人员、A00247设备和在制事实后才有完整现场输入。
  • 严格排产是启发式能力池试排,非最优性证明;设备维护与人员可降低可用容量,不应承诺生产最优计划。

独立审查修复(2026-09-09)

W2独立审查复现两个P1问题,已逐项修复并扩大验证:

  1. 同订单/同工序多条在制任务此前会被operationCode字典覆盖,造成批次量丢失。现在保留所有原记录并以WIP_SPLIT_UNSUPPORTED阻断该订单,设备仍保守预占,不猜批次聚合;单条RUNNING也必须明确remainingQuantity且已完成量+剩余量=订单量,否则禁止放行后序。预计结束仅作为资源预占事实,不能独自证明整道工序完成。
  2. 严格输入的齐备度把库存缺口/物料缺档标为error,与实际试排阻断一致;真实维护脚本同时断言stock清零时readiness ready=0/blocked=1和实际0工单。
  3. 一并修复跨午夜班次休息绑定日期:22:00至翌06:00的01:00–02:00休息明确落次日,300分钟实际工作于翌04:00结束。

新增4项行为回归;完整组合91 passed(7.02秒)。独立真实脚本再次PASS,证据<TEMP>/round87-w3-master-auditfix-evidence.json,原始文件哈希不变、临时目录移除。

修改前再次impact:order_execution_issues CRITICAL(2直接/16影响),check_order CRITICAL(1直接/31影响),calendar_intervals LOW(1直接/2影响),均向主控报告后执行。仅W3消费/测试/证据脚本及本报告发生变化。