|
|
@ -64,11 +64,6 @@ public class TbsActivityApplicationService { |
|
|
|
if(budgetIds.size()<1&&throwEx){ |
|
|
|
Assert.throwEx("无匹配的预算"); |
|
|
|
} |
|
|
|
if(budgetIds.size()<1){ |
|
|
|
TbsBudgetCostResult result = new TbsBudgetCostResult(); |
|
|
|
result.setState(0); |
|
|
|
return result; |
|
|
|
} |
|
|
|
//加载预算占用历史
|
|
|
|
List<Long> scheduleItemBudgetIds = scheduleItemList.stream().map(TbsScheduleItemBudget::getId).collect(Collectors.toList()); |
|
|
|
List<TbsBudgetCostItem> hisBudgetCostItemList = tbsBudgetCostItemService.listByScheduleItemBudgetIds(scheduleItemBudgetIds,null); |
|
|
@ -85,11 +80,13 @@ public class TbsActivityApplicationService { |
|
|
|
List<TbsActivityCenterGoods> activityCenterGoodsList = new ArrayList<>(); |
|
|
|
activityService.initCenterGoods(activityBo,subjectMap,centerDtoMap,checkAmountMap,activityGoodsList,activityCenterGoodsList,null,new TbsActivity(),supplier); |
|
|
|
// 加载所有条件
|
|
|
|
LambdaQueryWrapper<TbsBudget> budgetLqw = new LambdaQueryWrapper<>(); |
|
|
|
budgetLqw.in(TbsBudget::getId,budgetIds); |
|
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
|
List<TbsBudget> budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
|
|
|
|
|
List<TbsBudget> budgetList = new ArrayList<>(); |
|
|
|
if(budgetIds.size()>0){ |
|
|
|
LambdaQueryWrapper<TbsBudget> budgetLqw = new LambdaQueryWrapper<>(); |
|
|
|
budgetLqw.in(TbsBudget::getId,budgetIds); |
|
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
|
budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
|
} |
|
|
|
List<TbsBudget> noConditionBudgetList = new ArrayList<>(); |
|
|
|
boolean budgetNoCondition = this.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); |
|
|
|
//预算条件需包含活动条件, Map结构:活动id->满足的预算id列表
|
|
|
@ -110,7 +107,6 @@ public class TbsActivityApplicationService { |
|
|
|
List<TbsBudgetCostItem> budgetUnMatchList = actUnMatchList.stream() |
|
|
|
.map(TbsActivityCenterGoods::toBudgetCostItem).collect(Collectors.toList()); |
|
|
|
TbsBudgetCostResult result = new TbsBudgetCostResult(); |
|
|
|
result.setState(1); |
|
|
|
result.setBudgetMatchList(budgetMatchList); |
|
|
|
result.setBudgetUnMatchList(budgetUnMatchList); |
|
|
|
return result; |
|
|
@ -172,7 +168,7 @@ public class TbsActivityApplicationService { |
|
|
|
* @param counterMap 历史预算占用 |
|
|
|
* @param actMatchList 匹配预算占用的费用(含超支预算) |
|
|
|
* @param actUnMatchList 没有匹配预算的费用 |
|
|
|
* @param activityAllowBudgetIds 满足当前活动项的费用idMap |
|
|
|
* @param allowBudgetIds 满足当前活动项的费用idMap |
|
|
|
*/ |
|
|
|
private void matchActivityMain(TbsActivityCenterGoods activityCostItem, |
|
|
|
Boolean throwEx, |
|
|
@ -184,9 +180,7 @@ public class TbsActivityApplicationService { |
|
|
|
Map<Long, BigDecimal> counterMap, |
|
|
|
final List<TbsActivityCenterGoods> actMatchList, |
|
|
|
final List<TbsActivityCenterGoods> actUnMatchList, |
|
|
|
final List<Long> activityAllowBudgetIds) { |
|
|
|
//过滤满全条件的预算
|
|
|
|
List<Long> allowBudgetIds = activityAllowBudgetIds; |
|
|
|
final List<Long> allowBudgetIds) { |
|
|
|
List<TbsBudget> budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList()); |
|
|
|
//PS:排序规则:优先为时间条件,其次匹配品牌条件
|
|
|
|
//按品类条件,提取可用预算(列表已按小维度到大维度排列)
|
|
|
|