yudao-crm 客户管理系统
创建于 2025 年 4 月 28 日
项目介绍
yudao-crm 是芋道开源快速开发平台(ruoyi-vue-pro)上深度定制扩展的一套营销型客户管理系统,示例数据为青海互助地区的农商银行营销场景,目标是把”客户经营”与”指标营销”打通:既要管理线索、客户、联系人、商机、合同、回款的完整销售闭环,也要支撑存款、贷款、不良贷款清收、手机银行、聚合支付等银行指标任务的分解、填报、审核与排名考核。
仓库目录下包含 Spring Boot 多模块后端(ruoyi-vue-pro-营销系统,核心模块 yxcrm-module-crm)、Vue 3 管理后台前端(yudao-ui-admin-vue3)、uni-app 小程序端(uniapp/qcrm-uniapp)、一份约 11MB 的全量 SQL 脚本(0428-yudao-crm25.7.19.sql)以及 docs/ 下的《CRM 技术开发文档》《CRM 数据库结构说明书》《CRM 系统部署指南》《CRM-API 接口文档》《250818 不良清收功能描述》等设计文档。SQL 脚本预置了系统用户、菜单权限、字典、多租户与银行营销示例业务数据(含客户、商机、合同、回款、营销任务与进展),导入后即可直接运行演示。
项目架构
项目主体为 Spring Boot 2.7 多模块单体架构(后端包名 cn.dong.yxcrm),前端为 Vue 3 + Element Plus + TypeScript 管理后台,主要组成部分如下:
| 模块 | 技术栈 | 说明 |
|---|---|---|
| yxcrm-module-crm | Spring Boot、MyBatis-Plus、Redis | CRM 业务后端:线索、客户、公海、商机、合同、回款、跟进、营销任务、不良清收、统计 |
| yxcrm-module-bpm | Flowable 6.8.0 | 工作流审批引擎,合同/回款等单据通过 process_instance_id 发起审批 |
| yxcrm-module-system / infra | Spring Boot | 系统管理(用户、角色、菜单、部门、租户)与基础设施(文件、定时任务、代码生成、日志) |
| yxcrm-server | Spring Boot | 启动模块,dev 环境端口 48080 |
| yudao-ui-admin-vue3 | Vue 3、Element Plus 2.9、Vite、TypeScript、Pinia、ECharts | 管理后台前端,src/views/crm 为 CRM 业务页面 |
| uniapp/qcrm-uniapp | uni-app、uview-ui | 小程序端,含客户、任务、首页统计等页面 |
| 0428-yudao-crm25.7.19.sql | MySQL 5.7 | 全量建表脚本与示例数据,所有业务表含 tenant_id 支持 SaaS 多租户 |
后端代码按 controller → service → mapper → dataobject 分层,CRM 模块包含 20 余张业务表:crm_customer(客户,扩展社保、存款贷款、风险等银行画像字段)、crm_clue(线索)、crm_contact(联系人)、crm_business(商机,含状态与产品明细)、crm_contract(合同,含审批状态与产品明细)、crm_receivable / _plan(回款单与回款计划)、crm_follow_up_record(跟进记录)、crm_permission(数据权限)、crm_customer_pool_config(公海配置)、crm_task_head / _progress / _template / _xls(营销任务、进展、模板与明细)。示例客户档案中可见”测试公海逻辑""演示线索”等预置数据,以及针对个人客户记录的社保卡号、手机银行、行内存款金额、贷款意向、风险客户原因等真实业务字段。
核心功能
客户管理与公海回收。 客户档案按个人客户、个体和小微、对公客户三类建模,crm_customer 表扩展了社保卡、手机银行/微信银行、行内存款与贷款金额、贷款意向、循环/非循环授信、日均留存金额、资金规模、代发工资、风险客户标记(is_fengxian_kehu、fengxian_yuanyin)与经纬度定位等字段,前端提供客户导入(CustomerImportForm)、锁定/解锁、成交状态、负责人转移与批量转入公海等操作。公海机制由 CrmCustomerPoolConfigDO 配置:未跟进 31 天或未成交 5 天自动掉入公海,并支持提前 2 天提醒;CrmCustomerAutoPutPoolJob 以 Quartz 定时任务 + @TenantJob 多租户隔离的方式批量回收超期客户,公海客户可被领取(receive)或由管理员分配(distribute)。
数据权限与线索转化。 客户、商机、合同等单据通过 @CrmPermission 注解按 OWNER / WRITE / READ 三级控制行级权限,配合 crm_permission 表记录员工对单据的授权关系;所有变更操作由 @LogRecord 记录操作日志。线索模块支持建档、跟进、转移与批量转化,CrmClueServiceImpl.transformClue() 会把未转化的线索转为客户(复用客户创建逻辑),并将线索标记为已转化、关联客户编号。
合同与回款审批。 合同支持关联客户、商机、联系人,按产品明细行(crm_contract_product)计算产品总金额与整单折扣(示例合同 HT20240224000002 总价 14014 元即 20020 元打七折),保存后通过 Flowable 发起审批,audit_status 记录 10 未审核 / 20 已审核状态。回款单关联合同与回款计划(crm_receivable_plan),同样接入工作流审批;待办工作台(backlog)会列出今日需联系客户、合同待审核、回款待审核、回款计划到期提醒与公海掉入提醒,形成完整的销售提醒闭环。
营销任务与不良清收。 针对银行指标考核定制了营销任务体系:crm_task_head 定义任务编号、类型(ck 存款 / dk 贷款 / sj 手机银行 / jh 聚合支付 / 不良清收)、起止时间、营销机构与目标金额(存款营销金额、企业贷款金额、个人贷款金额、清收处置金额);crm_task_progress 按”客户 + 营销机构 + 营销经理”记录五种进展——贷款营销进度、存款营销进度、不良贷款清收进度、手机银行营销进度、聚合支付营销进度,每类有专属字段(如贷款授信/到期日期、存款入账方式与营销凭证、不良贷款表内/表外金额),并支持初审、复审两级审核(approved_first / approved_second),任务可基于 Excel 模板批量导入。不良清收模块(npar)独立管理清收客户、还款状态(payStatus)、下次还款日期与历史还款记录(NparHisDO)。
统计排行与移动端。 统计中心提供客户汇总与转化率、成交周期、销售漏斗、业绩统计(合同数/合同金额/回款金额)、客户画像(地区、行业、等级、来源分布)以及排行榜:合同金额与数量、回款金额、产品销量、客户数、跟进数,还有存款排名、贷款排名、聚合支付排名、手机银行排名与不良清收排名(前端组件 CunkuanRank、DaikuanRank、JuheRank、BuliangRank 等,后端由 CrmStatisticsRankServiceImpl 按部门/员工维度聚合)。此外后端提供 CrmUniappCustomerController、CrmUniappTaskControler 与 UniappHomeService 等小程序接口,uni-app 端支持客户查看、任务填报与首页数据汇总,方便外勤人员移动办公。
功能截图
暂无运行截图。
快速上手
- 创建数据库并导入脚本:
mysql -u root -p -e "CREATE DATABASE 0428-yudao-crm DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p 0428-yudao-crm < 0428-yudao-crm25.7.19.sql
- 进入后端目录
ruoyi-vue-pro-营销系统,修改yxcrm-server/src/main/resources/application-dev.yaml中的数据库地址、账号密码与 Redis 连接,然后启动:
mvn install -DskipTests
cd yxcrm-server && mvn spring-boot:run # http://localhost:48080
- 启动管理后台前端:
cd yudao-ui-admin-vue3 && pnpm install && pnpm dev
- 使用脚本预置账号 admin / admin123 登录,进入”CRM 系统”菜单即可体验线索、客户、客户公海、商机、合同、回款、营销任务与统计排行功能;小程序端位于
uniapp/qcrm-uniapp,可用 HBuilderX 运行调试。
总结
yudao-crm 是一个”通用 CRM + 银行营销考核”融合的实战型项目:既有线索、客户、商机、合同、回款的完整销售闭环与 Flowable 审批、公海自动回收、行级数据权限等通用能力,又针对银行场景深度定制了五类营销任务、两级审核的营销进展、不良贷款清收与多维营销排行榜,并通过 uni-app 小程序打通外勤场景。项目在芋道框架的工程化底座上展示了大量企业级细节——@CrmPermission 数据权限、@TenantJob 多租户定时任务、客户画像字段扩展、单据与工作流联动、按部门聚合的排名 SQL,适合作为学习 Spring Boot 工程化、CRM 业务建模与 Vue 3 管理后台开发的完整参考案例。