|
@ -657,9 +657,14 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC |
|
|
List<TbsActivitySubject> activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId()); |
|
|
List<TbsActivitySubject> activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId()); |
|
|
List<BmsSubject> subjectList = subjectService.listByIds( |
|
|
List<BmsSubject> subjectList = subjectService.listByIds( |
|
|
activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList())); |
|
|
activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList())); |
|
|
|
|
|
List<TbsActivityChannel> activityChannelList = tbsActivityChannelMapper.selectList(new LambdaQueryWrapper<TbsActivityChannel>() |
|
|
|
|
|
.eq(TbsActivityChannel::getCostApplyId,tbsCostApply.getId())); |
|
|
|
|
|
List<TbsActivityChannelPoint> activityChannelPointList = tbsActivityChannelPointMapper.selectList(new LambdaQueryWrapper<TbsActivityChannelPoint>() |
|
|
|
|
|
.eq(TbsActivityChannelPoint::getCostApplyId,tbsCostApply.getId())); |
|
|
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(2)){ |
|
|
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(2)){ |
|
|
// 拦截进场费的历史记录和规则
|
|
|
// 拦截进场费的历史记录和规则
|
|
|
this.vaildEnterTypeCostHistoryAndRule(tbsCostApply, activityList, subjectList); |
|
|
this.vaildEnterTypeCostHistoryAndRule(tbsCostApply, activityList, subjectList,activityCenterGoodsList, |
|
|
|
|
|
activityChannelList,activityChannelPointList); |
|
|
} |
|
|
} |
|
|
//模板拦截
|
|
|
//模板拦截
|
|
|
boolean isIgnoreSubject = false; |
|
|
boolean isIgnoreSubject = false; |
|
@ -1060,57 +1065,77 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC |
|
|
* @param tbsCostApply |
|
|
* @param tbsCostApply |
|
|
* @param activityList |
|
|
* @param activityList |
|
|
* @param subjectList |
|
|
* @param subjectList |
|
|
|
|
|
* @param activityGoodsList |
|
|
*/ |
|
|
*/ |
|
|
private void vaildEnterTypeCostHistoryAndRule(TbsCostApply tbsCostApply, List<TbsActivity> activityList, List<BmsSubject> subjectList) { |
|
|
private void vaildEnterTypeCostHistoryAndRule(TbsCostApply tbsCostApply, |
|
|
|
|
|
List<TbsActivity> activityList, |
|
|
|
|
|
List<BmsSubject> subjectList, |
|
|
|
|
|
List<TbsActivityGoods> activityGoodsList, |
|
|
|
|
|
List<TbsActivityChannel> activityChannelList, |
|
|
|
|
|
List<TbsActivityChannelPoint> activityChannelPointList) { |
|
|
if (activityList.size()>1){ |
|
|
if (activityList.size()>1){ |
|
|
Assert.throwEx("进场费类型只能有一个活动"); |
|
|
Assert.throwEx("进场费类型只能有一个活动"); |
|
|
} |
|
|
} |
|
|
if(subjectList.stream().anyMatch(s->s.getSlottingFlag().equals(0))){ |
|
|
if(subjectList.stream().anyMatch(s->s.getSlottingFlag().equals(0))){ |
|
|
Assert.throwEx("当前申请含非进场费类型科目"); |
|
|
Assert.throwEx("当前申请含非进场费类型科目"); |
|
|
} |
|
|
} |
|
|
// 判断是否已有历史进场费
|
|
|
// 查找历史有效的进场费费用
|
|
|
LambdaQueryWrapper<TbsCostApply> costApplyLqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<TbsCostApply> costApplyLqw = new LambdaQueryWrapper<>(); |
|
|
costApplyLqw.eq(TbsCostApply::getSupplierId, tbsCostApply.getSupplierId()); |
|
|
costApplyLqw.eq(TbsCostApply::getSupplierId, tbsCostApply.getSupplierId()); |
|
|
costApplyLqw.eq(TbsCostApply::getContractFlag,2); |
|
|
costApplyLqw.eq(TbsCostApply::getContractFlag,2); |
|
|
// 生效的费用申请
|
|
|
|
|
|
costApplyLqw.in(TbsCostApply::getChargeState,1,2,3,7); |
|
|
costApplyLqw.in(TbsCostApply::getChargeState,1,2,3,7); |
|
|
costApplyLqw.select(TbsCostApply::getId); |
|
|
costApplyLqw.select(TbsCostApply::getId); |
|
|
List<TbsCostApply> costApplyList = tbsCostApplyMapper.selectList(costApplyLqw); |
|
|
List<TbsCostApply> costApplyList = tbsCostApplyMapper.selectList(costApplyLqw); |
|
|
List<Long> enterIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); |
|
|
List<Long> hisCostIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); |
|
|
if(CollUtil.isNotEmpty(enterIds)){ |
|
|
|
|
|
Set<Long> pointIds = new HashSet<>(); |
|
|
// 当前的渠道和网点id
|
|
|
Set<Long> channelIds = new HashSet<>(); |
|
|
Set<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toSet()); |
|
|
List<TbsActivityChannel> activityChannelList = tbsActivityChannelMapper.selectList( |
|
|
Set<Long> pointIds = activityChannelPointList.stream().map(TbsActivityChannelPoint::getPointId).collect(Collectors.toSet()); |
|
|
new LambdaQueryWrapper<TbsActivityChannel>() |
|
|
|
|
|
.select(TbsActivityChannel::getChannelId) |
|
|
// 通过历史记录查询有雷同网点和渠道的费用id
|
|
|
.in(TbsActivityChannel::getCostApplyId,enterIds)); |
|
|
Set<Long> sameChannelCostIds = new HashSet<>(); |
|
|
for (TbsActivityChannel channel : activityChannelList) { |
|
|
if(CollUtil.isNotEmpty(hisCostIds)){ |
|
|
channelIds.add(channel.getChannelId()); |
|
|
if (CollUtil.isNotEmpty(pointIds)){ |
|
|
} |
|
|
List<TbsActivityChannelPoint> selectHisPoint = tbsActivityChannelPointMapper.selectList( |
|
|
List<TbsActivityChannelPoint> activityChannelPointList = tbsActivityChannelPointMapper.selectList( |
|
|
|
|
|
new LambdaQueryWrapper<TbsActivityChannelPoint>() |
|
|
new LambdaQueryWrapper<TbsActivityChannelPoint>() |
|
|
.select(TbsActivityChannelPoint::getPointId, |
|
|
.select(TbsActivityChannelPoint::getCostApplyId) |
|
|
TbsActivityChannelPoint::getChannelId) |
|
|
.in(TbsActivityChannelPoint::getCostApplyId,hisCostIds) |
|
|
.in(TbsActivityChannelPoint::getCostApplyId,enterIds)); |
|
|
.in(TbsActivityChannelPoint::getPointId,pointIds) |
|
|
for (TbsActivityChannelPoint point : activityChannelPointList) { |
|
|
); |
|
|
pointIds.add(point.getPointId()); |
|
|
Set<Long> enterIds = selectHisPoint.stream().map(TbsActivityChannelPoint::getCostApplyId).collect(Collectors.toSet()); |
|
|
} |
|
|
for (Long enterId : enterIds) { |
|
|
if(CollUtil.isNotEmpty(channelIds)){ |
|
|
sameChannelCostIds.add(enterId); |
|
|
long count = tbsActivityChannelMapper.selectCount(new LambdaQueryWrapper<TbsActivityChannel>() |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (CollUtil.isNotEmpty(channelIds)){ |
|
|
|
|
|
List<TbsActivityChannel> selectHisChannel = tbsActivityChannelMapper.selectList( |
|
|
|
|
|
new LambdaQueryWrapper<TbsActivityChannel>() |
|
|
|
|
|
.select(TbsActivityChannel::getCostApplyId) |
|
|
|
|
|
.in(TbsActivityChannel::getCostApplyId,hisCostIds) |
|
|
.in(TbsActivityChannel::getChannelId,channelIds) |
|
|
.in(TbsActivityChannel::getChannelId,channelIds) |
|
|
.eq(TbsActivityChannel::getCostApplyId, tbsCostApply.getId()) |
|
|
|
|
|
); |
|
|
); |
|
|
if(count>0){ |
|
|
Set<Long> enterIds = selectHisChannel.stream().map(TbsActivityChannel::getCostApplyId).collect(Collectors.toSet()); |
|
|
Assert.throwEx("当前申请含网点,且已有历史进场费申请"); |
|
|
for (Long enterId : enterIds) { |
|
|
|
|
|
sameChannelCostIds.add(enterId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if(CollUtil.isNotEmpty(pointIds)){ |
|
|
} |
|
|
long count = tbsActivityChannelPointMapper.selectCount(new LambdaQueryWrapper<TbsActivityChannelPoint>() |
|
|
|
|
|
.in(TbsActivityChannelPoint::getPointId,pointIds) |
|
|
// 有雷同网点的费用ids判断商品是否雷同
|
|
|
.eq(TbsActivityChannelPoint::getCostApplyId, tbsCostApply.getId()) |
|
|
if (CollUtil.isNotEmpty(sameChannelCostIds)){ |
|
|
|
|
|
Set<Long> goodsIds = activityGoodsList.stream().map(TbsActivityGoods::getTargetId).collect(Collectors.toSet()); |
|
|
|
|
|
List<TbsActivityGoods> selectHisGoods = tbsActivityGoodsService.list( |
|
|
|
|
|
new LambdaQueryWrapper<TbsActivityGoods>() |
|
|
|
|
|
.select(TbsActivityGoods::getCostApplyId) |
|
|
|
|
|
.in(TbsActivityGoods::getCostApplyId,sameChannelCostIds) |
|
|
|
|
|
.in(TbsActivityGoods::getTargetId,goodsIds) |
|
|
); |
|
|
); |
|
|
if(count>0){ |
|
|
for (TbsActivityGoods goods : activityGoodsList) { |
|
|
Assert.throwEx("当前申请含网点,且已有历史进场费申请"); |
|
|
for (TbsActivityGoods hisGoods : selectHisGoods) { |
|
|
|
|
|
if (goods.getTargetId().equals(hisGoods.getTargetId()) |
|
|
|
|
|
&&goods.getTargetType().equals(hisGoods.getTargetType())){ |
|
|
|
|
|
Assert.throwEx("历史含相同渠道或网点的进场费活动商品:"+goods.getTargetName()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|