|
|
@ -212,6 +212,58 @@ public class QyCarbonAssetServiceImpl implements QyCarbonAssetService { |
|
|
resList.addAll(carbonList); |
|
|
resList.addAll(carbonList); |
|
|
resList.addAll(ccerInfoList); |
|
|
resList.addAll(ccerInfoList); |
|
|
resList.addAll(greenList); |
|
|
resList.addAll(greenList); |
|
|
|
|
|
|
|
|
|
|
|
// 计算每个账户的总余额 |
|
|
|
|
|
BigDecimal totalCarbonBalance = BigDecimal.ZERO; |
|
|
|
|
|
BigDecimal totalCcerBalance = BigDecimal.ZERO; |
|
|
|
|
|
BigDecimal totalGreenBalance = BigDecimal.ZERO; |
|
|
|
|
|
|
|
|
|
|
|
// 计算碳配额的余额 |
|
|
|
|
|
BigDecimal carbonTotal = carbonList.stream() |
|
|
|
|
|
.filter(s -> "2".equals(s.getState()) || "3".equals(s.getState())) // 状态为 2 或 3 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal carbonSell = carbonList.stream() |
|
|
|
|
|
.filter(s -> "4".equals(s.getState()) || "5".equals(s.getState())) // 状态为 4 或 5 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal carbonBalance = carbonTotal.subtract(carbonSell); |
|
|
|
|
|
totalCarbonBalance = totalCarbonBalance.add(carbonBalance); |
|
|
|
|
|
|
|
|
|
|
|
// 计算CCER的余额 |
|
|
|
|
|
BigDecimal ccerTotal = ccerInfoList.stream() |
|
|
|
|
|
.filter(s -> "2".equals(s.getState()) || "3".equals(s.getState())) // 状态为 2 或 3 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal ccerSell = ccerInfoList.stream() |
|
|
|
|
|
.filter(s -> "4".equals(s.getState()) || "5".equals(s.getState())) // 状态为 4 或 5 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal ccerBalance = ccerTotal.subtract(ccerSell); |
|
|
|
|
|
totalCcerBalance = totalCcerBalance.add(ccerBalance); |
|
|
|
|
|
|
|
|
|
|
|
// 计算绿证的余额 |
|
|
|
|
|
BigDecimal greenTotal = greenList.stream() |
|
|
|
|
|
.filter(s -> "2".equals(s.getState()) || "3".equals(s.getState())) // 状态为 2 或 3 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal greenSell = greenList.stream() |
|
|
|
|
|
.filter(s -> "4".equals(s.getState()) || "5".equals(s.getState())) // 状态为 4 或 5 |
|
|
|
|
|
.map(QyCarbonAssetDTO::getTotal) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal greenBalance = greenTotal.subtract(greenSell); |
|
|
|
|
|
totalGreenBalance = totalGreenBalance.add(greenBalance); |
|
|
|
|
|
|
|
|
|
|
|
// 计算所有账户的总余额 |
|
|
|
|
|
BigDecimal totalBalance = totalCarbonBalance.add(totalCcerBalance).add(totalGreenBalance); |
|
|
|
|
|
System.out.println("Total Balance : " + totalBalance); |
|
|
|
|
|
|
|
|
//不超过6个月的查询每天的,超过的查询每个月的 |
|
|
//不超过6个月的查询每天的,超过的查询每个月的 |
|
|
if(!sixMonth){ |
|
|
if(!sixMonth){ |
|
|
Map<String, Map<Long, BigDecimal>> grouped = resList.stream() |
|
|
Map<String, Map<Long, BigDecimal>> grouped = resList.stream() |
|
|
@ -225,7 +277,7 @@ public class QyCarbonAssetServiceImpl implements QyCarbonAssetService { |
|
|
resList.clear(); |
|
|
resList.clear(); |
|
|
grouped.forEach((state, dateMap) -> { |
|
|
grouped.forEach((state, dateMap) -> { |
|
|
dateMap.forEach((date, total) -> { |
|
|
dateMap.forEach((date, total) -> { |
|
|
resList.add(new QyCarbonAssetDTO(date, total,state)); |
|
|
|
|
|
|
|
|
resList.add(new QyCarbonAssetDTO(date, total,state,totalBalance)); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}else { |
|
|
}else { |
|
|
@ -248,7 +300,7 @@ public class QyCarbonAssetServiceImpl implements QyCarbonAssetService { |
|
|
try { |
|
|
try { |
|
|
Date dateObj = sdf.parse(date); |
|
|
Date dateObj = sdf.parse(date); |
|
|
long issueDate = dateObj.getTime(); |
|
|
long issueDate = dateObj.getTime(); |
|
|
resList.add(new QyCarbonAssetDTO(issueDate, total,state)); |
|
|
|
|
|
|
|
|
resList.add(new QyCarbonAssetDTO(issueDate, total,state,totalBalance)); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
log.error("日期转换错误",e); |
|
|
log.error("日期转换错误",e); |
|
|
} |
|
|
} |
|
|
|