From 61b7654b3d8dc5ab0af8e5a7b37d4bde47b5b6b7 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 11 Nov 2025 17:07:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=B5=84=E9=87=91=E4=BA=BA=E6=B0=91=E5=B8=81=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E8=BD=AC=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在项目列表查询中增加实时汇率获取逻辑 - 根据备注信息判断是否需要将美元金额转换为人民币 - 为 SysOaProjectVo 增加 fundsRmb 字段用于存储转换后金额 - 实现美元金额自动转换并填充人民币金额字段 - 支持在 Excel 导出中显示人民币金额列 - 处理无备注或无资金情况下的默认值设置 --- .../ruoyi/oa/domain/vo/SysOaProjectVo.java | 6 ++++++ .../service/impl/SysOaProjectServiceImpl.java | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java index 5cebe75..66cc179 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java @@ -68,6 +68,12 @@ public class SysOaProjectVo { @ExcelProperty(value = "项目总款") private BigDecimal funds; + /** + * 人民币金额(转换后) + */ + @ExcelProperty(value = "人民币金额") + private BigDecimal fundsRmb; + /** * 项目负责人 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index b641237..cb7b6a2 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -161,6 +161,27 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { public TableDataInfo queryPageList(SysOaProjectBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPlus(pageQuery.build(), lqw); + + // 获取实时汇率 + BigDecimal currentExchangeRate = exchangeRateService.getCurrentUsdExchangeRate(); + + // 处理每条记录,转换美元金额为人民币 + for (SysOaProjectVo vo : result.getRecords()) { + if (vo.getRemark() != null && vo.getFunds() != null) { + // 检查备注中是否包含"美元"或"美金" + if (vo.getRemark().contains("美元") || vo.getRemark().contains("美金")) { + // 转换为人民币 + vo.setFundsRmb(vo.getFunds().multiply(currentExchangeRate)); + } else { + // 不需要转换,直接使用原金额 + vo.setFundsRmb(vo.getFunds()); + } + } else if (vo.getFunds() != null) { + // 没有备注信息,默认使用原金额 + vo.setFundsRmb(vo.getFunds()); + } + } + return TableDataInfo.build(result); }