diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index 76783bc5..275880c8 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/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(); diff --git a/src/main/java/com/qs/serve/modules/bir/entity/so/BirBudgetTargetSo.java b/src/main/java/com/qs/serve/modules/bir/entity/so/BirBudgetTargetSo.java index 42220dec..c0438c8b 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/so/BirBudgetTargetSo.java +++ b/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 supplierIds; - @Data - public static class CostInfo{ - /** - * center,saleRegion,bizRegion,supplier - */ - private String costType; - private String costId; - } } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/so/CostInfo.java b/src/main/java/com/qs/serve/modules/bir/entity/so/CostInfo.java new file mode 100644 index 00000000..4e1f2553 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java index 19c7accb..c53fcc8c 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java @@ -39,7 +39,7 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl 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> 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 - + - 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} )