132 lines
8.7 KiB
Markdown
132 lines
8.7 KiB
Markdown
|
|
# 康尼映射表数据验证报告(阶段 A)
|
|||
|
|
|
|||
|
|
> Round 76 更新:下方“2/10 订单”是阶段 A 历史基线,已被当前 10/10 导入与 Web 试排结果替代;设备/模具现场映射缺口仍然有效。
|
|||
|
|
|
|||
|
|
## Round 76 当前结果
|
|||
|
|
|
|||
|
|
- 订单:10/10;工艺记录:72;唯一工序:26;工时来源:72/72 为 `工时.xlsx`。
|
|||
|
|
- BOM:965 条源行,按产品/物料投影后 823 条。
|
|||
|
|
- BOM 对账:84 条差异用量按“订单+物料+消耗工序”显式求和,58 条完全重复记录去重;不同消耗工序分别保留。
|
|||
|
|
- 资源:41 台设备、40 套模具;40 台真实设备仍无工序能力,40 套模具仍缺工序/设备/寿命映射。
|
|||
|
|
- 本地 trial:10 VL / 72 WO / 10 DELAY;当前共享设备占位下总延期约 33,576.13h、利用率 0.167,只作诊断。
|
|||
|
|
- Web:新建项目 -> 上传 9 份 XLSX -> 分析 -> “根据这些数据排产” -> P2 -> 五策略 -> MPS trace/gap -> 订单/设备导出已实测通过。
|
|||
|
|
- 数据保护:9 份源 Excel 与上传副本 SHA-256 一致;只读 CLI 前后默认 `world.json` 不变。
|
|||
|
|
- 操作手册:[kangni-real-data-browser-runbook.md](./kangni-real-data-browser-runbook.md)。
|
|||
|
|
|
|||
|
|
已解决的历史问题:
|
|||
|
|
|
|||
|
|
- `Sheet2-Sheet9` 不再按 sheet 名猜订单;工艺按工时规范序列匹配,BOM 按结构化工单编号归集。
|
|||
|
|
- 主订单标准工时优先回填 `工时.xlsx`,不再保留 45/30 分钟推断值。
|
|||
|
|
- 映射模板兼容带括号说明的表头。
|
|||
|
|
|
|||
|
|
仍待现场完成:设备-工序真实能力、模具-工序/设备/寿命、库存/在途、可动率、移动/换型和班次参数。
|
|||
|
|
|
|||
|
|
- 日期:2026-08-17
|
|||
|
|
- 角色:康尼真实数据验证工程师(sub-agent)
|
|||
|
|
- 工作区:`D:\ItemSpace\14.工业智核\aps-agent`
|
|||
|
|
- 数据目录:`D:\ItemSpace\14.工业智核\康尼\数据`(不在 git 内)
|
|||
|
|
- 运行命令:`.\.venv\Scripts\python.exe -X utf8 scripts/load_kangni.py --with-siblings --no-persist`
|
|||
|
|
|
|||
|
|
## 阶段 A 历史结果(已被 Round 76 替代)
|
|||
|
|
|
|||
|
|
导入与排产成功,映射表被实际读取:
|
|||
|
|
|
|||
|
|
- 订单数:2 / 10(主订单 102285668 + 同源订单 102289293)
|
|||
|
|
- 设备数:41 台(40 台来自 `设备.xlsx` + 1 台共享装配设备占位)
|
|||
|
|
- 模具数:40 套(全部来自 `模具.xlsx`)
|
|||
|
|
- 工序种:10(仅已导入 2 个订单的并集;真实源表共 26 道)
|
|||
|
|
- VL / WO:2 / 20
|
|||
|
|
- 冲突:2(均为 MAJOR DELAY)
|
|||
|
|
- 总延期:921.31 h
|
|||
|
|
- 利用率:0.0612
|
|||
|
|
- 关键推断:`设备能力映射表已读取(41 台)`、`模具适配映射表已读取(40 套)`
|
|||
|
|
- 全部工序落在共享设备 `EQ-SHARED-CG-01` 上,符合“保守假设 + 待现场确认”口径
|
|||
|
|
|
|||
|
|
## 生成 / 修改文件
|
|||
|
|
|
|||
|
|
- `D:\ItemSpace\14.工业智核\康尼\数据\设备能力映射模板.xlsx`(新建,非 git)
|
|||
|
|
- `D:\ItemSpace\14.工业智核\康尼\数据\模具适配映射模板.xlsx`(新建,非 git)
|
|||
|
|
- `docs/development/kangni-mapping-validation.md`(本报告)
|
|||
|
|
- `tests/golden/test_kangni_mapping_validation.py`(解析契约测试)
|
|||
|
|
|
|||
|
|
未修改 `server/**`、`apps/web/**`、`docs/CHANGELOG.md`、`docs/product/**`、`康尼项目/*.xlsx`,
|
|||
|
|
也未覆盖用户目录中已生成的两份模板。
|
|||
|
|
|
|||
|
|
## 数据口径与假设
|
|||
|
|
|
|||
|
|
- 真实工序编号:来自 `工时.xlsx` 10 个订单 sheet,共 26 道;`工艺路线.xlsx` 的 Sheet2-9 与 BOM 的 `工单编号`
|
|||
|
|
对应后 8 个订单,工序集合与工时表一致。
|
|||
|
|
- 真实标准工时:采用 `工时.xlsx` 每道工序在各订单中的最大值(分钟/件),写入共享设备行的“单件工时”。
|
|||
|
|
- 设备:40 台真实设备全部入表,`可执行工序编号` 留空,状态按源表 `启用/停用` 映射为
|
|||
|
|
`RUNNING/MAINTENANCE`;区域编码取源表工段编号,缺省 `ZONE-CG`。40 台中无装配类设备,因此不伪称能力。
|
|||
|
|
- 共享设备:`EQ-SHARED-CG-01 共享装配设备(待现场确认)` 为合成占位,覆盖全部 26 道工序;
|
|||
|
|
这是保守假设,不代表任何真实设备已确认能力。
|
|||
|
|
- 模具:40 套真实模具全部入表,`适用工序编号/适配设备编号/寿命上限/已用寿命` 留空,
|
|||
|
|
`requireMold=false`,不占模具槽,全部标注“待现场确认”。
|
|||
|
|
- 可动率、是否可移动、移动耗时、换型耗时、班次日历均未取得现场值,使用保守默认值。
|
|||
|
|
|
|||
|
|
## 发现的问题
|
|||
|
|
|
|||
|
|
1. `工艺路线.xlsx` 和 `BOM.xlsx` 后 8 个订单位于 `Sheet2-9`,sheet 名不是订单号;
|
|||
|
|
`parse_routing_sheet` / `parse_bom_sheet` 仅按订单号查找 sheet,导致 `--with-siblings`
|
|||
|
|
只导入 2 / 10 个订单。
|
|||
|
|
2. 主订单 102285668 从 `outputs/.../订单102285668_完整生产路线.xlsx` 解析时未回填 `工时.xlsx`
|
|||
|
|
真实值,10 道工序仍按类型推断为 45 / 30 分钟;同源订单 102289293 已使用真实工时。
|
|||
|
|
3. `康尼项目/设备能力映射模板.xlsx`、`模具适配映射模板.xlsx` 的表头带括号说明
|
|||
|
|
(如 `单件工时(分钟,工序:分钟;多值分号)`、`适配模具编号(逗号分隔)`),
|
|||
|
|
而 `parse_equipment_capability_map` / `parse_mold_adaptation_map` 的列别名不含括号,
|
|||
|
|
导致这两份模板即使填写了单件工时、适配模具/设备,也会被解析为空。本次未修改该目录文件;
|
|||
|
|
新建于 `康尼/数据` 的两份映射表使用解析器精确表头,已验证可完整解析。
|
|||
|
|
|
|||
|
|
## 缺什么
|
|||
|
|
|
|||
|
|
- 设备 → 工序真实能力映射(当前仅共享设备占位)
|
|||
|
|
- 模具 → 工序 / 适配设备 / 寿命上限 / 已用寿命映射
|
|||
|
|
- 8 个订单的 sheet 命名或按 `工单编号` 列解析的导入支持
|
|||
|
|
- 主订单真实工时回填
|
|||
|
|
- 可动率、移动耗时、换型耗时、班次日历、库存 / 在途等现场参数
|
|||
|
|
|
|||
|
|
## 下一步
|
|||
|
|
|
|||
|
|
- 由现场确认 26 道工序实际使用哪些设备/工装,再回填 `康尼/数据` 两份映射表;
|
|||
|
|
- 将工艺/BOM 的 Sheet2-9 重命名或增强导入解析(需 `server` 改动,本 sub-agent 不擅自改);
|
|||
|
|
- 补齐主订单工时回填后,重跑 10 订单全量导入并核对延期/利用率。
|
|||
|
|
|
|||
|
|
## 协作沟通记录
|
|||
|
|
|
|||
|
|
本 sub-agent 会话未暴露 `multi_agent_v1__send_input` 工具(函数列表与 MCP 资源均为空),
|
|||
|
|
因此无法直接向 peer 发送消息。以下为已备好、供 supervisor/协调层转发的中文消息:
|
|||
|
|
|
|||
|
|
握手(发给 `01a00bc6-091a-7110-a7d7-22604e1cdd85` MPS 计划台接线、
|
|||
|
|
`01a00bc6-2106-7831-bbcc-f722bcdf37ff` 策略/导出增强):
|
|||
|
|
|
|||
|
|
> 我是康尼真实数据验证工程师。我的数据范围:`康尼/数据` 的工艺路线/工时/设备/模具/订单/BOM,
|
|||
|
|
> 输出 `设备能力映射模板.xlsx` 与 `模具适配映射模板.xlsx`(40 真实设备 + 1 共享设备占位、
|
|||
|
|
> 40 套真实模具,能力/适配均标注“待现场确认”)。预计在 2026-08-17 完成导入验证与报告。
|
|||
|
|
> 请确认共享工作区可读可写;如你们涉及订单结构、设备/模具主数据口径,请同步告知。
|
|||
|
|
|
|||
|
|
完成摘要(发给两位 peer):
|
|||
|
|
|
|||
|
|
> 康尼映射验证完成。已生成/更新 `康尼/数据` 两份映射表并跑通
|
|||
|
|
> `load_kangni.py --with-siblings --no-persist`:读取 41 台设备、40 套模具,
|
|||
|
|
> 2 订单/20 WO,冲突 2,总延期 921.31h,利用率 0.0612,全部工序走共享设备占位。
|
|||
|
|
> 注意:真实源表共 26 道工序,但工艺/BOM 后 8 个订单在 Sheet2-9(sheet 名非订单号),
|
|||
|
|
> 当前导入只覆盖 2 个订单;主订单工时仍为推断值;康尼项目模板表头带括号说明,解析器读不到
|
|||
|
|
> 单件工时/适配模具/适配设备。需要你们在 MPS/导出侧按“2 订单 + 共享设备”口径处理,
|
|||
|
|
> 完整 10 订单能力待现场确认后重跑。
|
|||
|
|
|
|||
|
|
2026-08-17 收到 supervisor 转发的 peer `01a00bc6-091a-7110-a7d7-22604e1cdd85`(MPS 计划台接线)
|
|||
|
|
握手与完成摘要:其范围为 client.ts/types.ts/PlanBucketsView.tsx MPS 页签、mps_api.py 契约小修、
|
|||
|
|
test_mps_planning.py,不碰 engines/flex/reports/docs/康尼项目;persist/trace/gap 接线完成,
|
|||
|
|
mps_planning 9 passed + contract_sync 12 passed + build:web 通过;调用 `/api/mps/persist` 时
|
|||
|
|
`createdBy` 请使用 `LLM/USER/SYSTEM`。已核对共享工作区存在对应未提交改动
|
|||
|
|
(`server/gateway/mps_api.py`、`server/aps_domain/mps_planning.py` 等),与 peer 描述一致。
|
|||
|
|
|
|||
|
|
回复文本(供 supervisor 转发给该 peer):
|
|||
|
|
|
|||
|
|
> 收到,握手和完成摘要已确认。我的数据侧口径:26 道真实工序、40 台真实设备 + 1 台共享设备占位、
|
|||
|
|
> 40 套真实模具,映射均标注“待现场确认”;`load_kangni.py --with-siblings --no-persist`
|
|||
|
|
> 当前只导入 2 个订单,全部工序走 `EQ-SHARED-CG-01`。`createdBy` 我会按 `LLM/USER/SYSTEM`
|
|||
|
|
> 口径使用,不额外引入自定义值。需要你们在 MPS 侧把 2 订单共享设备结果视为保守占位,
|
|||
|
|
> 完整 10 订单待 Sheet2-9/工时回填问题解决后重跑。
|