2026-08-30-pl-plan-save-sync-dibang-date-design.md 1.6 KB

运输计划保存同步地磅日期 + 已安排禁仅保存

日期: 2026-08-30
状态: 已确认(方案 A + B)
范围: backend 运输计划更新接口 + 地磅桥接服务;web-admin 计划表单底栏按钮

1. 背景

编辑已安排运输计划(仅「保存」)会更新计划/段次,但地磅出入库的日期、往来单位等不会完整联动,导致两侧数据不一致(如 PO20260830002)。

2. 决策

方案 A(前端流程)

项 决策
已安排计划 隐藏「保存」,只保留「保存并安排」或「调整运输」
未安排 / 新建 仍可「保存」或「创建」

方案 B(后端兜底)

项 决策
触发点 PUT 更新计划,commit 前,存在有效 pl_transport_db_link 时
日期算法 与安排时一致:装货 load_time、送货 delivery_time,否则回退计划日期
可回写条件 出入库状态可作废集合 + 无有效过磅单
不可回写 计划仍保存成功,经 warnings 提示
同月 仅更新 db_inbound_outbound.date
跨月 回减旧月计划量 → 查找/新建新月计划 → 改挂出入库与 link

3. 非目标

  • 不重建批次号、不改已过磅单据
  • 方案 B 不覆盖往来单位/车辆等全量字段(依赖方案 A 走安排链路)

4. 实现要点

  • 前端:pl-plan-form-dialog 增加 showSaveButton(transportStatus !== 'arranged')
  • 后端:sync_linked_dibang_dates_for_plan;update_plan 合并 warnings
  • 单测:同月改日、跨月改挂、已过磅跳过