From 17aadd0238aad0417cebdae4976207c9c88d5809 Mon Sep 17 00:00:00 2001 From: Yen Date: Sat, 10 Jun 2023 15:26:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=94=BF=E7=AD=96=E5=88=B0?= =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/TbsBudgetLogBuildUtil.java | 19 ++++++++++++++++--- .../modules/tzc/entity/TzcPolicyItem.java | 5 +++++ .../impl/TzcPolicyApplicationServiceImpl.java | 15 +++++++++++---- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java b/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java index 716a200b..1ff00f40 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java @@ -8,7 +8,7 @@ import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import java.math.BigDecimal; - +import java.util.List; /** * @author YenHex * @since 2023/5/25 @@ -120,9 +120,7 @@ public class TbsBudgetLogBuildUtil { budgetLog.setOptUserId(sysUser.getId()); budgetLog.setOptUserCode(sysUser.getCode()); budgetLog.setOptUserName(sysUser.getName()); - budgetLog.setAmount(buildAmount(amount,optType)); - budgetLog.setScheduleId(item.getScheduleId()); budgetLog.setScheduleItemId(item.getScheduleItemId()); budgetLog.setScheduleItemBudgetId(item.getId()); @@ -142,6 +140,21 @@ public class TbsBudgetLogBuildUtil { budgetLog.setPolicyId(tzcPolicy.getId()); budgetLog.setPolicyCode(tzcPolicy.getPolicyCode()); budgetLog.setPolicyTitle(tzcPolicy.getTitle()); + budgetLog.setPolicyItemId(item.getPolicyItemId()); + budgetLog.setPolicyItemCode(item.getPolicyItemCode()); + List usedConditionList = policyItem.getUsedConditionList(); + if(usedConditionList!=null&&usedConditionList.size()>0){ + for (TbsBudgetCondition usedCondition : usedConditionList) { + if(usedCondition.getBudgetId().equals(budget.getId())){ + budgetLog.setTargetType(usedCondition.getTargetType()); + budgetLog.setTargetName(usedCondition.getTargetName()); + budgetLog.setTargetCode(usedCondition.getTargetCode()); + budgetLog.setTargetLevelPathIds(usedCondition.getTargetLevelPathIds()); + budgetLog.setTargetLevelPathNames(usedCondition.getTargetLevelPathNames()); + break; + } + } + } return budgetLog; } diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java index 78e919fe..37055d78 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -185,6 +186,10 @@ public class TzcPolicyItem implements Serializable { @TableField(exist = false) List scheduleItemBudgetList; + /** 后端参数,命中预算的条件 */ + @TableField(exist = false) + List usedConditionList; + public void initSetNull(){ this.setId(null); this.setCreateBy(null); 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 c1ba3105..c78491f0 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 @@ -143,6 +143,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ public void commitPolicy(Long policyId){ seeYonService.testConnection(); TzcPolicy tzcPolicy = tzcPolicyService.getById(policyId); + Integer tzcPolicyStatus = tzcPolicy.getPolicyStatus(); if(!tzcPolicy.allowEditFlag()){ Assert.throwEx("操作失败,政策状态不支持"); } @@ -211,8 +212,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ tbsBudgetCostItemPolicyService.saveBatch(allBudgetItem); //保存预算使用日志 List budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); - if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){ - //todo 待测试,没能触发到 + if(tzcPolicyStatus.equals(TzcPolicyStatus.Status_0_UnCommit)){ budgetLogService.saveBatch(budgetLogList); }else { //排除历史记录 @@ -566,7 +566,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ //按品类条件,提取可用预算(列表已按小维度到大维度排列) List policyGoodsList = tzcPolicyGoodsService.listByItemId(policyItem.getId()); List levelPathIdsList = policyGoodsList.stream().map(TzcPolicyGoods::getTargetLevelPathIds).collect(Collectors.toList()); - List currentItemBudgetList = this.filterMatchGoodsCondition(budgetList, levelPathIdsList); + List currentItemBudgetList = this.filterMatchGoodsCondition(policyItem,budgetList, levelPathIdsList); //关联无条件预算 currentItemBudgetList.addAll(noConditionBudgetList); //提取可用预算的考核期 @@ -672,12 +672,13 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ /** * 按品类条件,提取可用预算 + * @param policyItem 用于绑定target信息保存到budeget_log * @param budgetList 预算(已关联参数_条件列表) * @param levelPathIdsList * @return */ @NotNull - public List filterMatchGoodsCondition(List budgetList,List levelPathIdsList) { + public List filterMatchGoodsCondition(TzcPolicyItem policyItem,List budgetList,List levelPathIdsList) { List currentItemBudgetList = new ArrayList<>(); for (String levelPath : levelPathIdsList) { Set levelPathSet = new LinkedHashSet<>(); @@ -693,6 +694,12 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){ isMatch = true; currentItemBudgetList.add(budget); + List usedConditionList = policyItem.getUsedConditionList(); + if(usedConditionList==null){ + usedConditionList = new ArrayList<>(); + } + usedConditionList.add(budgetCondition); + policyItem.setUsedConditionList(usedConditionList); break; } }