aps-agent/docs/round-87-master-data-closeo...

7.3 KiB
Raw Blame History

第87轮交付:主数据改得对、排产用得上

日期:2026-09-09。结论:本轮软件改动和验收完成,已应用回用户当前项目工作区。

代码验证提交:48b5a8cbc3bb123df77be679f22bca3992d62a36。独立分支 codex/round-87-master-data 保存实现和审查历史;截至 2026-09-09,当前项目 main 仍为 f9873ee,没有创建 main 提交、修改暂存区或推送。

1. 完成的行为

  • 聊天附件保存完整原文件到当前项目,检查/采用/维护/试排使用同一个来源。
  • 锐扬16表结构识别,45物料、15设备、42用料关系、15工艺、26人员、5在制、2班次/1维护完整保留;5正式订单与1沙盒插单分开。
  • 在途420、12条关键料、损耗、工时来源、21天计划周期及24小时冻结得到结构化保存与消费。
  • 资料检查不提前改主数据,确认采用后再维护;相同原文件重复导入不覆盖维护,不同版本在原项目拒绝静默覆盖,需独立项目核对或后续差异审核。
  • 导入后物料/设备/BOM/工艺使用稳定编辑编号;普通维护同步到柔性排产输入,历史版本和工单保持。
  • 周末模板正确生成,并按真实设备区域限定范围;人员、在制、设备维护、午休/跨夜休息、库存与真实到货日期参与实际排程。
  • 原表资料不足时按订单明确阻断;多批在制或剩余量不明确不覆盖、不猜测、不从零重复全量排。
  • 复查已采用资料显示当前维护结果;原文件的问题另作历史记录。无工单时显示5单待补资料,不提示下载完整生产计划。
  • 等待确认时隐藏重复排产快捷操作;修复新建项目临时会话竞态;桌面和手机完成上传、采用、工艺编辑及刷新恢复。

2. 最终验证

验证 结果
冻结代码全量 pytest 2270 passed / 54 skipped / 5 warnings,0 failed,0 errors;789.89秒
当前项目回写后的关键测试 57 passed / 1 warning;13.44秒
实际源文件维护→试排脚本 PASS;原始数据阻断与明确隔离补充的正向场景均通过
真实浏览器桌面1440×900、手机390×844 2 passed;18.7秒;业务网络未模拟,仅登录为测试provider;无控制台错误
Node 63 passed / 1 skipped / 0 failed;跳过的是未构建NSIS安装包的发现测试
Web构建 独立工作区和当前项目均通过,输出同一JS/CSS构建文件
独立审查 AUDIT PASS;7项可复现发现全部修复并复验
新增核心模块静态检查 Ruff通过;git diff --check通过
源文件/工作区保护 源Excel SHA不变;原工作区19个已有文件在回写前逐项校验,回写46文件与测试树逐字节一致

54个Python跳过来自各自现有外部数据/环境条件;本轮指定锐扬原文件的验收不跳过。没有进行真实ERP/MES/WMS生产写入、正式授权或桌面安装包发布验收。

全量首轮发现的机器路径、旧DXF测试前置缺失和运行中脚本接口变更均已处理,失败范围508项先通过,再从冻结代码重新完整运行;最终结论只采用最后全量的通过结果。

3. 维护确实改变计算的证据

操作 实际结果
修改普通工艺工时 对应运行分钟88.9→177.8
库存和在途清零,再补回 缺料时0工单,补回后4工序;就绪提示与求解一致
停用A00047 新方案不分配该设备
保留/移除8月10日维护的隔离对照 有维护使用A00048,无维护可用A00047
普通周模板启用周末 实际开工8月10日08:00→8月8日08:00
保留已完成CUT 仅排SO-001后续4工序,不重复已完成工序
保留运行中占用 后续任务需等原在制占用释放
再次排产 使用当前维护值,无再次导入;旧版本/输入快照/工单保持

正向场景明确在隔离内存世界选择SO-001,补测试喷涂人员及对应库存,按需启用周末。补充清单保存在运行证据的 supplements 字段,未修改原Excel,不能解释为客户已经确认这些值。

4. 原始资料仍需确认

原表明确注明订单、客户、库存、标准工时包含演示补充。本轮保留这一来源边界。

  • 人员表缺喷涂技能。
  • WIP-004引用A00247,但设备表没有该设备。
  • 部分在制任务缺少剩余数量及前序完成确认。
  • 原始日期为2026-08-04,使用历史日期回放,不把它当作今日新订单。

原始5单因此正确显示待补资料。本轮完成的是可靠导入、维护与实际消费闭环,未宣称原表已经满足生产放行。

5. 使用方式

在当前应用中新建一个锐扬项目,通过聊天附件上传用户指定的 湖南锐扬APS精简演示数据.xlsx,发送“分析一下数据文件”,核对资料后点击“确认采用资料”。在主数据中修改库存、工艺或设备,再发送“根据这些数据排产”;系统使用已维护的值并说明仍影响试排的问题。

可复跑独立脚本:python scripts/round87_masterdata_e2e.py --source <用户指定工作簿> --output <证据文件>。源文件缺失或哈希不匹配会直接失败,不使用替代样本。

详细背景见 主数据专项审查、源工作簿基准、独立审查报告。前两份是整改前问题记录,以本交付报告为本轮完成状态。

6. 交付与保留状态

实现采用三个可互通子Agent:完整导入、主数据一致性、排产消费;完成后增加跨片独立审查和真实浏览器测试。

用户原main工作区的既有改动先保存基线,再在独立工作区实施。全量/浏览器/实际数据验证后,只将经过验证的文件改动应用回当前工作树,未推进main分支或暂存文件。回写前原文件备份、哈希清单、完整日志和6张浏览器截图保存在本轮独立 evidence 目录。独立分支和工作树作为恢复点保留。

2026-09-14:用户要求将当前工作区中已验证的集成改动整理为本地 Git 提交。该提交只在本地 main 创建,不推送、不合并、不发布。

本轮测试端口18787/18788已停止且无监听。自动审批以“blocked by policy”拒绝删除已识别的临时测试目录,因此这些目录保留;没有改用其他方式绕过。测试用旧DXF副本仅用于既有回归,留在独立工作树的忽略目录,未进入用户锐扬项目或Git提交。

7. 2026-09-13 语义变更(试排假设)

用户实测反馈「排产未排出来」后,试排(trial)语义调整:导入侧 dueDate 改为日期归一化比较(Excel 日期单元格不再误报 SANDBOX_CONFLICT 整份拒收);算法侧把「未登记人员技能」「在制剩余量/结束时间/前序/资源未确认」等在制事实类问题降级为显式 ASSUMPTION,真实物料短缺仍阻断。因此原始工作簿不再 5 单全灭:试排实测 SO-002/003/005 排出、SO-001/004 因真实缺料阻断、15 个工单、10 项试排假设、solveStatus=PARTIAL_WITH_ASSUMPTIONS。正式链路(trial=False)语义不变;本文第 4 节「原始 5 单全部待补资料」为 2026-09-09 当时结论,以本节为准。