# CRM线索中心模块 - 开发完成与测试指引 ## ✅ 开发完成状态 ### 后端开发(hzhub-system)- 已完成 **创建文件统计**: - 数据库SQL:1个 - Entity实体类:2个 - Bo业务对象:2个 - Vo视图对象:2个 - Mapper接口:2个 - Mapper XML:2个 - Service接口与实现:4个 - Controller控制器:2个 - ERP集成服务:1个 - RestTemplate配置:1个 - application.yml配置:1个修改 **总计**:19个代码文件 + 1个SQL文件 + 1个配置修改 --- ### 前端开发(hzhub-portal-employee)- 已完成 **创建文件统计**: - API类型定义:1个(types.ts) - API调用方法:1个(index.ts) - 页面扩展:1个(/crm/index.vue,从107行扩展到779行) **总计**:2个API文件 + 1个页面扩展 --- ### Gateway配置 - 已完成 **路由配置**: - 已添加 `/crm/**` 路由到 hzhub-system 服务 - 配置文件:`hzhub-gateway/src/main/resources/application.yml` --- ## 🚀 启动测试步骤 ### 步骤1:数据库初始化 **执行SQL脚本**: ```bash # 登录MySQL mysql -h localhost -u root -p # 执行初始化SQL source /data/hzhub/hzhub-system/src/main/resources/db/crm_lead_init.sql; # 检查表创建和数据字典 show tables like 'crm_%'; select * from sys_dict_type where dict_type like 'crm_%'; ``` **SQL文件内容**: - 创建 `crm_lead` 表(线索表) - 创建 `crm_lead_follow` 表(跟进记录表) - 初始化5个数据字典: - crm_lead_source(线索来源) - crm_lead_status(线索状态) - crm_intent_level(AI意向等级) - crm_risk_level(风险等级) - crm_follow_type(跟进方式) --- ### 步骤2:启动后端服务 **启动顺序**(按依赖关系): #### 1. 启动基础设施 ```bash cd hzhub-deploy docker-compose up -d mysql redis weaviate # 检查服务状态 docker-compose ps ``` #### 2. 启动 hzhub-ai(可选,第一阶段不需要AI功能) ```bash cd hzhub-ai/hzhub-admin mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` **注意**:第一阶段测试不需要启动AI服务,AI功能在第二阶段实现。 #### 3. 启动 hzhub-system(必须) ```bash cd hzhub-system mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` **验证**: - 访问:http://localhost:8083/actuator/health - 确认服务健康状态为 UP #### 4. 启动 hzhub-erp(可选,测试ERP关联功能) ```bash cd hzhub-erp mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` **注意**:如果要测试ERP客户关联功能,需要启动ERP服务。 #### 5. 启动 hzhub-gateway(必须) ```bash cd hzhub-gateway mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` **验证**: - 访问:http://localhost:8080/actuator/health - 确认服务健康状态为 UP --- ### 步骤3:启动前端服务 ```bash cd hzhub-portal-employee pnpm install # 如果没有安装依赖 pnpm dev ``` **访问**:http://localhost:5137 **验证**: - 登录员工门户 - 导航到"销售CRM"页面 - 确认页面正常加载 --- ## 🧪 功能测试清单 ### 测试1:Tab切换功能 **测试步骤**: 1. 登录员工门户:http://localhost:5137 2. 点击左侧菜单"销售CRM" 3. 确认默认显示"商机管道"Tab 4. 点击"线索管理"Tab 5. 确认线索列表自动加载 **预期结果**: - Tab切换流畅,无卡顿 - 切换到"线索管理"时显示空列表或现有线索数据 --- ### 测试2:新建线索功能 **测试步骤**: 1. 在"线索管理"Tab,点击"新建线索"按钮 2. 填写必填字段: - 公司名称:测试贸易有限公司 - 联系人:张三 - 手机号:13800138000 3. 选择来源类型:活动 4. 填写活动名称:春季招商会 5. 点击"创建线索" **预期结果**: - 显示"创建成功"提示 - 线索列表自动刷新,显示新创建的线索 - 手机号脱敏显示为:138****8000 **后端验证**: ```sql select * from crm_lead order by create_time desc limit 1; ``` --- ### 测试3:ERP客户关联功能(需要启动ERP服务) **测试步骤**: 1. 新建线索时,不填写基础信息 2. 填写ERP客户编码:C001(需要ERP中存在的客户编码) 3. 点击"创建线索" **预期结果**: - 后端自动从ERP拉取客户信息 - 线索列表显示的公司名称、联系人、手机号来自ERP - ERP编码显示为蓝色链接 **后端验证**: - 查看后端日志,确认调用ERP API:`GET /erp/dynamic/v1/customer/detail?customerCode=C001` --- ### 测试4:线索详情查看 **测试步骤**: 1. 在线索列表中,点击某个线索的"详情"按钮 2. 查看详情Drawer展示 3. 确认字段完整显示 **预期结果**: - Drawer右侧打开,宽度50% - 公司名称、联系人、手机号完整显示(未脱敏) - AI意向评分显示进度条(初始可能为空,第二阶段AI分析后填充) - 风险等级显示标签 - ERP编码显示链接(如果有) --- ### 测试5:线索跟进功能 **测试步骤**: 1. 在线索列表中,点击某个线索的"跟进"按钮 2. 选择跟进方式:电话 3. 输入跟进内容:与客户沟通了合作意向,客户对产品感兴趣 4. 选择下次跟进时间:明天 5. 点击"保存跟进" **预期结果**: - 显示"跟进成功"提示 - Drawer关闭 - 线索列表刷新,"下次跟进时间"列更新 **详情验证**: 1. 打开线索详情Drawer 2. 查看跟进记录Timeline 3. 确认最新跟进记录显示在最上方 4. AI摘要字段可能为空(第二阶段实现) **后端验证**: ```sql select * from crm_lead_follow where lead_id = {线索ID} order by create_time desc; ``` --- ### 测试6:线索筛选功能 **测试步骤**: 1. 在"线索管理"Tab的筛选栏 2. 输入关键词:测试 3. 选择AI意向等级:高意向 4. 选择线索状态:跟进中 5. 点击"搜索" **预期结果**: - 线索列表只显示符合条件的记录 - 分页总数更新 - 清空筛选条件后,列表恢复完整显示 --- ### 测试7:线索分配功能 **测试步骤**: 1. 在线索列表中,点击某个线索的"分配"按钮(暂未在UI显示,需要后端接口测试) 2. 使用API工具(如Postman)测试: ``` PUT http://localhost:8080/crm/lead/assign Headers: Authorization: Bearer {token} Body: { "leadId": 1, "ownerUserId": 12345 } ``` **预期结果**: - 后端返回:{"code":200,"msg":"分配成功"} - 线索负责人更新为指定用户 --- ### 测试8:线索删除功能 **测试步骤**: 1. 在线索列表中,点击某个线索的"删除"按钮(暂未在UI显示,需要后端接口测试) 2. 使用API工具测试: ``` DELETE http://localhost:8080/crm/lead/1 Headers: Authorization: Bearer {token} ``` **预期结果**: - 后端返回:{"code":200,"msg":"删除成功"} - 线索从列表消失(逻辑删除) **后端验证**: ```sql select * from crm_lead where lead_id = 1; -- del_flag = 1 ``` --- ## 🔧 配置检查清单 ### 1. 数据库配置 **检查MySQL连接**: ```bash mysql -h localhost -u root -p -e "show databases like 'hzhub';" ``` **检查CRM表创建**: ```sql use hzhub; show tables like 'crm_%'; desc crm_lead; desc crm_lead_follow; ``` --- ### 2. 数据字典配置 **检查字典类型**: ```sql select dict_type, dict_name from sys_dict_type where dict_type like 'crm_%'; ``` **预期结果**: - crm_lead_source - 线索来源 - crm_lead_status - 线索状态 - crm_intent_level - AI意向等级 - crm_risk_level - 风险等级 - crm_follow_type - 跟进方式 --- ### 3. Gateway路由配置 **检查路由配置**: ```bash cat hzhub-gateway/src/main/resources/application.yml | grep -A 10 "hzhub-crm" ``` **预期结果**: ```yaml - id: hzhub-crm uri: http://${SYSTEM_HOST:localhost}:${SYSTEM_PORT:8083} predicates: - Path=/crm/** filters: - StripPrefix=1 ``` --- ### 4. ERP服务配置 **检查ERP配置**: ```bash cat hzhub-system/src/main/resources/application.yml | grep "erp.base-url" ``` **预期结果**: ```yaml erp: base-url: ${ERP_BASE_URL:http://localhost:8082} ``` --- ## 🐛 常见问题排查 ### 问题1:线索列表加载失败 **排查步骤**: 1. 检查hzhub-system服务是否启动 2. 检查Gateway路由配置 3. 检查数据库表是否创建 4. 查看浏览器Console错误日志 5. 查看后端日志:`tail -f hzhub-system/logs/hzhub-system.log` --- ### 问题2:新建线索失败 **排查步骤**: 1. 检查数据库连接是否正常 2. 检查数据字典是否初始化 3. 检查必填字段是否填写 4. 查看后端日志中的错误信息 --- ### 问题3:ERP客户关联失败 **排查步骤**: 1. 检查hzhub-erp服务是否启动 2. 检查ERP服务健康:http://localhost:8082/erp/test/health 3. 检查customerCode是否在ERP中存在 4. 查看hzhub-system日志中的ERP调用记录 --- ### 问题4:Gateway路由失败 **排查步骤**: 1. 检查Gateway服务是否启动 2. 检查Gateway日志:`tail -f hzhub-gateway/logs/hzhub-gateway.log` 3. 确认路由配置顺序(CRM路由在hzhub-ai-workflow之前) 4. 测试Gateway健康:http://localhost:8080/actuator/health --- ## 📊 性能测试建议 ### API响应时间测试 **使用Postman或curl测试**: ```bash # 线索列表查询 curl -w "\nTime: %{time_total}s\n" \ -H "Authorization: Bearer {token}" \ "http://localhost:8080/crm/lead/list?pageNum=1&pageSize=10" # 线索详情查询 curl -w "\nTime: %{time_total}s\n" \ -H "Authorization: Bearer {token}" \ "http://localhost:8080/crm/lead/1" ``` **预期响应时间**: - 列表查询:< 200ms - 详情查询:< 100ms - 新增线索:< 300ms(含ERP调用) --- ## 🎯 第二阶段功能预告 ### 待实现功能 1. **AI意向分析** - 调用hzhub-ai服务分析线索意向 - 自动生成AI评分 2. **AI跟进摘要** - 使用LangChain4j生成跟进摘要 - 自动提取关键信息 3. **线索转经销商** - 完整的转化流程UI - 创建经销商数据 4. **用户选择器** - 分配线索时使用真实的用户选择组件 5. **企业微信集成** - 移动端H5页面 - 企业微信侧边栏 --- ## 📝 测试报告模板 **测试日期**:{填写日期} **测试人员**:{填写姓名} **测试环境**: - MySQL版本:8.0.x - Redis版本:7.x - Node版本:22.x - JDK版本:17 **测试结果**: | 测试项 | 结果 | 备注 | |---|---|---| | Tab切换 | ✅ | | | 新建线索 | ✅ | | | ERP关联 | ❌ | | | 线索详情 | ✅ | | | 线索跟进 | ✅ | | | 线索筛选 | ✅ | | | 线索分配 | ✅/❌ | | | 线索删除 | ✅/❌ | | **问题记录**: 1. {问题描述} 2. {问题描述} --- ## ✅ 完成确认 **请按照以上步骤进行测试,完成后告知测试结果,以便继续第二阶段开发!**