//汇总计算 reduce
CxmBiBatchFeeExt ext = new CxmBiBatchFeeExt();
List<DkSaleOrderItem> batchDkSaleOrderDetailVoLst = dkSaleOrderDetailVoMap.get(e);
Optional<DkSaleOrderItem> dkSaleOrderOptional = batchDkSaleOrderDetailVoLst.stream().reduce((sum, var) -> {
sum.setSaleAmount(BigDecimalUtil.add(sum.getSaleAmount(), var.getSaleAmount()));
sum.setBillFee(BigDecimalUtil.add(sum.getBillFee(), var.getBillFee()));
return sum;
});
ext.setBillFee(dkSaleOrderOptional.map(s -> s.getBillFee()).orElse(BigDecimal.ZERO));
//一般循环
dkSaleOrderDetailVoMap.keySet().stream().forEach
//对象集合转list
List<Integer> batchIdLst = dkSaleOrderDetailVoLst.stream().map(e -> e.getBatchId()).distinct()
.collect(Collectors.toList());
//list转map
Map<Integer, List<DkSaleOrderItem>> dkSaleOrderDetailVoMap = dkSaleOrderDetailVoLst.stream()
.collect(Collectors.groupingBy(e -> e.getBatchId()));
Map<String, String> customGroupMap = customGrouplist.stream().collect(Collectors
.toMap(CxmCustomGroup::getCustomerName, CxmCustomGroup::getMergeCustomerName, (k1, k2) -> k1));
Map<Integer, Student> map = list.stream().collect(Collectors.toMap(Student::getId, student -> student));
//过滤
List<DkSaleOrderVo> portionPaymentDkSaleOrderVoLst = dkSaleOrderVoLst.stream().
filter(e -> e.getOrderStatus().intValue() == OrderConstant.ORDER_STATUS_PORTION_PAYMENT).collect(Collectors.toList());
//排序
if(baseSaleOrderRequestVo.getOrderByClause() == 1) { // 降序
tempList = page.stream().sorted(Comparator.comparing(DkSaleOrderVo::getCreditAmount).reversed()).collect(Collectors.toList());
page.clear();
page.addAll(tempList);
} else if(baseSaleOrderRequestVo.getOrderByClause() == 2) { // 升序
tempList = page.stream().sorted(Comparator.comparing(DkSaleOrderVo::getCreditAmount)).collect(Collectors.toList());
page.clear();
page.addAll(tempList);
}
//算合计
Optional<BigDecimal> repayAmount = allDkSaleOrderVo.stream().map(DkSaleOrderVo::getPaymentAmount).reduce((vo1, vo2) -> {
return BigDecimalUtil.add(vo1, vo2);
});
searchVo.setRefundAmount(repayAmount.orElse(BigDecimal.ZERO));// 本日还款