From 028be59631f8a24a172b49ca585efc20a7ed50a3 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 10 Nov 2022 10:18:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSkuController.java | 17 +++++ .../goods/controller/GoodsSpuController.java | 15 ++-- .../modules/tbs/entity/TbsActivityCenter.java | 6 +- .../tbs/entity/TbsActivityCenterGoods.java | 9 ++- .../modules/tbs/entity/TbsActivityGoods.java | 17 ++--- .../modules/tbs/entity/bo/TbsActivityBo.java | 2 +- .../entity/bo/TbsActivityCenterGoodsBo.java | 7 +- .../tbs/entity/bo/TbsActivitySubjectBo.java | 7 +- .../service/impl/TbsActivityServiceImpl.java | 76 ++++++++++++++++++- .../resources/mapper/goods/GoodsSkuMapper.xml | 2 +- 10 files changed, 126 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index c9021d9d..3955b489 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -82,6 +82,23 @@ public class GoodsSkuController { return R.ok(); } + /** + * 开启/关闭sku + * @param skuId + * @param enable + * @return + */ + @GetMapping("/enable") + @SysLog(module = SystemModule.GOODS, title = "sku", biz = BizType.UPDATE) + @PreAuthorize("hasRole('goods:sku:update')") + public R update(Long skuId,Integer enable){ + GoodsSku param = new GoodsSku(); + param.setId(skuId); + param.setEnable(enable.equals(1)?1:0); + goodsSkuService.updateById(param); + return R.ok(); + } + /** * 编辑 * @param param diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index ed74c683..f819029e 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -74,15 +74,20 @@ public class GoodsSpuController { } /** - * 编辑 - * @param param + * 商品上下架 + * @param spuId + * @param shelf * @return */ - //@PostMapping("/edit") + @GetMapping("/shelf") @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.UPDATE) @PreAuthorize("hasRole('goods:spu:update')") - public R updateById(@RequestBody @Valid GoodsSpuEditBo param){ - goodsSpuService.edit(param); + public R updateById(Long spuId,Integer shelf){ + GoodsSpu goodsSpu = new GoodsSpu(); + goodsSpu.setId(spuId); + goodsSpu.setShelf(shelf); + goodsSpuService.updateById(goodsSpu); + //todo 商品上下架 return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java index 6c19e52f..b9437c8f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java @@ -45,7 +45,11 @@ public class TbsActivityCenter implements Serializable { /** 费用额度 */ @NotNull(message = "费用额度不能为空") - private BigDecimal amount; + private BigDecimal centerRate; + + /** 费用额度 */ + @NotNull(message = "费用额度不能为空") + private BigDecimal centerAmount; /** 成本中心类型 */ @NotBlank(message = "成本中心类型不能为空") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java index a2c7310b..26bc0c8b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java @@ -55,7 +55,11 @@ public class TbsActivityCenterGoods implements Serializable { /** 费用额度 */ @NotNull(message = "费用额度不能为空") - private BigDecimal amount; + private BigDecimal centerGoodsAmount; + + /** 费用占比 */ + @NotNull(message = "费用占比不能为空") + private BigDecimal centerGoodsRate; /** 成本中心类型 */ @NotBlank(message = "成本中心类型不能为空") @@ -76,9 +80,6 @@ public class TbsActivityCenterGoods implements Serializable { @Length(max = 50,message = "成本中心名称长度不能超过50字") private String centerName; - /** 费用占比 */ - @NotNull(message = "费用占比不能为空") - private BigDecimal centerGoodsRate; /** 目标类型(brand、category、series、spu、sku) */ @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java index 24fb5e03..02c045c9 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java @@ -58,20 +58,13 @@ public class TbsActivityGoods implements Serializable { @Length(max = 30,message = "目标名称长度不能超过30字") private String targetName; - /** 目标父级id */ - private Long targetParentId; - - /** 目标父级编码 */ - @Length(max = 30,message = "目标父级编码长度不能超过30字") - private String targetParentCode; - - /** 目标父级名称 */ - @Length(max = 20,message = "目标父级名称长度不能超过20字") - private String targetParentName; + /** 目标等级id路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; - /** 目标等级路径 */ + /** 目标等级名称路径 */ @Length(max = 600,message = "目标等级路径长度不能超过600字") - private String targetLevelPath; + private String targetLevelPathNames; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") 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 a7f3cbb4..fb7baf34 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 @@ -66,7 +66,7 @@ public class TbsActivityBo implements Serializable { /** 成本中心列表 */ @NotNull(message = "请选择成本中心") - private List activityCenterList; + private List activitySubjectList; /** 产品与成本中心配比 */ @NotNull(message = "产品缺少配比") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java index 2d0a0126..522bc934 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java @@ -25,9 +25,6 @@ public class TbsActivityCenterGoodsBo implements Serializable { private static final long serialVersionUID = 1L; - /** 费用额度 */ - @NotNull(message = "费用额度不能为空") - private BigDecimal amount; /** 成本中心类型: center, @@ -44,6 +41,10 @@ public class TbsActivityCenterGoodsBo implements Serializable { @NotNull(message = "成本中心id不能为空") private Long centerId; + /** 费用额度 */ + @NotNull(message = "费用额度不能为空") + private BigDecimal centerGoodsAmount; + /** 费用占比 */ @NotNull(message = "费用占比不能为空") private BigDecimal centerGoodsRate; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java index 3c266ab0..712c8da3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java @@ -43,6 +43,7 @@ public class TbsActivitySubjectBo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 成本中心列表 */ private List centerList; @Data @@ -65,7 +66,11 @@ public class TbsActivitySubjectBo implements Serializable { /** 费用占比率,单位百分位(该成本中心在费用中占比) */ @NotNull(message = "费用占比率不能为空") - private BigDecimal subjectRate; + private BigDecimal centerRate; + + /** 费用占比金额(该成本中心在费用金额) */ + @NotNull(message = "费用占比率不能为空") + private BigDecimal centerAmount; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index 57c6edb3..57318395 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.goods.entity.GoodsCategory; import com.qs.serve.modules.goods.entity.GoodsSku; @@ -13,19 +15,24 @@ 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.TbsGoodsType; -import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo; +import com.qs.serve.modules.tbs.entity.bo.TbsActivityCenterGoodsBo; import com.qs.serve.modules.tbs.entity.bo.TbsActivityGoodsBo; +import com.qs.serve.modules.tbs.entity.bo.TbsActivitySubjectBo; import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.stream.Collectors; import java.util.List; /** @@ -41,11 +48,13 @@ public class TbsActivityServiceImpl extends ServiceImpl activityGoodsList = new ArrayList<>(); String goodsType = activityBo.getActivityGoodsType(); if(goodsType.equals(TbsGoodsType.spu.name())){ List spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); List spuList = goodsSpuService.listByIds(spuIds); + for (GoodsSpu goodsSpu : spuList) { + GoodsCategory category = goodsCategoryService.getById(goodsSpu.getCategoryLast()); + TbsActivityGoods activityGoods = new TbsActivityGoods(); + activityGoods.setCostApplyId(costApply.getId()); + activityGoods.setActivityId(activity.getId()); + activityGoods.setTargetType(goodsType); + activityGoods.setTargetId(goodsSpu.getId()); + activityGoods.setTargetCode(goodsSpu.getSpuCode()); + activityGoods.setTargetName(goodsSpu.getName()); + + + + } }else if (goodsType.equals(TbsGoodsType.sku.name())){ List skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); List skuList = goodsSkuService.listByIds(skuIds); @@ -78,9 +103,52 @@ public class TbsActivityServiceImpl extends ServiceImpl categoryList = goodsCategoryService.listByIds(categoryIds); } //费用详情 + Map subjectMap = new HashMap<>(); + List activitySubjects = new ArrayList<>(); + List activityCenterList = new ArrayList<>(); + for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) { + BmsSubject subject = subjectService.getById(subjectBo.getSubjectId()); + subjectMap.put(subject.getId(),subject); + TbsActivitySubject activitySubject = new TbsActivitySubject(); + activitySubject.setCostApplyId(costApply.getId()); + activitySubject.setActivityId(activity.getId()); + activitySubject.setSubjectId(subject.getId()); + activitySubject.setSubjectCode(subject.getSubjectCode()); + activitySubject.setSubjectName(subject.getSubjectName()); + activitySubject.setAmount(subjectBo.getAmount()); + activitySubject.setCountSession(subjectBo.getCountSession()); + activitySubject.setCountPerson(subjectBo.getCountPerson()); + activitySubject.setRemark(subjectBo.getRemark()); + activitySubjects.add(activitySubject); + for (TbsActivitySubjectBo.ActivityCenterBo centerBo : subjectBo.getCenterList()) { + TbsActivityCenter activityCenter = new TbsActivityCenter(); + activityCenter.setCostApplyId(costApply.getId()); + activityCenter.setActivityId(activity.getId()); + activityCenter.setSubjectId(subjectBo.getSubjectId()); + activityCenter.setCenterRate(centerBo.getCenterRate()); + activityCenter.setCenterAmount(centerBo.getCenterAmount()); + activityCenter.setCenterType(centerBo.getCenterType()); + activityCenter.setCenterId(centerBo.getCenterId()); + //todo activityCenter.setCenterCode(centerBo.getCenterCode()); + activityCenterList.add(activityCenter); + } + } + //产品成本配占比 + for (TbsActivityCenterGoodsBo centerGoodsBo : activityBo.getActivityCenterGoodsList()) { + BmsSubject subject = subjectMap.get(centerGoodsBo.getCenterId()); + TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods(); + centerGoods.setCostApplyId(costApply.getId()); + centerGoods.setActivityId(activity.getId()); + centerGoods.setSubjectId(subject.getId()); + centerGoods.setSubjectCode(subject.getSubjectCode()); + centerGoods.setSubjectName(subject.getSubjectName()); + centerGoods.setCenterGoodsAmount(centerGoodsBo.getCenterGoodsAmount()); + centerGoods.setCenterGoodsRate(centerGoodsBo.getCenterGoodsRate()); + //todo 设置成本中心 + //设置商品 + } //客户详情 - //产品成本配占比 } } diff --git a/src/main/resources/mapper/goods/GoodsSkuMapper.xml b/src/main/resources/mapper/goods/GoodsSkuMapper.xml index 20b2db9d..6d9bd447 100644 --- a/src/main/resources/mapper/goods/GoodsSkuMapper.xml +++ b/src/main/resources/mapper/goods/GoodsSkuMapper.xml @@ -109,7 +109,7 @@ and `goods_sku`.`unit_name` = #{query.unitName} and `goods_sku`.`weight` = #{query.weight} and `goods_sku`.`volume` = #{query.volume} - and `goods_sku`.`enable` = #{query.enable} + and `goods_sku`.`enable` = #{query.enable} and `goods_sku`.`version` = #{query.version} and `goods_sku`.`remark` = #{query.remark} and `goods_sku`.`update_time` = #{query.updateTime}