日期:2026-02-22
目标:围绕"两轮背调"核心模块,解决批量处理、主体唯一性、价值确认、产品匹配四大问题
| # | 问题域 | 痛点 | 目标 |
|---|---|---|---|
| 1 | 慢/批量 | 当前只能逐条处理线索,无法截图/名片批量导入筛查 | 支持批量输入(截图OCR、名片、CSV、多行粘贴),一次提交多条线索 |
| 2 | 主体唯一性 | 同一公司不同邮箱/域名会产生多条独立线索,无法归并 | 建立"主体识别"机制,通过域名+公司名归纳到同一主体 |
| 3 | 价值确认 | 缺少分轮次的用户确认环节,AI判断后直接进入下一步 | 每轮分析完给出列表,让用户逐条确认后再进入下一步 |
| 4 | 产品匹配 | 推荐规则固定,销售无法修改标注;不同画像缺少差异化价值点 | 产品匹配可人工修改和标注,不同画像给出差异化建议 |
将背调功能封装为独立核心模块,分两轮执行:
┌─────────────────────────────────────────────────────────────────┐
│ 两轮背调核心模块 │
│ │
│ ┌─────────────────────┐ ┌───────────────────────────┐ │
│ │ 第一轮:初步筛查 │ │ 第二轮:深度背调 │ │
│ │ (Quick Screen) │ │ (Deep Investigation) │ │
│ │ │ │ │ │
│ │ · 批量输入解析 │ │ · 公司实力调研 │ │
│ │ · 主体识别 & 去重 │ ──→ │ · 决策人调查 │ │
│ │ · 画像初判 │ 用户 │ · 采购项目分析 │ │
│ │ · 价值评估 │ 确认 │ · 产品匹配推荐 │ │
│ │ · 输出待确认列表 │ 后 │ · 跟进策略 & 触达邮件 │ │
│ └─────────────────────┘ └───────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
新增文件:services/batch-input.service.ts
| 输入方式 | 说明 | 解析结果 |
|---|---|---|
| 截图 OCR | 上传截图(聊天记录、网页截图等),OCR 提取文字后解析 | 提取公司名、联系人、邮箱、电话 |
| 名片拍照 | 上传名片照片,OCR + 结构化解析 | 提取姓名、职位、公司、邮箱、电话、地址 |
| 多行粘贴 | 文本框粘贴多行"公司名 + 邮箱"或纯邮箱列表 | 按行拆分,每行解析为一条线索 |
| CSV 批量 | 上传 CSV/Excel 文件 | 按列映射字段 |
| 多邮箱输入 | 逗号/换行分隔的多个邮箱地址 | 批量域名解析 |
// services/batch-input.service.ts
export interface BatchInputItem {
rawText: string; // 原始输入文本
parsedCompanyName?: string; // 解析出的公司名
parsedEmail?: string; // 解析出的邮箱
parsedDomain?: string; // 解析出的域名
parsedContactName?: string; // 解析出的联系人
parsedPhone?: string; // 解析出的电话
parsedCountry?: string; // 解析出的国家
parseConfidence: number; // 解析置信度 0-100
parseSource: 'ocr' | 'text' | 'csv' | 'email'; // 解析来源
}
export interface BatchProcessResult {
totalInput: number; // 总输入条数
successParsed: number; // 成功解析条数
failedParsed: number; // 解析失败条数
duplicatesFound: number; // 发现重复条数
items: BatchInputItem[]; // 解析结果列表
entities: EntityGroup[]; // 归并后的主体列表
}
文件:pages/dashboard/dashboard.component.ts
修改内容:
1. 新增"批量导入"Tab(与现有"导入线索"Tab 并列)
2. 批量导入区域包含:
- 截图/名片上传区(支持拖拽、多文件)
- 多行文本粘贴区
- CSV 文件上传
3. 解析后展示"待确认列表"(表格形式)
4. 支持逐条编辑、删除、合并
5. 确认后批量执行第一轮筛查
文件:pages/dashboard/dashboard.component.html
修改内容:
1. 新增 <mat-tab label="批量导入"> 区块
2. 上传区域 UI(拖拽区 + 按钮组)
3. 解析结果预览表格
4. 批量操作工具栏(全选、删除、合并、执行筛查)
新增文件:services/entity-resolver.service.ts
输入线索信息
↓
┌──────────────────────────────────────────┐
│ 主体识别流程 │
│ │
│ Step 1: 域名标准化 │
│ alex@wildgear.de → wildgear.de │
│ info@wild-gear.com → wildgear.com │
│ 免费邮箱(gmail等) → 降级为联系人维度 │
│ │
│ Step 2: 公司名标准化 │
│ "WildGear GmbH" → "wildgear" │
│ 去除后缀: Ltd/Inc/GmbH/Co./LLC │
│ 去除空格/标点/大小写差异 │
│ │
│ Step 3: 主体匹配 │
│ 域名完全匹配 → 同一主体 (置信度 95%) │
│ 域名相似度 > 0.8 → 疑似同一主体 (70%) │
│ 公司名相似度 > 0.85 → 疑似 (75%) │
│ 域名+公司名都匹配 → 确定 (99%) │
│ │
│ Step 4: 输出 │
│ → EntityGroup(归并主体) │
│ → 每个主体下挂载多个线索/联系人 │
└──────────────────────────────────────────┘
// services/entity-resolver.service.ts
export interface EntityGroup {
entityId: string; // 主体 ID
primaryDomain: string; // 主域名
primaryCompanyName: string; // 主公司名
normalizedDomain: string; // 标准化域名
normalizedCompanyName: string; // 标准化公司名
confidence: number; // 归并置信度
leads: Lead[]; // 该主体下所有线索
contacts: ContactInfo[]; // 该主体下所有联系人
duplicateWarnings: string[]; // 重复提醒
existingLeadIds: string[]; // 已有线索ID(用于去重提示)
isNew: boolean; // 是否新主体
mergeHistory: MergeRecord[]; // 合并历史
}
export interface ContactInfo {
name: string;
email: string;
phone?: string;
title?: string;
source: string;
firstSeenAt: Date;
}
export interface MergeRecord {
mergedAt: Date;
fromLeadId: string;
reason: string;
}
文件:models/lead.model.ts
修改内容:
1. Lead 接口新增字段:
- entityId: string // 所属主体ID
- domainKey: string // 域名去重键
- emailKey: string // 邮箱去重键
- relatedLeadIds: string[] // 关联线索ID列表
- mergedFrom?: string // 如果是合并来的,来源线索ID
- isEntityPrimary: boolean // 是否为该主体的主线索
2. 新增 EntityProfile 接口:
- 主体画像(汇总该主体下所有线索信息)
- 联系人列表
- 互动历史时间线
文件:services/quick-screen.service.ts
修改内容:
1. createLeadFromScreen() 方法增加查重逻辑:
- 调用 EntityResolver 检查是否已有同主体线索
- 已有 → 返回 { isDuplicate: true, existingEntity: EntityGroup }
- 新主体 → 正常创建并注册到 EntityResolver
2. 新增 screenBatch() 方法:
- 接收 BatchInputItem[] 批量输入
- 并行执行筛查
- 自动归并到主体
- 返回按主体分组的结果列表
文件:services/mock-data.service.ts
修改内容:
1. 现有 mockLeads 增加 entityId / domainKey / emailKey 字段
2. 增加主体索引 Map(域名 → entityId)
3. 模拟一些"同公司多联系人"的数据,验证去重效果
新增文件:services/two-round-bgcheck.service.ts
这一轮是现有 QuickScreenService 的增强版,改造点:
现有流程:
输入 → AI筛查 → 直接创建线索
改造后:
批量输入 → 解析 → 主体去重 → AI筛查 → 输出"待确认列表" → 用户确认
用户确认列表设计:
// 第一轮输出:待确认列表
export interface Round1Result {
entities: Round1EntityResult[]; // 按主体分组的结果
summary: {
totalEntities: number;
newEntities: number;
existingEntities: number;
recommendExplore: number; // 建议深入挖掘数量
recommendArchive: number; // 建议归档数量
};
}
export interface Round1EntityResult {
entity: EntityGroup;
screenResult: QuickScreenResult;
// 价值判断(差异化)
valueAssessment: {
decision: 'strongly_recommend' | 'optional' | 'archive';
decisionLabel: string; // "强烈建议深入挖掘" / "可选择性挖掘" / "建议归档"
decisionColor: string; // green / yellow / red
reasons: string[]; // 判断依据
valueHighlights: ValueHighlight[]; // 差异化价值亮点
};
// 用户操作
userAction?: 'confirmed' | 'modified' | 'rejected' | 'pending';
userNotes?: string;
}
// 差异化价值亮点(根据不同画像类型)
export interface ValueHighlight {
type: 'product_info' | 'market_potential' | 'certification' | 'scale' | 'urgency' | 'custom';
icon: string;
label: string;
detail: string;
importance: 'high' | 'medium' | 'low';
}
差异化价值点示例:
| 画像类型 | 有商品信息的价值点 | 无商品信息但有潜在价值的 |
|---|---|---|
| P1 医药分销商 | "明确列出3款产品需求,年采购额估$50K+" | "大型分销渠道,覆盖200+药房,潜在年采购额高" |
| P2 工业安全 | "指定OSHA合规产品,急需30天内交付" | "建筑行业安全合规需求增长,潜在长期客户" |
| P3 政府采购 | "招标文件明确,预算已批复" | "政府机构年度采购计划中,需要提前布局" |
| P4 品牌OEM | "提供了Pantone色号和品牌VI,定制需求明确" | "新兴户外品牌,增长迅速,OEM需求即将释放" |
| P5 电商零售 | "Amazon店铺月销500+,明确要FBA发货" | "Shopify新店,品类匹配度高,教育引导后可转化" |
| P6 低质量 | — | — |
第二轮在用户确认第一轮结果后启动,批量执行:
用户在第一轮确认列表中勾选要深入的主体
↓
批量启动深度背调(可并行处理多个主体)
↓
┌──────────────────────────────────────┐
│ 深度背调 5 阶段(每个主体独立进度) │
│ │
│ ① 初始化 & 数据验证 │
│ ② 公司实力调研 │
│ - 官网爬取 + 企业数据库 │
│ - 财务/规模信息 │
│ ③ 社媒 & 网络验证 │
│ - LinkedIn/Twitter/Instagram │
│ - 行业论坛/展会记录 │
│ ④ 决策人调查 │
│ - 关键联系人识别 │
│ - 角色/职级/决策权限 │
│ ⑤ 综合评级 & 策略生成 │
│ - 三维评分 │
│ - 产品匹配推荐(可编辑) │
│ - 跟进策略 + 触达邮件 │
└──────────────────────────────────────┘
↓
输出"第二轮确认列表"
↓
用户确认/修改产品推荐和跟进策略
批量进度设计:
export interface BatchBgCheckProgress {
totalEntities: number;
completedEntities: number;
currentEntity?: string; // 当前正在处理的主体名称
entityProgresses: Map<string, EntityBgCheckProgress>;
overallProgress: number; // 总体进度 0-100
startedAt: Date;
estimatedCompletion?: Date;
}
export interface EntityBgCheckProgress {
entityId: string;
companyName: string;
stages: BgCheckStage[]; // 复用现有5阶段
currentStage: number;
progress: number; // 该主体的进度 0-100
status: 'queued' | 'processing' | 'completed' | 'error';
error?: string;
}
文件:pages/lead-detail/lead-detail.component.ts
修改内容:
1. startDeepAnalysis() 方法重构:
- 改为调用 TwoRoundBgCheckService
- 支持从第一轮确认结果直接进入第二轮
2. 新增批量背调入口(从 Dashboard 也可触发)
3. 背调进度展示改为支持批量进度视图
文件:components/bgcheck-progress/bgcheck-progress.component.ts
修改内容:
1. 新增批量模式:显示多个主体的并行进度
2. 每个主体可展开/折叠查看5阶段详情
3. 整体进度条 + 单体进度条
新增文件:services/product-matcher.service.ts
export interface ProductMatchRule {
ruleId: string;
ruleName: string;
persona: CustomerPersona; // 适用画像
conditions: MatchCondition[]; // 匹配条件
recommendProducts: string[]; // 推荐产品SKU列表
priority: number; // 优先级
reason: string; // 推荐理由模板
isSystemRule: boolean; // 系统规则 vs 用户自定义
createdBy?: string; // 创建人
lastModifiedAt?: Date;
}
export interface MatchCondition {
field: 'keywords' | 'industry' | 'scale' | 'country' | 'certifications' | 'custom';
operator: 'contains' | 'equals' | 'greater_than' | 'in';
value: any;
}
// 产品推荐结果(可编辑)
export interface EditableProductRecommendation {
product: Product;
matchedRule: ProductMatchRule;
autoScore: number; // AI 匹配分
manualOverride: boolean; // 是否被人工修改
manualScore?: number; // 人工评分
salesNotes?: string; // 销售标注
isRemoved: boolean; // 是否被移除
addedManually: boolean; // 是否手动添加
sortOrder: number; // 排序(支持拖拽调整)
}
┌───────────────────────────────────────────────────┐
│ 产品匹配推荐流程 │
│ │
│ 输入:客户画像 + 需求信息 + 公司背景 │
│ │
│ ① 画像规则匹配 │
│ P1 医药分销 → 完整产品目录 + 认证文件 │
│ P2 工业安全 → OSHA 合规产品线 │
│ P3 政府采购 → 投标级产品组合 │
│ P4 OEM品牌 → 可定制产品 + 打样方案 │
│ P5 电商零售 → 高利润爆款 + FBA适配 │
│ │
│ ② 需求关键词匹配 │
│ 邮件/名片中提到的具体产品 → 精确匹配 │
│ │
│ ③ 历史成交数据参考 │
│ 同类画像历史成交产品排名 │
│ │
│ ④ 输出推荐列表(带理由) │
│ 销售可修改排序、添加/删除、标注理由 │
└───────────────────────────────────────────────────┘
文件:pages/lead-detail/lead-detail.component.ts 和 .html
修改内容:
1. 推荐产品区域改为可编辑模式:
- 每个推荐产品卡片增加"编辑"、"移除"按钮
- 支持拖拽调整排序
- 支持手动添加产品(从产品目录中搜索)
- 每个产品可添加销售标注
2. 产品匹配规则可查看/编辑入口
3. 新增"跟进建议"卡片:
- 基于画像 + 产品匹配结果,给出第一步跟进建议
- 建议内容可编辑
- 包含:推荐话术、发送文件清单、跟进时间节点
文件:components/deep-research-package/deep-research-package.component.ts 和 .html
修改内容:
1. 产品匹配表格增加"编辑"列
2. 跟进策略区域增加"自定义修改"功能
3. 话术建议改为可编辑富文本
新增文件:components/confirmation-list/confirmation-list.component.ts
┌────────────────────────────────────────────────────────────┐
│ 第一轮筛查结果 — 待确认列表 │
│ │
│ ┌─ 汇总栏 ─────────────────────────────────────────────┐ │
│ │ 共 12 个主体 │ 建议挖掘 8 │ 可选 3 │ 建议归档 1 │ │
│ │ [全部确认] [批量操作▼] │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 主体卡片 ──────────────────────────────────────────┐ │
│ │ ☑ WildGear GmbH 🟢 强烈建议挖掘 │ │
│ │ 画像: P4-品牌OEM客户 等级: A 域名: wildgear.de │ │
│ │ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ │
│ │ 💡 价值亮点: │ │
│ │ · 新兴户外品牌,年增长率40% │ │
│ │ · 明确提到OEM定制需求 │ │
│ │ · 预估年采购额 $30K+ │ │
│ │ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ │
│ │ 📧 联系人: alex@wildgear.de (Alex Mueller, CEO) │ │
│ │ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ │
│ │ [✓确认] [✏修改画像] [✗归档] [查看详情] │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 主体卡片 ──────────────────────────────────────────┐ │
│ │ ☑ EduFirst Solutions 🟡 可选择性挖掘 │ │
│ │ 画像: P3-政府/机构 等级: B 域名: edufirst.org │ │
│ │ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ │
│ │ 💡 价值亮点: │ │
│ │ · 教育类公司,无直接商品需求 │ │
│ │ · 但管理200+学校急救物资采购 │ │
│ │ · 潜在年采购额可观(集中采购模式) │ │
│ │ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ │
│ │ ⚠ 无商品信息,需深入询问确认采购意向 │ │
│ │ [✓确认] [✏修改画像] [✗归档] [查看详情] │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ [▶ 对选中的 8 个主体启动深度背调] │ │
│ └────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ 第二轮深度背调结果 — 待确认列表 │
│ │
│ ┌─ 主体报告卡片 ──────────────────────────────────────┐ │
│ │ WildGear GmbH 综合评分: 78/100 ⭐ A级 │ │
│ │ │ │
│ │ 📊 三维评分: │ │
│ │ 公司实力 ████████░░ 80% │ │
│ │ 决策人 ███████░░░ 70% │ │
│ │ 采购项目 ████████░░ 85% │ │
│ │ │ │
│ │ 📦 推荐产品 (可编辑): │ │
│ │ 1. FK-001 急救箱 $12.50 [✏][✗] 批发价合适 │ │
│ │ 2. FK-003 户外包 $8.90 [✏][✗] 匹配OEM需求 │ │
│ │ 3. + [添加产品] │ │
│ │ │ │
│ │ 🎯 跟进建议: │ │
│ │ · 首先发送OEM案例集 + 定制能力介绍 [✏] │ │
│ │ · 3天内安排视频会议讨论打样 [✏] │ │
│ │ · 准备Pantone色卡和包装方案 [✏] │ │
│ │ │ │
│ │ 📧 触达邮件 (可编辑): │ │
│ │ [预览邮件] [编辑邮件] [复制] │ │
│ │ │ │
│ │ ⚠ 风险提示: 低风险 — 新品牌首单可能较小 │ │
│ │ │ │
│ │ [✓ 确认并进入跟进] [✏ 修改] [↗ 查看完整报告] │ │
│ └──────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────┘
文件:pages/dashboard/dashboard.component.ts 和 .html
修改内容:
1. "待验证线索" Tab 重构为两轮确认流程:
- 第一轮:批量筛查确认列表
- 第二轮:深度背调确认列表
2. 支持在两轮间切换查看
3. 汇总统计更新为双轮数据
新增文件:services/inquiry-template.service.ts
不同画像类型需要不同的深度询问方向,系统提供结构化的询问模板:
export interface InquiryTemplate {
persona: CustomerPersona;
phase: 'initial' | 'deep';
questions: InquiryQuestion[];
}
export interface InquiryQuestion {
id: string;
category: string; // "采购需求" / "公司背景" / "预算" / "时间"
question: string; // 问题内容
questionEn: string; // 英文版本
importance: 'critical' | 'important' | 'nice_to_have';
aiCanAutoAnswer: boolean; // AI 是否可以自动从公开信息回答
salesNeedToAsk: boolean; // 是否需要销售手动询问
expectedAnswer?: string; // 期望的回答类型
}
各画像询问重点:
| 画像 | 关键询问方向 | 价值判断重点 |
|---|---|---|
| P1 医药分销 | 渠道覆盖、年采购量、现有供应商、认证要求 | 复购能力、渠道价值 |
| P2 工业安全 | 终端客户行业、合规标准、定制需求 | 长期复购、标准化程度 |
| P3 政府采购 | 预算周期、招标流程、历史采购量 | 单次订单规模 |
| P4 OEM品牌 | 品牌定位、设计要求、起订量、交付周期 | 品牌溢价空间、定制利润 |
| P5 电商零售 | 店铺规模、月销量、FBA需求、利润率要求 | 订单频次、增长潜力 |
| P6 低质量 | — | 直接归档 |
文件:components/screen-result-card/screen-result-card.component.ts 和 .html
修改内容:
1. 卡片顶部增加醒目的"决策标签":
- 🟢 强烈建议深入挖掘(S/A 级 + 高匹配度)
- 🟡 可选择性挖掘(B 级 或 中匹配度)
- 🔴 建议归档(C 级 或 低匹配度)
2. 价值亮点区域:
- 有商品信息的:突出具体产品需求和金额
- 无商品信息的:突出潜在价值和挖掘方向
3. 风险提示:
- 免费邮箱警告
- 无官网警告
- 信息不完整提示
文件:pages/bgcheck/bgcheck.component.ts 和 .html
修改内容:
1. 综合评级区域增加更直观的评分解读
2. 销售策略区域增加"第一步行动清单"
3. 产品推荐区域支持编辑
4. 增加"一键生成跟进邮件"按钮
| 文件路径 | 说明 |
|---|---|
services/batch-input.service.ts |
批量输入处理服务 |
services/entity-resolver.service.ts |
主体识别与去重服务 |
services/two-round-bgcheck.service.ts |
两轮背调核心服务(封装模块) |
services/product-matcher.service.ts |
产品匹配推荐服务 |
services/inquiry-template.service.ts |
深度询问模板服务 |
components/confirmation-list/confirmation-list.component.ts |
确认列表组件 |
components/confirmation-list/confirmation-list.component.html |
确认列表模板 |
components/confirmation-list/confirmation-list.component.scss |
确认列表样式 |
components/batch-progress/batch-progress.component.ts |
批量进度展示组件 |
components/batch-progress/batch-progress.component.html |
批量进度模板 |
components/batch-progress/batch-progress.component.scss |
批量进度样式 |
components/editable-product-list/editable-product-list.component.ts |
可编辑产品列表组件 |
components/editable-product-list/editable-product-list.component.html |
可编辑产品列表模板 |
components/editable-product-list/editable-product-list.component.scss |
可编辑产品列表样式 |
| 文件路径 | 修改内容概要 |
|---|---|
models/lead.model.ts |
新增 entityId/domainKey/emailKey 等字段,新增 EntityGroup/EntityProfile 等接口 |
services/quick-screen.service.ts |
增加 screenBatch() 方法,createLeadFromScreen() 增加查重逻辑 |
services/mock-data.service.ts |
mockLeads 增加主体字段,新增批量/去重相关模拟数据 |
pages/dashboard/dashboard.component.ts |
新增批量导入Tab,重构待验证列表为两轮确认流程 |
pages/dashboard/dashboard.component.html |
批量导入UI、确认列表UI |
pages/dashboard/dashboard.component.scss |
新增样式 |
pages/lead-detail/lead-detail.component.ts |
startDeepAnalysis 重构,产品推荐可编辑 |
pages/lead-detail/lead-detail.component.html |
产品可编辑UI,跟进建议可编辑UI |
pages/lead-detail/lead-detail.component.scss |
新增样式 |
pages/bgcheck/bgcheck.component.ts |
评分解读优化,产品推荐可编辑 |
pages/bgcheck/bgcheck.component.html |
UI优化、一键生成邮件按钮 |
components/bgcheck-progress/bgcheck-progress.component.ts |
支持批量模式 |
components/screen-result-card/screen-result-card.component.ts |
增加决策标签、价值亮点 |
components/screen-result-card/screen-result-card.component.html |
UI重构 |
components/deep-research-package/deep-research-package.component.ts |
产品匹配可编辑、话术可编辑 |
components/deep-research-package/deep-research-package.component.html |
UI更新 |
app.routes.ts |
如需新增路由(批量背调结果页等) |
// services/two-round-bgcheck.service.ts
@Injectable({ providedIn: 'root' })
export class TwoRoundBgCheckService {
// ===== 第一轮:批量初步筛查 =====
/**
* 执行第一轮批量筛查
* @param inputs 批量输入项(已解析)
* @returns 按主体分组的筛查结果,等待用户确认
*/
async executeRound1(inputs: BatchInputItem[]): Promise<Round1Result>;
/**
* 用户确认第一轮结果
* @param confirmations 用户对每个主体的操作
* @returns 确认后的主体列表(只包含确认/修改的)
*/
async confirmRound1(confirmations: Round1Confirmation[]): Promise<Round1ConfirmedResult>;
// ===== 第二轮:批量深度背调 =====
/**
* 对确认的主体批量启动深度背调
* @param entityIds 要进行深度背调的主体ID列表
* @returns 进度 Observable(实时推送进度)
*/
startRound2(entityIds: string[]): Observable<BatchBgCheckProgress>;
/**
* 获取第二轮结果
* @returns 深度背调结果列表,等待用户确认产品和策略
*/
async getRound2Results(): Promise<Round2Result>;
/**
* 用户确认第二轮结果(确认产品推荐和跟进策略)
* @param confirmations 用户修改后的产品推荐和策略
*/
async confirmRound2(confirmations: Round2Confirmation[]): Promise<void>;
// ===== 辅助方法 =====
/** 获取当前进度 */
getCurrentProgress(): BatchBgCheckProgress | null;
/** 取消正在进行的背调 */
cancelBgCheck(entityId: string): void;
/** 重试失败的背调 */
retryBgCheck(entityId: string): Observable<EntityBgCheckProgress>;
}
BatchInputService TwoRoundBgCheckService UI Components
│ │ │
│ 1. 解析原始输入 │ │
│ ─────────────────────────→ │ │
│ │ 2. 主体识别 & 去重 │
│ │ 3. 执行第一轮筛查 │
│ │ ──────────────────────────→ │
│ │ 显示第一轮确认列表 │
│ │ ←────────────────────────── │
│ │ 用户确认操作 │
│ │ 4. 保存确认结果 │
│ │ 5. 启动第二轮深度背调 │
│ │ ──────────────────────────→ │
│ │ 显示批量进度 │
│ │ ... │
│ │ ──────────────────────────→ │
│ │ 显示第二轮确认列表 │
│ │ ←────────────────────────── │
│ │ 用户修改产品/策略 │
│ │ 6. 保存最终结果 │
│ │ ──────────────────────────→ │
│ │ 进入跟进阶段 │
| 优先级 | 任务 | 涉及文件 | 工作量 |
|---|---|---|---|
| P0 | TwoRoundBgCheckService 核心服务 | services/two-round-bgcheck.service.ts |
大 |
| P0 | EntityResolver 主体识别服务 | services/entity-resolver.service.ts |
中 |
| P0 | Lead 模型扩展 | models/lead.model.ts |
小 |
| P0 | QuickScreenService 增加查重 | services/quick-screen.service.ts |
中 |
| P0 | MockData 适配 | services/mock-data.service.ts |
中 |
| 优先级 | 任务 | 涉及文件 | 工作量 |
|---|---|---|---|
| P0 | 第一轮确认列表组件 | components/confirmation-list/ |
大 |
| P0 | 第二轮确认列表组件 | components/confirmation-list/ |
大 |
| P1 | Dashboard 集成两轮流程 | pages/dashboard/ |
大 |
| P1 | 批量进度组件 | components/batch-progress/ |
中 |
| 优先级 | 任务 | 涉及文件 | 工作量 |
|---|---|---|---|
| P1 | BatchInputService 批量输入 | services/batch-input.service.ts |
中 |
| P1 | 可编辑产品列表组件 | components/editable-product-list/ |
中 |
| P1 | ProductMatcher 推荐引擎 | services/product-matcher.service.ts |
中 |
| P2 | 深度询问模板服务 | services/inquiry-template.service.ts |
小 |
| 优先级 | 任务 | 涉及文件 | 工作量 |
|---|---|---|---|
| P1 | ScreenResultCard 决策标签 | components/screen-result-card/ |
小 |
| P1 | BgCheck 报告页优化 | pages/bgcheck/ |
中 |
| P2 | LeadDetail 产品可编辑 | pages/lead-detail/ |
中 |
| P2 | 触达邮件生成优化 | components/deep-research-package/ |
中 |
逐条手动输入 → 单条筛查 → 无去重 → 直接分析 → 固定推荐 → 销售手动决策
批量导入(截图/名片/粘贴)
↓
自动解析 + 主体识别 + 去重
↓
第一轮:AI 初步筛查 → 差异化价值点 → 待确认列表 → 用户确认
↓
第二轮:批量深度背调 → 产品匹配推荐(可编辑)→ 跟进策略 → 用户确认/标注
↓
输出:精准的跟进建议 + 可编辑的产品方案 + 个性化触达邮件
| 维度 | 改进前 | 改进后 |
|---|---|---|
| 效率 | 逐条处理,每条3-5分钟 | 批量处理10-50条,整体5-10分钟 |
| 准确性 | 同公司多条线索无法关联 | 主体唯一性保证,自动去重归并 |
| 价值判断 | AI 直出结果,销售被动接受 | 每轮给列表、用户确认,人机协作 |
| 产品匹配 | 固定规则,不可修改 | 可编辑、可标注、可自定义规则 |
| 差异化 | 所有画像同一模板 | 不同画像不同价值点和询问方向 |
| 跟进支持 | 笼统建议 | 具体的第一步行动清单 + 可编辑触达邮件 |
文档生成时间:2026-02-22
文档版本:v1.0