新增流水明细对手方汇总查询
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 流水明细对手方聚合查询后端实施计划
|
||||
|
||||
## 背景
|
||||
|
||||
明细查询需要增加类似 lsfx 对手方页签的聚合视图,按流水 `CUSTOMER_ACCOUNT_NAME` 归集同一项目、同一筛选条件下的交易数据,供前端展示对手方汇总。
|
||||
|
||||
## 实施范围
|
||||
|
||||
- `ccdi-project` 后端模块。
|
||||
- 新增对手方聚合分页接口,不新增业务表,不修改已有流水明细查询入参结构。
|
||||
- 复用 `CcdiBankStatementQueryDTO` 的项目、交易方向、交易时间、本方主体、本方银行、本方账号、金额区间、对方名称、对方账户、摘要和空值匹配筛选。
|
||||
|
||||
## 实施步骤
|
||||
|
||||
1. 新增 `CcdiBankStatementCounterpartyVO`,返回对手方名称、空值标识、关联账号数、流入/流出金额与笔数、总交易额、总笔数、最近交易时间。
|
||||
2. 在 `CcdiBankStatementController` 增加 `GET /ccdi/project/bank-statement/counterparty/list`,沿用项目读权限校验和 RuoYi 分页返回结构。
|
||||
3. 在 `ICcdiBankStatementService` 与 `CcdiBankStatementServiceImpl` 增加聚合查询服务方法,统一复用明细查询参数归一化和排序白名单。
|
||||
4. 在 `CcdiBankStatementMapper` 与 XML 中新增聚合 SQL:
|
||||
- 对 `CUSTOMER_ACCOUNT_NAME` 做 `TRIM(IFNULL(..., ''))` 后分组。
|
||||
- 用 `CASE WHEN AMOUNT >= 0` 统计流入,用 `< 0` 统计流出。
|
||||
- 用 `ABS(AMOUNT)` 计算流出合计和总交易额,便于前端展示正数合计。
|
||||
- 最近交易时间复用既有交易时间解析表达式。
|
||||
5. 补充 Controller 与 Mapper XML 单元测试,覆盖接口分页返回、SQL 聚合字段、筛选条件和排序。
|
||||
|
||||
## 验证计划
|
||||
|
||||
- 运行后端定向单测:
|
||||
`mvn -pl ccdi-project -am "-Dtest=CcdiBankStatementMapperXmlTest,CcdiBankStatementControllerTest" "-Dsurefire.failIfNoSpecifiedTests=false" test`
|
||||
- 打包并启动真实后端后,用真实页面请求新接口,确认 `counterparty/list` 返回 200。
|
||||
@@ -0,0 +1,32 @@
|
||||
# 流水明细对手方聚合查询前端实施计划
|
||||
|
||||
## 背景
|
||||
|
||||
用户希望在项目详情的“流水明细查询”中增加“对手方”视图,效果参考 lsfx 对手方列表:在同一筛选条件下按对手方汇总,查看流入、流出和总交易规模。
|
||||
|
||||
## 实施范围
|
||||
|
||||
- `ruoyi-ui/src/views/ccdiProject/components/detail/DetailQuery.vue`
|
||||
- `ruoyi-ui/src/api/ccdiProjectBankStatement.js`
|
||||
|
||||
## 实施步骤
|
||||
|
||||
1. 在流水明细结果区标题旁增加 `el-radio-group`,提供“流水明细 / 对手方”切换。
|
||||
2. 新增 `listBankStatementCounterparties` API 方法,请求后端 `/ccdi/project/bank-statement/counterparty/list`。
|
||||
3. 对手方模式下复用左侧筛选区和分页组件,隐藏“导出流水”按钮。
|
||||
4. 对手方表格展示对手方名称、流入合计、流出合计、总交易额和最近交易时间。
|
||||
5. 对手方模式默认按总交易额倒序;表格列排序映射到后端白名单字段。
|
||||
|
||||
## 验证计划
|
||||
|
||||
- 前端构建:
|
||||
`npm run build:prod`
|
||||
- 真实页面验证:
|
||||
1. 打开项目详情 `http://127.0.0.1:8081/ccdiProject/detail/42?tab=detail`。
|
||||
2. 进入“流水明细查询”,切换到“对手方”。
|
||||
3. 确认列表展示对手方名称、流入/流出/总交易额与分页总数。
|
||||
4. 确认对手方表格不展示“操作”列和“查看流水”按钮。
|
||||
|
||||
## 本机 Node 说明
|
||||
|
||||
`.nvmrc` 指向 `14.21.3`,但本机该版本环境不可稳定提供 npm。按仓库约定,本次使用已验证可用的 Node `22.22.3` 与 npm `10.9.8` 完成构建和页面验证。
|
||||
@@ -0,0 +1,32 @@
|
||||
# 流水明细对手方聚合查询实施记录
|
||||
|
||||
## 修改内容
|
||||
|
||||
- 后端新增 `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` 等资产超限;未发现由本次代码变更引入的构建失败。
|
||||
Reference in New Issue
Block a user