|
|
@ -11,6 +11,9 @@ import com.qs.serve.common.utils.StringUtils; |
|
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
|
import com.qs.serve.modules.bms.mapper.BmsSubjectFormMapper; |
|
|
|
import com.qs.serve.modules.bms.service.*; |
|
|
|
import com.qs.serve.modules.erp.entity.so.ErpDispatchSumPmsQuery; |
|
|
|
import com.qs.serve.modules.erp.entity.vo.ErpDispatchSumPmsVo; |
|
|
|
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsCategory; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsSku; |
|
|
|
import com.qs.serve.modules.goods.entity.GoodsSpu; |
|
|
@ -73,8 +76,74 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
|
|
|
|
|
private final SysConfigService configService; |
|
|
|
|
|
|
|
private final ErpDispatchDataMapper erpDispatchDataMapper; |
|
|
|
private final TbsActivityAmtCheckMapper activityAmtCheckMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
public ErpDispatchSumPmsVo getDispatchSumByActivity(TbsActivity activity) { |
|
|
|
ErpDispatchSumPmsQuery query = new ErpDispatchSumPmsQuery(); |
|
|
|
query.setSupplierCode(activity.getSupplierCode()); |
|
|
|
query.setStartDate(activity.getActStartDate()); |
|
|
|
query.setEndDate(activity.getActEndDate()); |
|
|
|
List<TbsActivityGoods> activityGoodsList = activityGoodsService.list( |
|
|
|
new LambdaQueryWrapper<TbsActivityGoods>() |
|
|
|
.eq(TbsActivityGoods::getActivityId, activity.getId())); |
|
|
|
Map<String,List<TbsActivityGoods>> actGoodsMap = activityGoodsList.stream() |
|
|
|
.collect(Collectors.groupingBy(TbsActivityGoods::getTargetType)); |
|
|
|
boolean hasGoods = false; |
|
|
|
List<TbsActivityGoods> brandGoodsList = actGoodsMap.get("brand"); |
|
|
|
if(brandGoodsList!=null){ |
|
|
|
List<Long> ids = brandGoodsList.stream() |
|
|
|
.map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); |
|
|
|
query.setBrandIds(ids); |
|
|
|
hasGoods = true; |
|
|
|
} |
|
|
|
List<TbsActivityGoods> seriesGoodsList = actGoodsMap.get("series"); |
|
|
|
if(seriesGoodsList!=null){ |
|
|
|
List<Long> ids = seriesGoodsList.stream() |
|
|
|
.map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); |
|
|
|
query.setSeriesIds(ids); |
|
|
|
hasGoods = true; |
|
|
|
} |
|
|
|
List<TbsActivityGoods> categoryGoodsList = actGoodsMap.get("category"); |
|
|
|
if(categoryGoodsList!=null){ |
|
|
|
List<Long> ids = categoryGoodsList.stream() |
|
|
|
.map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); |
|
|
|
query.setCategoryIds(ids); |
|
|
|
hasGoods = true; |
|
|
|
} |
|
|
|
List<TbsActivityGoods> spuGoodsList = actGoodsMap.get("spu"); |
|
|
|
if(spuGoodsList!=null){ |
|
|
|
List<Long> ids = spuGoodsList.stream() |
|
|
|
.map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); |
|
|
|
query.setSpuIds(ids); |
|
|
|
hasGoods = true; |
|
|
|
} |
|
|
|
List<TbsActivityGoods> skuGoodsList = actGoodsMap.get("sku"); |
|
|
|
if(skuGoodsList!=null){ |
|
|
|
List<Long> ids = skuGoodsList.stream() |
|
|
|
.map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); |
|
|
|
query.setSkuIds(ids); |
|
|
|
hasGoods = true; |
|
|
|
} |
|
|
|
ErpDispatchSumPmsVo sumPmsVo = new ErpDispatchSumPmsVo(); |
|
|
|
sumPmsVo.setSupplierCode(query.getSupplierCode()); |
|
|
|
sumPmsVo.setStartDate(query.getStartDate()); |
|
|
|
sumPmsVo.setEndDate(query.getEndDate()); |
|
|
|
sumPmsVo.setCategoryIds(query.getCategoryIds()); |
|
|
|
sumPmsVo.setSpuIds(query.getSpuIds()); |
|
|
|
sumPmsVo.setSkuIds(query.getSkuIds()); |
|
|
|
BigDecimal amt = BigDecimal.ZERO; |
|
|
|
if (hasGoods) { |
|
|
|
amt = erpDispatchDataMapper.queryCusAmtByPms(query); |
|
|
|
if (amt==null){ |
|
|
|
amt = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|
sumPmsVo.setTotalAmount(amt); |
|
|
|
return sumPmsVo; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void initReopenState() { |
|
|
|
LocalDate now = LocalDate.now(); |
|
|
|