|
|
@ -16,6 +16,12 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; |
|
|
|
import com.qs.serve.modules.goods.entity.dto.GoodsTargetInfo; |
|
|
|
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; |
|
|
|
import com.qs.serve.modules.goods.service.GoodsApplicationService; |
|
|
|
import com.qs.serve.modules.sys.common.AuthContextUtils; |
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
|
|
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateRegionService; |
|
|
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; |
|
|
|
import com.qs.serve.modules.tbs.service.TbsCenterDtoService; |
|
|
|
import com.qs.serve.modules.tzc.consts.TzcArgTypes; |
|
|
|
import com.qs.serve.modules.tzc.entity.*; |
|
|
@ -59,6 +65,10 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
private final TzcRebateLevelsConfigService tzcRebateLevelsConfigService; |
|
|
|
private final TzcRebateLevelsService tzcRebateLevelsService; |
|
|
|
|
|
|
|
private final SysUserService sysUserService; |
|
|
|
|
|
|
|
private final TbsActivityTemplateService tbsActivityTemplateService; |
|
|
|
private final TbsActivityTemplateRegionService tbsActivityTemplateRegionService; |
|
|
|
private final BmsCostCenterMapper bmsCostCenterMapper; |
|
|
|
private final BmsSupplierMapper bmsSupplierMapper; |
|
|
|
private final BmsSubjectMapper bmsSubjectMapper; |
|
|
@ -109,6 +119,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
levelsVoList.add(levelsVo); |
|
|
|
} |
|
|
|
return levelsVoList; |
|
|
|
} |
|
|
@ -170,6 +181,10 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
|
|
|
|
// 返利主表信息
|
|
|
|
TzcRebate rebate = buildRebateInfo(param, rebateId, rebateCode, supplier); |
|
|
|
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); |
|
|
|
rebate.setUserId(sysUser.getId()); |
|
|
|
rebate.setUserCode(sysUser.getCode()); |
|
|
|
rebate.setUserName(sysUser.getName()); |
|
|
|
tzcRebateService.saveOrUpdate(rebate); |
|
|
|
// 重新赋值获取最新id
|
|
|
|
rebateId = rebate.getId(); |
|
|
@ -350,12 +365,14 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
argument.setBusinessType(TzcArgTypes.LevelOverallReturn.name()); |
|
|
|
argument.setLevelId(levelId); |
|
|
|
argument.setPeriodId(0L); |
|
|
|
argument.setRebateId(rebateId); |
|
|
|
tzcRebateLevelsArgumentService.save(argument); |
|
|
|
|
|
|
|
TzcRebateLevelsArgument argument2 = buildArgByParam(levelsParam.getTargetArgument()); |
|
|
|
argument2.setBusinessType(TzcArgTypes.LevelReturn.name()); |
|
|
|
argument2.setLevelId(levelId); |
|
|
|
argument2.setPeriodId(0L); |
|
|
|
argument.setRebateId(rebateId); |
|
|
|
tzcRebateLevelsArgumentService.save(argument2); |
|
|
|
|
|
|
|
argumentList.add(argument); |
|
|
@ -369,8 +386,25 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
TzcRebate rebate = new TzcRebate(); |
|
|
|
rebate.setId(rebateId); |
|
|
|
rebate.setRebateCode(rebateCode); |
|
|
|
// rebate.setTemplateId();
|
|
|
|
// rebate.setTemplateName();
|
|
|
|
Long templateId = param.getTemplateId(); |
|
|
|
// TbsActivityTemplate template = tbsActivityTemplateService.getById(templateId);
|
|
|
|
// if (template==null){
|
|
|
|
// Assert.throwEx("模板不存在");
|
|
|
|
// }
|
|
|
|
// if (template.getTemplateState().equals(0)){
|
|
|
|
// Assert.throwEx("模板未启用");
|
|
|
|
// }
|
|
|
|
// boolean allVisible = template.getCustomFlag().equals(0)
|
|
|
|
// &&template.getSaleRegionFlag().equals(0)
|
|
|
|
// &&template.getBizRegionFlag().equals(0);
|
|
|
|
// if(!allVisible){
|
|
|
|
// boolean check = tbsActivityTemplateRegionService.checkSupplier(templateId,param.getSupplierId()+"");
|
|
|
|
// if(!check){
|
|
|
|
// Assert.throwEx("当前客户未授权");
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// rebate.setTemplateId(templateId);
|
|
|
|
// rebate.setTemplateName(template.getTemplateName());
|
|
|
|
rebate.setRebateName(param.getRebateName()); |
|
|
|
rebate.setRebateStatus(TzcRebateStatus.DRAFT.getStatus()); |
|
|
|
rebate.setActivityStartTime(param.getActivityStartTime()); |
|
|
@ -512,12 +546,12 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
BigDecimal oneHundred = new BigDecimal(100); |
|
|
|
List<TzcRebateSubjectParam> subjectParamList = param.getSubjectList(); |
|
|
|
BigDecimal totalRate = BigDecimal.ZERO; |
|
|
|
BigDecimal totalAmount = BigDecimal.ZERO; |
|
|
|
//BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
|
for (TzcRebateSubjectParam subjectParam : subjectParamList) { |
|
|
|
|
|
|
|
List<TzcRebateCenterParam> centerParamList = subjectParam.getCenterList(); |
|
|
|
BigDecimal totalCenterRate = BigDecimal.ZERO; |
|
|
|
BigDecimal totalCenterAmount = BigDecimal.ZERO; |
|
|
|
//BigDecimal totalCenterAmount = BigDecimal.ZERO;
|
|
|
|
for (TzcRebateCenterParam centerParam : centerParamList) { |
|
|
|
if(centerParam.getCenterRate().compareTo(BigDecimal.ZERO)<0){ |
|
|
|
Assert.throwEx("成本中心占比不能小于0"); |
|
|
@ -526,14 +560,14 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
// Assert.throwEx("成本中心额度不能小于0");
|
|
|
|
// }
|
|
|
|
totalCenterRate = totalCenterRate.add(centerParam.getCenterRate()); |
|
|
|
totalCenterAmount = totalCenterAmount.add(centerParam.getCenterAmount()); |
|
|
|
//totalCenterAmount = totalCenterAmount.add(centerParam.getCenterAmount());
|
|
|
|
} |
|
|
|
if(totalCenterRate.compareTo(oneHundred)!=0){ |
|
|
|
Assert.throwEx("科目的成本中心合计占比异常,当前:"+totalCenterRate+"%"); |
|
|
|
} |
|
|
|
if(totalCenterAmount.compareTo(subjectParam.getSubjectAmount())!=0){ |
|
|
|
Assert.throwEx("科目的成本中心合计计必须为返利科目额度"+totalCenterAmount+"元"); |
|
|
|
} |
|
|
|
// if(totalCenterAmount.compareTo(subjectParam.getSubjectAmount())!=0){
|
|
|
|
// Assert.throwEx("科目的成本中心合计计必须为返利科目额度"+totalCenterAmount+"元");
|
|
|
|
// }
|
|
|
|
if(subjectParam.getSubjectRate().compareTo(BigDecimal.ZERO)<0){ |
|
|
|
Assert.throwEx("科目占比不能小于0"); |
|
|
|
} |
|
|
@ -541,7 +575,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ |
|
|
|
// Assert.throwEx("科目额度不能小于0");
|
|
|
|
// }
|
|
|
|
totalRate = totalRate.add(subjectParam.getSubjectRate()); |
|
|
|
totalAmount = totalAmount.add(subjectParam.getSubjectAmount()); |
|
|
|
//totalAmount = totalAmount.add(subjectParam.getSubjectAmount());
|
|
|
|
|
|
|
|
} |
|
|
|
if(totalRate.compareTo(oneHundred)!=0){ |
|
|
|