Browse Source

对比预算接口,debug

mssql
Yen 3 years ago
parent
commit
83ed1ad205
  1. 3
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java
  2. 24
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java

3
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetCostResult.java

@ -31,7 +31,4 @@ public class TbsBudgetCostResult {
/** 表数据封装 */
private TbsBudgetTableVo tableData;
/** 匹配状态:0-无匹配的预算;1-有匹配的预算 */
private Integer state;
}

24
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java

@ -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:排序规则:优先为时间条件,其次匹配品牌条件
//按品类条件,提取可用预算(列表已按小维度到大维度排列)

Loading…
Cancel
Save