1. 概述
1.1 应用场景
在交易履约业务体系中,退款业务是订单流转的重要环节。
业务场景中,退款数据存储于退款表(refund_table),并通过订单号与订单主表(order_table)的原订单信息建立关联。核心要求为:每笔退款数据需在订单主表中匹配到有效记录,且退款金额严格小于或等于对应原始订单金额。
1.2 实现思路
在检测任务中,通过「任务自定义规则>行级筛选」自定义 SQL 语句查询检测对象是否存在异常数据。

同时,通过自定义异常明细 SQL,记录相关的异常数据信息。

2. 操作步骤
2.1 创建检测任务
在「数据管理>数据检测」下新建「检测任务」,如下图所示:

2.2 选择检测范围
选择需要检测的数据表,这里选择对 refund_table 进行检测。如下图所示:

2.3 设置规则
1)需要对退款表的每行数据进行检测,选择「任务自定义规则>行级筛选」。如下图所示:

2)自定义 SQL 语句,本文示例需要从退款表中筛选出两类异常的退款记录:
退款表中的 order_id 无法在订单表中找到对应的记录;
退款金额超过订单实付金额的记录。
| 示例 SQL |
|

3)设置预期范围:行数=0,也就是不能存在异常退款订单。如果存在异常明细,就需要检测出来。

2.4 记录异常明细
上述规则仅检测退款表中是否有异常数据,实际业务中,还需要把异常明细记录下来,以便后续修正。
支持自定义异常详情SQL,本文示例中,需要记录以下信息:
相关的字段信息:例如 order_id、refund_id、refund_amount 等;
异常订单金额:若原订单不存在,异常金额=全部退款金额;若退款超限,异常金额=退款金额—实付金额;
异常类型:判断异常明细是「退款金额超限」或「订单不存在」,用直观的中文标签标注异常类别;
异常描述:拼接成可直接阅读的异常说明,无需手动计算。例如:退款单 RF202405230012 退款金额(150.00)超过原订单实付金额(128.50)
| 示例SQL |
|

配置完成后,保存并运行此任务。如下图所示:

2.5 效果查看
该任务检测不通过,有 4 行异常明细数据。如下图所示:

点击「查看异常明细」,可以看到除了记录的字段信息,还新增了三列字段,直观的看出来是哪种异常情况。

此外,还支持导出异常明细数据,发送给相关人员核查。

