From 2a540192a05551981d3a07114b36ddc91f6d643c Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 16 May 2025 09:39:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(rebate):=20=E4=BF=AE=E5=A4=8D=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/tzc/entity/bo/TzcRebateParam.java | 18 ++-- .../oms/controller/api/OmsOrderApi.java | 4 + .../TbsActivityTemplateController.java | 1 + .../tzc/controller/TzcRebateController.java | 2 +- .../TzcRebateApplication4CostService.java | 11 ++- ...RebateApplication4VerificationService.java | 4 +- .../TzcRebateApplication4CostServiceImpl.java | 94 +++++++++++-------- ...teApplication4VerificationServiceImpl.java | 57 +++++++---- .../impl/TzcRebateApplicationServiceImpl.java | 58 +++++++----- 9 files changed, 160 insertions(+), 89 deletions(-) diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java index bd32cb4..c1ea4ce 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java @@ -55,15 +55,15 @@ public class TzcRebateParam{ @NotNull(message = "自动核销日期类型不能为空") private Integer checkAutoDateType; - /** 核销开始时间 */ - @NotNull(message = "核销开始时间不能为空") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate checkStartDate; - - /** 核销结束时间 */ - @NotNull(message = "核销结束时间不能为空") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate checkEndDate; +// /** 核销开始时间 */ +// @NotNull(message = "核销开始时间不能为空") +// @DateTimeFormat(pattern = "yyyy-MM-dd") +// private LocalDate checkStartDate; +// +// /** 核销结束时间 */ +// @NotNull(message = "核销结束时间不能为空") +// @DateTimeFormat(pattern = "yyyy-MM-dd") +// private LocalDate checkEndDate; /** 客户id */ @NotNull(message = "客户id不能为空") diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index 76064db..05e906e 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -138,6 +138,7 @@ public class OmsOrderApi { */ @PostMapping("/createOrder") public R createOrderPC(@RequestBody @Valid OmsOrderBo omsOrderBo){ + Assert.throwEx("请在最新订单模块下单"); return R.ok(omsOrderService.createOrder(omsOrderBo)); } @@ -148,6 +149,7 @@ public class OmsOrderApi { */ @PostMapping("/modifyOrder") public R modifyOrder(@RequestBody @Valid OmsOrderModifyParam param){ + Assert.throwEx("请在最新订单模块下单"); omsOrderService.modifyOrder(param); return R.ok(); } @@ -159,6 +161,7 @@ public class OmsOrderApi { */ @PostMapping("/createOrderOnPC") public R createOrder(@RequestBody @Valid OmsOrderSkuBo omsOrderBo){ + Assert.throwEx("请在最新订单模块下单"); return R.ok(omsOrderService.createOrderPc(omsOrderBo)); } @@ -418,6 +421,7 @@ public class OmsOrderApi { @PostMapping("/buildPriceOrder/{id}/{amount}") @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) public R buildPriceOrder(@PathVariable("id") String id,@PathVariable("amount") String amount){ + Assert.throwEx("请在最新订单模块下单"); omsOrderService.buildPriceOrder(id,amount); return R.ok(); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java index 52ad282..6a7f7ca 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java @@ -249,6 +249,7 @@ public class TbsActivityTemplateController { if(contractFlag!=null){ tmpLqw.eq(TbsActivityTemplate::getContractFlag,contractFlag); } + tmpLqw.orderByDesc(TbsActivityTemplate::getCreateTime); PageUtil.startPage(); List templates = tbsActivityTemplateService.list(tmpLqw); return R.byPageHelperList(templates); diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java index bb2cb57..00a699b 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/controller/TzcRebateController.java @@ -69,7 +69,7 @@ public class TzcRebateController { */ @PostMapping("/getRebateInfoOfYear") public R> getRebateByYear(@RequestBody List queryList){ - return R.ok(tzcRebateApplication4VerificationService.getRebateBatchVerificationList(queryList)); + return R.ok(tzcRebateApplication4VerificationService.getRebateBatchVerificationList(queryList,null)); } /** diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java index f709a3e..1ac71d5 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4CostService.java @@ -36,7 +36,16 @@ public interface TzcRebateApplication4CostService { List centerList, List levelsList); - + /** + * 计算叠加的最高金额 + * @param levelsList + * @param argumentList + * @param configList + * @return + */ + BigDecimal getMaxLevelsAmount(List levelsList, + List argumentList, + List configList); /** * 获取最高命中返利坎级的信息及坎级列表 diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4VerificationService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4VerificationService.java index 82ca2ce..31ef537 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4VerificationService.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/TzcRebateApplication4VerificationService.java @@ -17,10 +17,12 @@ public interface TzcRebateApplication4VerificationService { /** * 获取批量核销列表(总目标达标补偿) + * queryList 和 costId 二选一 * @param queryList + * @param costId * @return */ - List getRebateBatchVerificationList(List queryList); + List getRebateBatchVerificationList(List queryList,Long costId); /** * 获取活动返利金额 diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java index be47d03..eb51669 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java @@ -22,10 +22,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -100,6 +97,7 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio TbsCostApply costApply = new TbsCostApply(); costApply.setRebateId(rebateId); costApply.setCode(rebate.getRebateCode()); + costApply.setTemplateId(rebate.getTemplateId()); // 标记为返利类型 costApply.setContractFlag(3); costApply.setMatchType(1); @@ -294,42 +292,59 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio * @param configList * @return */ + @Override public BigDecimal getMaxLevelsAmount(List levelsList, List argumentList, List configList){ - int level = 0; - String[] configArr = null; - for (TzcRebateLevelsConfig config: configList) { - if(config.getLevelNum()>level){ - level = config.getLevelNum(); - configArr = config.getLevelConfigs(); + BigDecimal maxAmount = BigDecimal.ZERO; + for (TzcRebateLevelsConfig config : configList) { + Set levelNumSet = Arrays.stream(config.getLevelConfigs()).collect(Collectors.toSet()); + // 默认包含当前坎级 + levelNumSet.add(config.getLevelNum()+""); + BigDecimal currentConfAmount = BigDecimal.ZERO; + for (String levelNumStr : levelNumSet) { + int levelNum = Integer.parseInt(levelNumStr); + // 当前坎级最高返利金额 + BigDecimal currentLevelMaxAmount = getCurrentLevelMaxAmount(levelsList, argumentList, levelNum); + if (currentLevelMaxAmount.compareTo(BigDecimal.ZERO)>0){ + currentConfAmount = currentConfAmount.add(currentLevelMaxAmount); + } + } + if (currentConfAmount.compareTo(maxAmount)>0){ + maxAmount = currentConfAmount; } } - BigDecimal maxAmount = BigDecimal.ZERO; + return maxAmount; + } + + /** + * 获取当前坎级最高金额 + * @param levelsList + * @param argumentList + * @param levelNum + * @return + */ + @NotNull + private BigDecimal getCurrentLevelMaxAmount(List levelsList, List argumentList, int levelNum) { + BigDecimal currentLevelMaxAmount = BigDecimal.ZERO; for (TzcRebateLevels levels : levelsList) { - String lvNum = levels.getLevelNum()+""; - for (String levelNum : configArr) { - if(lvNum.equals(levelNum)){ - BigDecimal amt1 = BigDecimal.ZERO; - BigDecimal amt2 = BigDecimal.ZERO; - for (TzcRebateLevelsArgument argument : argumentList) { - if(argument.getLevelId().equals(levels.getId())){ - if (argument.getBusinessType().equals(TzcArgTypes.LevelReturn.name())){ - amt1 = argument.getMaxReturn(); - }else if (argument.getBusinessType().equals(TzcArgTypes.LevelOverallReturn.name())){ - amt2 = argument.getMaxReturn(); - } + if(levels.getLevelNum()== levelNum){ + // 排除返利和补偿返利的最高金额 + BigDecimal currentArgAmount = BigDecimal.ZERO; + for (TzcRebateLevelsArgument argument : argumentList) { + if(argument.getLevelId().equals(levels.getId())){ + if (argument.getMaxReturn().compareTo(currentArgAmount)>0){ + currentArgAmount = argument.getMaxReturn(); } } - if(amt1.compareTo(amt2)>0){ - maxAmount = amt1; - }else { - maxAmount = amt2; - } + } + // 排除同坎级的有同期和无同期的最高金额 + if (currentArgAmount.compareTo(currentLevelMaxAmount)>0){ + currentLevelMaxAmount = currentArgAmount; } } } - return maxAmount; + return currentLevelMaxAmount; } @Override @@ -360,12 +375,12 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio String msg = ""; if (levels.getConditionType().equals(0)){ periodAmount = sameDispatchAmt; - msg = "同期金额:"+periodAmount; + msg = ";同期金额:"+periodAmount; }else if (levels.getConditionType().equals(1)){ periodAmount = tarPeriodAmount; - msg = "目标金额:"+periodAmount; + msg = ";目标金额:"+periodAmount; } - msg = "("+msg+",占比:"+levels.getConditionRate()+"(含)-"+levels.getConditionRateEnd()+"%)"; + msg = msg+";占比:"+levels.getConditionRate()+"(含)-"+levels.getConditionRateEnd()+"%"; BigDecimal targetAmt = periodAmount.multiply(levels.getConditionRate()) .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); BigDecimal targetAmtEnd = periodAmount.multiply(levels.getConditionRateEnd()) @@ -374,10 +389,10 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio boolean ok1 = dispatchAmt.compareTo(targetAmt)>=0; // 包含 boolean ok2 = dispatchAmt.compareTo(targetAmtEnd)<0; // 不包含 if (!ok1 || !ok2){ - dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",门槛金额:"+targetAmt+msg+",发货金额:"+dispatchAmt); + dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",门槛金额:"+targetAmt+"-"+targetAmtEnd + msg+",发货金额:"+dispatchAmt); continue; } - dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",条件金额:"+targetAmt+msg+",发货金额:"+dispatchAmt); + dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",门槛金额:"+targetAmt+"-"+targetAmtEnd + msg+",发货金额:"+dispatchAmt); dto.setMaxLevels(levels); return dto; }else if (levels.getConditionSelect().equals(1)){ @@ -464,7 +479,6 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio dto.appendDebugMsg("读取坎级("+rebateLevels.getLevelNum()+")配置 ,返利参数:"+currentArgument.getBusinessType()); TzcRebateLevelAmountDTO rebateLevelsDTO = CopierUtil.copy(rebateLevels,new TzcRebateLevelAmountDTO()); rebateLevelsDTO.setArgument(currentArgument); - rebateLevelsDTO.setMaxReturn(currentArgument.getMaxReturn()); // 选择的策略:0-百分比;1-固定金额 if (currentArgument.getRateAmtFlag().equals(1)){ rebateLevelsDTO.setReturnAmt(currentArgument.getReturnFixed()); @@ -474,8 +488,11 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio if (currentArgument.getSumAddFlag().equals(0)){ BigDecimal rs = dispatchAmt.multiply(currentArgument.getReturnRate()) .divide(BigDecimal.valueOf(100),2,RoundingMode.HALF_UP); + if (rs.compareTo(currentArgument.getMaxReturn())>0){ + rs = currentArgument.getMaxReturn(); + } rebateLevelsDTO.setReturnAmt(rs); - rebateLevelsDTO.setDebugMsg("基于总量("+rs+")=返货金额("+dispatchAmt+")*返利百分比("+currentArgument.getReturnRate()+"%)"); + rebateLevelsDTO.setDebugMsg("基于总量("+rs+")=返货金额("+dispatchAmt+")*返利百分比("+currentArgument.getReturnRate()+"%);最高返利:"+currentArgument.getMaxReturn()); }else if (currentArgument.getSumAddFlag().equals(1)){ // 增量 = (发货金额 - 同比发货金额) * 返利比例 / 100 BigDecimal rs = dispatchAmt.subtract(sameDispatchAmt) @@ -483,7 +500,10 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio .divide(BigDecimal.valueOf(100),2,RoundingMode.HALF_UP); if (rs.compareTo(BigDecimal.ZERO)>0){ rebateLevelsDTO.setDebugMsg("基于增量("+rs+") " + - "= (发货金额["+dispatchAmt+"] - 同比发货金额["+sameDispatchAmt+"]) * 返利比例["+currentArgument.getReturnRate()+"%]"); + "= (发货金额["+dispatchAmt+"] - 同比发货金额["+sameDispatchAmt+"]) * 返利比例["+currentArgument.getReturnRate()+"%];最高返利"+currentArgument.getMaxReturn()); + if (rs.compareTo(currentArgument.getMaxReturn())>0){ + rs = currentArgument.getMaxReturn(); + } rebateLevelsDTO.setReturnAmt(rs); }else { rebateLevelsDTO.setReturnAmt(BigDecimal.ZERO); diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java index e7bbbf2..4c5c555 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4VerificationServiceImpl.java @@ -62,11 +62,27 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp private final TzcRebateLevelsService tzcRebateLevelsService; private final ErpDispatchDataMapper erpDispatchDataMapper; + @Override - public List getRebateBatchVerificationList(List queryList) { + public List getRebateBatchVerificationList(List queryList,Long costId) { + + // 方法类型:0 :通过前端传参,1:通过数据库查询 + int methodType = 1; + List activityIds = null; + if (CollUtil.isEmpty(queryList)){ + methodType = 0; + activityIds = queryList.stream() + .map(TzcGetActivityRebateQuery::getActivityId).collect(Collectors.toList()); + }else { + methodType = 1; + activityIds = tbsActivityMapper.selectList( + new LambdaQueryWrapper() + .select(TbsActivity::getId) + .eq(TbsActivity::getCostApplyId, costId) + ).stream().map(TbsActivity::getId).collect(Collectors.toList()); + } + - List activityIds = queryList.stream() - .map(TzcGetActivityRebateQuery::getActivityId).collect(Collectors.toList()); List activityList = tbsActivityMapper.selectBatchIds(activityIds); if (CollUtil.isEmpty(activityList)){ @@ -100,23 +116,30 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp if (activity == null){ Assert.throwEx("缺少有效的活动id"); } - // 实际发货金额,方式一(前端传参) BigDecimal dispatchAmt = null; - for (TzcGetActivityRebateQuery query : queryList) { - if (query.getActivityId().equals(activity.getId())){ - // 获取发货金额 - dispatchAmt = query.getDispatchAmount(); + // 实际发货金额,方式一(前端传参) + if (methodType==0){ + for (TzcGetActivityRebateQuery query : queryList) { + if (query.getActivityId().equals(activity.getId())){ + // 获取发货金额 + dispatchAmt = query.getDispatchAmount(); + } + } + if (dispatchAmt == null){ + Assert.throwEx("缺少有效的发货金额"); + } + }else { + // 实际发货金额,方式二(通过数据库查询) + dispatchAmt = this.getPeriodDispatch( + supplierCode, + period.getPeriodStartDate(), + period.getPeriodEndDate(), + goodsMap); + if (dispatchAmt==null){ + dispatchAmt = BigDecimal.ZERO; } } - if (dispatchAmt == null){ - Assert.throwEx("缺少有效的发货金额"); - } - // 实际发货金额,方式二(通过数据库查询) -// BigDecimal dispatchAmt = this.getPeriodDispatch( -// supplierCode, -// period.getPeriodStartDate(), -// period.getPeriodEndDate(), -// goodsMap); + // 区间目标合计金额 BigDecimal periodAmt = period.getPeriodAmount(); // 同期进货合计金额 diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java index 470e1eb..ac707bb 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java @@ -169,12 +169,6 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ // 校验返利参数(取消判断金额) this.validRebateParam(param); - // 获取最高坎级返回的金额 - BigDecimal maxAmount = this.getMaxLevelsAmount(param); - // 计算和平摊到科目和成本中心(不再读取前端的金额) - List subjectParamList = param.getSubjectList(); - this.calculateSubjectAndCenter(subjectParamList, maxAmount); - if (isUpdate){ //删除旧数据 this.removeOldRebateDataById(rebateId); @@ -197,24 +191,20 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ // 返利的商品 List tzcRebateGoodsList = this.buildRebateGoodsList(param.getGoodsType(),param.getGoodsList()); - // 返利的商品,关联主表id和code - for (TzcRebateGoods rebateGoods : tzcRebateGoodsList) { - rebateGoods.setRebateId(rebate.getId()); - rebateGoods.setRebateCode(rebate.getRebateCode()); - } - tzcRebateGoodsService.saveBatch(tzcRebateGoodsList); - - // 返利的成本中心(引用类型赋值) - List rebateCenterList = new ArrayList<>(); - // 返利的科目 - List tzcRebateSubjectList = this.buildRebateSubjectList(rebateId,param.getSubjectList(),rebateCenterList); // 期间及补偿参数保存 List periodList = this.savePeriodList(param.getPeriodList(), rebateId); // 保存坎级和设置参数 List argumentList = new ArrayList<>(); - List levelsList = this.saveLevelListAndArgs(param, rebateId,argumentList); + List levelsList = this.saveLevelListAndArgs(param.getLevelsList(), rebateId,argumentList); + + // 返利的商品,关联主表id和code + for (TzcRebateGoods rebateGoods : tzcRebateGoodsList) { + rebateGoods.setRebateId(rebate.getId()); + rebateGoods.setRebateCode(rebate.getRebateCode()); + } + tzcRebateGoodsService.saveBatch(tzcRebateGoodsList); // 保存坎级叠加配置 List configList = new ArrayList<>(); @@ -227,6 +217,18 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ tzcRebateLevelsConfigService.save(config); configList.add(config); } + + // 获取最高坎级返回的金额 + BigDecimal maxAmount = tzcRebateApplication4CostService.getMaxLevelsAmount(levelsList, argumentList, configList); + // 计算和平摊到科目和成本中心(不再读取前端的金额) + List subjectParamList = param.getSubjectList(); + this.calculateSubjectAndCenter(subjectParamList, maxAmount); + + // 返利的成本中心(引用类型赋值) + List rebateCenterList = new ArrayList<>(); + // 返利的科目 + List tzcRebateSubjectList = this.buildRebateSubjectList(rebateId,param.getSubjectList(),rebateCenterList); + // 建立费用 Long costApplyId = tzcRebateApplication4CostService.buildCostAndActivity( rebate, @@ -345,12 +347,15 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ /** * 保存坎级和设置参数 - * @param param + * @param levelsParamList * @param rebateId + * @param argumentList */ - private List saveLevelListAndArgs(TzcRebateParam param, Long rebateId,List argumentList) { + private List saveLevelListAndArgs(List levelsParamList, + Long rebateId, + List argumentList) { List levelsList = new ArrayList<>(); - for (TzcRebateLevelsParam levelsParam : param.getLevelsList()) { + for (TzcRebateLevelsParam levelsParam : levelsParamList) { TzcRebateLevels levels = new TzcRebateLevels(); levels.setRebateId(rebateId); levels.setLevelNum(levelsParam.getLevelNum()); @@ -417,8 +422,15 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ rebate.setCheckModel(param.getCheckModel()); rebate.setCheckMaxAmount(param.getCheckMaxAmount()); rebate.setCheckAutoDateType(param.getCheckAutoDateType()); - rebate.setCheckStartDate(param.getCheckStartDate()); - rebate.setCheckEndDate(param.getCheckEndDate()); + // 自动核销日期类型:0-手动设置;1-自然月;2-自然周 + int days = 15; + if (param.getCheckAutoDateType().equals(1)){ + days = 30; + }else if (param.getCheckAutoDateType().equals(2)){ + days = 7; + } + rebate.setCheckStartDate(param.getActivityStartTime().plusDays(days)); + rebate.setCheckEndDate(param.getActivityEndTime().plusDays(days)); rebate.setSupplierId(param.getSupplierId()); rebate.setSupplierCode(supplier.getCode()); rebate.setSupplierName(supplier.getName());