Sfoglia il codice sorgente

docs: 补充无计划拦截方案的本地库执行验证记录

hbx 5 giorni fa
parent
commit
353725095d
1 ha cambiato i file con 16 aggiunte e 0 eliminazioni
  1. 16 0
      docs/生产计划-无计划拦截-实施方案.md

+ 16 - 0
docs/生产计划-无计划拦截-实施方案.md

@@ -289,6 +289,22 @@ SELECT id, order_id, day, shift_id, nums FROM mes_product_plan
 3. `js_sys_config` 直插后需重启服务,或在"系统配置"页面重新保存一次触发缓存刷新
 4. 灰度建议:先把 `mes.plan.intercept` 置为 `0` 上线,确认存量数据回填正常后再置 `1` 开启拦截
 
+**本地库已执行验证**(localhost:3307 / mes_cloud_xz,MySQL 5.7):
+
+| 检查项 | 结果 |
+|---|---|
+| `mes_product_record.plan_id` 字段 | 已创建 `varchar(64)` |
+| 索引 `idx_mpr_plan_id` | 已创建;`sn` 索引原本就有,脚本自动跳过 |
+| 存量回填 | 47 条记录(对应唯一有计划的工件) |
+| 记录与工件计划不一致 | 0 行 ✓ |
+| 未关联订单的计划 | 0 行 ✓ |
+| 三级 join 查询 / 订单号+计划日期过滤 / 回退查询 / 回填语句 / NG 查询 | 全部实跑通过 |
+
+> 本地库现状:工件 6361 个,仅 1 个有计划;`mes.plan.intercept` 当前为 `1`(拦截已开)。
+> 本地调试提交工位结果前请先排产,否则会被"无计划"拦截;生产环境同样建议先置 `0` 灰度。
+> 库中另有 2 条历史脏计划(2026-04-16/17,nums=400,`shift_id='1'` 占位值,关联订单已不存在),
+> 因无工件引用、也匹配不到真实班次,不影响拦截,建议按 `mes_product_plan_link_fix.sql` 的说明人工清理。
+
 ### 9.4 关键实现说明
 
 - **热路径无额外查询**:新建工件的记录在创建时就写入 `plan_id`,提交工位结果时直接从已加载的记录上取计划,不产生额外 SQL;只有历史无计划件才会走回退查询并自动回写(自愈)。