Browse Source

feat: 返利保存调整

master
Yen 3 months ago
parent
commit
368a9cb3d5
  1. 6
      cms-modules/cms-policy/cms-policy-api/pom.xml
  2. 10
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java
  3. 7
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsConfig.java
  4. 20
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebatePeriod.java
  5. 2
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsConfigParam.java
  6. 8
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java
  7. 3
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebatePeriodParam.java
  8. 13
      cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java
  9. 5
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java
  10. 23
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

6
cms-modules/cms-policy/cms-policy-api/pom.xml

@ -30,6 +30,12 @@
<artifactId>cms-common</artifactId> <artifactId>cms-common</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.qs</groupId>
<artifactId>cms-framework-mybatis-plus</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

10
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebate.java

@ -52,15 +52,13 @@ public class TzcRebate implements Serializable {
/** 返利开始时间 */ /** 返利开始时间 */
@Length(max = 0,message = "返利开始时间长度不能超过0字") @Length(max = 0,message = "返利开始时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDate activityStartTime;
private LocalDateTime activityStartTime;
/** 返利结束时间 */ /** 返利结束时间 */
@Length(max = 0,message = "返利结束时间长度不能超过0字") @Length(max = 0,message = "返利结束时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDate activityEndTime;
private LocalDateTime activityEndTime;
/** 核销模式:0-人工复核;1-自动核销 */ /** 核销模式:0-人工复核;1-自动核销 */
private Integer checkModel; private Integer checkModel;

7
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevelsConfig.java

@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.mbp.handler.SplitStringTypeHandler;
import lombok.Data; import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -22,7 +24,7 @@ import javax.validation.constraints.NotBlank;
* @since 2025-04-15 * @since 2025-04-15
*/ */
@Data @Data
@TableName("tzc_rebate_levels_config") @TableName(value = "tzc_rebate_levels_config",autoResultMap = true)
public class TzcRebateLevelsConfig implements Serializable { public class TzcRebateLevelsConfig implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -40,7 +42,8 @@ public class TzcRebateLevelsConfig implements Serializable {
private Integer levelNum; private Integer levelNum;
/** 叠加配置 */ /** 叠加配置 */
private String levelConfigs; @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] levelConfigs;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")

20
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebatePeriod.java

@ -57,23 +57,9 @@ public class TzcRebatePeriod implements Serializable {
/** 总目标达标补偿 */ /** 总目标达标补偿 */
private Integer compensationFlag; private Integer compensationFlag;
/** 基于目标销量金额:0-总理;1-增量 */ /** 补偿说明 */
private Integer sumAddFlag; @Length(max = 255,message = "备注长度不能超过255字")
private String extRemark;
/** 选择的策略:0-基于比例;基于固定金额 */
private Integer rateAmtFlag;
/** 总量百分比 */
private BigDecimal sumRateVal;
/** 总量固定金额 */
private BigDecimal sumAmtVal;
/** 增量百分比 */
private BigDecimal addRateVal;
/** 增量固定金额 */
private BigDecimal addAmtVal;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")

2
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsConfigParam.java

@ -25,7 +25,7 @@ public class TzcRebateLevelsConfigParam implements Serializable {
private Integer levelNum; private Integer levelNum;
/** 坎级设置;格式如:1,3,5 */ /** 坎级设置;格式如:1,3,5 */
private String levelConfigs; private String[] levelConfigs;
/** 前端用于绑定模板id */ /** 前端用于绑定模板id */
private String tmpUk; private String tmpUk;

8
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateParam.java

@ -31,12 +31,12 @@ public class TzcRebateParam{
private String rebateName; private String rebateName;
/** 返利开始时间 */ /** 返利开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDateTime activityStartTime; private LocalDate activityStartTime;
/** 返利结束时间 */ /** 返利结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDateTime activityEndTime; private LocalDate activityEndTime;
/** 核销模式:0-人工复核;1-自动核销 */ /** 核销模式:0-人工复核;1-自动核销 */
private Integer checkModel; private Integer checkModel;

3
cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebatePeriodParam.java

@ -49,6 +49,9 @@ public class TzcRebatePeriodParam implements Serializable {
private Integer compensationFlag; private Integer compensationFlag;
/** 补充说明 */ /** 补充说明 */
@Length(max = 255,message = "备注长度不能超过255字")
private String extRemark;
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

13
cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -80,7 +80,6 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setRebateStatus(TzcRebateStatus.DRAFT.getStatus()); rebate.setRebateStatus(TzcRebateStatus.DRAFT.getStatus());
rebate.setActivityStartTime(param.getActivityStartTime()); rebate.setActivityStartTime(param.getActivityStartTime());
rebate.setActivityEndTime(param.getActivityEndTime()); rebate.setActivityEndTime(param.getActivityEndTime());
rebate.setAutoDispatchFlag(param.getAutoDispatchFlag());
rebate.setCheckModel(param.getCheckModel()); rebate.setCheckModel(param.getCheckModel());
rebate.setCheckMaxAmount(param.getCheckMaxAmount()); rebate.setCheckMaxAmount(param.getCheckMaxAmount());
rebate.setCheckAutoDateType(param.getCheckAutoDateType()); rebate.setCheckAutoDateType(param.getCheckAutoDateType());
@ -90,7 +89,6 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setSupplierCode(supplier.getCode()); rebate.setSupplierCode(supplier.getCode());
rebate.setSupplierName(supplier.getName()); rebate.setSupplierName(supplier.getName());
rebate.setRebateAmount(param.getRebateAmount()); rebate.setRebateAmount(param.getRebateAmount());
rebate.setOverlayFlag(param.getOverlayFlag());
rebate.setRemark(param.getRemark()); rebate.setRemark(param.getRemark());
// 返利的商品 // 返利的商品
@ -210,18 +208,11 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
Assert.throwEx("["+period.getPeriodTitle()+"]与["+period2.getPeriodTitle()+"],时间段存在交集"); Assert.throwEx("["+period.getPeriodTitle()+"]与["+period2.getPeriodTitle()+"],时间段存在交集");
} }
} }
if(ResultFlag.isTrue(period.getCompensationFlag())){
if(period.getArgumentParam()==null){
Assert.throwEx("["+period.getPeriodTitle()+"]返利补偿不能为空");
}
}
} }
// 校验坎级叠加 // 校验坎级叠加
if(ResultFlag.isTrue(param.getOverlayFlag())){ if(CollUtil.isEmpty(param.getConfigList())){
if(CollUtil.isEmpty(param.getConfigList())){ Assert.throwEx("坎级叠加标识为1时,坎级配置不能为空");
Assert.throwEx("坎级叠加标识为1时,坎级配置不能为空");
}
} }
} }

