Browse Source

调整

mssql
Yen 3 years ago
parent
commit
028be59631
  1. 17
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  2. 15
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  3. 6
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java
  4. 9
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java
  5. 17
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java
  6. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java
  7. 7
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java
  8. 7
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java
  9. 76
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  10. 2
      src/main/resources/mapper/goods/GoodsSkuMapper.xml

17
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

15
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();
}

6
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 = "成本中心类型不能为空")

9
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)不能为空")

17
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字")

2
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<TbsActivitySubjectBo> activityCenterList;
private List<TbsActivitySubjectBo> activitySubjectList;
/** 产品与成本中心配比 */
@NotNull(message = "产品缺少配比")

7
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;

7
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<ActivityCenterBo> centerList;
@Data
@ -65,7 +66,11 @@ public class TbsActivitySubjectBo implements Serializable {
/** 费用占比率,单位百分位(该成本中心在费用中占比) */
@NotNull(message = "费用占比率不能为空")
private BigDecimal subjectRate;
private BigDecimal centerRate;
/** 费用占比金额(该成本中心在费用金额) */
@NotNull(message = "费用占比率不能为空")
private BigDecimal centerAmount;
}

76
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<TbsActivityMapper,TbsAct
private final TbsActivityGoodsService activityGoodsService;
private final TbsCostApplyService costApplyService;
private final BmsSupplierService supplierService;
private final BmsSubjectService subjectService;
private final GoodsSkuService goodsSkuService;
private final GoodsSpuService goodsSpuService;
private final GoodsCategoryService goodsCategoryService;
@Override
@Transactional(rollbackFor = Exception.class)
public void modify(TbsActivityBo activityBo) {
TbsCostApply costApply = costApplyService.getById(activityBo.getId());
BmsSupplier supplier = supplierService.getById(costApply.getSupplierId());
@ -61,14 +70,30 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activity.setSupplierId(Long.parseLong(supplier.getId()));
activity.setSupplierCode(supplier.getCode());
activity.setSupplierName(supplier.getName());
if(activity.getId()!=null){
boolean isUpdate = activity.getId()!=null;
this.save(activity);
if(isUpdate){
//todo 删除旧数据
}
//产品详情
List<TbsActivityGoods> activityGoodsList = new ArrayList<>();
String goodsType = activityBo.getActivityGoodsType();
if(goodsType.equals(TbsGoodsType.spu.name())){
List<Long> spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList());
List<GoodsSpu> 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<Long> skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList());
List<GoodsSku> skuList = goodsSkuService.listByIds(skuIds);
@ -78,9 +103,52 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
List<GoodsCategory> categoryList = goodsCategoryService.listByIds(categoryIds);
}
//费用详情
Map<Long,BmsSubject> subjectMap = new HashMap<>();
List<TbsActivitySubject> activitySubjects = new ArrayList<>();
List<TbsActivityCenter> 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 设置成本中心
//设置商品
}
//客户详情
//产品成本配占比
}
}

2
src/main/resources/mapper/goods/GoodsSkuMapper.xml

@ -109,7 +109,7 @@
<if test="query.unitName != null and query.unitName != ''"> and `goods_sku`.`unit_name` = #{query.unitName}</if>
<if test="query.weight != null"> and `goods_sku`.`weight` = #{query.weight}</if>
<if test="query.volume != null"> and `goods_sku`.`volume` = #{query.volume}</if>
<if test="query.enable != null and query.enable != ''"> and `goods_sku`.`enable` = #{query.enable}</if>
<if test="query.enable != null "> and `goods_sku`.`enable` = #{query.enable}</if>
<if test="query.version != null"> and `goods_sku`.`version` = #{query.version}</if>
<if test="query.remark != null and query.remark != ''"> and `goods_sku`.`remark` = #{query.remark}</if>
<if test="query.updateTime != null"> and `goods_sku`.`update_time` = #{query.updateTime}</if>

Loading…
Cancel
Save