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