diff --git a/src/main/java/com/qs/serve/modules/qms/controller/QmsCategoryController.java b/src/main/java/com/qs/serve/modules/qms/controller/QmsCategoryController.java index 00630545..fe121634 100644 --- a/src/main/java/com/qs/serve/modules/qms/controller/QmsCategoryController.java +++ b/src/main/java/com/qs/serve/modules/qms/controller/QmsCategoryController.java @@ -20,6 +20,7 @@ import java.util.List; /** * 问卷分类 + * @module 问卷 * @author YenHex * @since 2022-09-13 */ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 14a8ccd4..2970d1c0 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -217,8 +217,19 @@ public class TbsBudgetApplicationService { budgetList = new ArrayList<>(); } costSortWrapper.initializeBudget(budgetList); - List noConditionBudgetList = new ArrayList<>(); + //预算移除多余的项 + List scheduleItemListTmp = new ArrayList<>(); + for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemList) { + for (TbsBudget budget : budgetList) { + if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ + scheduleItemListTmp.add(scheduleItemBudget); + break; + } + } + } + scheduleItemList = scheduleItemListTmp; //加载预算条件和关联预算匹配,返回是否由无条件预算 + List noConditionBudgetList = new ArrayList<>(); boolean budgetNoCondition = this.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); //预算条件需包含活动条件, Map结构:活动id->满足的预算id列表 Map> activityAllowBudgetIdMap = this.buildActivityBudgetMap(activityList, budgetList, noConditionBudgetList); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index a3e7c507..28b53f7d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -318,10 +318,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl budgetLqw = new LambdaQueryWrapper<>(); budgetLqw.in(TbsBudget::getId,budgetIds); //默认为随货折让(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.eq(TbsBudget::getBudgetState,1); budgetList = tbsBudgetMapper.selectList(budgetLqw); }else { budgetList = new ArrayList<>(); } + //初始化预算 sortWrapper.initializeBudget(budgetList); - List noConditionBudgetList = new ArrayList<>(); + //预算移除多余的项 + List scheduleItemListTmp = new ArrayList<>(); + for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemList) { + for (TbsBudget budget : budgetList) { + if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ + scheduleItemListTmp.add(scheduleItemBudget); + break; + } + } + } + scheduleItemList = scheduleItemListTmp; + //加载预算条件和关联预算匹配,返回是否由无条件预算 + List noConditionBudgetList = new ArrayList<>(); boolean budgetNoCondition = budgetApplicationService.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); //预算条件需包含活动条件, Map结构:政策id->满足的预算id列表 Map> policyAllowBudgetIdMap = this.buildPolicyBudgetMap(policyItemList, budgetList, noConditionBudgetList,sortWrapper); @@ -455,7 +472,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ } //统计所有占用预算金额 - Map budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); + Map budgetItemAmountMap = new HashMap<>(); List budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); List scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); if(scheduleItemIdsFromScheduleItemList.size()>0&&budgetIdsFromScheduleItemList.size()>0){ @@ -463,7 +480,8 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ for (TbsScheduleItemBudget itemBudget : scheduleItemList) { boolean isNotMatch = true; 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(); isNotMatch = false; //因为已使用的预算费用为负数,需去相反数 @@ -652,9 +670,10 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ !budget.getCenterType().equals(centerType) ){ continue; } - if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){ - continue; - } + //TODO dev +// if(!subjectId.equals(budget.getSubjectId())&&!budget.getSubjectId().equals(0L)){ +// continue; +// } List scheduleItemBudgets = policyItem.getScheduleItemBudgetList(); for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { if(scheduleItemBudget.getBudgetId().equals(budget.getId())){ diff --git a/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml b/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml index e9690e23..c3a3774b 100644 --- a/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml +++ b/src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml @@ -57,7 +57,7 @@ #{selectId} - and `tbs_cost_apply`.id != #{applyId} + and (`tbs_cost_apply`.id != #{applyId} or `tbs_cost_apply`.id is not null) group by `tbs_budget_cost_item`.schedule_item_id @@ -86,8 +86,8 @@ #{selectId} - AND `tbs_cost_apply`.id != #{applyId} - AND opt_type != 0 + AND (`tbs_cost_apply`.id != #{applyId} or `tbs_cost_apply`.id is null) + AND opt_type in (1,4,5,6,11,12,13,14,15) group by `tbs_budget_log`.budget_id,`tbs_budget_log`.schedule_item_id @@ -105,7 +105,7 @@ #{selectId} - and `tzc_policy`.id !=#{policyId} + and (`tzc_policy`.id !=#{policyId} or `tzc_policy`.id is null) group by `tbs_budget_cost_item_policy`.schedule_item_id @@ -130,8 +130,8 @@ #{selectId} - AND `tzc_policy`.id != #{policyId} - AND opt_type != 0 + AND (`tzc_policy`.id != #{policyId} or `tzc_policy`.id is null) + AND opt_type in (1,4,5,6,11,12,13,14,15) group by `tbs_budget_log`.budget_id,`tbs_budget_log`.schedule_item_id