|
@ -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.Assert; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
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.entity.BmsSupplier; |
|
|
|
|
|
import com.qs.serve.modules.bms.service.BmsSubjectService; |
|
|
import com.qs.serve.modules.bms.service.BmsSupplierService; |
|
|
import com.qs.serve.modules.bms.service.BmsSupplierService; |
|
|
import com.qs.serve.modules.goods.entity.GoodsCategory; |
|
|
import com.qs.serve.modules.goods.entity.GoodsCategory; |
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
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.GoodsSkuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.goods.service.GoodsSpuService; |
|
|
import com.qs.serve.modules.tbs.common.TbsGoodsType; |
|
|
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.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.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.TbsActivityGoodsService; |
|
|
import com.qs.serve.modules.tbs.service.TbsCostApplyService; |
|
|
import com.qs.serve.modules.tbs.service.TbsCostApplyService; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Service; |
|
|
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.service.TbsActivityService; |
|
|
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; |
|
|
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
import java.util.Map; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
/** |
|
|
/** |
|
@ -41,11 +48,13 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
private final TbsActivityGoodsService activityGoodsService; |
|
|
private final TbsActivityGoodsService activityGoodsService; |
|
|
private final TbsCostApplyService costApplyService; |
|
|
private final TbsCostApplyService costApplyService; |
|
|
private final BmsSupplierService supplierService; |
|
|
private final BmsSupplierService supplierService; |
|
|
|
|
|
private final BmsSubjectService subjectService; |
|
|
private final GoodsSkuService goodsSkuService; |
|
|
private final GoodsSkuService goodsSkuService; |
|
|
private final GoodsSpuService goodsSpuService; |
|
|
private final GoodsSpuService goodsSpuService; |
|
|
private final GoodsCategoryService goodsCategoryService; |
|
|
private final GoodsCategoryService goodsCategoryService; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public void modify(TbsActivityBo activityBo) { |
|
|
public void modify(TbsActivityBo activityBo) { |
|
|
TbsCostApply costApply = costApplyService.getById(activityBo.getId()); |
|
|
TbsCostApply costApply = costApplyService.getById(activityBo.getId()); |
|
|
BmsSupplier supplier = supplierService.getById(costApply.getSupplierId()); |
|
|
BmsSupplier supplier = supplierService.getById(costApply.getSupplierId()); |
|
@ -61,14 +70,30 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
activity.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
activity.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
activity.setSupplierCode(supplier.getCode()); |
|
|
activity.setSupplierCode(supplier.getCode()); |
|
|
activity.setSupplierName(supplier.getName()); |
|
|
activity.setSupplierName(supplier.getName()); |
|
|
if(activity.getId()!=null){ |
|
|
boolean isUpdate = activity.getId()!=null; |
|
|
|
|
|
this.save(activity); |
|
|
|
|
|
if(isUpdate){ |
|
|
//todo 删除旧数据
|
|
|
//todo 删除旧数据
|
|
|
} |
|
|
} |
|
|
//产品详情
|
|
|
//产品详情
|
|
|
|
|
|
List<TbsActivityGoods> activityGoodsList = new ArrayList<>(); |
|
|
String goodsType = activityBo.getActivityGoodsType(); |
|
|
String goodsType = activityBo.getActivityGoodsType(); |
|
|
if(goodsType.equals(TbsGoodsType.spu.name())){ |
|
|
if(goodsType.equals(TbsGoodsType.spu.name())){ |
|
|
List<Long> spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); |
|
|
List<Long> spuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); |
|
|
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); |
|
|
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())){ |
|
|
}else if (goodsType.equals(TbsGoodsType.sku.name())){ |
|
|
List<Long> skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); |
|
|
List<Long> skuIds = activityBo.getActivityGoodsList().stream().map(TbsActivityGoodsBo::getGoodsId).collect(Collectors.toList()); |
|
|
List<GoodsSku> skuList = goodsSkuService.listByIds(skuIds); |
|
|
List<GoodsSku> skuList = goodsSkuService.listByIds(skuIds); |
|
@ -78,9 +103,52 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
List<GoodsCategory> categoryList = goodsCategoryService.listByIds(categoryIds); |
|
|
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 设置成本中心
|
|
|
|
|
|
//设置商品
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
//客户详情
|
|
|
//客户详情
|
|
|
//产品成本配占比
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|