Files
shanxia2.0/docs/crm-migration/step-01-prepare.md
T
2026-06-01 08:21:21 +08:00

88 lines
3.6 KiB
Markdown

# 步骤一:模块分析 + 编写迁移方案
> 移植新模块时首先加载此文档。完成后进入 step-02。
> **前置条件**:通用指南已阅读,理解强制要求。
---
## 目标
产出该模块的完整迁移方案(7 个小文档),作为后续所有实施步骤的依据。
## 强制要求
> ⚠️ 不写方案直接编码是**禁止行为**。方案必须审核通过后才能进入 step-02。
## 操作流程
### 1. 分析原 CRM 模块
在 `shanxia/crm/web/` 和 `shanxia/crm/backend/` 中全面搜索该模块相关文件,输出:
| 分析维度 | 操作 | 输出 |
|---------|------|------|
| 前端页面 | 搜索 `crm/{module}/` 下所有 .vue 文件 | 文件映射表 |
| 数据库表 | 从 `docs/sql/sx.sql` 找 `crm_*` 表 | 表清单 + DDL |
| API 接口 | 阅读前端 API 调用 + Java Controller | API 清单 |
| 特殊场景 | 搜索定时任务/监听器/批量操作 | 场景清单 |
| 字典数据 | 从 sx.sql 找 `crm_%` 字典 | 字典清单 |
### 2. 清理 shanxia2.0 中已有代码
如果该模块之前有部分移植代码,先删除避免干扰:
```
删除范围:
- web-admin/src/views/crm/{module}/ 目录
- web-admin/src/api/crm/{module}.ts
- backend/app/crud/crm/{module}.py
- backend/app/schemas/crm/{module}.py
- backend/app/models/crm_models.py 中该模块的 Model 类
- backend/app/api/crm.py 中该模块的路由
```
### 3. 按模板编写迁移方案
在 `docs/crm-migration/plans/{module}/` 目录下,按以下模板逐个创建方案文档:
| 文件 | 模板 | 内容 | 填写指引 |
|------|------|------|---------|
| `01-overview.md` | [模板](plan-template/01-overview.md) | 迁移范围、涉及表、文件映射、策略 | 从 sx.sql 和 Java 源码提取 |
| `02-database.md` | [模板](plan-template/02-database.md) | 原始DDL、迁移后DDL、字段对照表 | 每张表一节,字段逐个对照 |
| `03-frontend-spec.md` | [模板](plan-template/03-frontend-spec.md) | 每个页面的字段/按钮/交互流程 | 从原 CRM Vue 组件提取 |
| `04-api-spec.md` | [模板](plan-template/04-api-spec.md) | URL、参数、响应、业务逻辑 | 从 Java Controller/Service 提取 |
| `05-special.md` | [模板](plan-template/05-special.md) | 定时任务、导入导出、状态机 | 从 Java Task/Listener 提取 |
| `06-steps.md` | [模板](plan-template/06-steps.md) | 10~20个分步实施计划 | 每步有目标+文件+完成标准 |
| `07-verify.md` | [模板](plan-template/07-verify.md) | 功能验证清单、UI合规检查、测试用例 | 对照原 CRM 功能逐条编写 |
### 4. 方案审核
方案编写完成后,逐文档检查:
- [ ] 每个文档聚焦单一主题,内容多时已拆分为子文档(如 04a/04b)
- [ ] 数据库表与 sx.sql 核对一致
- [ ] API 清单中每个 URL 有 Java 源码位置
- [ ] 前端功能完整性对照表无遗漏
- [ ] 字段对照表中 dict_value 与原 CRM 一致
## 参考资源
| 资源 | 用途 |
|------|------|
| `docs/客户管理及公海池迁移方案.md` | 内容参考(4291行完整方案,但不要照搬格式) |
| `docs/crm-migration/plan-template/` | 模板文件(按此结构拆分) |
| `docs/crm-migration/ref-database-rules.md` | 数据库适配规则 |
| `docs/sql/sx.sql` | 原 CRM 数据库快照 |
| `shanxia/crm/web/` | 原 CRM 前端源码 |
| `shanxia/crm/backend/` | 原 CRM Java 后端源码 |
## 完成标准
- [ ] `docs/crm-migration/plans/{module}/` 下所有文档已创建
- [ ] 每个文档信息完整,未压缩或精简
- [ ] 方案审核通过
## 下一步
方案审核通过后加载 [step-02-frontend-copy.md](step-02-frontend-copy.md)。