diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index 2b38abfb..f26e0da8 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -12,6 +12,7 @@ import com.qs.serve.modules.bms.entity.*; import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.service.*; +import com.qs.serve.modules.his.entity.HisUserSupplier; import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.entity.TbsBudget; @@ -103,8 +104,24 @@ public class BmsRegionController { BmsSupplier supplier = bmsSupplierService.getById(supplierId); regionIds.addAll(supplier.listSaleRegionIds()); } + List hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false); + List firstRegionIds = hisUserSuppliers.stream().map(a->a.getSaleRegionFirst()).collect(Collectors.toList()); + List secondRegionIds = hisUserSuppliers.stream().map(a->a.getSaleRegionSecond()).collect(Collectors.toList()); + List thirdRegionIds = hisUserSuppliers.stream().map(a->a.getSaleRegionThird()).collect(Collectors.toList()); + List fourthlyRegionIds = hisUserSuppliers.stream().map(a->a.getSaleRegionFourthly()).collect(Collectors.toList()); + regionIds.addAll(firstRegionIds); + regionIds.addAll(secondRegionIds); + regionIds.addAll(thirdRegionIds); + regionIds.addAll(fourthlyRegionIds); + + regionIds = regionIds.stream().distinct().collect(Collectors.toList()); if(regionIds.size()>0){ + List allSelectList = new ArrayList<>(); + List regionList = bmsRegionService.listByIds(regionIds); + if(regionList.size()==0){ + return toTreeNodeList2(allSelectList); + } Map> listMap = regionList.stream().collect(Collectors.groupingBy(BmsRegion::getLevel)); List list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1); List list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2); @@ -136,7 +153,6 @@ public class BmsRegionController { } } - List allSelectList = new ArrayList<>(); if(CollectionUtil.isNotEmpty(list2)){ List lv02Pids = list2.stream().map(BmsRegion::getId).collect(Collectors.toList()); List level03List = bmsRegionService.listChild(lv02Pids); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index 8bee5724..4f31b4bd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -47,6 +47,7 @@ import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -467,19 +468,34 @@ public class TbsActivityController { } } } - //匹配有预算并且成本中心为销售区域的 - for (TbsBudget budget : centerBudgetList) { - if (budget.getCenterType().equals(TbsCenterType.saleRegion.name())){ - if(budget.getCenterId().equals(supplier.getRegionThird()) - ||budget.getCenterId().equals(supplier.getRegionSecond()) - ||budget.getCenterId().equals(supplier.getRegionFirst())){ - TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); - BmsRegion saleRegionTemp = bmsRegionService.getById(budget.getCenterId()); - defaultCenterVo.setSaleRegion(saleRegionTemp); - return R.ok(defaultCenterVo); - } - } + + //匹配有预算并且成本中心为销售区域的,按最按近的销售区域优先级返回 + Optional regionThirdCenter = centerBudgetList.stream().filter(a -> a.getCenterType().equals(TbsCenterType.saleRegion.name()) + && a.getCenterId().equals(supplier.getRegionThird())).findFirst(); + if(regionThirdCenter.isPresent()){ + TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); + BmsRegion saleRegionTemp = bmsRegionService.getById(regionThirdCenter.get().getCenterId()); + defaultCenterVo.setSaleRegion(saleRegionTemp); + return R.ok(defaultCenterVo); + } + Optional regionSecondCenter = centerBudgetList.stream().filter(a -> a.getCenterType().equals(TbsCenterType.saleRegion.name()) + && a.getCenterId().equals(supplier.getRegionSecond())).findFirst(); + if(regionSecondCenter.isPresent()){ + TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); + BmsRegion saleRegionTemp = bmsRegionService.getById(regionSecondCenter.get().getCenterId()); + defaultCenterVo.setSaleRegion(saleRegionTemp); + return R.ok(defaultCenterVo); + } + Optional regionFirstCenter = centerBudgetList.stream().filter(a -> a.getCenterType().equals(TbsCenterType.saleRegion.name()) + && a.getCenterId().equals(supplier.getRegionFirst())).findFirst(); + if(regionFirstCenter.isPresent()){ + TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); + BmsRegion saleRegionTemp = bmsRegionService.getById(regionFirstCenter.get().getCenterId()); + defaultCenterVo.setSaleRegion(saleRegionTemp); + return R.ok(defaultCenterVo); } + + TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); defaultCenterVo.setSupplier(supplier); return R.ok(defaultCenterVo);