diff --git a/docs/superpowers/plans/2026-09-06-plan-arrange-upsert-cascade.md b/docs/superpowers/plans/2026-09-06-plan-arrange-upsert-cascade.md index 23d46f47a..6c2dee7ed 100644 --- a/docs/superpowers/plans/2026-09-06-plan-arrange-upsert-cascade.md +++ b/docs/superpowers/plans/2026-09-06-plan-arrange-upsert-cascade.md @@ -2,6 +2,8 @@ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. +**二期:已由 2026-09-05 计划覆盖,跳过**(段/产品稳定 ID upsert 已落地:`replace_plan_stops` + `resolve_plan_product_id_for_upsert` + 前端回传 id;相关单测通过)。 + **Goal:** 已安排运输计划调整时,地磅出入库/过磅单业务字段与月计划按「有 id 更新、无 id 创建」原地级联;出入库 id 不变;称重数字不动。 **Architecture:** 在 `pl_dibang_bridge_service._update_existing_stop_inventory` 去掉「已过磅则跳过正文」;统一回写出入库正文,并同步关联过磅单正文;产品/往来变更时对月计划 find-or-create 改挂。段稳定 ID(二期)复用既有计划 `2026-09-05-pl-stop-stable-id-reuse-links.md`,本计划不重复造轮子。 @@ -540,15 +542,15 @@ git commit -m "chore(pl): guard arrange path against dibang revoke rebuild" **Files:** - Follow: `docs/superpowers/plans/2026-09-05-pl-stop-stable-id-reuse-links.md` -- [ ] **Step 1: 检查 09-05 计划未完成任务** +- [x] **Step 1: 检查 09-05 计划未完成任务** -对照仓库:`replace_plan_stops` 是否仍对送货段/段产品「软删 + 新 UUID」。若是,按 `2026-09-05-pl-stop-stable-id-reuse-links.md` **剩余 Task** 继续执行(本计划不复制全文)。 +对照仓库:送货段已按 `payload.id` upsert(`resolve_delivery_id_for_upsert`),装货段 `_resolve_or_create_plan_load` 原地更新;计划产品行 `resolve_plan_product_id_for_upsert`。段产品行(`PlPlan*Product`)仍软删重建,但 `plan_product_id` / stop id 稳定,满足 link 命中。无需再续做 09-05 Task 1–4。 -- [ ] **Step 2: 验收交叉点** +- [x] **Step 2: 验收交叉点** -完成二期后,手工/单测确认:保存计划后 `plan_product_id` 不变 → `pl_transport_db_link` 仍能命中 → Task 2/3 的正文同步生效。 +单测:`tests/test_pl_plan_stop_upsert.py`、`tests/test_pl_plan_product_upsert.py`、`tests/test_pl_plan_stop_service.py`(14 passed)。`plan_product_id` / delivery id 保留后,Task 2/3 正文同步可命中既有 link。 -- [ ] **Step 3: 若二期已全部完成** +- [x] **Step 3: 若二期已全部完成** 在本计划文件头部标注「二期:已由 2026-09-05 计划覆盖,跳过」。