diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateLevelAmountDTO.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateLevelAmountDTO.java index 5ec1446..ba3a40a 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateLevelAmountDTO.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/dto/TzcRebateLevelAmountDTO.java @@ -42,4 +42,6 @@ public class TzcRebateLevelAmountDTO extends TzcRebateLevels { @NotNull private TzcRebateLevelsArgument argument; + private String debugMsg; + } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index a6e1fda..e9062fb 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -546,7 +546,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl=0; if (!ok){ - dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",条件金额:"+targetAmt+",发货金额:"+dispatchAmt); - log.debug("跳过坎级:{},条件金额:{},发货金额:{}",levels.getLevelNum(),targetAmt,dispatchAmt); + dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",门槛金额:"+targetAmt+msg+",发货金额:"+dispatchAmt); continue; } - dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",条件金额:"+targetAmt+",发货金额:"+dispatchAmt); + dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",条件金额:"+targetAmt+msg+",发货金额:"+dispatchAmt); dto.setMaxLevels(levels); return dto; }else if (levels.getConditionSelect().equals(1)){ // 发货金额大于坎级制定的固定金额 boolean ok = dispatchAmt.compareTo(levels.getConditionAmount())>=0; if (!ok){ - dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",条件金额:"+levels.getConditionAmount()+",发货金额:"+dispatchAmt); - log.debug("跳过坎级:{},条件金额:{},发货金额:{}",levels.getLevelNum(),levels.getConditionAmount(),dispatchAmt); + dto.appendDebugMsg("跳过坎级:"+levels.getLevelNum()+",门槛固定金额:"+levels.getConditionAmount()+",发货金额:"+dispatchAmt); continue; } - dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",条件固定金额:"+levels.getConditionAmount()+",发货金额:"+dispatchAmt); + dto.appendDebugMsg("命中坎级:"+levels.getLevelNum()+",门槛固定金额:"+levels.getConditionAmount()+",发货金额:"+dispatchAmt); dto.setMaxLevels(levels); return dto; } @@ -452,7 +454,8 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio } } if (currentArgument==null){ - log.error("没有命中坎级参数:"+argType.name()); + log.error("坎级ID:"+rebateLevels.getId()+",缺少参数:"+argType.name()); + dto.appendErrorMsg("坎级ID:"+rebateLevels.getId()+",缺少参数:"+argType.name()); continue; } TzcRebateLevelAmountDTO rebateLevelsDTO = CopierUtil.copy(rebateLevels,new TzcRebateLevelAmountDTO()); @@ -461,23 +464,27 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio // 选择的策略:0-百分比;1-固定金额 if (currentArgument.getRateAmtFlag().equals(1)){ rebateLevelsDTO.setReturnAmt(currentArgument.getReturnFixed()); + rebateLevelsDTO.setDebugMsg("返利为固定金额:"+currentArgument.getReturnFixed()); }else if (currentArgument.getRateAmtFlag().equals(0)){ //目标销量维度:0-总量;1-增量 if (currentArgument.getSumAddFlag().equals(0)){ BigDecimal rs = dispatchAmt.multiply(currentArgument.getReturnRate()) .divide(BigDecimal.valueOf(100),2,RoundingMode.HALF_UP); rebateLevelsDTO.setReturnAmt(rs); + rebateLevelsDTO.setDebugMsg("基于总量("+rs+")=返货金额("+dispatchAmt+")*返利百分比("+currentArgument.getReturnRate()+"%)"); }else if (currentArgument.getSumAddFlag().equals(1)){ // 增量 = (发货金额 - 同比发货金额) * 返利比例 / 100 BigDecimal rs = dispatchAmt.subtract(sameDispatchAmt) .multiply(currentArgument.getReturnRate()) .divide(BigDecimal.valueOf(100),2,RoundingMode.HALF_UP); if (rs.compareTo(BigDecimal.ZERO)>0){ + rebateLevelsDTO.setDebugMsg("基于增量("+rs+") " + + "= (发货金额["+dispatchAmt+"] - 同比发货金额["+sameDispatchAmt+"]) * 返利比例["+currentArgument.getReturnRate()+"%]"); rebateLevelsDTO.setReturnAmt(rs); }else { rebateLevelsDTO.setReturnAmt(BigDecimal.ZERO); log.warn("返利参数TzcRebateLevelsArgument-ID:{},返利金额小于0",currentArgument.getId()); - dto.appendErrorMsg("返利参数TzcRebateLevelsArgument-ID:"+currentArgument.getId()+",返利金额小于0"); + rebateLevelsDTO.setDebugMsg("返利参数TzcRebateLevelsArgument-ID:"+currentArgument.getId()+",返利金额小于0"); } } } 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 940c973..cf5ca27 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 @@ -48,6 +48,16 @@ public class TzcRebateApplication4VerificationServiceImpl implements TzcRebateAp private final TzcRebateLevelsConfigService tzcRebateLevelsConfigService; private final TzcRebateLevelsService tzcRebateLevelsService; + @Override + public Object getRebateBatchVerificationList(Long costApplyId) { + // 过滤不需要补充的返利期间 + // 加载相关活动 + // 已核销金额 + // 计算返利每个期间补充金额 + // 结合核销金额及最高补偿金额,计算返利金额 + // 返回活动对应的核销金额及返利计算流程 + return null; + } @Override public TzcRebateCalculateDTO getActivityRebateAmount(Long activityId, BigDecimal dispatchAmt) { diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java index 4ece78f..e365ea2 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java @@ -203,12 +203,15 @@ public class VtbVerification implements Serializable { /** 返利期间id */ private Long rebatePeriodId; - /** 实际发货金额(针对返利业务) */ + /** 自动获取发货金额(针对返利业务) */ private BigDecimal autoDispatchAmt; - /** 系统获取的发货金额 */ + /** 实际发货金额 */ private BigDecimal finalDispatchAmt; + /** 实际发货金额(申请时) */ + private BigDecimal finalDispatchAmtRecord; + @TableField(exist = false) private List attachList; diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java index 9f669d9..70df370 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java @@ -162,6 +162,9 @@ public class VtbVerificationSubject implements Serializable { /** 系统获取的发货金额 */ private BigDecimal finalDispatchAmt; + /** 实际发货金额(申请时) */ + private BigDecimal finalDispatchAmtRecord; + private Integer syncPayFlag; /** 可更变的最大金额 */ diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 7406721..d760b5e 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -921,6 +921,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl