|
|
|
@ -582,8 +582,52 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageInfo<FundsDTO> funds(Integer pageNum, Integer pageSize, FundsDTO fundsDTO) { |
|
|
|
// 1. 分页查询主数据 |
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
if(fundsDTO.getStatuses()==null||fundsDTO.getStatuses().isEmpty()){ |
|
|
|
List<Integer> list_a = Arrays.asList(4,6); |
|
|
|
fundsDTO.setStatuses(list_a); |
|
|
|
} |
|
|
|
List<FundsDTO> list = cashRefundMapper.selectfunds(fundsDTO); |
|
|
|
|
|
|
|
// 2. 收集 status == 6 的记录 ID(注意:status 是 int) |
|
|
|
List<Integer> needQueryIds = new ArrayList<>(); |
|
|
|
for (FundsDTO dto : list) { |
|
|
|
if (dto.getStatuses() != null && dto.getStatuses().contains(6)) { |
|
|
|
needQueryIds.add(dto.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 批量查询额外信息(关键:必须有返回对象的方法!) |
|
|
|
if (!needQueryIds.isEmpty()) { |
|
|
|
// 👇 请替换为你的实际 Mapper 方法(返回 List<RefundDetailDTO>) |
|
|
|
List<FundsDTO> detailList = cashRefundMapper.selectRefundCount(needQueryIds); |
|
|
|
|
|
|
|
// 4. 构建 HashMap: id -> RefundDetailDTO |
|
|
|
Map<Integer, FundsDTO> detailMap = new HashMap<>(); |
|
|
|
for (FundsDTO detail : detailList) { |
|
|
|
detailMap.put(detail.getId(), detail); // 假设 detail 有 getId() |
|
|
|
} |
|
|
|
|
|
|
|
// 5. 回填到账金额和到账币种 |
|
|
|
for (FundsDTO dto : list) { |
|
|
|
if (dto.getStatuses() != null && dto.getStatuses().contains(6)) { |
|
|
|
FundsDTO detail = detailMap.get(dto.getId()); |
|
|
|
if (detail != null) { |
|
|
|
// 将到账金额转为负数(正数 → 负数) |
|
|
|
BigDecimal amount = detail.getReceivedAmount(); |
|
|
|
if (amount != null) { |
|
|
|
dto.setReceivedAmount(amount.negate()); // 👈 关键:取负数 |
|
|
|
} else { |
|
|
|
dto.setReceivedAmount(null); // 或设为 BigDecimal.ZERO,根据业务需求 |
|
|
|
} |
|
|
|
// 币种保持不变 |
|
|
|
dto.setReceivedCurrency(detail.getReceivedCurrency()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return new PageInfo<>(list); |
|
|
|
} |
|
|
|
|
|
|
|
|