|
|
@ -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<TbsBudgetCostItem> hisBudgetCostItemList = tbsBudgetCostItemService.listByScheduleItemBudgetIds(scheduleItemBudgetIds,costApplyId); |
|
|
|
Map<Long,List<TbsBudgetCostItem>> hisCostGroupByItemBudget = hisBudgetCostItemList.stream() |
|
|
|
.collect(Collectors.groupingBy(TbsBudgetCostItem::getScheduleItemBudgetId)); |
|
|
|
// 构建预算费用占用明细
|
|
|
|
//补充添加 科目与成本中心拦截
|
|
|
|
List<TbsActivityCenterGoods> centerGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); |
|
|
|
//补充添加科目拦截
|
|
|
|
List<TbsActivityCenter> activityCenterList = tbsActivityCenterService.listByCostApplyId(costApplyId); |
|
|
|
List<String> centerIds = activityCenterList.stream().map(TbsActivityCenter::getCenterId).collect(Collectors.toList()); |
|
|
|
List<Long> subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); |
|
|
|
// 加载所有条件
|
|
|
|
List<TbsBudget> budgetList; |
|
|
@ -183,6 +185,7 @@ public class TbsBudgetApplicationService { |
|
|
|
LambdaQueryWrapper<TbsBudget> 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<TbsActivityCenterGoods> 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<TbsBudgetCostItem> budgetMatchList = actMatchList.stream() |
|
|
|
.map(TbsActivityCenterGoods::toBudgetCostItem).collect(Collectors.toList()); |
|
|
@ -408,7 +411,8 @@ public class TbsBudgetApplicationService { |
|
|
|
final List<TbsActivityCenterGoods> actMatchList, |
|
|
|
final List<TbsActivityCenterGoods> actUnMatchList, |
|
|
|
final Map<Long,List<Long>> activityAllowBudgetIdMap, |
|
|
|
List<TbsActivitySubject> activitySubjects) { |
|
|
|
final List<TbsActivitySubject> activitySubjects, |
|
|
|
final List<TbsActivityCenter> activityCenterList) { |
|
|
|
//过滤满全条件的预算
|
|
|
|
List<Long> allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId()); |
|
|
|
List<TbsBudget> 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<TbsScheduleItemBudget> scheduleItemBudgets = activity.getScheduleItemBudgetList(); |
|
|
|