|
|
@ -223,14 +223,22 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC |
|
|
|
|
|
|
|
//记录费率参数
|
|
|
|
YtdQtdToOAVo ytdQtdToOAVo = birRoiRateService.buildYtdAndQtdData(tbsCostApply); |
|
|
|
data.put("ytdCusExpenseRate",ytdQtdToOAVo.getYtdCustomerPercent()); |
|
|
|
data.put("ytdEmpExpenseRate",ytdQtdToOAVo.getYtdUserPercent()); |
|
|
|
data.put("ytdAdminiExpenseRate",ytdQtdToOAVo.getYtdRegionPercent()); |
|
|
|
data.put("ytdSalesExpenseRate",ytdQtdToOAVo.getYtdRegion2Percent()); |
|
|
|
data.put("cusExpenseRate",ytdQtdToOAVo.getQtdCustomerPercent()); |
|
|
|
data.put("empExpenseRate",ytdQtdToOAVo.getQtdUserPercent()); |
|
|
|
data.put("salesExpenseRate",ytdQtdToOAVo.getQtdRegionPercent()); |
|
|
|
data.put("adminiExpenseRate",ytdQtdToOAVo.getQtdRegion2Percent()); |
|
|
|
// data.put("ytdCusExpenseRate",ytdQtdToOAVo.getYtdCustomerPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
|
|
|
|
// data.put("ytdEmpExpenseRate",ytdQtdToOAVo.getYtdUserPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getYtdUserPercent()));
|
|
|
|
// data.put("ytdAdminiExpenseRate",ytdQtdToOAVo.getYtdRegionPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getYtdRegionPercent()));
|
|
|
|
// data.put("ytdSalesExpenseRate",ytdQtdToOAVo.getYtdRegion2Percent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getYtdRegion2Percent()));
|
|
|
|
// data.put("cusExpenseRate",ytdQtdToOAVo.getQtdCustomerPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getQtdCustomerPercent()));
|
|
|
|
// data.put("empExpenseRate",ytdQtdToOAVo.getQtdUserPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getQtdUserPercent()));
|
|
|
|
// data.put("salesExpenseRate",ytdQtdToOAVo.getQtdRegionPercent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getQtdRegionPercent()));
|
|
|
|
// data.put("adminiExpenseRate",ytdQtdToOAVo.getQtdRegion2Percent()==null?
|
|
|
|
// BigDecimal.ZERO:BigDecimal.valueOf(ytdQtdToOAVo.getQtdRegion2Percent()));
|
|
|
|
|
|
|
|
//插入记录表前移除历史记录
|
|
|
|
tbsCostPercentMapper.delByCostApplyId(tbsCostApply.getId()); |
|
|
@ -284,16 +292,12 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC |
|
|
|
for (String subjectName : subjectNames) { |
|
|
|
subList.add(new TbsCostSubItem.Subject(subjectName)); |
|
|
|
} |
|
|
|
for (TbsActivityCenter activityCenter : tbsActivityCenters) { |
|
|
|
subList.add(new TbsCostSubItem.CostCenter(activityCenter.getCenterName(), |
|
|
|
activityCenter.getCenterType()+"_"+ |
|
|
|
activityCenter.getCenterId())); |
|
|
|
} |
|
|
|
//TODO 目标费率
|
|
|
|
|
|
|
|
//目标费率和成本中心统计
|
|
|
|
List<TbsBudgetCostItem> tbsBudgetCostItems = result.getBudgetMatchList(); |
|
|
|
List<Long> scheduleItemBudgetIds = tbsBudgetCostItems.stream().map(a->a.getScheduleItemBudgetId()).distinct().collect(Collectors.toList()); |
|
|
|
List<TbsScheduleItemBudget> tbsScheduleItemBudgets = tbsScheduleItemBudgetMapper.selectBatchIds(scheduleItemBudgetIds); |
|
|
|
for(TbsScheduleItemBudget tbsScheduleItemBudget : tbsScheduleItemBudgets){ |
|
|
|
/*for(TbsScheduleItemBudget tbsScheduleItemBudget : tbsScheduleItemBudgets){ |
|
|
|
subList.add( |
|
|
|
new TbsCostSubItem.Amount( |
|
|
|
tbsScheduleItemBudget.getBudgetAmount(), |
|
|
@ -301,6 +305,34 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC |
|
|
|
tbsScheduleItemBudget.compareTargetExpenseRate() |
|
|
|
) |
|
|
|
); |
|
|
|
}*/ |
|
|
|
for (TbsActivityCenter activityCenter : tbsActivityCenters) { |
|
|
|
TbsCostSubItem.CostCenter costCenter = new TbsCostSubItem.CostCenter(activityCenter.getCenterName(), |
|
|
|
activityCenter.getCenterType()+"_"+ activityCenter.getCenterId()); |
|
|
|
for (TbsBudget budget : result.getBudgetList()) { |
|
|
|
boolean eqType = activityCenter.getCenterType().equals(budget.getCenterType()); |
|
|
|
boolean eqCost = activityCenter.getCenterId().equals(budget.getCenterId()); |
|
|
|
if(eqType&&eqCost){ |
|
|
|
BigDecimal totalBudgetAmount = BigDecimal.ZERO; |
|
|
|
BigDecimal totalPreDispatchAmount = BigDecimal.ZERO; |
|
|
|
for (TbsScheduleItemBudget itemBudget : tbsScheduleItemBudgets) { |
|
|
|
if(itemBudget.getBudgetId().equals(budget.getId())){ |
|
|
|
if(itemBudget.getBudgetAmount()!=null){ |
|
|
|
totalBudgetAmount.add(itemBudget.getBudgetAmount()); |
|
|
|
} |
|
|
|
if(itemBudget.getPreDispatchAmount()!=null){ |
|
|
|
totalBudgetAmount.add(itemBudget.getPreDispatchAmount()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
costCenter.setAreaBudget(totalBudgetAmount); |
|
|
|
costCenter.setTargetSales(totalPreDispatchAmount); |
|
|
|
if(totalPreDispatchAmount.compareTo(BigDecimal.ZERO)!=0){ |
|
|
|
costCenter.setTargetExpenseRate(totalBudgetAmount.divide(totalPreDispatchAmount,BigDecimal.ROUND_DOWN)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
subList.add(costCenter); |
|
|
|
} |
|
|
|
|
|
|
|
List<TbsActivityGoods> tbsActivityGoods = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id)); |
|
|
|