完善异常账户预警口径和账户查询

This commit is contained in:
wjj
2026-07-20 11:13:54 +08:00
parent 4a75d68bf6
commit 657977dfb7
29 changed files with 286 additions and 14 deletions

View File

@@ -0,0 +1,24 @@
# 结果总览异常账户口径调整后端实施计划
## 目标
修正“休眠账户大额启用”在项目流水不完整时的误报,并在结果总览异常账户数据中透出命中原因和涉及金额。
## 实施范围
- 调整 `DORMANT_ACCOUNT_LARGE_ACTIVATION` SQL项目流水最早日期必须覆盖启用日前 6 个月观察窗口。
- 调整 `SUDDEN_ACCOUNT_CLOSURE` SQL销户前 30 天窗口内需存在大额资金流动,避免普通销户前交易被判定为异常账户线索。
- 异常账户分页和导出查询增加 `reasonDetail``involvedAmount`
- 风险明细工作簿和 PDF 报告的异常账户表增加“命中原因”“涉及金额”。
- 新增规则元数据增量 SQL同步“突然销户”业务口径。
- 更新后端单元测试断言。
## 不包含
- 不开发非实控账户规则。
- 不新增“关联员工”列。
- 不新增“销户后交易”校验类场景。
## 验证
- 执行异常账户规则、结果总览 Mapper、导出器相关测试。

View File

@@ -0,0 +1,22 @@
# 账户库账户号码筛选后端实施计划
## 目标
在账户库管理列表和导出查询中支持按账户号码筛选,方便业务按账号直接定位账户主档。
## 实施范围
- `CcdiAccountInfoQueryDTO` 增加 `accountNo` 查询字段。
- `CcdiAccountInfoMapper.xml` 的账户库查询条件增加 `ai.account_no LIKE` 过滤。
- 页面列表和导出共用同一查询条件,保持筛选口径一致。
- 补充 Mapper SQL 渲染测试,确认账号条件被拼入列表 SQL。
## 不包含
- 不调整账户主档字段结构。
- 不修改账户导入模板。
- 不混入项目风险结果或异常账户预警规则。
## 验证
- 执行账户库 Mapper 测试,确认 SQL 渲染包含账户号码过滤条件。

View File

@@ -0,0 +1,21 @@
# 结果总览异常账户展示调整前端实施计划
## 目标
在结果总览“异常账户人员信息”表格中展示命中原因和涉及金额,降低业务查看预警时的理解成本。
## 实施范围
- 异常账户表格增加“命中原因”列。
- 异常账户表格增加“涉及金额”列,并复用现有金额格式化方法。
- 更新前端结构测试。
## 不包含
- 不新增异常账户筛选栏。
- 不新增详情弹窗。
- 不展示“关联员工”列。
## 验证
- 执行前端结构测试和生产构建。

View File

@@ -0,0 +1,21 @@
# 账户库账户号码筛选前端实施计划
## 目标
在账户库管理查询栏新增“账户号码”筛选项,支持输入部分账号后查询。
## 实施范围
- 在账户库查询表单中新增“账户号码”输入框。
- 查询参数 `queryParams` 增加 `accountNo`
- 重置查询时同步清空 `accountNo`
## 不包含
- 不调整列表列结构。
- 不新增高级搜索或独立详情入口。
- 不改变新增、编辑、导入的账户号码校验逻辑。
## 验证
- 通过前端源码检查确认查询项、请求参数和重置逻辑一致。

View File

@@ -0,0 +1,28 @@
# 结果总览异常账户口径与展示实施记录
## 修改内容
- 修正 `休眠账户大额启用`:项目流水必须覆盖启用日前完整 6 个月观察窗口,避免仅导入某日起流水时误判为首次启用。
- 收紧 `突然销户`:销户前 30 天窗口内需满足累计交易金额 50 万以上或单笔最大金额 10 万以上,避免普通销户前交易被误判为异常账户线索。
- 异常账户结果查询新增 `命中原因``涉及金额`
- 结果总览异常账户表格新增“命中原因”“涉及金额”两列。
- 风险明细工作簿和 PDF 报告的异常账户表同步新增两列。
- 新增 `sql/migration/2026-07-17-update-abnormal-account-rule-caliber.sql` 同步规则元数据。
## 影响范围
- 影响异常账户模型规则 `DORMANT_ACCOUNT_LARGE_ACTIVATION` 的命中口径。
- 影响异常账户模型规则 `SUDDEN_ACCOUNT_CLOSURE` 的命中口径。
- 影响结果总览异常账户分页接口、统一风险明细导出和 PDF 报告。
- 不涉及非实控账户规则,不增加关联员工展示。
## 验证情况
- 已执行:`mvn -pl ccdi-project -am test "-Dtest=CcdiProjectOverviewServiceAbnormalAccountTest,CcdiProjectOverviewMapperSqlTest,CcdiBankTagAnalysisMapperXmlTest,CcdiProjectRiskDetailWorkbookExporterTest,CcdiProjectOverviewReportPdfExporterTest,CcdiProjectOverviewServiceImplTest,CcdiBankTagRuleSqlMetadataTest" "-Dsurefire.failIfNoSpecifiedTests=false"`
- 结果:通过,相关后端测试共 58 个用例成功。
- 已执行:`node tests\unit\risk-detail-abnormal-account-layout.test.js`
- 结果:通过。
- 已执行:`npm run build:prod`
- 结果:构建通过,仅存在既有资源体积警告;当前工作区未跟踪的 `0uS5znL.docx` 被构建统计为大资源,未纳入本次处理范围。
- 已执行:使用 Chrome DevTools 打开本机真实前端 `http://127.0.0.1:8088/`
- 结果:页面停留登录页,`/dev-api/captchaImage` 返回 500同时 `http://127.0.0.1:62318/swagger-ui.html` 无法连接,确认真实后端不可用,因此未进入结果总览业务页做端到端验收。本次未使用 mock 后端替代真实后端。

View File

@@ -0,0 +1,22 @@
# 账户库账户号码筛选实施记录
## 修改内容
- 后端账户库查询 DTO 新增 `accountNo` 字段。
- 账户库列表和导出 SQL 增加 `ai.account_no LIKE` 查询条件。
- 前端账户库管理查询栏新增“账户号码”输入框,并在重置查询时清空。
- 新增 Mapper SQL 渲染测试,覆盖账户号码筛选条件。
## 影响范围
- 影响账户库管理列表查询接口 `/ccdi/accountInfo/list`
- 影响账户库导出接口复用的查询条件。
- 不影响账户新增、编辑、删除、导入和异常账户预警规则。
## 验证情况
- 已执行:`mvn -pl ccdi-info-collection -am test "-Dtest=CcdiAccountInfoMapperTest" "-Dsurefire.failIfNoSpecifiedTests=false"`
- 结果:通过,`CcdiAccountInfoMapperTest` 共 2 个用例成功。
- 已执行:前端环境验证。`.nvmrc` 指向的 Node 14.21.3 在本机切换后 `node``npm` 不可用,按仓库约定改用 Node 22.22.3 + npm 10.9.8。
- 已执行:`npm run build:prod`,构建通过,仅存在既有资源体积警告;当前工作区未跟踪的 `0uS5znL.docx` 被构建统计为大资源,未纳入本次处理范围。
- 已执行:使用 Chrome DevTools 打开临时静态服务页面,登录页可渲染;因静态服务没有 `/prod-api` 后端代理,无法进入需鉴权的账户库业务页,临时静态服务已关闭。