|
@ -415,16 +415,33 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
LambdaQueryWrapper<TbsBudget> budgetLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<TbsBudget> budgetLqw = new LambdaQueryWrapper<>(); |
|
|
budgetLqw.in(TbsBudget::getId,budgetIds); |
|
|
budgetLqw.in(TbsBudget::getId,budgetIds); |
|
|
//默认为随货折让(FYMC05)
|
|
|
//默认为随货折让(FYMC05)
|
|
|
//budgetLqw.eq(TbsBudget::getSubjectCode,"FYMC05");
|
|
|
budgetLqw.and( |
|
|
|
|
|
qw->qw.in(TbsBudget::getSubjectCode,"FYMC05") |
|
|
|
|
|
.or() |
|
|
|
|
|
.eq(TbsBudget::getSubjectId,0) |
|
|
|
|
|
); |
|
|
budgetLqw.in(TbsBudget::getCenterId,centerIds); |
|
|
budgetLqw.in(TbsBudget::getCenterId,centerIds); |
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
budgetLqw.eq(TbsBudget::getBudgetState,1); |
|
|
budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
budgetList = tbsBudgetMapper.selectList(budgetLqw); |
|
|
}else { |
|
|
}else { |
|
|
budgetList = new ArrayList<>(); |
|
|
budgetList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
|
|
|
//初始化预算
|
|
|
sortWrapper.initializeBudget(budgetList); |
|
|
sortWrapper.initializeBudget(budgetList); |
|
|
List<TbsBudget> noConditionBudgetList = new ArrayList<>(); |
|
|
//预算移除多余的项
|
|
|
|
|
|
List<TbsScheduleItemBudget> scheduleItemListTmp = new ArrayList<>(); |
|
|
|
|
|
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemList) { |
|
|
|
|
|
for (TbsBudget budget : budgetList) { |
|
|
|
|
|
if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ |
|
|
|
|
|
scheduleItemListTmp.add(scheduleItemBudget); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
scheduleItemList = scheduleItemListTmp; |
|
|
|
|
|
|
|
|
//加载预算条件和关联预算匹配,返回是否由无条件预算
|
|
|
//加载预算条件和关联预算匹配,返回是否由无条件预算
|
|
|
|
|
|
List<TbsBudget> noConditionBudgetList = new ArrayList<>(); |
|
|
boolean budgetNoCondition = budgetApplicationService.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); |
|
|
boolean budgetNoCondition = budgetApplicationService.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); |
|
|
//预算条件需包含活动条件, Map结构:政策id->满足的预算id列表
|
|
|
//预算条件需包含活动条件, Map结构:政策id->满足的预算id列表
|
|
|
Map<Long,List<Long>> policyAllowBudgetIdMap = this.buildPolicyBudgetMap(policyItemList, budgetList, noConditionBudgetList,sortWrapper); |
|
|
Map<Long,List<Long>> policyAllowBudgetIdMap = this.buildPolicyBudgetMap(policyItemList, budgetList, noConditionBudgetList,sortWrapper); |
|
@ -455,7 +472,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//统计所有占用预算金额
|
|
|
//统计所有占用预算金额
|
|
|
Map<Long, BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); |
|
|
Map<Long, BigDecimal> budgetItemAmountMap = new HashMap<>(); |
|
|
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); |
|
|
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); |
|
|
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); |
|
|
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); |
|
|
if(scheduleItemIdsFromScheduleItemList.size()>0&&budgetIdsFromScheduleItemList.size()>0){ |
|
|
if(scheduleItemIdsFromScheduleItemList.size()>0&&budgetIdsFromScheduleItemList.size()>0){ |
|
@ -463,7 +480,8 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { |
|
|
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { |
|
|
boolean isNotMatch = true; |
|
|
boolean isNotMatch = true; |
|
|
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { |
|
|
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { |
|
|
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ |
|
|
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId()) |
|
|
|
|
|
&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ |
|
|
BigDecimal budgetItemAmount = logPreAmount.getAmount(); |
|
|
BigDecimal budgetItemAmount = logPreAmount.getAmount(); |
|
|
isNotMatch = false; |
|
|
isNotMatch = false; |
|
|
//因为已使用的预算费用为负数,需去相反数
|
|
|
//因为已使用的预算费用为负数,需去相反数
|
|
@ -652,9 +670,10 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ |
|
|
!budget.getCenterType().equals(centerType) ){ |
|
|
!budget.getCenterType().equals(centerType) ){ |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){ |
|
|
//TODO dev
|
|
|
continue; |
|
|
// if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){
|
|
|
} |
|
|
// continue;
|
|
|
|
|
|
// }
|
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = policyItem.getScheduleItemBudgetList(); |
|
|
List<TbsScheduleItemBudget> scheduleItemBudgets = policyItem.getScheduleItemBudgetList(); |
|
|
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { |
|
|
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { |
|
|
if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ |
|
|
if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ |
|
|