|
|
|
@ -606,7 +606,7 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); |
|
|
|
// 4. 构建 HashMap: id -> RefundDetailDTO |
|
|
|
Map<Integer, FundsDTO> detailMap = new HashMap<>(); |
|
|
|
for (FundsDTO detail : detailList) { |
|
|
|
detailMap.put(detail.getId(), detail); // 假设 detail 有 getId() |
|
|
|
detailMap.put(detail.getRelatedId(), detail); // 假设 detail 有 getId() |
|
|
|
} |
|
|
|
|
|
|
|
// 5. 回填到账金额和到账币种 |
|
|
|
@ -615,14 +615,14 @@ CashRecordDone cashRecordDone1 = new CashRecordDone(); |
|
|
|
FundsDTO detail = detailMap.get(dto.getId()); |
|
|
|
if (detail != null) { |
|
|
|
// 将到账金额转为负数(正数 → 负数) |
|
|
|
BigDecimal amount = detail.getReceivedAmount(); |
|
|
|
BigDecimal amount = detail.getRefundAmount(); |
|
|
|
if (amount != null) { |
|
|
|
dto.setReceivedAmount(amount.negate()); // 👈 关键:取负数 |
|
|
|
dto.setRefundAmount(amount.negate()); // 👈 关键:取负数 |
|
|
|
} else { |
|
|
|
dto.setReceivedAmount(null); // 或设为 BigDecimal.ZERO,根据业务需求 |
|
|
|
dto.setRefundAmount(null); // 或设为 BigDecimal.ZERO,根据业务需求 |
|
|
|
} |
|
|
|
// 币种保持不变 |
|
|
|
dto.setReceivedCurrency(detail.getReceivedCurrency()); |
|
|
|
dto.setRefundCurrency(detail.getRefundCurrency()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|