生产Bug的机器罢了
salaryDetailVOList.stream().collect(Collectors.groupingBy(t -> t.getTeamId() == null ? NO_TEAM_GROUP_MARK : t.getTeamId(), Collectors.toList())).forEach((key, groupMap) -> {
if (NO_TEAM_GROUP_MARK.equals(key)) {
// 假装有代码
} else {
groupMap.forEach(vo -> {
ContributionCost cost = new ContributionCost();
cost.setSalaryDetailData(vo);
cost.setYear(year);
cost.setMonth(month);
cost.setCooperateRatio(String.valueOf(teamCooperateRatio));
BigDecimal expensePerson = personExpenseList
.stream()
.filter(p -> p.getUserId().equals(vo.getUserId()))
.map(ExpenseVO::getAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cost.setExpensePerson(expensePerson);
BigDecimal contributionPerson = contribution
.stream()
.filter(performanceDetailVO -> performanceDetailVO.getUserId().equals(vo.getUserId()))
.map(PerformanceDetailVO::getContributionOutput)
.reduce(BigDecimal.ZERO, BigDecimal::add);
cost.setContribution(contributionPerson);
if (vo.getActualWorkingDays().intValue() == 0 && teamActualWorkingDays.intValue() == 0) {
cost.setExpensePublic(CalcUtil.mul(teamExpensePublic, BigDecimal.valueOf(workingDay), 2));
cost.setExpensePublicRent(CalcUtil.mul(expensePublicRent, BigDecimal.valueOf(workingDay), 2));
cost.setExpensePublicInside(CalcUtil.mul(expensePublicInsidePer, BigDecimal.valueOf(workingDay), 2));
} else {
cost.setExpensePublic(CalcUtil.mul(teamExpensePublic, vo.getActualWorkingDays(), 2));
cost.setExpensePublicRent(CalcUtil.mul(expensePublicRent, vo.getActualWorkingDays(), 2));
cost.setExpensePublicInside(CalcUtil.mul(expensePublicInsidePer, vo.getActualWorkingDays(), 2));
}
cost.setExpensePublicReplace(expensePublicReplace);
cost.setCost(CalcUtil.sumOwn(cost.getLaborCost(), cost.getExpensePerson(), cost.getExpensePublic(), cost.getExpensePublicRent(), cost.getExpensePublicReplace(), cost.getExpensePublicInside()));
cost.setSettlement(CalcUtil.mul(cost.getContribution(), new BigDecimal(cost.getCooperateRatio()), 2));
list.add(cost);
});
});