Browse Source

目标预算计算调整

v1.0
15989082884@163.com 2 years ago
parent
commit
4131196f71
  1. 13
      src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java

13
src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java

@ -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);

Loading…
Cancel
Save