From f464b2019d65efaa15918b47631bbe2fc3db95df Mon Sep 17 00:00:00 2001 From: Yen Date: Sat, 28 Jan 2023 10:35:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E7=AE=97=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=83=85=E5=86=B5=E7=BB=9F=E8=AE=A1=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TbsBudgetApplicationService.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) 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 be094605..24c26878 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 @@ -203,7 +203,7 @@ public class TbsBudgetApplicationService { final List actUnMatchList = new ArrayList<>(); for (TbsActivityCenterGoods activityCostItem : centerGoodsList) { this.matchActivityMain(activityCostItem,throwEx, overspend, activityList, hisCostGroupByItemBudget, budgetList, - noConditionBudgetList, counterMap, actMatchList, actUnMatchList,activityAllowBudgetIdMap); + noConditionBudgetList, counterMap, actMatchList, actUnMatchList,activityAllowBudgetIdMap,activitySubjects); } List budgetMatchList = actMatchList.stream() .map(TbsActivityCenterGoods::toBudgetCostItem).collect(Collectors.toList()); @@ -395,6 +395,7 @@ public class TbsBudgetApplicationService { * @param actMatchList 匹配预算占用的费用(含超支预算) * @param actUnMatchList 没有匹配预算的费用 * @param activityAllowBudgetIdMap 满足当前活动项的费用idMap + * @param activitySubjects 活动科目 */ private void matchActivityMain(TbsActivityCenterGoods activityCostItem, Boolean throwEx, @@ -406,8 +407,8 @@ public class TbsBudgetApplicationService { Map counterMap, final List actMatchList, final List actUnMatchList, - final Map> activityAllowBudgetIdMap) { - List activitySubjects; + final Map> activityAllowBudgetIdMap, + List activitySubjects) { //过滤满全条件的预算 List allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId()); List budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList()); @@ -423,7 +424,18 @@ public class TbsBudgetApplicationService { if(!activityCostItem.getActivityId().equals(activity.getId())){ continue; } + //拦截非当前科目 + Long subjectId = null; + for (TbsActivitySubject activitySubject : activitySubjects) { + if(activity.getId().equals(activitySubject.getActivityId())){ + subjectId = activitySubject.getSubjectId(); + break; + } + } for (TbsBudget budget : currentItemBudgetList) { + if(!budget.getSubjectId().equals(subjectId)){ + continue; + } List scheduleItemBudgets = activity.getScheduleItemBudgetList(); for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { if(scheduleItemBudget.getBudgetId().equals(budget.getId())){