diff --git a/src/main/java/com/qs/serve/common/util/IdUtil.java b/src/main/java/com/qs/serve/common/util/IdUtil.java index 70594f62..96500793 100644 --- a/src/main/java/com/qs/serve/common/util/IdUtil.java +++ b/src/main/java/com/qs/serve/common/util/IdUtil.java @@ -44,6 +44,13 @@ public class IdUtil extends cn.hutool.core.util.IdUtil { return localTime + String.format("%03d", end2); } + public static String dateTimeId() { + LocalDateTime localDateTime = LocalDateTime.now(); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + String localTime = df.format(localDateTime); + return localTime; + } + public static String genCode(int len) { int max = new Double(Math.pow(10, len)).intValue() - 1; Random random = new Random(); diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java index e509311e..33e62fd5 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java @@ -112,6 +112,9 @@ public class TzcPolicyApplication { for (TbsScheduleItemBudget itemBudget : scheduleItemList) { //TODO 需要重新检查这里 BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),policyId); + if (budgetItemApplyAmount==null){ + budgetItemApplyAmount = BigDecimal.ZERO; + } budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount); BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmount(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),policyId); //因为结果为负数,需去相反数 @@ -215,7 +218,7 @@ public class TzcPolicyApplication { for (TbsBudgetCostItemPolicy costItem : allBudgetItem) { TbsBudgetTableVo.TableValue tableValue = new TbsBudgetTableVo.TableValue(); tableValue.setTopId(costItem.getScheduleItemBudgetId()+""); - tableValue.setLeftId(costItem.getPolicyId()+""); + tableValue.setLeftId(costItem.getPolicyItemId()+""); tableValue.setValue(costItem.getPolicyItemAmount()); tableValueList.add(tableValue); } @@ -254,6 +257,15 @@ public class TzcPolicyApplication { budgetItemCostResult.setPolicyItem(policyItem); //过滤满全条件的预算 List allowBudgetIds = allowBudgetIdMap.get(policyItem.getId()); + if(CollectionUtil.isEmpty(allowBudgetIds)){ + budgetItemCostResult.setBudgetId(0L); + budgetItemCostResult.setScheduleId(0L); + budgetItemCostResult.setScheduleItemId(0L); + budgetItemCostResult.setScheduleItemBudgetId(0L); + budgetItemCostResult.setScheduleItemName("无"); + actUnMatchList.add(budgetItemCostResult); + return; + } //PS:排序规则:优先为时间条件,其次匹配品牌条件 List budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList()); //按品类条件,提取可用预算(列表已按小维度到大维度排列) @@ -370,32 +382,25 @@ public class TzcPolicyApplication { @NotNull public List filterMatchGoodsCondition(List budgetList,List levelPathIdsList) { List currentItemBudgetList = new ArrayList<>(); - for (TbsBudget budget : budgetList) { - if(budget.getConditionFlag().equals(1)){ - List budgetConditionListByBudget = budget.getBudgetConditionList(); - boolean anyUnMatch = true; - for (String levelPath : levelPathIdsList) { - boolean match = false; - Set levelPathSet = new LinkedHashSet<>(); - levelPathSet.add(levelPath); - TbsBudgetCostUtil.buildPaths(levelPath,levelPathSet); - for (String conditionString : levelPathSet) { - if(!match){ - for (TbsBudgetCondition budgetCondition : budgetConditionListByBudget) { - if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){ - match = true; - break; - } + for (String levelPath : levelPathIdsList) { + Set levelPathSet = new LinkedHashSet<>(); + levelPathSet.add(levelPath); + TbsBudgetCostUtil.buildPaths(levelPath,levelPathSet); + for (TbsBudget budget : budgetList) { + if(budget.getConditionFlag().equals(1)){ + boolean isMatch = false; + List budgetConditionListByBudget = budget.getBudgetConditionList(); + for (TbsBudgetCondition budgetCondition : budgetConditionListByBudget) { + if(isMatch){break;} + for (String conditionString : levelPathSet) { + if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){ + isMatch = true; + currentItemBudgetList.add(budget); + break; } } + } - if(!match){ - anyUnMatch = false; - break; - } - } - if(!anyUnMatch){ - currentItemBudgetList.add(budget); } } } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java index e9396b92..71339752 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java @@ -59,8 +59,7 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl listByPolicyId(Long id) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TzcPolicyItem::getPolicyId,id); - List policyItemList = this.list(lqw); - return policyItemList; + return this.list(lqw); } @Override diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java index cb860961..856b66b9 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.IdUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSubjectService; @@ -52,7 +53,7 @@ public class TzcPolicyServiceImpl extends ServiceImpl } }else { tzcPolicy = new TzcPolicy(); - tzcPolicy.setPolicyCode(IdUtil.dateTimeStampId()+""); + tzcPolicy.setPolicyCode(StringUtils.genShortId()+""); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); tzcPolicy.setUserId(sysUser.getId()); tzcPolicy.setUserCode(sysUser.getCode());