5.0 KiB
5.0 KiB
项目结果总览排除可疑实施记录
基本信息
- 实施日期:2026-07-09
- 功能范围:项目详情 > 结果总览 > 项目分析异常明细中的单条可疑预警排除
- 需求口径:支持流水明细级预警和人员对象级预警排除;本期不做恢复入口;排除后刷新当前详情、风险人员列表、模型统计、涉疑交易明细;浏览器刷新后仍按排除记录过滤。
修改内容
后端
- 新增排除记录表
ccdi_project_risk_exclusion的增量 SQL。 - 新增排除记录实体、DTO、Mapper 与 XML。
- 在
CcdiProjectOverviewController新增POST /ccdi/project/overview/risk-exclusions。 - 在结果总览服务中新增排除逻辑:
- 校验项目可操作状态。
- 校验排除目标必须存在于当前项目命中结果。
- 按
STATEMENT或OBJECT维度写入排除记录。 - 写入后刷新项目员工结果汇总。
- 在结果总览、风险人员、模型统计、人员详情、涉疑交易明细等 SQL 中统一过滤排除记录。
- 修复对象型排除校验 SQL 中子查询
JOIN ON引用外层字段导致的 MySQL 语法错误。
前端
- 新增
excludeOverviewRiskAPI。 - 在项目分析异常明细中为流水标签和异常对象摘要增加小号
排除可疑按钮。 - 使用 Element UI 弹窗录入排除原因并确认。
- 排除成功后刷新:
- 当前项目分析详情弹窗。
- 风险人员列表。
- 风险模型卡片和命中人员。
- 涉疑交易明细,并清空流水详情缓存后重拉。
- 外部人员详情弹窗同步支持相同排除能力。
- 对象型确认文案改为优先显示规则摘要,避免把人员名当作规则名展示。
- 修复排除成功后的用户体验:
- 父级结果总览改为静默刷新,不再触发整页 loading,也不重置已打开的项目分析弹窗。
- 刷新结果回写到当前项目分析人员,弹窗侧栏异常标签与总览统计保持一致。
- 项目分析详情未加载完成前不再回退展示 mock 异常明细,避免打开
查看详情时闪过旧数据。
验证情况
编译与构建
mvn -pl ccdi-project -am compile -DskipTests:通过。mvn -pl ruoyi-admin -am package -DskipTests:通过。npm run build:prod:通过。
前端按本机实际可用环境执行:
.nvmrc指向 Node14.21.3。- 本机 Node 14 环境缺少完整 npm,按项目约定切换到已验证可用的 Node
22.22.3。 - PowerShell 中
C:\Users\20696\AppData\Local\nvm-nodejs\npm.cmd链接不可用,本次构建改用已验证的C:\Users\20696\AppData\Roaming\nvm\v22.22.3下 Node/npm 执行。 - 构建存在既有体积告警;未跟踪的
ruoyi-ui/public/0uS5znL.docx被打入构建并触发体积提示,非本次功能改动产生。
接口验证
- 后端真实 Java 服务启动在
http://127.0.0.1:62318,/swagger-ui.html返回 200。 - 通过
POST /login/test获取测试 token。 - 对项目
42、人员330101198802020033、对象型规则ANNUAL_TURNOVER调用排除接口:- 排除前对象规则包含
ANNUAL_TURNOVER,CUMULATIVE_INCOME。 POST /ccdi/project/overview/risk-exclusions返回code=200。- 排除后人员详情对象规则仅剩
CUMULATIVE_INCOME。
- 排除前对象规则包含
浏览器验证
- 使用真实前端开发服务
http://127.0.0.1:8088,代理真实后端http://127.0.0.1:62318。 - 进入项目
42的结果总览。 - 点击风险人员的
查看详情,进入项目分析弹窗。 - 在异常对象摘要点击
排除可疑并确认。 - 页面立即刷新:
- 当前 URL 保持在
/ccdiProject/detail/42?tab=overview,未回到项目列表或结果总览首页。 - 项目分析弹窗保持打开,未被父页面刷新关闭。
- 风险人员疑似违规数从
5变为4。 - 模型统计从
大额交易 4 次变为大额交易 3 次。 - 风险人员列表风险等级从
高风险变为中风险。 - 命中人员异常标签去掉已排除对象规则。
- 项目分析弹窗侧栏与异常对象摘要同步去掉
年流水交易额超限。
- 当前 URL 保持在
- 刷新浏览器后仍保持过滤结果,说明排除记录持久化生效。
- 打开
查看详情的首帧只显示空/加载态,不再闪过 mock 或上一次人员的异常明细。 - 浏览器 Network 面板中本轮验收 22 个 XHR/fetch 请求均为 200,未出现后端接口异常。
数据清理
- 验证后删除本轮写入的
ANNUAL_TURNOVER、CUMULATIVE_INCOME对象型排除记录。 - 通过真实后端
POST /ccdi/project/tags/rebuild重算项目42标签与结果汇总。 - 清理后确认本轮对象型排除记录剩余
0,项目42汇总恢复为模型二测试员工 / rule_count=5 / model_count=2 / hit_count=5。
影响范围
- 新增排除表为独立业务表,不修改原始流水、员工、模型命中明细。
- 查询层通过
NOT EXISTS统一过滤已排除预警。 - 本期不提供恢复入口;需要恢复时需后续单独设计恢复接口和入口。