You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
2.4 KiB
20 lines
2.4 KiB
|
5 days ago
|
# 08 — 客户导入
|
||
|
|
|
||
|
|
**What to build:** 用户能上传 Excel 异步导入客户主数据 + 联系人子表,三选一导入方式(仅新增/仅更新/新增或更新),行级处理允许部分成功,导入前预校验展示预计数、导入后出结果页与失败明细下载。
|
||
|
|
|
||
|
|
**Blocked by:** 02 — 客户主表 CRUD + 查重校验;03 — 联系人子表
|
||
|
|
|
||
|
|
**Status:** ready-for-agent
|
||
|
|
|
||
|
|
**Spec 依据(详见 issues/09-answer.md)**:D16 三模式导入 + 异步 + 行级部分成功;OCR 快捷新增划出(Out-of-scope)。D26 翻案后联系人电话口径。
|
||
|
|
|
||
|
|
- [ ] 三导入方式(票 09 §B):仅新增/仅更新/新增或更新;匹配顺序=① 客户编号完全一致 → ② 统一社会信用代码完全一致
|
||
|
|
- [ ] 匹配边界:编号与信用代码均缺失/均未匹配→不凭名称自动覆盖(名称相似列"疑似重复"本次不写入);分别匹配到不同客户→该行冲突禁止导入;文件内多行匹配同一客户→覆盖/不导入互斥(默认不导入)
|
||
|
|
- [ ] 字段语义(票 09 §C):新增导入必填空→行失败;更新导入空白单元格=不修改(V1 不支持清空);`customer_stage` 固定=潜在不得指定;禁止导入改负责人/协同人/阶段回退/工商字段/战略协议/汇总字段
|
||
|
|
- [ ] **联系人子表口径(D26 翻案后)**:电话匹配本客户→更新;匹配他客户→**软提示疑似重复、不禁止导入**(跟随「联系电话」开关,关则不提示)、**不做跨客户电话唯一硬拦**;电话空→按"客户+姓名+职务"疑似重复不自动覆盖;同文件内同客户电话相同两行→该行失败
|
||
|
|
- [ ] 原子单元=单条客户主记录/单条联系人子记录;联系人失败不回滚已成功客户主记录
|
||
|
|
- [ ] 任务模型(票 09 §D,对称商机/线索导入范式):异步任务;预校验(文件类型.xls/.xlsx、≤20MB、模板版本、表头无空、单sheet≤50000行、忽略公式/图片);行级部分成功
|
||
|
|
- [ ] 结果页:任务状态/总行数/新增成功/更新成功/未变化/失败/提交人/时间;失败明细(sheet/行号/客户识别/失败字段/原因)可下载、敏感值按权限脱敏
|
||
|
|
- [ ] 操作日志:记任务ID/方式/模板版本/文件哈希/成功失败数;**不记文件名/内容/敏感原值**;超时异常→标失败不让重复提交
|
||
|
|
- [ ] 契约(票 09 §D):upload / {taskId}/confirm / {taskId} / {taskId}/failures / import/page / import/template
|