Browse Source

修复政策预览

contract
Yen 2 years ago
parent
commit
5512163cd6
  1. 7
      src/main/java/com/qs/serve/common/util/IdUtil.java
  2. 53
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java
  3. 3
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java
  4. 3
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java

7
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); 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) { public static String genCode(int len) {
int max = new Double(Math.pow(10, len)).intValue() - 1; int max = new Double(Math.pow(10, len)).intValue() - 1;
Random random = new Random(); Random random = new Random();

53
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java

@ -112,6 +112,9 @@ public class TzcPolicyApplication {
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
//TODO 需要重新检查这里 //TODO 需要重新检查这里
BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),policyId); BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),policyId);
if (budgetItemApplyAmount==null){
budgetItemApplyAmount = BigDecimal.ZERO;
}
budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount); budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount);
BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmount(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),policyId); BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmount(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),policyId);
//因为结果为负数,需去相反数 //因为结果为负数,需去相反数
@ -215,7 +218,7 @@ public class TzcPolicyApplication {
for (TbsBudgetCostItemPolicy costItem : allBudgetItem) { for (TbsBudgetCostItemPolicy costItem : allBudgetItem) {
TbsBudgetTableVo.TableValue tableValue = new TbsBudgetTableVo.TableValue(); TbsBudgetTableVo.TableValue tableValue = new TbsBudgetTableVo.TableValue();
tableValue.setTopId(costItem.getScheduleItemBudgetId()+""); tableValue.setTopId(costItem.getScheduleItemBudgetId()+"");
tableValue.setLeftId(costItem.getPolicyId()+""); tableValue.setLeftId(costItem.getPolicyItemId()+"");
tableValue.setValue(costItem.getPolicyItemAmount()); tableValue.setValue(costItem.getPolicyItemAmount());
tableValueList.add(tableValue); tableValueList.add(tableValue);
} }
@ -254,6 +257,15 @@ public class TzcPolicyApplication {
budgetItemCostResult.setPolicyItem(policyItem); budgetItemCostResult.setPolicyItem(policyItem);
//过滤满全条件的预算 //过滤满全条件的预算
List<Long> allowBudgetIds = allowBudgetIdMap.get(policyItem.getId()); List<Long> 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:排序规则:优先为时间条件,其次匹配品牌条件 //PS:排序规则:优先为时间条件,其次匹配品牌条件
List<TbsBudget> budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList()); List<TbsBudget> budgetList = allBudgetList.stream().filter(obj->allowBudgetIds.contains(obj.getId())).collect(Collectors.toList());
//按品类条件,提取可用预算(列表已按小维度到大维度排列) //按品类条件,提取可用预算(列表已按小维度到大维度排列)
@ -370,32 +382,25 @@ public class TzcPolicyApplication {
@NotNull @NotNull
public List<TbsBudget> filterMatchGoodsCondition(List<TbsBudget> budgetList,List<String> levelPathIdsList) { public List<TbsBudget> filterMatchGoodsCondition(List<TbsBudget> budgetList,List<String> levelPathIdsList) {
List<TbsBudget> currentItemBudgetList = new ArrayList<>(); List<TbsBudget> currentItemBudgetList = new ArrayList<>();
for (TbsBudget budget : budgetList) { for (String levelPath : levelPathIdsList) {
if(budget.getConditionFlag().equals(1)){ Set<String> levelPathSet = new LinkedHashSet<>();
List<TbsBudgetCondition> budgetConditionListByBudget = budget.getBudgetConditionList(); levelPathSet.add(levelPath);
boolean anyUnMatch = true; TbsBudgetCostUtil.buildPaths(levelPath,levelPathSet);
for (String levelPath : levelPathIdsList) { for (TbsBudget budget : budgetList) {
boolean match = false; if(budget.getConditionFlag().equals(1)){
Set<String> levelPathSet = new LinkedHashSet<>(); boolean isMatch = false;
levelPathSet.add(levelPath); List<TbsBudgetCondition> budgetConditionListByBudget = budget.getBudgetConditionList();
TbsBudgetCostUtil.buildPaths(levelPath,levelPathSet); for (TbsBudgetCondition budgetCondition : budgetConditionListByBudget) {
for (String conditionString : levelPathSet) { if(isMatch){break;}
if(!match){ for (String conditionString : levelPathSet) {
for (TbsBudgetCondition budgetCondition : budgetConditionListByBudget) { if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){
if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){ isMatch = true;
match = true; currentItemBudgetList.add(budget);
break; break;
}
} }
} }
} }
if(!match){
anyUnMatch = false;
break;
}
}
if(!anyUnMatch){
currentItemBudgetList.add(budget);
} }
} }
} }

3
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java

@ -59,8 +59,7 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl<TzcPolicyItemMapper,Tz
public List<TzcPolicyItem> listByPolicyId(Long id) { public List<TzcPolicyItem> listByPolicyId(Long id) {
LambdaQueryWrapper<TzcPolicyItem> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TzcPolicyItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(TzcPolicyItem::getPolicyId,id); lqw.eq(TzcPolicyItem::getPolicyId,id);
List<TzcPolicyItem> policyItemList = this.list(lqw); return this.list(lqw);
return policyItemList;
} }
@Override @Override

3
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.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.IdUtil; 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.BmsSubject;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSubjectService;
@ -52,7 +53,7 @@ public class TzcPolicyServiceImpl extends ServiceImpl<TzcPolicyMapper,TzcPolicy>
} }
}else { }else {
tzcPolicy = new TzcPolicy(); tzcPolicy = new TzcPolicy();
tzcPolicy.setPolicyCode(IdUtil.dateTimeStampId()+""); tzcPolicy.setPolicyCode(StringUtils.genShortId()+"");
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
tzcPolicy.setUserId(sysUser.getId()); tzcPolicy.setUserId(sysUser.getId());
tzcPolicy.setUserCode(sysUser.getCode()); tzcPolicy.setUserCode(sysUser.getCode());

Loading…
Cancel
Save