# 流水明细对手方聚合查询实施记录

## 修改内容

- 后端新增 `GET /ccdi/project/bank-statement/counterparty/list`，按对方名称聚合流水，返回流入合计、流出合计、总交易额、笔数和最近交易时间。
- 后端新增 `CcdiBankStatementCounterpartyVO`，并在 Mapper XML 中复用明细查询筛选条件和排序白名单。
- 前端在项目详情“流水明细查询”中增加“流水明细 / 对手方”切换。
- 前端新增对手方聚合表格，支持按聚合指标排序；按用户反馈移除“查看流水”入口，避免从汇总视图跳到逐笔流水后缺少明确返回路径。

## 影响范围

- 涉及 `ccdi-project` 的银行流水查询 Controller、Service、Mapper 与 XML。
- 涉及 `ruoyi-ui` 的流水明细查询组件与银行流水 API 文件。
- 不涉及数据库表结构、菜单、权限标识或初始化数据变更。

## 验证情况

- 后端单测通过：
  `mvn -pl ccdi-project -am "-Dtest=CcdiBankStatementMapperXmlTest,CcdiBankStatementControllerTest" "-Dsurefire.failIfNoSpecifiedTests=false" test`
- 前端构建通过：
  `npm run build:prod`
- 真实页面验证通过：
  - 打开真实项目详情页 `http://127.0.0.1:8081/ccdiProject/detail/42?tab=detail`。
  - 切换“对手方”后，接口 `/ccdi/project/bank-statement/counterparty/list` 返回 200，页面展示“美团、微信支付、银行转账”等聚合行和 `共 8 条`。
  - 对手方表格已移除“操作”列和“查看流水”按钮，只保留汇总信息展示与表格排序。
- 浏览器验证说明：`browser-use` 对应的 Chrome DevTools MCP 被本机 profile 锁占用，本次按 Playwright 技能要求使用 `@playwright/cli` 在真实页面完成验证。

## 环境说明

- `.nvmrc` 为 `14.21.3`，但本机 nvm 的 Node 14 环境无法稳定提供 npm。
- 本次前端构建与页面验证使用 Node `22.22.3`、npm `10.9.8`；部分 PowerShell 会话中 nvm 切换后 PATH 不刷新，因此构建使用已确认存在的 `C:\Users\20696\AppData\Local\nvm-nodejs\npm.cmd`。
- 前端构建存在项目既有体积告警，包含 `login-background`、`chunk-elementUI`、`chunk-libs`、`0uS5znL.docx` 等资产超限；未发现由本次代码变更引入的构建失败。
