Files
shanxia2.0/docs/crm-migration/plan-template/05-special.md
T
2026-06-01 08:21:21 +08:00

78 lines
2.2 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.
# 模块迁移方案 — 05 特殊场景
> **模板说明**:描述定时任务、导入导出、状态机、事件触发等特殊业务场景。如果模块无特殊场景,写"无"即可。
> **参考范例**:`docs/客户管理及公海池迁移方案.md` 第五章
---
## 定时任务
### 任务 1:[任务名称]
| 项目 | 内容 |
|------|------|
| 触发频率 | [如:每天凌晨 1 点] |
| 说明 | [业务描述] |
| Java 源码 | `shanxia/crm/backend/.../XxxTask.java` |
**业务逻辑**:
1. [步骤1]
2. [步骤2]
**Python 实现位置**:`backend/app/tasks/{module}.py`
---
## 导入导出
### 导入
| 项目 | 内容 |
|------|------|
| 模板字段 | [列出 Excel 列] |
| 校验规则 | [唯一性、必填、格式] |
| Java 源码 | `...` |
### 导出
| 项目 | 内容 |
|------|------|
| 导出字段 | [列出 Excel 列] |
| 字典列 | [字段 → dict_type,对照 Java `*Vo` 的 `@ExcelDictFormat`] |
| Java 源码 | `...Controller.export` + `CrmXxxVo.java` |
| 门户实现 | `backend/app/utils/crm_export_columns.py` 增加 `XXX_EXPORT_COLUMNS`;路由调用 `export_rows_to_xlsx_response` |
**门户导出步骤(强制)**:
1. 从 Java `CrmXxxVo` 复制带 `@ExcelDictFormat(dictType="...")` 的字段映射。
2. 在 `crm_export_columns.py` 用 `ExportColumn("列标题", "camelCaseField", dict_type="...")` 声明。
3. 路由:`rows, _ = list_xxx(...)` → `return export_rows_to_xlsx_response(...)`。
4. 前端:`exportXxx` 使用 `responseType: 'blob'`(见 `ref-frontend-diff.md`)。
非字典列(姓名、手机号等)只写 `ExportColumn("标题", "field")` 即可。布尔列可用 `formatter=_yes_no`(参考联系人导出)。
---
## 状态机 / 业务流程
### 流程 1:[流程名称]
```
状态A → (触发条件) → 状态B → (触发条件) → 状态C
```
| 转换 | 触发条件 | 伴随操作 |
|------|---------|---------|
| A→B | [条件] | [更新哪些字段/写入哪些记录] |
---
## 事件触发器
### 触发器 1:[名称]
| 触发时机 | 伴随操作 | Java 源码 |
|---------|---------|----------|
| [如:新增跟进记录后] | [如:更新客户最后跟进时间/跟进次数] | `...` |