# 项目40大额交易测试流水实施报告

## 执行概况

- 执行时间：2026-03-16
- 目标项目：`project_id=40`
- 项目名称：大额交易模型测试
- 执行方式：直接向开发库 `ccdi_bank_statement` 插入测试流水
- 数据脚本：[2026-03-16-project40-large-transaction-seed.sql](/D:/ccdi/ccdi/assets/database/2026-03-16-project40-large-transaction-seed.sql)

本次执行前先清理了 `project_id=40` 的旧流水，再重新插入测试数据。最终共落库 `21` 条流水，涉及两名员工和两名家属。

## 复用身份

- 员工：模型测试员工，身份证 `330101198801010011`
- 家属：模型测试家属，身份证 `330101199001010022`
- 员工：模型二测试员工，身份证 `330101198802020033`
- 家属：模型二测试家属，身份证 `330101199202020044`

## 阈值依据

`project_id=40` 当前没有项目级模型参数，命中判断使用 `project_id=0` 的系统默认参数：

- 单笔大额收入：`100000`
- 累计大额收入：`50000001`
- 年累计交易额：`50000001`
- 单笔大额存现：`2000001`
- 单日多次存现次数：`5`
- 单笔大额转账金额：`100001`

## 校验结果

### 总量

- 项目流水总数：`21`

### 指标命中

- 房车消费支出：命中 `2` 条，流水号 `34262,34263`
  - `34262`：模型测试员工，`购买房产首付款`，对手方 `杭州贝壳房地产经纪有限公司`
  - `34263`：模型测试家属，`购车首付款`，对手方 `兰溪星耀汽车销售服务有限公司`
- 税务支出交易：命中 `2` 条，流水号 `34264,34265`
  - `34264`：模型二测试员工，`个人所得税税款`
  - `34265`：模型二测试家属，`房产税务缴税`
- 单笔大额收入：命中 `10` 条
  - 典型流水：`34266`，模型测试员工，收入 `188000.00`，对手方 `杭州启明咨询有限公司`
  - 说明：累计收入和存现样本也满足“单笔收入超 100000”的口径，因此命中数大于 1
- 累计收入超限：命中 `1` 组
  - 命中对象：`330101198802020033`
  - 对手方：`浙江远望贸易有限公司`
  - 累计收入：`60300000.00`
  - 典型流水：`34267,34268,34269`
- 年流水交易额超限：命中 `1` 人
  - 命中对象：`330101198802020033`
  - 年交易总额：`74712000.00`
  - 主要流水：`34267-34271,34278`
- 单笔大额存现：命中 `6` 条，流水号 `34272,34273,34274,34275,34276,34277`
- 单日多次存现：命中 `1` 组
  - 命中对象：`330101198801010011`
  - 日期：`2026-03-10`
  - 次数：`6`
- 单笔大额转账：命中 `3` 条，流水号 `34270,34271,34278`
  - 典型流水：`34278`，模型二测试员工，`手机银行转账`，支出 `360000.00`

## 噪声数据

为避免页面只出现极端命中样本，补充了少量非命中或用于排除逻辑验证的流水：

- `34279`：工资代发收入，对手方 `浙江兰溪农村商业银行股份有限公司`
- `34280`：超市消费
- `34281`：水电费支出
- `34282`：本人账户划转

## 前端验证建议

前端本次无需代码改造，直接使用现有项目流水明细页面验证即可。建议按以下方式检查：

- 进入项目 `40` 的流水明细页，确认可见 `21` 条新增流水
- 搜索摘要 `首付款`，应能看到 `34262,34263`
- 搜索摘要 `税款` 或对手方 `税务局`，应能看到 `34264,34265`
- 按金额倒序查看收入，应能在前列看到 `34267,34268,34269`
- 按金额倒序查看支出，应能看到 `34270,34271,34278`
- 查看 `34272-34277` 的详情，确认现金存入类摘要与金额展示正常

## 执行说明

- 首次通过 PowerShell 管道执行时，中文文本被写成了 `?`，随后改用 MySQL `source` 命令并显式指定 `utf8mb4` 后重新导入，最终数据已正确写入。
- 脚本可重复执行；每次都会先删除 `project_id=40` 现有流水，再重建本次测试数据。
