From 13f73fa7755f99ec706c88435e30b4739f61be26 Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 26 Dec 2022 10:41:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4=E7=9A=84?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E4=B8=AD=E5=BF=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tbs/controller/TbsActivityController.java | 119 ++++++++++++++++++ .../modules/tbs/entity/bo/TbsActivityBo.java | 1 - .../entity/bo/TbsActivityDefaultCenterBo.java | 25 ++++ .../entity/vo/TbsActivityDefaultCenterVo.java | 25 ++++ 4 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityDefaultCenterBo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityDefaultCenterVo.java 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 b8256e50..b7722ecc 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 @@ -8,15 +8,32 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsCostCenterService; +import com.qs.serve.modules.bms.service.BmsRegion2Service; +import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.service.GoodsCategoryService; +import com.qs.serve.modules.goods.service.GoodsSkuService; +import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.tbs.common.TbsActivityState; +import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tbs.entity.bo.TbsActivityDefaultCenterBo; import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterGoodsVo; +import com.qs.serve.modules.tbs.entity.vo.TbsActivityDefaultCenterVo; import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; @@ -56,11 +73,20 @@ public class TbsActivityController { private final TbsActivityChannelService activityChannelService; private final TbsActivityChannelPointService activityChannelPointService; + private final GoodsSkuService goodsSkuService; + private final GoodsSpuService goodsSpuService; + private final GoodsCategoryService goodsCategoryService; + private final BmsSupplierService bmsSupplierService; + private final BmsCostCenterService bmsCostCenterService; + private final BmsRegion2Service bmsRegion2Service; + private final BmsRegionService bmsRegionService; private final VtbVerificationService verificationService; private final TbsActivityApplicationService tbsActivityApplicationService; + private final TbsBudgetService tbsBudgetService; + private final TbsBudgetConditionService tbsBudgetConditionService; /** * 列表 @@ -283,5 +309,98 @@ public class TbsActivityController { return R.ok(); } + /** + * 获取默认的成本中心 + * @param defaultCenterBo + * @return + */ + @PostMapping("/getDefaultCenter") + public R getDefaultCenter(@RequestBody TbsActivityDefaultCenterBo defaultCenterBo){ + String goodsType = defaultCenterBo.getActivityGoodsType(); + List goodsIds = defaultCenterBo.getGoodsIds(); + Long subjectId = defaultCenterBo.getSubjectId(); + Long supplierId = defaultCenterBo.getSupplierId(); + BmsSupplier supplier = bmsSupplierService.getById(supplierId); + List centerBudgetList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(goodsIds)&&subjectId!=null){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsBudget::getBudgetState,1); + lqw.eq(TbsBudget::getSubjectId,subjectId); + List budgetList = tbsBudgetService.list(lqw); + List idPaths = new ArrayList<>(); + if(budgetList.size()>0){ + if(TbsGoodsType.spu.name().equals(goodsType)){ + for (Long goodsId : goodsIds) { + GoodsSpu goodsSpu = goodsSpuService.getById(goodsId); + String idPath = goodsSpu.getCategoryFirst()+"_"+goodsSpu.getCategorySecond()+"_" + +goodsSpu.getCategoryThird()+"_"+goodsSpu.getId(); + idPaths.add(idPath); + } + }else if(TbsGoodsType.sku.name().equals(goodsType)){ + for (Long goodsId : goodsIds) { + GoodsSku sku = goodsSkuService.getById(goodsId); + GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); + String idPath = goodsSpu.getCategoryFirst()+"_"+goodsSpu.getCategorySecond()+"_" + +goodsSpu.getCategoryThird()+"_"+goodsSpu.getId()+"_"+sku.getId(); + idPaths.add(idPath); + } + }else { + for (Long goodsId : goodsIds) { + GoodsCategory category = goodsCategoryService.getById(goodsId); + idPaths.add(category.getLevelPath()); + } + } + } + + for (TbsBudget budget : budgetList) { + if(budget.getConditionFlag().equals(1)){ + List budgetConditions = tbsBudgetConditionService.getByBudgetId(budget.getId()); + for (int i = 0; i < idPaths.size(); i++) { + String idPath = idPaths.get(i); + boolean isMatch = false; + for (TbsBudgetCondition budgetCondition : budgetConditions) { + if(idPath.contains(budgetCondition.getTargetLevelPathIds())){ + isMatch = true; + } + } + if(!isMatch){ + break; + } + //满足条件 + if(i+1==idPaths.size()){ + centerBudgetList.add(budget); + } + } + + }else { + centerBudgetList.add(budget); + } + + } + } + List costCenters = new ArrayList<>(); + List saleRegions = new ArrayList<>(); + List bizRegions = new ArrayList<>(); + for (TbsBudget budget : centerBudgetList) { + if(budget.getCenterType().equals(TbsCenterType.center.name())){ + BmsCostCenter costCenter = bmsCostCenterService.getById(budget.getCenterId()); + costCenters.add(costCenter); + }else if (budget.getCenterType().equals(TbsCenterType.bizRegion.name())){ + BmsRegion2 region2 = bmsRegion2Service.getById(budget.getCenterId()); + bizRegions.add(region2); + }else if (budget.getCenterType().equals(TbsCenterType.saleRegion.name())){ + BmsRegion region = bmsRegionService.getById(budget.getCenterId()); + saleRegions.add(region); + } + } + TbsActivityDefaultCenterVo defaultCenterVo = new TbsActivityDefaultCenterVo(); + defaultCenterVo.setSupplier(supplier); + defaultCenterVo.setCostCenters(costCenters); + defaultCenterVo.setSaleRegions(saleRegions); + defaultCenterVo.setBizRegions(bizRegions); + return R.ok(defaultCenterVo); + } + + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java index 22b770de..b8b43232 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java @@ -27,7 +27,6 @@ public class TbsActivityBo implements Serializable { private Long supplierId; /** 费用申请id */ - @NotNull(message = "费用申请id不能为空") private Long costApplyId; /** 活动简述及目的 */ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityDefaultCenterBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityDefaultCenterBo.java new file mode 100644 index 00000000..1f47dd84 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityDefaultCenterBo.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; +import java.util.List; + +/** + * @author YenHex + * @since 2022/12/20 + */ +@Data +public class TbsActivityDefaultCenterBo { + + /** 供应商id */ + private Long supplierId; + + /** 科目id */ + private Long subjectId; + + /** 产品类型(brand、category、series、spu、sku) */ + private String activityGoodsType; + + /** 商品id */ + private List goodsIds; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityDefaultCenterVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityDefaultCenterVo.java new file mode 100644 index 00000000..2005a906 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityDefaultCenterVo.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.tbs.entity.vo; + +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import lombok.Data; +import java.util.List; + +/** + * @author YenHex + * @since 2022/12/26 + */ +@Data +public class TbsActivityDefaultCenterVo { + + BmsSupplier supplier; + + private List costCenters; + + private List saleRegions; + + private List bizRegions; + +}