5
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplication4CostServiceImpl.java

@ -276,14 +276,13 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio
List<TzcRebateLevelsArgument> argumentList, List<TzcRebateLevelsArgument> argumentList,
List<TzcRebateLevelsConfig> configList){ List<TzcRebateLevelsConfig> configList){
int level = 0; int level = 0;
String configString = ""; String[] configArr = null;
for (TzcRebateLevelsConfig config: configList) { for (TzcRebateLevelsConfig config: configList) {
if(config.getLevelNum()>level){ if(config.getLevelNum()>level){
level = config.getLevelNum(); level = config.getLevelNum();
configString = config.getLevelConfigs(); configArr = config.getLevelConfigs();
} }
} }
String[] configArr = configString.split(",");
BigDecimal maxAmount = BigDecimal.ZERO; BigDecimal maxAmount = BigDecimal.ZERO;
for (TzcRebateLevels levels : levelsList) { for (TzcRebateLevels levels : levelsList) {
String lvNum = levels.getLevelNum()+""; String lvNum = levels.getLevelNum()+"";

23
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

@ -207,12 +207,23 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
configList.add(config); configList.add(config);
} }
// 建立费用 // 建立费用
Long costApplyId = tzcRebateApplication4CostService.buildCostAndActivity(rebate, argumentList, tzcRebateSubjectList, periodList, tzcRebateGoodsList, configList, rebateCenterList, levelsList); Long costApplyId = tzcRebateApplication4CostService.buildCostAndActivity(
rebate,
argumentList,
tzcRebateSubjectList,
periodList,
tzcRebateGoodsList,
configList,
rebateCenterList,
levelsList
);
// 绑定费用id // 绑定费用id
tzcRebateService.update( tzcRebateService.update(
new LambdaUpdateWrapper<TzcRebate>().eq(TzcRebate::getId,rebateId) new LambdaUpdateWrapper<TzcRebate>()
.set(TzcRebate::getCostApplyId,costApplyId)); .eq(TzcRebate::getId,rebateId)
.set(TzcRebate::getCostApplyId,costApplyId)
);
return rebate; return rebate;
} }
@ -287,14 +298,13 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
*/ */
public BigDecimal getMaxLevelsAmount(TzcRebateParam param){ public BigDecimal getMaxLevelsAmount(TzcRebateParam param){
int level = 0; int level = 0;
String configString = ""; String[] configArr = null;
for (TzcRebateLevelsConfigParam configParam : param.getConfigList()) { for (TzcRebateLevelsConfigParam configParam : param.getConfigList()) {
if(configParam.getLevelNum()>level){ if(configParam.getLevelNum()>level){
level = configParam.getLevelNum(); level = configParam.getLevelNum();
configString = configParam.getLevelConfigs(); configArr = configParam.getLevelConfigs();
} }
} }
String[] configArr = configString.split(",");
BigDecimal maxAmount = BigDecimal.ZERO; BigDecimal maxAmount = BigDecimal.ZERO;
for (TzcRebateLevelsParam levelsParam : param.getLevelsList()) { for (TzcRebateLevelsParam levelsParam : param.getLevelsList()) {
String lvNum = levelsParam.getLevelNum()+""; String lvNum = levelsParam.getLevelNum()+"";
@ -394,6 +404,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
period.setSamePeriodAmount(periodParam.getSamePeriodAmount()); period.setSamePeriodAmount(periodParam.getSamePeriodAmount());
period.setCompensationFlag(periodParam.getCompensationFlag()); period.setCompensationFlag(periodParam.getCompensationFlag());
period.setRemark(periodParam.getRemark()); period.setRemark(periodParam.getRemark());
period.setExtRemark(periodParam.getExtRemark());
period.setTmpUk(periodParam.getTmpUk()); period.setTmpUk(periodParam.getTmpUk());
tzcRebatePeriodService.save(period); tzcRebatePeriodService.save(period);
periodList.add(period); periodList.add(period);

Loading…
Cancel
Save