Files
shanxia2.0/docs/crm-migration/plans/quote/06-steps.md
T
2026-06-01 08:21:21 +08:00

4.6 KiB
Raw Blame History

报价单管理模块迁移方案 — 06 分步实施计划

范围:报价单 全量功能(含 PDF、分享、转合同、统计、导出),无 MVP 裁剪。
快照:每步 Sub-step 0 执行 snapshot-java.sh,只拷本步文件(见 reference/java/README.md)。
完成标准:04-api-spec.md 对应行 ✅ + 该步手测通过。


阶段 A:方案(已完成)

步骤 内容 状态
A1 01 / 04 / 05 / 06 + 前置方案 ✅
A2 决策:供方同步 + 合同 create 先行 + 全量功能 + 按需快照 ✅

阶段 P0:供方信息 crm_supplier_info

详案:plans/supplier-info/01-overview.md
阻塞:报价单 C4(新增)及编号生成。

步骤 Sub-step 0 快照 实施 完成标准
P0-1 supplier-info Controller + ServiceImpl + domain + mapper DDL + Model + Schema + CRUD + API(list/listAll/detail/add/update/delete/export) ✅ 2026-05-31

阶段 P1:合同 create(报价转合同前置)

详案:plans/contract/01-prerequisite-create-for-quote.md
阻塞:报价单 C14(转合同)。

步骤 Sub-step 0 快照 实施 完成标准
P1-1 contract Controller + ContractServiceImpl + ProductServiceImpl + Bo/Entity crm_contract 字段补全 + crm_contract_product DDL + create_contract(含产品 batch) ✅ 2026-05-31

阶段 P2:报价单后端(全量 C1–C16)

P2-0 基础设施

步骤 快照 实施 状态
B1 — incremental_crm_quote.sql(4 表) ✅
B2 domain/CrmQuote*.java Model + Schema 骨架 ✅

P2-1 对照翻译

每步:0 快照 → 1 写 Python → 2 打 ✅

步骤 Sub-step 0 快照(示例命令) 翻译范围 04-api
C1 quote service/impl/CrmQuoteServiceImpl.java(整文件,首拷) buildQueryWrapper + list + canApprove + fillContractLinkedCount #1
C2 同上(已快照则跳过) queryById #2
C3 quote service/impl/CrmQuoteProductServiceImpl.java + mapper 产品 CRUD + batchInsert/deleteByQuoteId product
C4 quote ServiceImpl + product CrmProductServiceImpl.resolveProductIdForQuoteItem insertByBo + 编号 + 金额 #3
C5 quote ServiceImpl updateByBo + deleteWithValidByIds #4-5
C6 quote ServiceImpl + quote ApprovalServiceImpl submitQuote + createApprovalRecords #6
C7 quote Approval* + resources/mapper/crm/CrmQuoteApprovalMapper.xml 审批 list + approve approval #1-2
C8 quote ApprovalServiceImpl withdraw + canUserApprove approval #3-4
C9 quote ServiceImpl accept / reject / invalid #12-13, #22
C10 quote ServiceImpl newVersion + versions #15-16
C11 quote ServiceImpl saveTemplate + getTemplate #7-8
C12 quote PdfServiceImpl + resources/templates/quote-pdf.html generatePdf → MinIO #9
C13 quote ServiceImpl + ShareLogServiceImpl generateShare + 公开 share + shareLog #10-11, shareLog
C14 quote ServiceImpl toContract + P1 已实现的 contract create 转合同联调 ✅ 2026-05-31
C15 quote ServiceImpl statistics ×3 #18-20
C16 quote domain/vo/CrmQuoteVo.java export + QUOTE_EXPORT_COLUMNS #17

C4 额外快照(产品解析,非报价目录):

./docs/crm-migration/scripts/snapshot-java.sh product \
  service/impl/CrmProductServiceImpl.java

C13 公开路由:GET /api/public/crm/quote/share/{shareCode}(无 JWT)。


阶段 P3:前端 ✅(2026-05-31)

步骤 内容 说明 状态
D1 拷贝 views/crm/quote/ + API 与线索/商机相同 ✅
D2 POST + /web/crm/quote/* 对齐 04-api-spec ✅
D3 Fresh Mint + 组件适配 DictTag / ListPagination / modal shim ✅
D4 useQuotePerm menu-codes ✅

可与 P2 C1 之后并行联调。


阶段 P4:验证

步骤 内容
E1 07-verify.md 全功能清单(含 PDF/分享/转合同)
E2 状态机全路径手测
E3 check_field_consistency.py
E4 更新 module-status.md

禁止

  • ❌ 暂缓 PDF / 分享 / 转合同
  • ❌ 方案阶段全量快照 Java(探索性 quote/ 目录保留即可,不作为「已实施」依据)
  • ❌ 供方默认写死 SX(须 P0 真实数据)