|
|
@ -1,5 +1,6 @@ |
|
|
|
package com.qs.serve.modules.tbs.service.impl; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
@ -57,6 +58,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
private final TbsActivityChannelService activityChannelService; |
|
|
|
private final TbsActivityChannelPointService activityChannelPointService; |
|
|
|
private final TbsActivityTemplateMapper activityTemplateMapper; |
|
|
|
private final TbsActivitySlottingFeeService activitySlottingFeeService; |
|
|
|
private final TbsCostApplyService costApplyService; |
|
|
|
private final TbsCenterDtoService tbsCenterDtoService; |
|
|
|
|
|
|
@ -161,6 +163,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
activityChannelPointService.remove(qw); |
|
|
|
activityGoodsService.remove(qw); |
|
|
|
activitySubjectService.remove(qw); |
|
|
|
activitySlottingFeeService.remove(qw); |
|
|
|
} |
|
|
|
//产品详情
|
|
|
|
List<TbsActivityGoods> activityGoodsList = this.buildActGoodsList(activityBo,costApply.getId(),activity.getId()); |
|
|
@ -195,7 +198,23 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
} |
|
|
|
} |
|
|
|
//客户详情
|
|
|
|
this.initChannelsAndSave(activityBo,costApply,activity); |
|
|
|
List<TbsActivityChannelPoint> activityChannelPointList = new ArrayList<>(); |
|
|
|
List<TbsActivityChannel> activityChannelList = new ArrayList<>(); |
|
|
|
this.initChannelsAndSave(activityBo,costApply,activity,activityChannelList,activityChannelPointList); |
|
|
|
//设置进程费
|
|
|
|
List<TbsActivitySlottingFee> slottingFeeList = new ArrayList<>(); |
|
|
|
this.buildSlottingFeeList(costApply, activity, activityGoodsList, activitySubjects, activityChannelPointList, activityChannelList, slottingFeeList); |
|
|
|
List<List<TbsActivitySlottingFee>> slottingFeeSplitList = CollUtil.split(slottingFeeList,500); |
|
|
|
for (List<TbsActivitySlottingFee> activitySlottingFeeList : slottingFeeSplitList) { |
|
|
|
activitySlottingFeeService.saveBatch(activitySlottingFeeList); |
|
|
|
} |
|
|
|
//渠道网点
|
|
|
|
if(activityChannelList.size()>0){ |
|
|
|
activityChannelService.saveBatch(activityChannelList); |
|
|
|
} |
|
|
|
if(activityChannelPointList.size()>0){ |
|
|
|
activityChannelPointService.saveBatch(activityChannelPointList); |
|
|
|
} |
|
|
|
//保存
|
|
|
|
activityGoodsService.saveBatch(activityGoodsList); |
|
|
|
activitySubjectService.saveBatch(activitySubjects); |
|
|
@ -203,6 +222,68 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
activityCenterGoodsService.saveBatch(activityCenterGoodsList); |
|
|
|
} |
|
|
|
|
|
|
|
private void buildSlottingFeeList(TbsCostApply costApply, TbsActivity activity, List<TbsActivityGoods> activityGoodsList, List<TbsActivitySubject> activitySubjects, List<TbsActivityChannelPoint> activityChannelPointList, List<TbsActivityChannel> activityChannelList, List<TbsActivitySlottingFee> slottingFeeList) { |
|
|
|
for (TbsActivitySubject activitySubject : activitySubjects) { |
|
|
|
//判断是否进场费科目
|
|
|
|
if(activitySubject.getSlottingFlag().equals(1)){ |
|
|
|
if(activityChannelList.size()>0){ |
|
|
|
List<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList()); |
|
|
|
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>(); |
|
|
|
pointLqw.in(BmsChannelPoint::getChannelId,channelIds); |
|
|
|
List<BmsChannelPoint> pointList = channelPointService.list(pointLqw); |
|
|
|
for (BmsChannelPoint channelPoint : pointList) { |
|
|
|
for (TbsActivityGoods activityGoods : activityGoodsList) { |
|
|
|
TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee(); |
|
|
|
slottingFee.setCostApplyId(costApply.getId()); |
|
|
|
slottingFee.setActivityId(activity.getId()); |
|
|
|
slottingFee.setTargetType(activityGoods.getTargetType()); |
|
|
|
slottingFee.setTargetId(activityGoods.getTargetId()); |
|
|
|
slottingFee.setTargetCode(activityGoods.getTargetCode()); |
|
|
|
slottingFee.setTargetName(activityGoods.getTargetName()); |
|
|
|
slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); |
|
|
|
slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); |
|
|
|
slottingFee.setChannelId(channelPoint.getChannelId()); |
|
|
|
slottingFee.setChannelCode(channelPoint.getChannelCode()); |
|
|
|
slottingFee.setChannelName(channelPoint.getChannelName()); |
|
|
|
slottingFee.setPointId(channelPoint.getId()); |
|
|
|
slottingFee.setPointCode(channelPoint.getPointCode()); |
|
|
|
slottingFee.setPointName(channelPoint.getPointName()); |
|
|
|
slottingFee.setSubjectId(activitySubject.getSubjectId()); |
|
|
|
slottingFee.setSubjectCode(activitySubject.getSubjectCode()); |
|
|
|
slottingFee.setSubjectName(activitySubject.getSubjectName()); |
|
|
|
slottingFeeList.add(slottingFee); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(activityChannelPointList.size() > 0){ |
|
|
|
for (TbsActivityChannelPoint channelPoint : activityChannelPointList) { |
|
|
|
for (TbsActivityGoods activityGoods : activityGoodsList) { |
|
|
|
TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee(); |
|
|
|
slottingFee.setCostApplyId(costApply.getId()); |
|
|
|
slottingFee.setActivityId(activity.getId()); |
|
|
|
slottingFee.setTargetType(activityGoods.getTargetType()); |
|
|
|
slottingFee.setTargetId(activityGoods.getTargetId()); |
|
|
|
slottingFee.setTargetCode(activityGoods.getTargetCode()); |
|
|
|
slottingFee.setTargetName(activityGoods.getTargetName()); |
|
|
|
slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); |
|
|
|
slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); |
|
|
|
slottingFee.setChannelId(channelPoint.getChannelId()); |
|
|
|
slottingFee.setChannelCode(channelPoint.getChannelCode()); |
|
|
|
slottingFee.setChannelName(channelPoint.getChannelName()); |
|
|
|
slottingFee.setPointId(channelPoint.getId()); |
|
|
|
slottingFee.setPointCode(channelPoint.getPointCode()); |
|
|
|
slottingFee.setPointName(channelPoint.getPointName()); |
|
|
|
slottingFee.setSubjectId(activitySubject.getSubjectId()); |
|
|
|
slottingFee.setSubjectCode(activitySubject.getSubjectCode()); |
|
|
|
slottingFee.setSubjectName(activitySubject.getSubjectName()); |
|
|
|
slottingFeeList.add(slottingFee); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 更新活动数量、总金额到费用申请 |
|
|
|
* @param costApplyId |
|
|
@ -223,9 +304,18 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
costApplyService.updateById(costApplyParam); |
|
|
|
} |
|
|
|
|
|
|
|
private void initChannelsAndSave(TbsActivityBo activityBo,TbsCostApply costApply,TbsActivity activity){ |
|
|
|
/** |
|
|
|
* 初始化渠道和网点 |
|
|
|
* @param activityBo |
|
|
|
* @param costApply |
|
|
|
* @param activity |
|
|
|
* @param activityChannelList |
|
|
|
* @param activityChannelPointList |
|
|
|
*/ |
|
|
|
private void initChannelsAndSave(TbsActivityBo activityBo,TbsCostApply costApply,TbsActivity activity, |
|
|
|
List<TbsActivityChannel> activityChannelList, |
|
|
|
List<TbsActivityChannelPoint> activityChannelPointList){ |
|
|
|
if(CollectionUtil.isNotEmpty(activityBo.getActivityChannelList())){ |
|
|
|
List<TbsActivityChannel> activityChannelList = new ArrayList<>(); |
|
|
|
for (TbsActivityChannelBo activityChannelBo : activityBo.getActivityChannelList()) { |
|
|
|
BmsChannel channel = channelService.getById(activityChannelBo.getChannelId()); |
|
|
|
TbsActivityChannel activityChannel = new TbsActivityChannel(); |
|
|
@ -240,9 +330,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
activityChannel.setTmpUk(activityChannelBo.getTmpUk()); |
|
|
|
activityChannelList.add(activityChannel); |
|
|
|
} |
|
|
|
activityChannelService.saveBatch(activityChannelList); |
|
|
|
}else if(CollectionUtil.isNotEmpty(activityBo.getActivityPointList())){ |
|
|
|
List<TbsActivityChannelPoint> activityChannelPointList = new ArrayList<>(); |
|
|
|
for (TbsActivityChannelPointBo activityChannelPointBo : activityBo.getActivityPointList()) { |
|
|
|
BmsChannelPoint channelPoint = channelPointService.getById(activityChannelPointBo.getPointId()); |
|
|
|
BmsChannel channel = channelService.getById(channelPoint.getChannelId()); |
|
|
@ -260,7 +348,6 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
activityChannelPoint.setTmpUk(activityChannelPointBo.getTmpUk()); |
|
|
|
activityChannelPointList.add(activityChannelPoint); |
|
|
|
} |
|
|
|
activityChannelPointService.saveBatch(activityChannelPointList); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -385,15 +472,11 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
activitySubject.setCountSession(subjectBo.getCountSession()); |
|
|
|
activitySubject.setCountPerson(subjectBo.getCountPerson()); |
|
|
|
activitySubject.setRemark(subjectBo.getRemark()); |
|
|
|
if(subject.getFormIdForCostApply()!=null&&!subject.getFormIdForCostApply().equals(0L)){ |
|
|
|
BmsSubjectForm subjectForm = subjectFormMapper.selectById(subject.getFormIdForCostApply()); |
|
|
|
if(subjectForm==null){ |
|
|
|
Assert.throwEx("科目"+subject.getSubjectName()+"["+subject.getSubjectCode()+"]的缺失申请表单,请检查科目的信息"); |
|
|
|
} |
|
|
|
activitySubject.setSubjectFormId(subjectForm.getId()); |
|
|
|
activitySubject.setSubjectFormContext(subjectForm.getFormContext()); |
|
|
|
} |
|
|
|
activitySubject.setSubjectFormId(subjectBo.getSubjectFormId()); |
|
|
|
activitySubject.setSubjectFormTitle(subjectBo.getSubjectFormTitle()); |
|
|
|
activitySubject.setSubjectFormContext(subjectBo.getSubjectFormContext()); |
|
|
|
activitySubject.setSubjectFormValue(subjectBo.getSubjectFormValue()); |
|
|
|
activitySubject.setSlottingFlag(subject.getSlottingFlag()); |
|
|
|
activitySubjects.add(activitySubject); |
|
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
|
BigDecimal totalRate = BigDecimal.ZERO; |
|
|
|