# 涉疑交易明细模型筛选实施记录

## 修改内容

- 在结果总览“风险明细 / 涉疑交易明细”区域新增一行筛选栏，包含“命中模型”“可疑规则”和“查询”按钮。
- 可疑规则下拉保留“全部可疑规则”“员工规则命中”“外部人员预警”，不在前端提供“名单库命中”独立筛选项。
- 选择“外部人员预警”时自动清空并禁用“命中模型”筛选，避免误解为外部人员预警也能叠加模型筛选。
- 模型下拉复用结果总览已加载的风险模型卡片数据，默认展示“全部模型”。
- 涉疑交易列表查询接口新增 `modelCode` 参数，点击“查询”后按当前模型和可疑类型重新加载第一页。
- “风险明细导出”保持原有全量导出逻辑，仅按项目 `projectId` 导出，不跟随页面筛选条件。
- 后端涉疑交易查询 DTO 增加 `modelCode` 字段，并在查询前统一转为大写编码。
- 涉疑交易 SQL 增加模型命中条件，确保服务端分页结果和总数都按所选模型过滤。

## 影响范围

- 前端页面：`ruoyi-ui/src/views/ccdiProject/components/detail/RiskDetailSection.vue`
- 前端接口：`ruoyi-ui/src/api/ccdi/projectOverview.js`
- 结果总览数据适配：`ruoyi-ui/src/views/ccdiProject/components/detail/preliminaryCheck.mock.js`
- 后端查询参数：`ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectSuspiciousTransactionQueryDTO.java`
- 后端查询规范化：`ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectOverviewServiceImpl.java`
- 后端 SQL：`ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectOverviewMapper.xml`

## 验证情况

- 已执行 `mvn -pl ccdi-project -am compile -DskipTests`，后端相关模块编译通过。
- 已通过 `nvm use 22.22.3` 切换 Node 后执行 `npm run build:prod`，前端生产构建通过，存在既有资源体积 warning。
- 已使用 Playwright 打开真实前端业务路由 `http://localhost:8080/ccdiProject/detail/40?tab=overview` 进行页面验收。
- 因本机 62318 后端未运行且 `bin/restart_java_backend.sh` 在当前 Windows 环境缺少 `lsof` 无法执行，验收时临时启动本地 mock 后端提供最小接口响应，测试后已关闭该进程。
- 页面验收确认“涉疑交易明细”显示一行筛选栏，模型下拉包含“全部模型”“大额交易模型”“疑似赌博交易模型”，可疑规则下拉仅包含“全部可疑规则”“员工规则命中”“外部人员预警”。
- 页面验收确认选择“大额交易模型”后点击“查询”，涉疑交易请求携带 `modelCode=LARGE_TRANSACTION`，同时保留 `suspiciousType=ALL&pageNum=1&pageSize=5`。
