运输计划归档弹窗(pl-plan-archive-dialog)提交走 POST /transport/plan/{id}/archive,会写装卸货数量、运费、回传附件,触发库存,并将 archive_status 设为 archived。未归档计划无法中途保存部分填写内容。
Goals:
Non-Goals:
archive_status 已为 VARCHAR(20))状态值 draft:扩展 archive_status 为 unarchived | draft | archived,暂存时写入 draft;正式归档仍写 archived。备选「仅写字段不改状态」不利于列表识别,故不采用。
独立草稿接口:POST .../archive-draft,body 复用 PlanArchiveBody。与正式归档分离,避免误触发库存。
同字段持久化:草稿写入现有 inbound_qty / outbound_qty / 品牌 / 运费 / 附件字段;打开弹窗沿用现有加载逻辑即可回填。允许空数量(不强制 _require_qty)。
运费暂存放宽:hasFreight=1 但运输量未填齐时允许保存部分运费字段,跳过「运输量必须大于0」硬校验;正式归档仍严格校验。
UI:仅 archiveStatus !== 'archived' 显示「暂存」(Document 图标 + 中性描边);暂存成功后刷新列表状态并关闭弹窗。
archived 时视为完成;列表明确「已暂存」sync_draft_settlement_freight_for_transport(仅草稿结算),正式结算仍受锁定校验约束unarchived 数据不变draft 可视为未归档处理