diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java index 47db98fc..cb8e4e5c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivityCenter; import java.util.List; @@ -14,5 +15,7 @@ public interface TbsActivityCenterService extends IService { List listByActivity(Long activityId); + List listByCostApplyId(Long costApplyId); + } 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 24c26878..2ab88075 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 @@ -33,6 +33,7 @@ import java.util.stream.Collectors; @AllArgsConstructor public class TbsBudgetApplicationService { + private TbsActivityCenterService tbsActivityCenterService; private TbsActivityCenterGoodsService tbsActivityCenterGoodsService; private TbsActivitySubjectService tbsActivitySubjectService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; @@ -173,9 +174,10 @@ public class TbsBudgetApplicationService { List hisBudgetCostItemList = tbsBudgetCostItemService.listByScheduleItemBudgetIds(scheduleItemBudgetIds,costApplyId); Map> hisCostGroupByItemBudget = hisBudgetCostItemList.stream() .collect(Collectors.groupingBy(TbsBudgetCostItem::getScheduleItemBudgetId)); - // 构建预算费用占用明细 + //补充添加 科目与成本中心拦截 List centerGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); - //补充添加科目拦截 + List activityCenterList = tbsActivityCenterService.listByCostApplyId(costApplyId); + List centerIds = activityCenterList.stream().map(TbsActivityCenter::getCenterId).collect(Collectors.toList()); List subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); // 加载所有条件 List budgetList; @@ -183,6 +185,7 @@ public class TbsBudgetApplicationService { LambdaQueryWrapper budgetLqw = new LambdaQueryWrapper<>(); budgetLqw.in(TbsBudget::getId,budgetIds); budgetLqw.in(TbsBudget::getSubjectId,subjectIds); + budgetLqw.in(TbsBudget::getCenterId,centerIds); budgetLqw.eq(TbsBudget::getBudgetState,1); budgetList = tbsBudgetMapper.selectList(budgetLqw); }else { @@ -203,7 +206,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,activitySubjects); + noConditionBudgetList, counterMap, actMatchList, actUnMatchList,activityAllowBudgetIdMap,activitySubjects,activityCenterList); } List budgetMatchList = actMatchList.stream() .map(TbsActivityCenterGoods::toBudgetCostItem).collect(Collectors.toList()); @@ -408,7 +411,8 @@ public class TbsBudgetApplicationService { final List actMatchList, final List actUnMatchList, final Map> activityAllowBudgetIdMap, - List activitySubjects) { + final List activitySubjects, + final List activityCenterList) { //过滤满全条件的预算 List allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId()); List budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList()); @@ -432,8 +436,20 @@ public class TbsBudgetApplicationService { break; } } + //拦截非当前成本中心 + String centerId = null; + String centerType = null; + for (TbsActivityCenter activityCenter : activityCenterList) { + if(activity.getId().equals(activityCenter.getActivityId())){ + centerId = activityCenter.getCenterId(); + centerType = activityCenter.getCenterType(); + break; + } + } for (TbsBudget budget : currentItemBudgetList) { - if(!budget.getSubjectId().equals(subjectId)){ + if(!budget.getSubjectId().equals(subjectId) || + !budget.getCenterId().equals(centerId) || + !budget.getCenterType().equals(centerType) ){ continue; } List scheduleItemBudgets = activity.getScheduleItemBudgetList(); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterServiceImpl.java index 705d43a9..84d4def8 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterServiceImpl.java @@ -27,5 +27,12 @@ public class TbsActivityCenterServiceImpl extends ServiceImpl listByCostApplyId(Long costApplyId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityCenter::getCostApplyId,costApplyId); + return this.list(lqw); + } }