From acca21a649d65e6250b03f921718f21c77e83e86 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 9 Jun 2023 09:59:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BF=E7=AD=96=E6=8E=92=E5=BA=8F=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=9B=E9=87=91=E9=A2=9D=E5=BC=82=E5=B8=B8=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/dto/TbsBudgetItemCostResult.java | 2 +- .../mapper/TbsScheduleItemBudgetMapper.java | 10 ++++-- .../service/TbsBudgetApplicationService.java | 18 +++++----- .../tzc/common/dto/PolicySortWrapper.java | 10 +----- .../common/util/PolicySortWrapperUtil.java | 10 ++---- .../impl/TzcPolicyApplicationServiceImpl.java | 34 +++++++++---------- 6 files changed, 38 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java index 5d060f81..f74e2475 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetItemCostResult.java @@ -34,7 +34,7 @@ public class TbsBudgetItemCostResult { /** 后台参数:录入时,考核期已用金额(含申请占用金额) */ private BigDecimal scheduleItemAmountUsed; - /** 后台参数:录入时,考核期申请占用金额 */ + /** 后台参数: */ private BigDecimal scheduleItemAmountApply; /** 后台参数:费用考核期项id */ diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java index 5b4dc604..56f72d67 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java @@ -15,7 +15,7 @@ import java.math.BigDecimal; public interface TbsScheduleItemBudgetMapper extends BaseMapper { /** - * 统计费用申请占用的预算金额 + * 统计费用申请时,已占用的预算金额 * @param scheduleItemBudgetId 预算考核期id * @param applyId 费用申请id(防止驳回后提交重复扣除) * @return @@ -27,6 +27,12 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper budgetSet4Subject = new HashSet<>(); - /** - * 没有科目的预算id - */ - Set budgetSet4NoSubject = new HashSet<>(); /** * 有条件的预算id @@ -82,11 +78,7 @@ public class PolicySortWrapper { public void initializeBudget(List budgetList){ if(CollectionUtil.isNotEmpty(budgetList)){ for (TbsBudget budget : budgetList) { - if(budget.getSubjectId()==null||budget.getSubjectId().equals(0L)){ - budgetSet4NoSubject.add(budget.getId()); - }else { - budgetSet4Subject.add(budget.getId()); - } + budgetSet4Subject.add(budget.getId()); if(budget.getConditionFlag()==null||budget.getConditionFlag().equals(0)){ budgetSet4NoCondition.add(budget.getId()); }else { diff --git a/src/main/java/com/qs/serve/modules/tzc/common/util/PolicySortWrapperUtil.java b/src/main/java/com/qs/serve/modules/tzc/common/util/PolicySortWrapperUtil.java index 1d677e60..aee5eade 100644 --- a/src/main/java/com/qs/serve/modules/tzc/common/util/PolicySortWrapperUtil.java +++ b/src/main/java/com/qs/serve/modules/tzc/common/util/PolicySortWrapperUtil.java @@ -31,22 +31,16 @@ public class PolicySortWrapperUtil { //3.时间区间内,区间长度取最短 //3.时间区间内,区间长度相同,取最近结束时间 List tmpList4Subject = new ArrayList<>(); - List tmpList4NotSubject = new ArrayList<>(); for (TbsScheduleItemBudget scheduleItemBudget : list) { Long budgetId = scheduleItemBudget.getBudgetId(); if(wrapper.getBudgetSet4Subject().contains(budgetId)){ tmpList4Subject.add(scheduleItemBudget); - }else{ - tmpList4NotSubject.add(scheduleItemBudget); } } - log.debug("政策项【{}】匹配有科目预算数:{},无科目预算:{}",policyItem.getPolicyItemCode() ,tmpList4Subject.size() , tmpList4NotSubject.size()); + log.debug("政策项【{}】匹配有科目预算数:{}",policyItem.getPolicyItemCode() ,tmpList4Subject.size() ); if(CollectionUtil.isNotEmpty(tmpList4Subject)){ PolicySortWrapperUtil.sort4Condition(policyItem,tmpList4Subject,resultSortList,wrapper); } - if(CollectionUtil.isNotEmpty(tmpList4NotSubject)){ - PolicySortWrapperUtil.sort4Condition(policyItem,tmpList4NotSubject,resultSortList,wrapper); - } } if(resultSortList.size()!=list.size()){ log.error("排序有误"); @@ -73,7 +67,7 @@ public class PolicySortWrapperUtil { tmpList4NoCondition.add(scheduleItemBudget); } } - log.debug("活动【{}】匹配有科目预算数:{},无科目预算:{}",policyItem.getPolicyItemCode() ,tmpList4Condition.size() , tmpList4NoCondition.size()); + log.debug("活动【{}】匹配有条件预算数:{},无条件预算:{}",policyItem.getPolicyItemCode() ,tmpList4Condition.size() , tmpList4NoCondition.size()); if(CollectionUtil.isNotEmpty(tmpList4Condition)){ PolicySortWrapperUtil.sort4GoodsCondition(policyItem,tmpList4Condition,result,wrapper); } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index 03b372db..3ed23e7f 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -369,14 +369,11 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ //所有满足条件的考核期,用于加载历史核销费用,并设置不满足时间条件的预算 List scheduleItemList = this.loadScheduleBudgetAndSetting(policyItemList, budgetIds, noBudgetPolicyIds,sortWrapper); List centerIds = policyItemList.stream().map(TzcPolicyItem::getCenterId).collect(Collectors.toList()); - //默认为随货折让 - //List subjectIds = policyItemList.stream().map(TzcPolicyItem::getSubjectId).distinct().collect(Collectors.toList()); List budgetList; if(budgetIds.size()>0){ LambdaQueryWrapper budgetLqw = new LambdaQueryWrapper<>(); budgetLqw.in(TbsBudget::getId,budgetIds); //默认为随货折让(FYMC05) - //budgetLqw.and(qw->qw.eq(TbsBudget::getSubjectId,0).or(qw2->qw2.in(TbsBudget::getSubjectId,subjectIds))); budgetLqw.eq(TbsBudget::getSubjectCode,"FYMC05"); budgetLqw.in(TbsBudget::getCenterId,centerIds); budgetLqw.eq(TbsBudget::getBudgetState,1); @@ -396,26 +393,26 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ } //统计所有占用预算金额 Map budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); - //统计费用申请占用金额 + //统计费用申请占用金额(录入时,考核期申请占用金额) Map budgetItemApplyAmountMap = new HashMap<>(scheduleItemList.size()); for (TbsScheduleItemBudget itemBudget : scheduleItemList) { - BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),0L); - if(budgetItemApplyAmount==null){ - budgetItemApplyAmount = BigDecimal.ZERO; - } - BigDecimal budgetItemApplyAmount2 = tbsScheduleItemBudgetMapper.totalPolicyAmount(itemBudget.getId(), policyId); - if(budgetItemApplyAmount2!=null){ - budgetItemApplyAmount.add(budgetItemApplyAmount2); - } +// BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),0L); +// if(budgetItemApplyAmount==null){ +// budgetItemApplyAmount = BigDecimal.ZERO; +// } + BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalPolicyAmount(itemBudget.getId(), policyId); +// if(budgetItemApplyAmount2!=null){ +// budgetItemApplyAmount.add(budgetItemApplyAmount2); +// } budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount); BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmountByPolicyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),policyId); //因为结果为负数,需去相反数 budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); //添加费用占用情况 - BigDecimal budgetItemCostAmount = tbsScheduleItemBudgetMapper.totalCostAmountByApplyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),0L); - if(budgetItemCostAmount!=null){ - budgetItemAmount = budgetItemAmount.add(budgetItemCostAmount.negate()); - } +// BigDecimal budgetItemCostAmount = tbsScheduleItemBudgetMapper.totalCostAmountByApplyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),0L); +// if(budgetItemCostAmount!=null){ +// budgetItemAmount = budgetItemAmount.add(budgetItemCostAmount.negate()); +// } budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); } //统计当前活动前置项占用预算 @@ -753,6 +750,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ budgetIdsOfActivity.addAll(noConditionBudgetList.stream().map(TbsBudget::getId).collect(Collectors.toList())); } List policyGoodsList = tzcPolicyGoodsService.listByItemId(policyItemId); + List poItemMathConList = new ArrayList<>(); for (TbsBudget budget : budgetList) { if(budget.getConditionFlag().equals(1)){ List budgetConditionList = budget.getBudgetConditionList(); @@ -761,6 +759,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ boolean matchGoods = false; for (TbsBudgetCondition budgetCondition : budgetConditionList) { if(policyGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){ + poItemMathConList.add(budgetCondition); matchGoods = true; break; } @@ -770,6 +769,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ break; } } + //匹配的 if(!hasNoMatch){ List budgetIds = activityAllowBudgetIdMap.get(policyItemId); if(budgetIds==null){ @@ -777,7 +777,6 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ } budgetIds.add(budget.getId()); budgetIds.addAll(budgetIdsOfActivity); - sortWrapper.putPolicyItemCondition(policyItemId, budgetConditionList); activityAllowBudgetIdMap.put(policyItemId,budgetIds); } }else { @@ -790,6 +789,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ activityAllowBudgetIdMap.put(policyItemId,budgetIds); } } + sortWrapper.putPolicyItemCondition(policyItemId, poItemMathConList); } return activityAllowBudgetIdMap; }