2.1 KiB
2.1 KiB
合同 create — 报价单前置(P1)
角色:支撑报价单 转合同(
CrmQuoteServiceImpl.toContract)及ToContractDialog。
范围:仅实现 create 闭环,不含合同审批/变更/模板等完整合同模块。
须对齐的 Java
| 文件 | 方法 |
|---|---|
CrmContractController.java |
POST / → insertByBo |
CrmContractServiceImpl.java |
insertByBo(主表 + 产品明细) |
CrmContractProductServiceImpl.java |
batchInsert / 明细保存 |
报价单转合同调用链(快照 CrmQuoteServiceImpl.toContract 时一并阅读):
- 校验报价单
accepted、有产品、未转过 - 组装
CrmContractBo+CrmContractProductBo列表 contractService.insertByBo- 回写报价单
status=contract、contract_id
涉及表(最小集)
| 表 | 说明 |
|---|---|
crm_contract |
门户已有简化 Model,须补字段 + create CRUD |
crm_contract_product |
须新建 DDL |
其余合同表(approval/change/template…)本阶段不做。
门户 API(最小)
| 门户 | 说明 |
|---|---|
POST /web/crm/contract/add |
对齐 Java insertByBo |
POST /web/crm/contract/detail |
转合同后可选查看 |
POST /web/crm/contract/product/list |
明细(若前端需要) |
toContract 在报价单 CRUD 内调用 create_contract_from_bo(...),不暴露为独立合同「从报价创建」路由亦可(与 Java 内联调用一致)。
快照清单(P1-1 实施前执行)
./docs/crm-migration/scripts/snapshot-java.sh contract \
controller/CrmContractController.java \
service/impl/CrmContractServiceImpl.java \
service/impl/CrmContractProductServiceImpl.java \
domain/CrmContract.java \
domain/CrmContractProduct.java \
domain/bo/CrmContractBo.java \
domain/bo/CrmContractProductBo.java
完成标准
- 可从 Python 传入与 Java
toContract相同语义的 Bo,创建合同 + 产品行 - 报价单
C14 转合同可联调(在报价单全量功能范围内,不可 stub)