|
|
@ -3,6 +3,7 @@ package com.qs.serve.modules.bir.service.impl; |
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.qs.serve.common.model.enums.BudgetLogOptFlag; |
|
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
import com.qs.serve.common.util.SpringUtils; |
|
|
|
import com.qs.serve.modules.bir.entity.BirActivityCenterGoods; |
|
|
@ -26,6 +27,7 @@ import com.qs.serve.modules.tbs.common.util.QuarterUtil; |
|
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
|
|
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; |
|
|
|
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterMapper; |
|
|
|
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; |
|
|
|
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; |
|
|
|
import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; |
|
|
|
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; |
|
|
@ -58,7 +60,7 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { |
|
|
|
private BirActivityCenterGoodsMapper birActivityCenterGoodsMapper; |
|
|
|
private TbsActivityCenterMapper tbsActivityCenterMapper; |
|
|
|
private TzcPolicyItemMapper tzcPolicyItemMapper; |
|
|
|
|
|
|
|
private TbsBudgetLogMapper tbsBudgetLogMapper; |
|
|
|
|
|
|
|
public List<TbsCostSubItem.CostCenterTranStr> findCostCenterDataByCostApplyId(Long costApplyId,Long policyId){ |
|
|
|
List<TbsCostSubItem.CostCenterTranStr> centerDataList = new ArrayList<>(); |
|
|
@ -124,10 +126,17 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { |
|
|
|
scheduleItemBudgetLambdaQueryWrapper.in(TbsScheduleItemBudget::getBudgetId,tbsBudgetList.stream().map(a->a.getId()).collect(Collectors.toList())); |
|
|
|
List<TbsScheduleItemBudget> scheduleItemBudgetList = tbsScheduleItemBudgetMapper.selectList(scheduleItemBudgetLambdaQueryWrapper); |
|
|
|
//合计目标发货和金定额
|
|
|
|
BigDecimal targetBudgetAmout = scheduleItemBudgetList.stream().map(a->a.getBudgetAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); |
|
|
|
BigDecimal targetDispatchAmout = scheduleItemBudgetList.stream().map(a->a.getPreDispatchAmount()==null?BigDecimal.ZERO:a.getPreDispatchAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); |
|
|
|
costCenter.setTargetSales(targetDispatchAmout.toString()); |
|
|
|
|
|
|
|
LambdaQueryWrapper<TbsBudgetLog> tbsbudgetLogLambdaQueryWrapper = new LambdaQueryWrapper<TbsBudgetLog>(); |
|
|
|
tbsbudgetLogLambdaQueryWrapper.eq(TbsBudgetLog::getCenterId,centerId); |
|
|
|
tbsbudgetLogLambdaQueryWrapper.eq(TbsBudgetLog::getCenterType,centerType); |
|
|
|
tbsbudgetLogLambdaQueryWrapper.in(TbsBudgetLog::getOptType, BudgetLogOptFlag.getFinalBudgetOptFlag()); |
|
|
|
List<TbsBudgetLog> logList = tbsBudgetLogMapper.selectList(tbsbudgetLogLambdaQueryWrapper); |
|
|
|
BigDecimal targetBudgetAmout = logList.stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); |
|
|
|
costCenter.setAreaBudget(targetBudgetAmout.toString()); |
|
|
|
|
|
|
|
BigDecimal targetExpenseRate = BigDecimal.ZERO; |
|
|
|
if(targetDispatchAmout.compareTo(BigDecimal.ZERO)!=0) { |
|
|
|
targetExpenseRate = targetBudgetAmout.divide(targetDispatchAmout, 2, BigDecimal.ROUND_HALF_DOWN); |
|
|
|