diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index fd25f32a..307d0856 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -250,18 +250,23 @@ public class TbsBudgetApplicationService { //统计所有占用预算金额 Map budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); - List budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList()); - List scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).collect(Collectors.toList()); + List budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); + List scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); List budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); for (TbsScheduleItemBudget itemBudget : scheduleItemList) { + boolean isNotMatch = true; for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ BigDecimal budgetItemAmount = logPreAmount.getAmount(); //因为结果为负数,需去相反数 + isNotMatch = false; budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); } } + if(isNotMatch){ + budgetItemAmountMap.put(itemBudget.getId(),BigDecimal.ZERO); + } } // for (TbsScheduleItemBudget itemBudget : scheduleItemList) { diff --git a/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml b/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml index 5f9fe639..3f7a570f 100644 --- a/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml +++ b/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml @@ -48,7 +48,7 @@ resultMap="TbsScheduleItemBudgetAmountMap"> SELECT `tbs_budget_cost_item`.schedule_item_id, - sum(`tbs_budget_cost_item`.center_goods_amount) total_amount; + sum(`tbs_budget_cost_item`.center_goods_amount) total_amount FROM `tbs_budget_cost_item` LEFT JOIN `tbs_cost_apply` ON `tbs_budget_cost_item`.cost_apply_id = `tbs_cost_apply`.id @@ -61,11 +61,17 @@ group by `tbs_budget_cost_item`.schedule_item_id - + + + + +