|
|
@ -37,6 +37,7 @@ import java.util.stream.Collectors; |
|
|
|
public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMapper,BirBaseActivity> implements BirBaseActivityService { |
|
|
|
|
|
|
|
private final TbsCostApplyMapper costApplyMapper; |
|
|
|
private final TbsActivityMapper tbsActivityMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void buildReport(int year, int month) { |
|
|
@ -62,6 +63,10 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe |
|
|
|
costApplyLqw.in(TbsCostApply::getId,costIds); |
|
|
|
List<TbsCostApply> costApplyList = costApplyMapper.selectList(costApplyLqw); |
|
|
|
|
|
|
|
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>(); |
|
|
|
activityLqw.in(TbsActivity::getId,ids); |
|
|
|
activityList = tbsActivityMapper.selectList(activityLqw); |
|
|
|
|
|
|
|
List<BirBaseActivity> birBaseActivities = new ArrayList<>(); |
|
|
|
for (TbsActivity activity : activityList) { |
|
|
|
|
|
|
@ -106,15 +111,15 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe |
|
|
|
//日期占比
|
|
|
|
BigDecimal dayRate = new BigDecimal(splitDTO.getDays() + "") |
|
|
|
.divide(new BigDecimal(currentActDays + ""), 2, BigDecimal.ROUND_HALF_DOWN); |
|
|
|
currentAmount = currentAmount.subtract(amount.multiply(dayRate)); |
|
|
|
currentCheckAmount = currentCheckAmount.subtract(activity.getUsedAmount().multiply(dayRate)); |
|
|
|
currentAmount = currentAmount.subtract(amount.multiply(dayRate).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
currentCheckAmount = currentCheckAmount.subtract(activity.getUsedAmount().multiply(dayRate).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
//日期占比
|
|
|
|
BigDecimal dayRate = new BigDecimal(currDateSplit.getDays() + "") |
|
|
|
.divide(new BigDecimal(currentActDays + ""), 2, BigDecimal.ROUND_HALF_DOWN); |
|
|
|
currentAmount = amount.multiply(dayRate); |
|
|
|
currentCheckAmount = activity.getUsedAmount().multiply(dayRate); |
|
|
|
currentAmount = amount.multiply(dayRate).setScale(2, RoundingMode.HALF_UP); |
|
|
|
currentCheckAmount = activity.getUsedAmount().multiply(dayRate).setScale(2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
|
|
|
|
baseActivity.setKeyNum(dto.getYearMonth()); |
|
|
|