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

35 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第87轮 W2:主数据一致性与日历
## 实现
- 新增 `server/aps_domain/masterdata_sync.py`,以项目内物料编码、产品/工序/顺序、产品/材料及设备编码建立稳定映射。`masterId/masterStepId/masterRoutingId/masterItemId/masterBomId` 关联实际可编辑行;重复导入不再删除重建 BOM 和工艺。
- `reconcile_imported_masterdata(world, *, source="flex-import", refresh=True)` 是批准导入后的唯一兼容入口;原 `sync_flex_to_classic_master` 委托它。只写实际提供字段,来源与损耗/关键料/在途保留。手工修改字段进入 `masterOverrides`,再次导入时保留这些字段并投影到柔性消费表。
- `master_overview` 与确认卡在副本上补齐旧项目的导入对象,P0 不写状态;实际批准后通过 `apply_master_action` 的同步包装器原子应用,校验失败不留下半成品对象。
- 普通库存修改、导入工艺工时、BOM用量/关键性和设备停用反映到对应柔性记录。已关联物料/设备不允许直接修改编码,避免关系断裂;设备支持仅提交 `id/status`。
- 仅把本次动作修改的产品投影到柔性路线/BOM,不扫描重写其他产品。发布快照与排产版本不回写;回滚保留归档版本明细,并把恢复的默认版本投影给新排产。
- 周模板不再无条件跳过周末。按设备/日期生成 `flexCalendarOverrides`;`shifts=[]` 表示该设备当日休息,W3负责实际引擎消费。
- 原始工厂/车间可由 `flexFactoryResources` 投影;原表区域直接挂工厂,未给车间关联,因此兼容容器明确叫“生产区域(车间关联待确认)”,不猜厂内关系。已有设备工位关系保持。
- SQLite纳入人员、在制、维护、来源、沙盒订单、参数、日历模板、主数据版本等新对象;读取空表会清除上个项目残留,避免切项目串数据。
## 验证
最终组合回归:`66 passed, 8 skipped`(7.79秒)。范围包含新增主数据一致性、普通主数据、主数据API、DB投影/检查点、generic/SQL/MOM导入和来源分解。
新增专项13项覆盖:库存同步且保留在途来源;旧flex-only只读稳定ID与编辑;失败修改原子性;关联编码防断链;重复同步与编辑保留;部分库存输入不覆盖档案;设备停用;BOM关键料/损耗;BOM/工艺发布-编辑-回滚及历史快照;周六周日+设备日期覆盖;真实锐扬行原地改工时;真实SQLite跨项目与重载。
8项跳过为原有外部数据用例:2个DXF文件、2个现场Excel、4个未配置MOM目录;没有把它们当通过。新增真实锐扬工作簿测试必须存在指定文件,没有skip。
指定源文件SHA-256仍为 `c0598c422567a35029d32504d2020780bf6b0417e0887a9749fc86584a5aa687`,没有修改原表、main、真实数据库或用户服务。
## 影响与边界
改前GitNexus:apply_master_action HIGH;旧sync与确认卡入口/物料校验为CRITICAL(共享导入、主数据、Agent调用范围),均已报告主控。限定字段级投影与相邻回归降低兼容风险。新增本树索引已运行,提交前执行detect_changes。
本片完成主数据层验证;完整真实工作簿导入由W1提供,库存/工时/设备/日历影响实际计划的端到端验证由W3和主控整合后执行。不会把本片单测等同于整轮完成。人员资格、WIP剩余事实与现场确认仍由事实校验决定,不能自动填成可信数据。
## W1整合补验
获主控授权加入W1后,真实全表导入与本片专项27项通过。隔离脚本证实经典模型45物料、15设备、3路线/15步、3BOM/42行、1维护;真实工厂BU4及BJCJ/HJCJ/PTCJ/ZZCJ四车间;在途420、关键料12。普通库存改123、工时改11、设备停用同步到柔性表,同SHA重复导入保持整个world不变。
与W3互查发现日历覆盖需要携带班次身份,且原导入只有flexCalendar导致周模板页面没有可选班次。已增加稳定经典班次投影,保留D启用/N关闭、休息与来源;设备日期覆盖明确携带shiftCode供人员班次约束消费。追加真实全表班次用例后,真实导入+主数据/API/数据库组合47项全部通过,无跳过。