BCRC-TCS 风险交易组合系统
一、系统概述
BCRC-TCS 是微众银行消费金融(COE)板块下的风控中台核心系统,负责在贷款和信用卡业务全生命周期中执行反欺诈检测、征信评估和审批决策。
| 属性 | 值 |
|---|---|
| GroupId | cn.webank.cnc.bcrc |
| ArtifactId | bcrc-tcs-parent |
| Java 版本 | Java 21 |
| 父 POM | cn.webank.cnc.risksdk:brisk-sdk-parent-for-lombok:4.0.0-SNAPSHOT |
| 系统编号 | Z386 |
| 代码规模 | ~759 个 Java 文件 |
| SCM | git@code.weoa.com:COE-CNC-Loan/bcrc-tcs.git |
技术栈
| 技术项 | 版本/描述 |
|---|---|
| Spring Boot | Spring Boot 3.x(jakarta.persistence) |
| 消息中间件 | RMB(支持MASA协议) |
| 数据库 | TDSQL(MySQL兼容),MyBatis ORM |
| 规则引擎 | CCL(cn.webank.cnc.ccl) |
| 状态机 | zcnc-sdk-starter-state-machine |
| 限流/熔断 | zcnc-sdk-starter-flowcontrol |
| 缓存 | Caffeine + Spring Cache |
| 业务参数管理 | BMP(zbmp-service-sdk) |
双产品部署架构
| 部署产品 | 数据库名 | 配置目录 |
|---|---|---|
| 贷款业务 | bcrctcsdb | conf/bcrc-tcs-service/ |
| 信用卡业务 | ccrctcsdb | conf/cccrc-tcs-service/ |
二、模块结构(7 个 Maven 子模块)
2.1 bcrc-tcs-db — 数据库定义模块
- ERM 模型文件、MyBatis Mapper XML 扩展
- 无 Java 源代码,DAO 由 SDK 自动生成
2.2 bcrc-tcs-common — 公共基础模块
- 全系统共享常量、枚举(80+)、DTO、工具类
- DAO 基础类和拦截器
2.3 bcrc-tcs-infra — 基础设施层(最大模块)
- 反欺诈核心业务逻辑
- 数据源查询、规则引擎调用
- 配置管理、状态机、DAO 服务(20 个)
- 外部服务调用(SAO)
2.4 bcrc-tcs-facility — 流程编排层
- 基于状态机 SDK 实现审批流程编排
- 流程上下文模型和节点抽象基类
- 流程启动/恢复、网关层
2.5 bcrc-midafs — 反欺诈中台服务
- 反欺诈 RMB 消息入口(FDAF/SDAF/FDLF/SDLF)
- 数据源、线程池、定时任务配置
2.6 bcrc-midaps-service — 信审中台服务
- 征信准入评估、征信查询、审批决策
- 信用评估全流程子系统
2.7 bcrc-tcs-service — 应用启动模块
- Spring Boot 启动类
- RMB 消息统一入口(
RmbEntrance) - 线程池配置、定时任务
三、核心类详解
3.1 反欺诈服务入口
| 类 | 路径 | 职责 |
|---|---|---|
SyncFdafService | bcrc-midafs/.../service/ | 开户一反(FDAF)同步入口 |
SyncSdafService | bcrc-midafs/.../service/ | 开户二反(SDAF)同步入口 |
SyncFdlfService | bcrc-midafs/.../service/ | 借款一反(FDLF)同步入口 |
SyncSdlfService | bcrc-midafs/.../service/ | 借款二反(SDLF)同步入口 |
每种服务都有对应的 Face 版本用于刷脸核身场景。
3.2 RMB 统一入口 — RmbEntrance
- 路径:
bcrc-tcs-service/.../apis/service/RmbEntrance.java - 职责: 新状态机架构的 RMB 统一入口
| 方法 | 配置项 | 业务含义 |
|---|---|---|
processCreditPre | tcsCreditPreServiceId | 授信预审 |
processCredit | tcsCreditServiceId | 授信审批 |
processLoanPre | tcsLoanPreServiceId | 借款预审 |
processLoan | tcsLoanServiceId | 借款审批 |
processAfsNode | tcsAfsServiceId | 反欺诈节点 |
processApsNode | tcsApsServiceId | 信审节点 |
processCvsNode | tcsCvsServiceId | 人工审核节点 |
processAfsNodeCallback | tcsAfsCallbackServiceId | 反欺诈回调 |
processApsNodeCallback | tcsApsCallbackServiceId | 信审回调 |
processCvsNodeCallback | tcsCvsCallbackServiceId | 人工审核回调 |
processNotifyResultNode | tcsNotifyResultServiceId | 结果通知 |
3.3 状态机流程 — StateMachineStarter
- 路径:
bcrc-tcs-facility/.../flow/StateMachineStarter.java - 关键方法:
proc(FlowDataContext)— 初始化 → 加载配置 → 受理 → 启动状态机resume()— 异步回调恢复状态机继续执行
3.4 流程节点基类 — AbstractNode
- 路径:
bcrc-tcs-facility/.../node/AbstractNode.java - 抽象方法:
doBizProcess()(业务逻辑)、doCallBackBizProcess()(回调逻辑)
具体节点实现:ApplyAcceptNode(受理)、NotifyServiceNode(通知)、UpdateOrderNode(更新工单)
3.5 反欺诈核心 — LaunchAfsCaseBizService
- 路径:
bcrc-tcs-infra/.../biz/handler/LaunchAfsCaseBizService.java - 职责: 通用反欺诈工单发起,协调数据源查询和规则引擎
- 流程: 生成流水号 → 保存数据 → 构造工单 → 去重 → 数据上报 → 锁定 → 数据源查询 → 规则引擎 → 返回结论
3.6 规则引擎 — CommEngineService
- 路径:
bcrc-tcs-infra/.../eng/CommEngineService.java - 职责: 调用 CCL 规则引擎
- 流程: 获取规则配置 → 构造引擎入参 → 调用引擎 → 入参挡板 → 出参挡板 → 保存结果
- 熔断机制:
isBreak()根据配置和入参对比决定是否熔断,熔断后生成固定拒绝输出(BRK0001)
3.7 信用评估 — DefaultCreditAssess
- 路径:
bcrc-midaps-service/.../biz/process/DefaultCreditAssess.java - Bean 名称:
defaultCreditAssess - 核心方法:
accessCredit()— 数据源准入规则校验syncCris()— 征信同步处理doComCreditCheck()— 综合准入授信:调用规则引擎,根据 OutLoanFlag(Y通过/N拒绝/P补查/W人工)决定结果,最大 20 轮递归
四、数据模型
4.1 申请数据表
| 表名 | 用途 |
|---|---|
TM_APP_MAIN | 申请主表(产品、额度、状态、内部码) |
TM_APP_MAIN_SUB | 申请子主表 |
TM_APP_BASE_INFO | 申请基础信息 |
TM_APP_CUST_INFO | 客户信息(姓名、证件、性别) |
TM_APP_DEVICE_INFO | 设备信息(型号、IP、GPS) |
TM_APP_KYC_FACE_INFO | KYC 人脸验证信息 |
TM_APP_BANK_CARD_INFO | 银行卡信息 |
TM_APP_BASE_RATE_INFO | 定价信息(利率、罚息) |
4.2 中台回调表
| 表名 | 用途 |
|---|---|
TM_MID_AFS_RESULT | 反欺诈回调(结论、风险等级、拒绝码) |
TM_MID_APS_RESULT | 信审回调(建议额度、利率标识) |
TM_CVS_CHK_RESULT | CVS 人工审核回调 |
4.3 反欺诈专用表
| 表名 | 用途 |
|---|---|
TM_AFS_CASE | 反欺诈工单表 |
TM_AFS_DATA_STATUS | 数据源查询状态表 |
TM_INPUT_ENG_ALL | 规则引擎输入参数表 |
TM_OUTPUT_BASE | 规则引擎输出基础表 |
TM_DATA_ALL_JSON | 接口全量数据(JSON 存储) |
4.4 征信专用表
| 表名 | 用途 |
|---|---|
TM_ASYNC_MSG_STATUS | 异步消息状态管理 |
TM_STRA_ENG_INPUT_ZIP | 规则参数压缩表 |
TM_APP_HISTORY | 审批操作记录 |
4.5 流程控制表
| 表名 | 用途 |
|---|---|
TM_SYS_FLOW_DATA_CONTEXT | 工单阶段上下文 |
TM_STATE_MACHINE_CTL | 状态机控制 |
TM_SYS_SUSP_NODE | 挂起节点执行 |
五、风控决策引擎
5.1 反欺诈服务类型
| 服务简称 | 含义 | 入口类 |
|---|---|---|
| FDAF | 开户一反 | SyncFdafService |
| SDAF | 开户二反 | SyncSdafService |
| FDLF | 借款一反 | SyncFdlfService |
| SDLF | 借款二反 | SyncSdlfService |
5.2 ActionCode 行动码机制
| 行动码 | 含义 | 处理方式 |
|---|---|---|
PASS | 通过 | 直接通过 |
REJECT | 拒绝 | 直接拒绝 |
FACE | 待刷脸 | 等待回调 |
WAIT | 审批中 | 等待下游 |
CBACK | 等待补充信息 | 等待上游 |
DLCKA | 延时审核(AOB) | 延时+外呼 |
DLCKX | 延时审核(电诈) | 延时审批 |
TFMR | 电诈强提示 | 强制提示 |
FGPS | 强制授权 GPS | 要求客户授权 |
5.3 内部码编码
内部码 = 节点名称(6位) + 状态标识(1位) + 状态编号(2位)
| 内部码 | ActionCode | 含义 |
|---|---|---|
COMSYSS01 | PASS | 审批通过 |
COMSYSR02 | REPEAT | 重入拒绝 |
MIDAFSR01 | REJECT | 反欺诈拒绝 |
MIDAFSS01 | PASS | FGPS |
MIDAFSS04 | CBACK | FACE |
MIDAPSR01 | REJECT | 信审拒绝 |
六、业务流程
6.1 新版状态机流程
上游系统 → RmbEntrance → StateMachineStarter.proc()
├── [受理节点] ApplyAcceptNode
│ └── 数据校验、工单创建
├── [反欺诈节点] (异步挂起)
│ └── 数据源查询 → CCL规则引擎 → 返回结论
├── [信审节点] (异步挂起)
│ └── 征信查询 → 准入规则 → 综合授信
├── [CVS核查节点] (异步挂起)
│ └── 人工审核 → 返回审核结论
├── [AOB外呼节点] (异步挂起)
│ └── 电诈外呼确认
├── [更新工单节点] → 更新状态/内部码
└── [通知节点] → RMB返回上游6.2 综合准入授信流程
DefaultCreditAssess.doComCreditCheck()
→ 调用规则引擎 → 获取 OutLoanFlag
├── Y → 通过
├── N → 拒绝
├── P → 补查数据源 → 递归(最多20轮)
└── W → 人工介入七、配置与部署
7.1 RMB 服务 ID
| 服务 ID | 场景 | 用途 |
|---|---|---|
06201192 | 01 | 授信预审 |
06201194 | 01 | 授信审批 |
06201196 | 01 | 借款预审 |
06201198 | 01 | 借款审批 |
06201200 | 01 | 上游回调 |
7.2 关键配置
| 配置项 | 值 | 说明 |
|---|---|---|
systemId | Z386 | 系统编号 |
cnc.sdk.stateMachine.enable | Y | 启用状态机 |
cnc.sdk.rmb.unionRmbRepeatChk | true | RMB 防重 |
cnc.sdk.rmb.enableMasaService | true | 启用 MASA |
7.3 双数据库部署
- 贷款:
bcrctcsdb—conf/bcrc-tcs-service/ - 信用卡:
ccrctcsdb—conf/cccrc-tcs-service/
八、外部系统集成
上游业务系统(贷款/信用卡申请)
│ RMB (06201192~06201198)
▼
RmbEntrance(统一入口)
│
▼
StateMachineStarter(状态机驱动)
├── AFS Node → CCL Engine(规则引擎)
├── APS Node → CRIS Query(征信查询)
├── CVS Node → CVS System(人工审核)
└── AOB Node → 外呼系统
│
▼
RCS Report(风控上报)/ CAP WAAS(回调通知)| 系统 | 集成方式 | 说明 |
|---|---|---|
| 贷款/信用卡申请系统 | RMB 消费 | 接收申请请求 |
| CCL 规则引擎 | API 调用 | 策略规则包执行 |
| 征信中心(CRIS) | 异步 RMB | 征信查询 |
| DCDPS | 异步回调 | 数据源查询回调 |
| CVS 人工审核 | RMB 回调 | 审核结果 |
| AOB 外呼 | RMB 回调 | 电诈确认 |
| BMP 参数管理 | BMP SDK | 在线配置管理 |
| RCS 风控上报 | RCS SDK | 风险数据上报 |
本报告基于 BCRC-TCS 系统源代码静态分析生成,覆盖 759 个 Java 文件。