|
@ -250,18 +250,23 @@ public class TbsBudgetApplicationService { |
|
|
|
|
|
|
|
|
//统计所有占用预算金额
|
|
|
//统计所有占用预算金额
|
|
|
Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); |
|
|
Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); |
|
|
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList()); |
|
|
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); |
|
|
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).collect(Collectors.toList()); |
|
|
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); |
|
|
List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); |
|
|
List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { |
|
|
|
|
|
boolean isNotMatch = true; |
|
|
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { |
|
|
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { |
|
|
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ |
|
|
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ |
|
|
BigDecimal budgetItemAmount = logPreAmount.getAmount(); |
|
|
BigDecimal budgetItemAmount = logPreAmount.getAmount(); |
|
|
//因为结果为负数,需去相反数
|
|
|
//因为结果为负数,需去相反数
|
|
|
|
|
|
isNotMatch = false; |
|
|
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); |
|
|
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); |
|
|
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); |
|
|
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
if(isNotMatch){ |
|
|
|
|
|
budgetItemAmountMap.put(itemBudget.getId(),BigDecimal.ZERO); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
|
|
|
// for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
|
|
|