feat(oa): 添加项目资金人民币金额转换功能
- 在项目列表查询中增加实时汇率获取逻辑 - 根据备注信息判断是否需要将美元金额转换为人民币 - 为 SysOaProjectVo 增加 fundsRmb 字段用于存储转换后金额 - 实现美元金额自动转换并填充人民币金额字段 - 支持在 Excel 导出中显示人民币金额列 - 处理无备注或无资金情况下的默认值设置
This commit is contained in:
@@ -68,6 +68,12 @@ public class SysOaProjectVo {
|
||||
@ExcelProperty(value = "项目总款")
|
||||
private BigDecimal funds;
|
||||
|
||||
/**
|
||||
* 人民币金额(转换后)
|
||||
*/
|
||||
@ExcelProperty(value = "人民币金额")
|
||||
private BigDecimal fundsRmb;
|
||||
|
||||
/**
|
||||
* 项目负责人
|
||||
*/
|
||||
|
||||
@@ -161,6 +161,27 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaProjectVo> 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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user