|
@ -2,10 +2,8 @@ package com.qs.serve.modules.tbs.service.impl; |
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.qs.serve.common.util.Assert; |
|
|
import com.qs.serve.common.model.consts.SysConfigKey; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
import com.qs.serve.modules.bms.service.*; |
|
|
import com.qs.serve.modules.bms.service.*; |
|
|
import com.qs.serve.modules.goods.entity.GoodsCategory; |
|
|
import com.qs.serve.modules.goods.entity.GoodsCategory; |
|
@ -15,6 +13,10 @@ import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; |
|
|
import com.qs.serve.modules.goods.service.GoodsCategoryService; |
|
|
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.sys.entity.SysConfig; |
|
|
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
|
|
import com.qs.serve.modules.sys.service.SysConfigService; |
|
|
|
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.common.TbsGoodsType; |
|
|
import com.qs.serve.modules.tbs.common.TbsGoodsType; |
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
|
import com.qs.serve.modules.tbs.entity.*; |
|
@ -29,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -60,6 +63,9 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
private final GoodsSpuService goodsSpuService; |
|
|
private final GoodsSpuService goodsSpuService; |
|
|
private final GoodsCategoryService goodsCategoryService; |
|
|
private final GoodsCategoryService goodsCategoryService; |
|
|
|
|
|
|
|
|
|
|
|
private final SysConfigService configService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
@ -74,7 +80,8 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
} |
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
activity = CopierUtil.copy(activityBo,new TbsActivity()); |
|
|
activity = CopierUtil.copy(activityBo,new TbsActivity()); |
|
|
activity.setActivityCode("G"+ StringUtils.genShortId() + new Random().nextInt(9)); |
|
|
String random = String.format("%03d",new Random().nextInt(999)); |
|
|
|
|
|
activity.setActivityCode("G"+ StringUtils.genShortId() + random); |
|
|
} |
|
|
} |
|
|
activity.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
activity.setSupplierId(Long.parseLong(supplier.getId())); |
|
|
activity.setSupplierCode(supplier.getCode()); |
|
|
activity.setSupplierCode(supplier.getCode()); |
|
@ -85,6 +92,10 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
totalAmount = totalAmount.add(centerGoodsBo.getCenterGoodsAmount()); |
|
|
totalAmount = totalAmount.add(centerGoodsBo.getCenterGoodsAmount()); |
|
|
} |
|
|
} |
|
|
activity.setTotalAmount(totalAmount); |
|
|
activity.setTotalAmount(totalAmount); |
|
|
|
|
|
SysConfig sysConfig = configService.getByKey(SysConfigKey.ActivityPreCheckDays); |
|
|
|
|
|
Integer days = Integer.parseInt(sysConfig.getConfigValue()); |
|
|
|
|
|
LocalDate preDay = DateUtils.beSetDate(activity.getActEndDate(),days); |
|
|
|
|
|
activity.setPreCheckDate(preDay); |
|
|
this.saveOrUpdate(activity); |
|
|
this.saveOrUpdate(activity); |
|
|
if(isUpdate){ |
|
|
if(isUpdate){ |
|
|
//删除旧数据
|
|
|
//删除旧数据
|
|
@ -119,14 +130,14 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
} |
|
|
} |
|
|
BigDecimal tmp = rate.divide(new BigDecimal(100)); |
|
|
BigDecimal tmp = rate.divide(new BigDecimal(100)); |
|
|
if(tmp.compareTo(new BigDecimal(tmp.longValue()))!=0){ |
|
|
if(tmp.compareTo(new BigDecimal(tmp.longValue()))!=0){ |
|
|
Assert.throwEx("成本与商品分配比例有误"); |
|
|
Assert.throwEx("成本中心与商品分配比例有误"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
for (TbsActivityCenter activityCenter : activityCenterList) { |
|
|
for (TbsActivityCenter activityCenter : activityCenterList) { |
|
|
String key = activityCenter.getSubjectId()+":"+activityCenter.getCenterType()+":"+activityCenter.getCenterId(); |
|
|
String key = activityCenter.getSubjectId()+":"+activityCenter.getCenterType()+":"+activityCenter.getCenterId(); |
|
|
BigDecimal amount = checkAmountMap.get(key); |
|
|
BigDecimal amount = checkAmountMap.get(key); |
|
|
if(amount==null||amount.compareTo(activityCenter.getCenterAmount())!=0){ |
|
|
if(amount==null||amount.compareTo(activityCenter.getCenterAmount())!=0){ |
|
|
Assert.throwEx("成本与商品分配的金额有误"); |
|
|
Assert.throwEx("成本中心与商品分配的金额有误"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
//客户详情
|
|
|
//客户详情
|
|
@ -219,6 +230,12 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct |
|
|
centerGoods.setSubjectName(subject.getSubjectName()); |
|
|
centerGoods.setSubjectName(subject.getSubjectName()); |
|
|
centerGoods.setCenterGoodsAmount(centerGoodsBo.getCenterGoodsAmount()); |
|
|
centerGoods.setCenterGoodsAmount(centerGoodsBo.getCenterGoodsAmount()); |
|
|
centerGoods.setCenterGoodsRate(centerGoodsBo.getCenterGoodsRate()); |
|
|
centerGoods.setCenterGoodsRate(centerGoodsBo.getCenterGoodsRate()); |
|
|
|
|
|
//设置活动时间
|
|
|
|
|
|
centerGoods.setActEndDate(activity.getActEndDate()); |
|
|
|
|
|
centerGoods.setActStartDate(activity.getActStartDate()); |
|
|
|
|
|
centerGoods.setPreEndDate(activity.getPreEndDate()); |
|
|
|
|
|
centerGoods.setPreStartDate(activity.getPreStartDate()); |
|
|
|
|
|
centerGoods.setPreCheckDate(activity.getPreCheckDate()); |
|
|
//统计
|
|
|
//统计
|
|
|
String key4Count = subject.getId()+":"+key; |
|
|
String key4Count = subject.getId()+":"+key; |
|
|
BigDecimal checkAmount = checkAmountMap.get(key4Count); |
|
|
BigDecimal checkAmount = checkAmountMap.get(key4Count); |
|
|