Files
shanxia2.0/docs/superpowers/plans/2026-09-10-framework-contract-amount-sum.md
T
2026-09-11 09:41:09 +08:00

34 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 框架合同金额按产品小计汇总 — Implementation Plan
> **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.
**Goal:** 框架销售/采购合同在新建或保存时,按产品行小计汇总合同金额(随行就市/按需行贡献 0)。
**Architecture:** 后端 `_normalize_framework_contract_data` 去掉头金额强制 0,改为累加行小计;更新接口将规范化后的 amount 写回 apply 所用 payload。前端去掉 `amount = 0` 短路,统一 `calculateTotalAmount`。交付生产备份+回填 SQL。
**Tech Stack:** FastAPI / pytest;Vue 3 web-admin
---
### Task 1: 后端单测 + 实现
**Files:**
- Create: `backend/tests/test_crm_framework_contract_amount.py`
- Modify: `backend/app/crud/crm/contract.py`
- [x] 写失败用例(固定价合计、混用、全 market)
- [x] 改 `_normalize_framework_contract_data` 并同步 update 路径 amount
- [x] 跑通 pytest
### Task 2: 前端
**Files:**
- Modify: `web-admin/src/views/crm/contract/components/ContractFormDialog.vue`
- Modify: `web-admin/src/views/crm/contract/form.vue`
- [x] `calculateTotalAmount` / 切类型 / 载入产品:框架合同改为累加
### Task 3: 生产 SQL
- [x] 输出备份表 + 按 `crm_contract_product.subtotal` 回填框架合同金额的语句