2026-09-10-framework-contract-amount-sum-design.md 1.3 KB

框架合同金额按产品小计汇总

背景

框架销售/采购合同(framework_sale / framework_purchase / 历史 framework)在前后端均强制将合同头 amount / amountWithTax 置为 0,导致产品行已有固定数量与单价时,列表与详情仍显示合同金额为 0。

需求

  1. 有小计就累加:各行 subtotal(或 数量×单价×折扣)之和写入合同金额;customer_demand / market 行贡献 0。
  2. 运行时仅新建/再次保存生效;不做应用内批量迁移。
  3. 代码完成后提供生产库「先备份、再回填」SQL,由人工执行。

设计

  • 后端 _normalize_framework_contract_data:保留行级 market/demand 清零;删除头金额强制 0;规范化后按行累加写回 amount(及 amountWithTax 与现有销售合同口径一致)。
  • 前端 calculateTotalAmount 及切类型/载入产品处:去掉框架合同 amount = 0,与销售合同相同累加。
  • 更新路径保证规范化后的 amount 写入实体(update_contract 当前对 work_data 规范化但对 data 做 apply,需同步金额字段)。
  • 测试覆盖:全固定价、混用、全随行就市。

非目标

不改审批流、调价区间、计划超量提醒;不在启动时跑迁移。