diff --git a/src/main/java/com/qs/serve/modules/bir/entity/so/BirMonthCusCenterSo.java b/src/main/java/com/qs/serve/modules/bir/entity/so/BirMonthCusCenterSo.java index 3a49c9de..7e2c0c53 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/so/BirMonthCusCenterSo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/so/BirMonthCusCenterSo.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.bir.entity.so; import lombok.Data; +import java.util.List; /** * @author YenHex @@ -14,5 +15,6 @@ public class BirMonthCusCenterSo { String centerId; Integer startYearMonth; Integer endYearMonth; + List supplierCodeList; } diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java index 00cd2c78..7b835cf0 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java @@ -71,6 +71,7 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { private BmsSupplierTargetMapper bmsSupplierTargetMapper; private TbsScheduleItemMapper tbsScheduleItemMapper; private TbsCostApplyMapper tbsCostApplyMapper; + private BmsSupplierMapper supplierMapper; @Override public List findCostCenterDataByCostApplyId(Long costApplyId,Long policyId){ @@ -250,22 +251,35 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { int startMonth = Integer.parseInt(curYear+"01"); int endMonth = Integer.parseInt(curYear+curMonthString); int[] currQ = MonthValues.getQArr(curMonth); + + //更变客户维度为总公司维度 + List supplierCode4Group = new ArrayList<>(); + supplierCode4Group.add(supplierCode); + LambdaQueryWrapper supplierLqw = new LambdaQueryWrapper<>(); + supplierLqw.eq(BmsSupplier::getCode,supplierCode); + BmsSupplier supplier = supplierMapper.selectOne(supplierLqw); + if(supplier.getComRegionCode()!=null){ + LambdaQueryWrapper supplierLqw4Group = new LambdaQueryWrapper<>(); + supplierLqw4Group.eq(BmsSupplier::getComRegionCode,supplier.getComRegionCode()); + List supplierList = supplierMapper.selectList(supplierLqw4Group); + for (BmsSupplier bmsSupplier : supplierList) { + supplierCode4Group.add(bmsSupplier.getCode()); + } + } + BirMonthCusCenterSo queryCusCenterRate = new BirMonthCusCenterSo(); - queryCusCenterRate.setSupplierCode(supplierCode); + queryCusCenterRate.setSupplierCodeList(supplierCode4Group); queryCusCenterRate.setCenterType(centerType); queryCusCenterRate.setCenterId(centerId); queryCusCenterRate.setStartYearMonth(startMonth); queryCusCenterRate.setEndYearMonth(endMonth); //年目标费率 - CusTargetRateDTO targetRateDTO = this.buildCusCenterTargetData(supplierCode); + CusTargetRateDTO targetRateDTO = this.buildCusCenterTargetData(supplierCode4Group); List centerGoodsMonthVoList = birActivityCenterGoodsMapper.listMonthCusCenterVo(queryCusCenterRate); BigDecimal totalCostQty = BigDecimal.ZERO; BigDecimal totalDispatchQty = BigDecimal.ZERO; - List supplierCodeList = new ArrayList<>(); - supplierCodeList.add(supplierCode); - List dispatchSumVos = dispatchDataMapper.querySumCost(startMonth,endMonth,supplierCodeList); - + List dispatchSumVos = dispatchDataMapper.querySumCost(startMonth,endMonth,supplierCode4Group); for (int monthNumber : currQ) { String tmp = monthNumber>9?monthNumber+"":"0"+monthNumber; int currYearMonth = Integer.parseInt(curYear+tmp); @@ -312,10 +326,10 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { /** * 计算客户目标费率 - * @param supplierCode + * @param supplierCodes * @return */ - public CusTargetRateDTO buildCusCenterTargetData(String supplierCode){ + public CusTargetRateDTO buildCusCenterTargetData(List supplierCodes){ String cusTargetRateQty=null; String cusTargetRate=null; LocalDate nowTime = LocalDate.now(); @@ -324,7 +338,7 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { int[] currQ = MonthValues.getQArr(curMonth); List supplierTargetList = bmsSupplierTargetMapper.selectList( new LambdaQueryWrapper() - .in(BmsSupplierTarget::getSupplierCode, supplierCode) + .in(BmsSupplierTarget::getSupplierCode, supplierCodes) ); List scheduleItemIds = supplierTargetList.stream().map(BmsSupplierTarget::getScheduleItemId).collect(Collectors.toList()); List scheduleIds = supplierTargetList.stream().map(BmsSupplierTarget::getScheduleId).collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java index f53309b9..6fca688a 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java @@ -196,7 +196,7 @@ public class BirRoiRateServiceImpl extends ServiceImpl supplierCodeList, List costItemVoList) { //加载公司内所有客户的编码 LambdaQueryWrapper regionSupplierLqw = new LambdaQueryWrapper<>(); - regionSupplierLqw.eq(BmsSupplier::getComRegionCode, supplier.getComRegion()); + regionSupplierLqw.eq(BmsSupplier::getRegionFirst, supplier.getRegionFirst()); regionSupplierLqw.select(BmsSupplier::getId,BmsSupplier::getCode); List regionSupplierList = bmsSupplierMapper.selectList(regionSupplierLqw); List regionSupplierIds = regionSupplierList.stream().map(BmsSupplier::getId).collect(Collectors.toList()); @@ -444,7 +444,9 @@ public class BirRoiRateServiceImpl extends ServiceImpl公司维度统计 - lqw.eq(BmsSupplier::getComRegionCode,bmsSupplier.getComRegionCode()); + lqw.eq(BmsSupplier::getComRegionCode,bmsSupplier.getComRegionCode()==null?"-1":bmsSupplier.getComRegionCode()); + //防止空值 + supplierCodeList.add(bmsSupplier.getCode()); } if (loadType.equals(2)||loadType.equals(3)||loadType.equals(4)){ List supplierList = bmsSupplierMapper.selectList(lqw); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index b42d4726..67a11ed8 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -68,11 +68,9 @@ public class TbsCostApplyController { private final TbsActivityCenterGoodsService activityCenterGoodsService; private final TbsActivityChannelService activityChannelService; private final TbsActivityChannelPointService activityChannelPointService; - private TbsBudgetLogService tbsBudgetLogService; private BmsSupplierService bmsSupplierService; private BmsRegion2Service region2Service; private SysUserService sysUserService; - private SeeYonRequestService seeYonService; private TbsBudgetApplicationService budgetApplicationService; private SysPostUserService postUserService; private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; diff --git a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml index 5ff78c64..563b5acc 100644 --- a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml +++ b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml @@ -158,7 +158,17 @@ sum(split_release_amount) as total_release_amt, sum(split_used_amount) as total_used_amt from bir_activity_center_goods - where supplier_code = #{query.supplierCode} + where + 1=1 + + and supplier_code = #{query.supplierCode} + + + and supplier_code in + + #{selectCode} + + and center_type = #{query.centerType} and center_id = #{query.centerId} and key_num <=#{query.endYearMonth}