|
@@ -104,7 +104,6 @@ public class StatementServiceImpl implements StatementService {
|
|
|
return capitalDailyBoList;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 获取所有账户统计
|
|
|
*/
|
|
@@ -183,8 +182,7 @@ public class StatementServiceImpl implements StatementService {
|
|
|
List<CapitalDailyBo> capitalDailyBoList = getCapitalDailyBoList(dto);
|
|
|
|
|
|
|
|
|
- List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
-
|
|
|
+ Map<String, Map<String, Object>> totalMap = new HashMap<>();
|
|
|
|
|
|
Map<String, BigDecimal> balanceMap = new HashMap<>();
|
|
|
for (CapitalDailyBo capitalDailyBo : capitalDailyBoList) {
|
|
@@ -202,6 +200,7 @@ public class StatementServiceImpl implements StatementService {
|
|
|
.map(AccountRunningWater::getAmount)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
+ //支出
|
|
|
BigDecimal expenditure = itemRunningWaterList.stream()
|
|
|
.filter(item -> item.getTransactionTime().before(endDate))
|
|
|
.filter(item -> Objects.equals(item.getStatus(), "20"))
|
|
@@ -209,16 +208,22 @@ public class StatementServiceImpl implements StatementService {
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
|
|
|
- //支出
|
|
|
- Map<String, Object> map1 = new HashMap<>();
|
|
|
- map1.put("balance", balanceMap.getOrDefault(capitalDailyBo.getCurrencyType(), BigDecimal.ZERO).add(income).subtract(expenditure));
|
|
|
- map1.put("income", income);
|
|
|
- map1.put("expenditure", expenditure);
|
|
|
+ //统计成map
|
|
|
+ Map<String, Object> map1 = totalMap.getOrDefault( capitalDailyBo.getCurrencyType(),new HashMap<>());
|
|
|
+ BigDecimal balance1 = (BigDecimal) map1.getOrDefault("balance", BigDecimal.ZERO);
|
|
|
+ balance1 = balance1.add(balanceMap.getOrDefault(capitalDailyBo.getCurrencyType(), BigDecimal.ZERO).add(income).subtract(expenditure));
|
|
|
+ map1.put("balance", balance1);
|
|
|
+ BigDecimal income1 = (BigDecimal) map1.getOrDefault("income", BigDecimal.ZERO);
|
|
|
+ income1 = income1.add(income);
|
|
|
+ map1.put("income", income1);
|
|
|
+ BigDecimal expenditure1 = (BigDecimal) map1.getOrDefault("expenditure", BigDecimal.ZERO);
|
|
|
+ expenditure1 = expenditure1.add(expenditure);
|
|
|
+ map1.put("expenditure", expenditure1);
|
|
|
map1.put("currency", capitalDailyBo.getCurrencyType());
|
|
|
|
|
|
- mapList.add(map1);
|
|
|
+ totalMap.put(capitalDailyBo.getCurrencyType(),map1);
|
|
|
}
|
|
|
- return mapList;
|
|
|
+ return totalMap.values().stream().collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
/**
|