# 开发风险明细涉疑交易明细实施计划记录

## 本次改动

- 新增后端实施计划：
  - `docs/plans/backend/2026-03-27-development-risk-suspicious-transaction-detail-backend-implementation.md`
- 新增前端实施计划：
  - `docs/plans/frontend/2026-03-27-development-risk-suspicious-transaction-detail-frontend-implementation.md`
- 实际落地后端改动：
  - 新增 `sql/migration/2026-03-27-ccdi-bank-statement-counterparty-identity-columns.sql`
  - 补齐 `ccdi_bank_statement` 对手方证件号、统一社会信用代码入库映射
  - 新增结果总览涉疑交易 DTO / VO / Excel / Controller / Service / Mapper 能力
  - 新增“模型规则命中 + 名单库命中”聚合 SQL，并支持列表与导出
- 实际落地前端改动：
  - `ruoyi-ui/src/api/ccdi/projectOverview.js` 新增涉疑交易列表接口
  - `PreliminaryCheck.vue` 接入结果总览涉疑交易初始加载
  - `preliminaryCheck.mock.js` 新增涉疑交易归一化与 `riskDetails` 数据结构
  - `RiskDetailSection.vue` 改造成涉疑交易表格，接通筛选、导出、流水详情弹窗

## 计划拆分结果

- 后端计划聚焦三件事：
  - 补齐交易对手方证件号与统一社会信用代码的入库链路
  - 新增结果总览涉疑交易列表与导出接口
  - 实现“规则命中 + 名单库命中”聚合 SQL 与回归测试

- 前端计划聚焦三件事：
  - 新增结果总览涉疑交易接口封装
  - 将 `PreliminaryCheck.vue` 从 mock 风险明细切换到真实加载
  - 改造 `RiskDetailSection.vue`，复用流水详情弹窗并接通导出

## 文档落点检查

- 后端计划已放入：`docs/plans/backend/`
- 前端计划已放入：`docs/plans/frontend/`
- 本次计划记录已放入：`docs/reports/implementation/`

## 说明

- 依据仓库 `AGENTS.md` 约束，本轮未启用 subagent 审核流程
- 本轮直接在当前 `dev` 分支执行，未创建 git worktree

## 2026-03-27 二次调整记录

- 新增设计文档：
  - `docs/design/2026-03-27-results-overview-suspicious-transaction-alignment-design.md`
- 调整目标：
  - 将结果总览“涉疑交易明细”的列表样式、详情弹窗和分页交互对齐到“流水明细查询”页面
  - 保留“关联员工”列，其余“可疑人员 / 关联人 / 关系”等涉疑交易专属列移除
  - 分页固定每页 5 条
- 预计改动：
  - 重写 `RiskDetailSection.vue` 的列表列结构、详情弹窗结构与分页状态
  - 补充当前页异常标签加载逻辑
  - 同步更新前端单测断言

## 实施结果

- 后端已完成：
  - 交易对手方身份证、统一社会信用代码已沿 LSFX 响应、实体、MyBatis XML、Mock 服务全链路补齐
  - 结果总览新增 `/ccdi/project/overview/suspicious-transactions` 与 `/ccdi/project/overview/suspicious-transactions/export`
  - 涉疑交易明细按 `ALL / NAME_LIST / MODEL_RULE` 支持筛选
  - SQL 以流水为粒度去重，同一流水同时命中两类来源时仅返回一条
- 前端已完成：
  - 结果总览页默认加载涉疑交易明细
  - 风险明细区块已从“涉险交易明细”切换为“涉疑交易明细”
  - 表格列已对齐交易时间、可疑人员、关联人、关联员工、关系、摘要/交易类型、交易金额
  - 详情按钮复用现有流水详情接口，导出按钮指向新的结果总览导出接口

## 验证记录

- 后端验证通过：
  - `python3 -m pytest lsfx-mock-server/tests/test_statement_service.py -v`
  - `mvn -pl ccdi-project,ccdi-lsfx -am -Dtest=CcdiBankStatementTest,CcdiBankStatementMapperXmlTest,CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewControllerContractTest,CcdiProjectOverviewControllerTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewServiceSuspiciousTransactionTest -Dsurefire.failIfNoSpecifiedTests=false test`
- 前端验证通过：
  - `node ruoyi-ui/tests/unit/project-overview-api.test.js`
  - `node ruoyi-ui/tests/unit/preliminary-check-model-and-detail.test.js`
  - `node ruoyi-ui/tests/unit/preliminary-check-suspicious-transaction-load.test.js`
  - `node ruoyi-ui/tests/unit/risk-detail-suspicious-transaction-layout.test.js`
  - `node ruoyi-ui/tests/unit/risk-detail-suspicious-transaction-detail-dialog.test.js`
  - `cd ruoyi-ui && npm run build:prod`
- 构建说明：
  - 前端生产构建成功，但保留仓库原有 bundle 体积告警，不属于本轮新增问题
