Browse Source

修复预算使用情况统计异常

mssql
Yen 3 years ago
parent
commit
f464b2019d
  1. 18
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

18
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -203,7 +203,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);
noConditionBudgetList, counterMap, actMatchList, actUnMatchList,activityAllowBudgetIdMap,activitySubjects);
}
List<TbsBudgetCostItem> 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<Long, BigDecimal> counterMap,
final List<TbsActivityCenterGoods> actMatchList,
final List<TbsActivityCenterGoods> actUnMatchList,
final Map<Long,List<Long>> activityAllowBudgetIdMap) {
List<TbsActivitySubject> activitySubjects;
final Map<Long,List<Long>> activityAllowBudgetIdMap,
List<TbsActivitySubject> activitySubjects) {
//过滤满全条件的预算
List<Long> allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId());
List<TbsBudget> 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<TbsScheduleItemBudget> scheduleItemBudgets = activity.getScheduleItemBudgetList();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) {
if(scheduleItemBudget.getBudgetId().equals(budget.getId())){

Loading…
Cancel
Save