Compare commits

...

2 Commits

  1. 8
      src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java
  2. 10
      src/main/java/com/qs/serve/modules/bir/entity/so/BirBudgetTargetSo.java
  3. 16
      src/main/java/com/qs/serve/modules/bir/entity/so/CostInfo.java
  4. 53
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java
  5. 6
      src/main/resources/mapper/bir/BirBudgetTargetMapper.xml

8
src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java

@ -159,10 +159,10 @@ public class BirRoiRateController {
@PostMapping("/buildCustomerCost")
public R<?> buildCustomerCost(){
boolean isRestBir = BirHttpUtil.isRestBir();
if(isRestBir){
return BirHttpUtil.get("/bir/roiRate/buildCustomerCost");
}
// boolean isRestBir = BirHttpUtil.isRestBir();
// if(isRestBir){
// return BirHttpUtil.get("/bir/roiRate/buildCustomerCost");
// }
birBudgetTargetImportService.deleteAll();
birBudgetTargetImportService.buildCustomerCost();
birBudgetTargetImportService.buildCityCost();

10
src/main/java/com/qs/serve/modules/bir/entity/so/BirBudgetTargetSo.java

@ -15,6 +15,8 @@ import java.util.List;
@Data
public class BirBudgetTargetSo {
private static final long serialVersionUID = 1L;
/** 搜索维度:0-客户;1-城市;2-省级经理;3-大区经理 */
private Integer loadType;
@ -62,14 +64,6 @@ public class BirBudgetTargetSo {
/**客户-成本中心编码 */
private List<String> supplierIds;
@Data
public static class CostInfo{
/**
* center,saleRegion,bizRegion,supplier
*/
private String costType;
private String costId;
}
}

16
src/main/java/com/qs/serve/modules/bir/entity/so/CostInfo.java

@ -0,0 +1,16 @@
package com.qs.serve.modules.bir.entity.so;
import lombok.Data;
@Data
public class CostInfo{
private static final long serialVersionUID = 1L;
/**
* center,saleRegion,bizRegion,supplier
*/
private String centerType;
private String centerId;
}

53
src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java

@ -39,7 +39,7 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl<BirBudgetTargetMappe
@Override
public List<BirBudgetTargetVo> listVo(BirBudgetTargetSo query) {
query.setLoadType(query.getLoadType()+1);
query.setLoadType(query.getLoadType()-1);
LocalDateTime endMonth = query.getYearMonthEnd();
LocalDateTime startMonth = query.getYearMonthStart();
//格式化
@ -112,22 +112,49 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl<BirBudgetTargetMappe
targetVo.setLastYearDispatchAmt(BigDecimal.ZERO);
targetVo.setProvinceCityAmt(BigDecimal.ZERO);
targetVo.setProvinceCityRegionAmt(BigDecimal.ZERO);
if(mList!=null) {
Map<String, List<BirBudgetTarget>> brandMap = mList.stream().collect(Collectors.groupingBy(obj -> obj.getBrandId()));
BigDecimal targetAmt = brandMap.values().stream().map(a -> a.get(0).getTargetAmt() == null ? BigDecimal.ZERO : a.get(0).getTargetAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal budgetAmt = brandMap.values().stream().map(a -> a.get(0).getBudgetAmt() == null ? BigDecimal.ZERO : a.get(0).getBudgetAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
targetVo.setTargetAmt(targetAmt);
targetVo.setBudgetAmt(budgetAmt);
}
if(sList!=null) {
BigDecimal cityRegionAmt = sList.stream().map(a -> a.getProvinceCityAmt() == null ? BigDecimal.ZERO : a.getProvinceCityAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
targetVo.setProvinceCityAmt(cityRegionAmt);
BigDecimal provinceCityRegionAmt = sList.stream().map(a -> a.getProvinceCityRegionAmt() == null ? BigDecimal.ZERO : a.getProvinceCityRegionAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
targetVo.setProvinceCityRegionAmt(provinceCityRegionAmt);
}
if(CollUtil.isNotEmpty(mList)){
for (BirBudgetTarget target : mList) {
// targetVo.setTargetAmt(targetVo.getTargetAmt().add(target.getTargetAmt()));
// targetVo.setBudgetAmt(targetVo.getBudgetAmt().add(target.getBudgetAmt()));
targetVo.setTargetAmt(target.getTargetAmt());
targetVo.setBudgetAmt(target.getBudgetAmt());
targetVo.setDispatchAmt(targetVo.getDispatchAmt().add(target.getDispatchAmt()));
targetVo.setTotalRealAmt(targetVo.getTotalRealAmt().add(target.getTotalRealAmt()));
targetVo.setLastYearDispatchAmt(targetVo.getLastYearDispatchAmt().add(target.getLastYearDispatchAmt()));
BigDecimal cityRegionAmt = sList.stream().map(a->a.getProvinceCityAmt()==null?BigDecimal.ZERO:a.getProvinceCityAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
targetVo.setProvinceCityAmt(cityRegionAmt);
BigDecimal provinceCityRegionAmt = sList.stream().map(a->a.getProvinceCityRegionAmt()==null?BigDecimal.ZERO:a.getProvinceCityRegionAmt()).reduce(BigDecimal.ZERO, BigDecimal::add);
targetVo.setProvinceCityRegionAmt(provinceCityRegionAmt);
// if(target.getTargetAmt()!=null){
// targetVo.setTargetAmt(target.getTargetAmt());
// }else{
// targetVo.setTargetAmt(BigDecimal.ZERO);
// }
// if(target.getBudgetAmt()!=null){
// targetVo.setBudgetAmt(target.getBudgetAmt());
// }else{
// targetVo.setBudgetAmt(BigDecimal.ZERO);
// }
if(target.getDispatchAmt()!=null) {
targetVo.setDispatchAmt(targetVo.getDispatchAmt().add(target.getDispatchAmt()));
}
if(target.getTotalRealAmt()!=null) {
targetVo.setTotalRealAmt(targetVo.getTotalRealAmt().add(target.getTotalRealAmt()));
}
if(target.getLastYearDispatchAmt()!=null) {
targetVo.setLastYearDispatchAmt(targetVo.getLastYearDispatchAmt().add(target.getLastYearDispatchAmt()));
}
}
//预算费率 = 预算费用/销售目标
if(targetVo.getTargetAmt().compareTo(BigDecimal.ZERO)!=0) {
if(targetVo.getTargetAmt()!=null && targetVo.getTargetAmt().compareTo(BigDecimal.ZERO)!=0) {
targetVo.setBudgetRate(targetVo.getBudgetAmt().divide(targetVo.getTargetAmt(), 2, RoundingMode.DOWN));
//发货达成率 = 实际发货/销售目标
targetVo.setDispatchRate(targetVo.getDispatchAmt().divide(targetVo.getTargetAmt(), 2, RoundingMode.DOWN));
@ -136,7 +163,7 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl<BirBudgetTargetMappe
targetVo.setDispatchRate(BigDecimal.ZERO);
}
//(当前发货-去年同期发货)/去年同期发货
if(targetVo.getLastYearDispatchAmt().compareTo(BigDecimal.ZERO)!=0) {
if(targetVo.getLastYearDispatchAmt()!=null && targetVo.getLastYearDispatchAmt().compareTo(BigDecimal.ZERO)!=0) {
targetVo.setLastYearGrowRate(
targetVo.getDispatchAmt()
.subtract(targetVo.getLastYearDispatchAmt())
@ -146,7 +173,7 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl<BirBudgetTargetMappe
targetVo.setLastYearGrowRate(BigDecimal.ZERO);
}
//实际费用率=实际费用/实际发货
if(targetVo.getDispatchAmt().compareTo(BigDecimal.ZERO)!=0) {
if(targetVo.getDispatchAmt()!=null && targetVo.getDispatchAmt().compareTo(BigDecimal.ZERO)!=0) {
targetVo.setProvinceCityRate(targetVo.getProvinceCityAmt().divide(targetVo.getDispatchAmt(), 2, RoundingMode.DOWN));
targetVo.setProvinceCityRegionRate(targetVo.getProvinceCityRegionAmt().divide(targetVo.getDispatchAmt(), 2, RoundingMode.DOWN));
targetVo.setTotalRealRate(targetVo.getTotalRealAmt().divide(targetVo.getDispatchAmt(), 2, RoundingMode.DOWN));

6
src/main/resources/mapper/bir/BirBudgetTargetMapper.xml

@ -100,10 +100,10 @@
and (
1=0
<if test="query.centerList!=null and query.centerList.size > 0">
<foreach collection="query.centerList" item="selectId" index="i" open="(" close=")" separator=",">
<foreach collection="query.centerList" item="selectId" index="i" >
or (bir_budget_target.center_type = #{selectId.costType} and bir_budget_target.center_id =
#{selectId.costId}
or (bir_budget_target.center_type = #{selectId.centerType} and bir_budget_target.center_id =
#{selectId.centerId}
)
</foreach>

Loading…
Cancel
Save