diff --git a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java
index bbb6537..0a5cdab 100644
--- a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java
+++ b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java
@@ -113,9 +113,9 @@ public class AdminPortalController {
TzcRebateApi tzcRebateAPI;
- @GetMapping("/test222")
- public R> getSystemTime2(){
- return R.ok(tzcRebateAPI.getRebateById(111L));
+ @PostMapping("/test222")
+ public R> getSystemTime2(@RequestBody String body){
+ return R.ok(JsonUtil.getJsonNode(body).get("text"));
}
@GetMapping("/getSystemTime")
diff --git a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/HisTask.java b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/HisTask.java
index d53506c..5bad0f7 100644
--- a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/HisTask.java
+++ b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/HisTask.java
@@ -1,5 +1,6 @@
package com.qs.serve.task;
+import com.qs.serve.common.conf.DevEnvironmentConfig;
import com.qs.serve.framework.base.model.consts.RedisCacheKeys;
import com.qs.serve.framework.redis.RedisService;
import com.qs.serve.modules.sys.common.AuthContextUtils;
@@ -10,8 +11,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
import java.time.Duration;
import java.time.LocalDateTime;
+import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
/**
@@ -55,5 +58,9 @@ public class HisTask {
}
}
+ @PostConstruct
+ void started() {
+ log.warn("已开启客户同步线程");
+ }
}
diff --git a/cms-framework/cms-framework-base/src/main/java/com/qs/serve/framework/base/util/JsonUtil.java b/cms-framework/cms-framework-base/src/main/java/com/qs/serve/framework/base/util/JsonUtil.java
index 9fd2776..9b071c1 100644
--- a/cms-framework/cms-framework-base/src/main/java/com/qs/serve/framework/base/util/JsonUtil.java
+++ b/cms-framework/cms-framework-base/src/main/java/com/qs/serve/framework/base/util/JsonUtil.java
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.serializer.SerializeConfig;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@@ -38,6 +39,15 @@ public class JsonUtil {
MAPPER.registerModule(new JavaTimeModule());
}
+ public static JsonNode getJsonNode(String json) {
+ try {
+ return MAPPER.readTree(json);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
/**
* 将对象转换成json字符串。
*/
diff --git a/cms-modules/cms-order/cms-order-api/pom.xml b/cms-modules/cms-order/cms-order-api/pom.xml
new file mode 100644
index 0000000..c18fa12
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/pom.xml
@@ -0,0 +1,40 @@
+
+
+
+ cms-order
+ com.qs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ cms-order-api
+
+
+
+ 8
+ 8
+
+
+
+
+ com.qs
+ cms-framework-feign
+ 1.0-SNAPSHOT
+
+
+
+ com.qs
+ cms-common
+ 1.0-SNAPSHOT
+
+
+ com.qs
+ cms-framework-mybatis-plus
+ 1.0-SNAPSHOT
+ compile
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGift.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGift.java
new file mode 100644
index 0000000..785d903
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGift.java
@@ -0,0 +1,129 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.qs.serve.mbp.handler.SplitStringTypeHandler;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠方案 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName(value = "oms_promotion_gift",autoResultMap = true)
+public class OmsPromotionGift implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 通案标题 */
+ @NotBlank(message = "通案标题不能为空")
+ @Length(max = 255,message = "通案标题长度不能超过255字")
+ private String giftTitle;
+
+ /** 通案编码 */
+ @NotBlank(message = "通案编码不能为空")
+ @Length(max = 64,message = "通案编码长度不能超过64字")
+ private String giftCode;
+
+ /** 通案状态:状态:0-暂存;1-审批中;2-完成;3-驳回;4-中止;5-作废 */
+ @NotNull(message = "通案状态:状态:0-暂存;1-审批中;2-完成;3-驳回;4-中止;5-作废不能为空")
+ private Integer giftStatus;
+
+ /** 生效开始时间 */
+ @NotNull(message = "生效开始时间不能为空")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private LocalDate effectStartDate;
+
+ /** 生效结束时间 */
+ @NotNull(message = "生效结束时间不能为空")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private LocalDate effectEndDate;
+
+ /** 允许重复使用 */
+ @NotNull(message = "允许重复使用不能为空")
+ private Integer reuseFlag;
+
+ /** 搭赠说明 */
+ @Length(max = 655,message = "搭赠说明长度不能超过655字")
+ private String explainText;
+
+ /** 申请时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime submitTime;
+
+ /** 致远表单ID */
+ @Length(max = 32,message = "致远表单ID长度不能超过32字")
+ private String syFormId;
+
+ /** 致远流程id */
+ @Length(max = 32,message = "致远流程id长度不能超过32字")
+ private String syFlowId;
+
+ /** 审批通过时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime passingTime;
+
+ /** 附件ID */
+ @Length(max = 1024,message = "附件ID长度不能超过1024字")
+ @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
+ private String[] attachIds;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+ /** 创建时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /** 最后更新时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+
+ /** 所属租户 */
+ @JsonIgnore
+ @JsonProperty
+ private String tenantId;
+
+ /** 创建人 */
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
+ /** 更新人 */
+ @TableField(fill = FieldFill.UPDATE)
+ private String updateBy;
+
+ /** 逻辑删除标记(0:显示;1:隐藏) */
+ @JsonIgnore
+ @JsonProperty
+ private String delFlag;
+
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftCenter.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftCenter.java
new file mode 100644
index 0000000..39e20ee
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftCenter.java
@@ -0,0 +1,127 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠成本中心项 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName("oms_promotion_gift_center")
+public class OmsPromotionGiftCenter implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 搭赠案id */
+ @NotNull(message = "搭赠案id不能为空")
+ private Long giftId;
+
+ /** 活动id */
+ @NotNull(message = "活动id不能为空")
+ private Long giftSubjectId;
+
+ /** 科目id */
+ @NotNull(message = "科目id不能为空")
+ private Long subjectId;
+
+ /** 费用占比 */
+ @NotNull(message = "费用占比不能为空")
+ private BigDecimal centerRate;
+
+ /** 成本中心类型 */
+ @NotBlank(message = "成本中心类型不能为空")
+ @Length(max = 255,message = "成本中心类型长度不能超过255字")
+ private String centerType;
+
+ /** 成本中心id */
+ @NotBlank(message = "成本中心id不能为空")
+ @Length(max = 32,message = "成本中心id长度不能超过32字")
+ private String centerId;
+
+ /** 成本中心编码 */
+ @NotBlank(message = "成本中心编码不能为空")
+ @Length(max = 50,message = "成本中心编码长度不能超过50字")
+ private String centerCode;
+
+ /** 成本中心名称 */
+ @NotBlank(message = "成本中心名称不能为空")
+ @Length(max = 200,message = "成本中心名称长度不能超过200字")
+ private String centerName;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+ /** 创建时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /** 最后更新时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+
+ /** 所属租户 */
+ @JsonIgnore
+ @JsonProperty
+ private String tenantId;
+
+ /** 创建人 */
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
+ /** 更新人 */
+ @TableField(fill = FieldFill.UPDATE)
+ private String updateBy;
+
+ /** 逻辑删除标记(0:显示;1:隐藏) */
+ @JsonIgnore
+ @JsonProperty
+ private String delFlag;
+
+
+ public static OmsPromotionGiftCenter toNewObject(OmsPromotionGiftCenter source){
+ OmsPromotionGiftCenter promotionGiftCenter = new OmsPromotionGiftCenter();
+ promotionGiftCenter.setId(source.getId());
+ promotionGiftCenter.setGiftId(source.getGiftId());
+ promotionGiftCenter.setGiftSubjectId(source.getGiftSubjectId());
+ promotionGiftCenter.setSubjectId(source.getSubjectId());
+ promotionGiftCenter.setCenterRate(source.getCenterRate());
+ promotionGiftCenter.setCenterType(source.getCenterType());
+ promotionGiftCenter.setCenterId(source.getCenterId());
+ promotionGiftCenter.setCenterCode(source.getCenterCode());
+ promotionGiftCenter.setCenterName(source.getCenterName());
+ promotionGiftCenter.setRemark(source.getRemark());
+ promotionGiftCenter.setCreateTime(source.getCreateTime());
+ promotionGiftCenter.setUpdateTime(source.getUpdateTime());
+ promotionGiftCenter.setTenantId(source.getTenantId());
+ promotionGiftCenter.setCreateBy(source.getCreateBy());
+ promotionGiftCenter.setUpdateBy(source.getUpdateBy());
+ promotionGiftCenter.setDelFlag(source.getDelFlag());
+ return promotionGiftCenter;
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java
new file mode 100644
index 0000000..62c81ba
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java
@@ -0,0 +1,115 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠规则的赠品 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName("oms_promotion_gift_goods")
+public class OmsPromotionGiftGoods implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 通案id */
+ @NotNull(message = "通案id不能为空")
+ private Long giftId;
+
+ /** 规则明细id */
+ private Long giftItemId;
+
+ /** 商品类型 */
+ @Length(max = 255,message = "商品类型长度不能超过255字")
+ private String goodsType;
+
+ /** 商品id */
+ private Long goodsId;
+
+ /** 商品编码 */
+ @Length(max = 255,message = "商品编码长度不能超过255字")
+ private String goodsCode;
+
+ /** 商品名称 */
+ @Length(max = 255,message = "商品名称长度不能超过255字")
+ private String goodsName;
+
+ /** 优先级(ASC) */
+ private Integer sort;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+ /** 创建时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /** 最后更新时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+
+ /** 所属租户 */
+ @JsonIgnore
+ @JsonProperty
+ private String tenantId;
+
+ /** 创建人 */
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
+ /** 更新人 */
+ @TableField(fill = FieldFill.UPDATE)
+ private String updateBy;
+
+ /** 逻辑删除标记(0:显示;1:隐藏) */
+ @JsonIgnore
+ @JsonProperty
+ private String delFlag;
+
+
+ public static OmsPromotionGiftGoods toNewObject(OmsPromotionGiftGoods source){
+ OmsPromotionGiftGoods promotionGiftGoods = new OmsPromotionGiftGoods();
+ promotionGiftGoods.setId(source.getId());
+ promotionGiftGoods.setGiftId(source.getGiftId());
+ promotionGiftGoods.setGiftItemId(source.getGiftItemId());
+ promotionGiftGoods.setGoodsType(source.getGoodsType());
+ promotionGiftGoods.setGoodsId(source.getGoodsId());
+ promotionGiftGoods.setGoodsCode(source.getGoodsCode());
+ promotionGiftGoods.setGoodsName(source.getGoodsName());
+ promotionGiftGoods.setSort(source.getSort());
+ promotionGiftGoods.setRemark(source.getRemark());
+ promotionGiftGoods.setCreateTime(source.getCreateTime());
+ promotionGiftGoods.setUpdateTime(source.getUpdateTime());
+ promotionGiftGoods.setTenantId(source.getTenantId());
+ promotionGiftGoods.setCreateBy(source.getCreateBy());
+ promotionGiftGoods.setUpdateBy(source.getUpdateBy());
+ promotionGiftGoods.setDelFlag(source.getDelFlag());
+ return promotionGiftGoods;
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftItem.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftItem.java
new file mode 100644
index 0000000..768ed5f
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftItem.java
@@ -0,0 +1,78 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠规则明细 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName("oms_promotion_gift_item")
+public class OmsPromotionGiftItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 通案id */
+ @NotNull(message = "通案id不能为空")
+ private Long giftId;
+
+ /** 商品类型 */
+ @Length(max = 255,message = "商品类型长度不能超过255字")
+ private String goodsType;
+
+ /** 商品id */
+ private Long goodsId;
+
+ /** 商品编码 */
+ @Length(max = 255,message = "商品编码长度不能超过255字")
+ private String goodsCode;
+
+ /** 商品名称 */
+ @Length(max = 255,message = "商品名称长度不能超过255字")
+ private String goodsName;
+
+ /** 起订量 */
+ private Integer minPurchaseQty;
+
+ /** 满足数量 */
+ private Integer meetQty;
+
+ /** 赠品数量 */
+ private Integer giftQty;
+
+
+ public static OmsPromotionGiftItem toNewObject(OmsPromotionGiftItem source){
+ OmsPromotionGiftItem promotionGiftItem = new OmsPromotionGiftItem();
+ promotionGiftItem.setId(source.getId());
+ promotionGiftItem.setGiftId(source.getGiftId());
+ promotionGiftItem.setGoodsType(source.getGoodsType());
+ promotionGiftItem.setGoodsId(source.getGoodsId());
+ promotionGiftItem.setGoodsCode(source.getGoodsCode());
+ promotionGiftItem.setGoodsName(source.getGoodsName());
+ promotionGiftItem.setMinPurchaseQty(source.getMinPurchaseQty());
+ promotionGiftItem.setMeetQty(source.getMeetQty());
+ promotionGiftItem.setGiftQty(source.getGiftQty());
+ return promotionGiftItem;
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftScope.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftScope.java
new file mode 100644
index 0000000..ccdaa79
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftScope.java
@@ -0,0 +1,112 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠适用范围 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName("oms_promotion_gift_scope")
+public class OmsPromotionGiftScope implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 搭赠id */
+ @NotNull(message = "搭赠id不能为空")
+ private Long giftId;
+
+ /** 区域类型:customer,saleRegion,bizRegion */
+ @NotBlank(message = "区域类型:customer,saleRegion,bizRegion不能为空")
+ @Length(max = 255,message = "区域类型:customer,saleRegion,bizRegion长度不能超过255字")
+ private String regionType;
+
+ /** 区域id */
+ @NotBlank(message = "区域id不能为空")
+ @Length(max = 20,message = "区域id长度不能超过20字")
+ private String regionId;
+
+ /** 区域编码 */
+ @NotBlank(message = "区域编码不能为空")
+ @Length(max = 50,message = "区域编码长度不能超过50字")
+ private String regionCode;
+
+ /** 区域名称 */
+ @NotBlank(message = "区域名称不能为空")
+ @Length(max = 50,message = "区域名称长度不能超过50字")
+ private String regionName;
+
+ /** 备注 */
+ @Length(max = 255,message = "备注长度不能超过255字")
+ private String remark;
+
+ /** 创建时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /** 最后更新时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+
+ /** 所属租户 */
+ @JsonIgnore
+ @JsonProperty
+ private String tenantId;
+
+ /** 创建人 */
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
+ /** 更新人 */
+ @TableField(fill = FieldFill.UPDATE)
+ private String updateBy;
+
+ /** 逻辑删除标记(0:显示;1:隐藏) */
+ @JsonIgnore
+ @JsonProperty
+ private String delFlag;
+
+
+ public static OmsPromotionGiftScope toNewObject(OmsPromotionGiftScope source){
+ OmsPromotionGiftScope promotionGiftScope = new OmsPromotionGiftScope();
+ promotionGiftScope.setId(source.getId());
+ promotionGiftScope.setGiftId(source.getGiftId());
+ promotionGiftScope.setRegionType(source.getRegionType());
+ promotionGiftScope.setRegionId(source.getRegionId());
+ promotionGiftScope.setRegionCode(source.getRegionCode());
+ promotionGiftScope.setRegionName(source.getRegionName());
+ promotionGiftScope.setRemark(source.getRemark());
+ promotionGiftScope.setCreateTime(source.getCreateTime());
+ promotionGiftScope.setUpdateTime(source.getUpdateTime());
+ promotionGiftScope.setTenantId(source.getTenantId());
+ promotionGiftScope.setCreateBy(source.getCreateBy());
+ promotionGiftScope.setUpdateBy(source.getUpdateBy());
+ promotionGiftScope.setDelFlag(source.getDelFlag());
+ return promotionGiftScope;
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftSubject.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftSubject.java
new file mode 100644
index 0000000..aed9763
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftSubject.java
@@ -0,0 +1,109 @@
+package com.qs.serve.modules.oms.entity;
+
+import java.time.LocalDate;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 搭赠科目项 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+@TableName("oms_promotion_gift_subject")
+public class OmsPromotionGiftSubject implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 搭赠id */
+ @NotNull(message = "搭赠id不能为空")
+ private Long giftId;
+
+ /** 科目id */
+ @NotNull(message = "科目id不能为空")
+ private Long subjectId;
+
+ /** 科目编码 */
+ @NotBlank(message = "科目编码不能为空")
+ @Length(max = 50,message = "科目编码长度不能超过50字")
+ private String subjectCode;
+
+ /** 科目名称 */
+ @NotBlank(message = "科目名称不能为空")
+ @Length(max = 50,message = "科目名称长度不能超过50字")
+ private String subjectName;
+
+ /** 科目比例 */
+ private BigDecimal subjectRate;
+
+ /** 备注 */
+ @Length(max = 255,message = "备注长度不能超过255字")
+ private String remark;
+
+ /** 创建时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /** 最后更新时间 */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+
+ /** 所属租户 */
+ @JsonIgnore
+ @JsonProperty
+ private String tenantId;
+
+ /** 创建人 */
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
+ /** 更新人 */
+ @TableField(fill = FieldFill.UPDATE)
+ private String updateBy;
+
+ /** 逻辑删除标记(0:显示;1:隐藏) */
+ @JsonIgnore
+ @JsonProperty
+ private String delFlag;
+
+
+ public static OmsPromotionGiftSubject toNewObject(OmsPromotionGiftSubject source){
+ OmsPromotionGiftSubject promotionGiftSubject = new OmsPromotionGiftSubject();
+ promotionGiftSubject.setId(source.getId());
+ promotionGiftSubject.setGiftId(source.getGiftId());
+ promotionGiftSubject.setSubjectId(source.getSubjectId());
+ promotionGiftSubject.setSubjectCode(source.getSubjectCode());
+ promotionGiftSubject.setSubjectName(source.getSubjectName());
+ promotionGiftSubject.setSubjectRate(source.getSubjectRate());
+ promotionGiftSubject.setRemark(source.getRemark());
+ promotionGiftSubject.setCreateTime(source.getCreateTime());
+ promotionGiftSubject.setUpdateTime(source.getUpdateTime());
+ promotionGiftSubject.setTenantId(source.getTenantId());
+ promotionGiftSubject.setCreateBy(source.getCreateBy());
+ promotionGiftSubject.setUpdateBy(source.getUpdateBy());
+ promotionGiftSubject.setDelFlag(source.getDelFlag());
+ return promotionGiftSubject;
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftBo.java
new file mode 100644
index 0000000..5dfe7c2
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftBo.java
@@ -0,0 +1,100 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.qs.serve.mbp.handler.SplitStringTypeHandler;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author YenHex
+ * @since 2025/6/5
+ */
+@Data
+public class OmsPromotionGiftBo {
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 通案标题 */
+ @NotBlank(message = "通案标题不能为空")
+ @Length(max = 255,message = "通案标题长度不能超过255字")
+ private String giftTitle;
+
+ /** 通案编码 */
+ @NotBlank(message = "通案编码不能为空")
+ @Length(max = 64,message = "通案编码长度不能超过64字")
+ private String giftCode;
+//
+// /** 通案状态:状态:0-暂存;1-审批中;2-完成;3-驳回;4-中止;5-作废 */
+// @NotNull(message = "通案状态:状态:0-暂存;1-审批中;2-完成;3-驳回;4-中止;5-作废不能为空")
+// private Integer giftStatus;
+
+ /** 生效开始时间 */
+ @NotNull(message = "生效开始时间不能为空")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private LocalDate effectStartDate;
+
+ /** 生效结束时间 */
+ @NotNull(message = "生效结束时间不能为空")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private LocalDate effectEndDate;
+
+ /** 允许重复使用 */
+ @NotNull(message = "允许重复使用不能为空")
+ private Integer reuseFlag;
+
+ /** 搭赠说明 */
+ @Length(max = 655,message = "搭赠说明长度不能超过655字")
+ private String explainText;
+//
+// /** 申请时间 */
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+// private LocalDateTime submitTime;
+//
+// /** 致远表单ID */
+// @Length(max = 32,message = "致远表单ID长度不能超过32字")
+// private String syFormId;
+//
+// /** 致远流程id */
+// @Length(max = 32,message = "致远流程id长度不能超过32字")
+// private String syFlowId;
+//
+// /** 审批通过时间 */
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+// private LocalDateTime passingTime;
+
+ /** 附件ID */
+ @Length(max = 1024,message = "附件ID长度不能超过1024字")
+ @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
+ private String[] attachIds;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+ /** 科目列表 */
+ private List subjectList;
+
+ /** 区域列表 */
+ private List scopeList;
+
+ /** 搭赠商品规则列表 */
+ private List itemList;
+
+}
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java
new file mode 100644
index 0000000..0556b1e
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java
@@ -0,0 +1,58 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 搭赠成本中心项 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+public class OmsPromotionGiftCenterBo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 科目id */
+ @NotNull(message = "科目id不能为空")
+ private Long subjectId;
+
+ /** 费用占比 */
+ @NotNull(message = "费用占比不能为空")
+ private BigDecimal centerRate;
+
+ /** 成本中心类型 */
+ @NotBlank(message = "成本中心类型不能为空")
+ @Length(max = 255,message = "成本中心类型长度不能超过255字")
+ private String centerType;
+
+ /** 成本中心id */
+ @NotBlank(message = "成本中心id不能为空")
+ @Length(max = 32,message = "成本中心id长度不能超过32字")
+ private String centerId;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+// promotionGiftCenter.setGiftId(source.getGiftId());
+// promotionGiftCenter.setGiftSubjectId(source.getGiftSubjectId());
+// promotionGiftCenter.setCenterCode(source.getCenterCode());
+// promotionGiftCenter.setCenterName(source.getCenterName());
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java
new file mode 100644
index 0000000..a98becd
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java
@@ -0,0 +1,50 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 搭赠规则的赠品 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+public class OmsPromotionGiftGoodsBo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Long id;
+
+ /** 商品类型 */
+ @Length(max = 255,message = "商品类型长度不能超过255字")
+ private String goodsType;
+
+ /** 商品id */
+ private Long goodsId;
+
+ /** 优先级(ASC) */
+ private Integer sort;
+
+ /** 备注 */
+ @Length(max = 600,message = "备注长度不能超过600字")
+ private String remark;
+
+
+
+// promotionGiftGoods.setGiftId(source.getGiftId());
+// promotionGiftGoods.setGiftItemId(source.getGiftItemId());
+// promotionGiftGoods.setGoodsCode(source.getGoodsCode());
+// promotionGiftGoods.setGoodsName(source.getGoodsName());
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftItemBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftItemBo.java
new file mode 100644
index 0000000..f5f7c0f
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftItemBo.java
@@ -0,0 +1,52 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 搭赠规则明细 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+public class OmsPromotionGiftItemBo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 商品类型 */
+ @Length(max = 255,message = "商品类型长度不能超过255字")
+ private String goodsType;
+
+ /** 商品id */
+ private Long goodsId;
+
+ /** 起订量 */
+ private Integer minPurchaseQty;
+
+ /** 满足数量 */
+ private Integer meetQty;
+
+ /** 赠品数量 */
+ private Integer giftQty;
+
+ /** 赠品的商品,列表为空代办搭赠下单品类 */
+ List goodsList;
+
+// promotionGiftItem.setGiftId(source.getGiftId());
+// promotionGiftItem.setGoodsCode(source.getGoodsCode());
+// promotionGiftItem.setGoodsName(source.getGoodsName());
+
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java
new file mode 100644
index 0000000..48147c7
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java
@@ -0,0 +1,40 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 搭赠适用范围 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+public class OmsPromotionGiftScopeBo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ private String regionType;
+
+ /** 区域id */
+ @NotBlank(message = "区域id不能为空")
+ @Length(max = 20,message = "区域id长度不能超过20字")
+ private String regionId;
+
+ /** 备注 */
+ @Length(max = 255,message = "备注长度不能超过255字")
+ private String remark;
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftSubjectBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftSubjectBo.java
new file mode 100644
index 0000000..5d7f914
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftSubjectBo.java
@@ -0,0 +1,53 @@
+package com.qs.serve.modules.oms.entity.bo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 搭赠科目项 实体类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Data
+public class OmsPromotionGiftSubjectBo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /** 科目id */
+ @NotNull(message = "科目id不能为空")
+ private Long subjectId;
+
+ /** 科目比例 */
+ @NotNull(message = "科目比例")
+ private BigDecimal subjectRate;
+
+ /** 备注 */
+ @Length(max = 255,message = "备注长度不能超过255字")
+ private String remark;
+
+ List centerList;
+
+//
+// promotionGiftSubject.setGiftId(source.getGiftId());
+// promotionGiftSubject.setSubjectCode(source.getSubjectCode());
+// promotionGiftSubject.setSubjectName(source.getSubjectName());
+
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/pom.xml b/cms-modules/cms-order/cms-order-biz/pom.xml
new file mode 100644
index 0000000..11e820b
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/pom.xml
@@ -0,0 +1,46 @@
+
+
+
+ cms-order
+ com.qs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ cms-order-biz
+
+
+ 8
+ 8
+
+
+
+
+ com.qs
+ cms-basic-bus
+ 1.0-SNAPSHOT
+
+
+ com.qs
+ cms-order-api
+ 1.0-SNAPSHOT
+
+
+ com.qs
+ cms-framework-mybatis-plus
+ 1.0-SNAPSHOT
+
+
+ com.qs
+ cms-framework-redis
+ 1.0-SNAPSHOT
+
+
+ com.qs
+ cms-common
+ 1.0-SNAPSHOT
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java
new file mode 100644
index 0000000..1175a81
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java
@@ -0,0 +1,105 @@
+package com.qs.serve.modules.oms.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.serve.common.annotation.SysLog;
+import com.qs.serve.common.enums.BizType;
+import com.qs.serve.common.enums.SystemModule;
+import com.qs.serve.common.utils.CopierUtil;
+import com.qs.serve.common.utils.PageUtil;
+import com.qs.serve.common.utils.StringUtils;
+import com.qs.serve.framework.base.model.PageVo;
+import com.qs.serve.framework.base.model.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import com.qs.serve.modules.oms.entity.OmsPromotionGift;
+import com.qs.serve.modules.oms.service.OmsPromotionGiftService;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 订单模块 搭赠方案
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Slf4j
+@AllArgsConstructor
+@RestController
+@RequestMapping("oms/promotionGift")
+public class OmsPromotionGiftController {
+
+ private OmsPromotionGiftService omsPromotionGiftService;
+
+ /**
+ * 翻页
+ * @param param
+ * @return
+ */
+ @GetMapping("/page")
+ //@PreAuthorize("hasRole('oms:promotionGift:query')")
+ public R> getPage(OmsPromotionGift param){
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param);
+ PageUtil.startPage();
+ List list = omsPromotionGiftService.list(lqw);
+ return R.byPageHelperList(list);
+ }
+
+ /**
+ * ID查询
+ * @param id
+ * @return
+ */
+ //@GetMapping("/getById/{id}")
+ @SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.QUERY)
+ //@PreAuthorize("hasRole('oms:promotionGift:query')")
+ public R getById(@PathVariable("id") String id){
+ OmsPromotionGift omsPromotionGift = omsPromotionGiftService.getById(id);
+ return R.ok(omsPromotionGift);
+ }
+
+
+
+ /**
+ * 更新
+ * @param param
+ * @return
+ */
+ //@PostMapping("/updateById")
+ @SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.UPDATE)
+ public R> updateById(@RequestBody @Valid OmsPromotionGiftBo param){
+ OmsPromotionGift entity = CopierUtil.copy(param,new OmsPromotionGift());
+ boolean result = omsPromotionGiftService.updateById(entity);
+ return R.isTrue(result);
+ }
+
+ /**
+ * 新增
+ * @param param
+ * @return
+ */
+ //@PostMapping("/save")
+ @SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.INSERT)
+ //@PreAuthorize("hasRole('oms:promotionGift:insert')")
+ public R> save(@RequestBody @Valid OmsPromotionGiftBo param){
+ OmsPromotionGift entity = CopierUtil.copy(param,new OmsPromotionGift());
+ boolean result = omsPromotionGiftService.save(entity);
+ return R.isTrue(result);
+ }
+
+ /**
+ * 删除
+ * @param ids
+ * @return
+ */
+ @DeleteMapping("/deleteById/{ids}")
+ @SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.DELETE)
+ public R> deleteById(@PathVariable("ids") String ids){
+ List idsLong = StringUtils.splitIdLong(ids);
+ boolean result = omsPromotionGiftService.removeByIds(idsLong);
+ return R.isTrue(result);
+ }
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftCenterMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftCenterMapper.java
new file mode 100644
index 0000000..6241ef2
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftCenterMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGiftCenter;
+
+/**
+ * 搭赠成本中心项 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftCenterMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftGoodsMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftGoodsMapper.java
new file mode 100644
index 0000000..2f8bcf8
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftGoodsMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGiftGoods;
+
+/**
+ * 搭赠规则的赠品 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftGoodsMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java
new file mode 100644
index 0000000..8551f0b
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGiftItem;
+
+/**
+ * 搭赠规则明细 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftItemMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftMapper.java
new file mode 100644
index 0000000..305dbd0
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGift;
+
+/**
+ * 搭赠方案 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftScopeMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftScopeMapper.java
new file mode 100644
index 0000000..22db65c
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftScopeMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGiftScope;
+
+/**
+ * 搭赠适用范围 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftScopeMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftSubjectMapper.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftSubjectMapper.java
new file mode 100644
index 0000000..17beb4c
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftSubjectMapper.java
@@ -0,0 +1,14 @@
+package com.qs.serve.modules.oms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.serve.modules.oms.entity.OmsPromotionGiftSubject;
+
+/**
+ * 搭赠科目项 Mapper
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftSubjectMapper extends BaseMapper {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java
new file mode 100644
index 0000000..61ba6c3
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java
@@ -0,0 +1,16 @@
+package com.qs.serve.modules.oms.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.serve.modules.oms.entity.OmsPromotionGift;
+
+/**
+ * 搭赠方案 服务接口
+ * @author YenHex
+ * @date 2025-06-05
+ */
+public interface OmsPromotionGiftService extends IService {
+
+ void modifyGift(OmsPromotionGift source);
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java
new file mode 100644
index 0000000..53cb195
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java
@@ -0,0 +1,22 @@
+package com.qs.serve.modules.oms.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import com.qs.serve.modules.oms.entity.OmsPromotionGift;
+import com.qs.serve.modules.oms.service.OmsPromotionGiftService;
+import com.qs.serve.modules.oms.mapper.OmsPromotionGiftMapper;
+
+/**
+ * 搭赠方案 服务实现类
+ * @author YenHex
+ * @since 2025-06-05
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class OmsPromotionGiftServiceImpl extends ServiceImpl implements OmsPromotionGiftService {
+
+}
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftCenterMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftCenterMapper.xml
new file mode 100644
index 0000000..913b312
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftCenterMapper.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift_center.`id`,
+ oms_promotion_gift_center.`gift_id`,
+ oms_promotion_gift_center.`gift_subject_id`,
+ oms_promotion_gift_center.`subject_id`,
+ oms_promotion_gift_center.`center_rate`,
+ oms_promotion_gift_center.`center_type`,
+ oms_promotion_gift_center.`center_id`,
+ oms_promotion_gift_center.`center_code`,
+ oms_promotion_gift_center.`center_name`,
+ oms_promotion_gift_center.`remark`,
+ oms_promotion_gift_center.`create_time`,
+ oms_promotion_gift_center.`update_time`,
+ oms_promotion_gift_center.`tenant_id`,
+ oms_promotion_gift_center.`create_by`,
+ oms_promotion_gift_center.`update_by`,
+ oms_promotion_gift_center.`del_flag`
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftGoodsMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftGoodsMapper.xml
new file mode 100644
index 0000000..a5c3cab
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftGoodsMapper.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift_goods.`id`,
+ oms_promotion_gift_goods.`gift_id`,
+ oms_promotion_gift_goods.`gift_item_id`,
+ oms_promotion_gift_goods.`goods_type`,
+ oms_promotion_gift_goods.`goods_id`,
+ oms_promotion_gift_goods.`goods_code`,
+ oms_promotion_gift_goods.`goods_name`,
+ oms_promotion_gift_goods.`sort`,
+ oms_promotion_gift_goods.`remark`,
+ oms_promotion_gift_goods.`create_time`,
+ oms_promotion_gift_goods.`update_time`,
+ oms_promotion_gift_goods.`tenant_id`,
+ oms_promotion_gift_goods.`create_by`,
+ oms_promotion_gift_goods.`update_by`,
+ oms_promotion_gift_goods.`del_flag`
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftItemMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftItemMapper.xml
new file mode 100644
index 0000000..fd1f45e
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftItemMapper.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift_item.`id`,
+ oms_promotion_gift_item.`gift_id`,
+ oms_promotion_gift_item.`goods_type`,
+ oms_promotion_gift_item.`goods_id`,
+ oms_promotion_gift_item.`goods_code`,
+ oms_promotion_gift_item.`goods_name`,
+ oms_promotion_gift_item.`min_purchase_qty`,
+ oms_promotion_gift_item.`meet_qty`,
+ oms_promotion_gift_item.`gift_qty`
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftMapper.xml
new file mode 100644
index 0000000..e2acef4
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftMapper.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift.`id`,
+ oms_promotion_gift.`gift_title`,
+ oms_promotion_gift.`gift_code`,
+ oms_promotion_gift.`gift_status`,
+ oms_promotion_gift.`effect_start_date`,
+ oms_promotion_gift.`effect_end_date`,
+ oms_promotion_gift.`reuse_flag`,
+ oms_promotion_gift.`explain_text`,
+ oms_promotion_gift.`submit_time`,
+ oms_promotion_gift.`sy_form_id`,
+ oms_promotion_gift.`sy_flow_id`,
+ oms_promotion_gift.`passing_time`,
+ oms_promotion_gift.`attach_ids`,
+ oms_promotion_gift.`remark`,
+ oms_promotion_gift.`create_time`,
+ oms_promotion_gift.`update_time`,
+ oms_promotion_gift.`tenant_id`,
+ oms_promotion_gift.`create_by`,
+ oms_promotion_gift.`update_by`,
+ oms_promotion_gift.`del_flag`
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftScopeMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftScopeMapper.xml
new file mode 100644
index 0000000..72adf37
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftScopeMapper.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift_scope.`id`,
+ oms_promotion_gift_scope.`gift_id`,
+ oms_promotion_gift_scope.`region_type`,
+ oms_promotion_gift_scope.`region_id`,
+ oms_promotion_gift_scope.`region_code`,
+ oms_promotion_gift_scope.`region_name`,
+ oms_promotion_gift_scope.`remark`,
+ oms_promotion_gift_scope.`create_time`,
+ oms_promotion_gift_scope.`update_time`,
+ oms_promotion_gift_scope.`tenant_id`,
+ oms_promotion_gift_scope.`create_by`,
+ oms_promotion_gift_scope.`update_by`,
+ oms_promotion_gift_scope.`del_flag`
+
+
+
+
diff --git a/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftSubjectMapper.xml b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftSubjectMapper.xml
new file mode 100644
index 0000000..909b47d
--- /dev/null
+++ b/cms-modules/cms-order/cms-order-biz/src/main/resources/mapper.oms/OmsPromotionGiftSubjectMapper.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ oms_promotion_gift_subject.`id`,
+ oms_promotion_gift_subject.`gift_id`,
+ oms_promotion_gift_subject.`subject_id`,
+ oms_promotion_gift_subject.`subject_code`,
+ oms_promotion_gift_subject.`subject_name`,
+ oms_promotion_gift_subject.`subject_rate`,
+ oms_promotion_gift_subject.`remark`,
+ oms_promotion_gift_subject.`create_time`,
+ oms_promotion_gift_subject.`update_time`,
+ oms_promotion_gift_subject.`tenant_id`,
+ oms_promotion_gift_subject.`create_by`,
+ oms_promotion_gift_subject.`update_by`,
+ oms_promotion_gift_subject.`del_flag`
+
+
+
+
diff --git a/cms-modules/cms-order/pom.xml b/cms-modules/cms-order/pom.xml
new file mode 100644
index 0000000..32f1fb1
--- /dev/null
+++ b/cms-modules/cms-order/pom.xml
@@ -0,0 +1,24 @@
+
+
+
+ cms-modules
+ com.qs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ cms-order
+ pom
+
+ cms-order-api
+ cms-order-biz
+
+
+
+ 8
+ 8
+
+
+
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 32bb5d4..3efce5c 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
@@ -34,14 +34,10 @@ public class TzcRebateParam{
private String rebateName;
/** 返利开始时间 */
- @NotNull(message = "返利开始时间不能为空")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate activityStartTime;
+ //private LocalDate activityStartTime;
/** 返利结束时间 */
- @NotNull(message = "返利结束时间不能为空")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate activityEndTime;
+ //private LocalDate activityEndTime;
/** 核销模式:0-人工复核;1-自动核销 */
@NotNull(message = "核销模式不能为空")
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
index d8fd723..a3262f3 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
@@ -405,7 +405,7 @@ public interface SeeYonOperationService extends SeeYonBaseService{
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(getTargetId(affairCommit));
dataAffairCommit.setId(affairCommit.getAffairId());
- dataAffairCommit.setCommentVal(affairCommit.getComment());
+ dataAffairCommit.setCommentVal(affairCommit.getComment()==null?"":affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
index 3f7d22c..926cf0a 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
@@ -97,7 +97,7 @@ public class SeeYonRequestServiceImpl implements SeeYonRequestService {
param.setFromRecordId(formRecordId);
param.setState(affairCommit.getState());
param.setAffairId(affairCommit.getAffairId());
- param.setComment(affairCommit.getComment());
+ param.setComment(affairCommit.getComment()==null?"":affairCommit.getComment());
param.setMemberId(sysUser.getSyUserId());
param.setMember(sysUser.getSyAccount());
R result = this.affairCommit(param);
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
index 95bb699..33f3fa3 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
@@ -45,8 +45,6 @@ public class TbsAffairCommitBo {
/**
* 评论
*/
- @Length(max = 800,message = "备注长度限制800字")
- @NotNull
private String comment;
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
index 523a02d..726a1e2 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
@@ -832,7 +832,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
dataAffairCommit.setTargetCode(templateCode);
dataAffairCommit.setTargetId(costApply.getId()+"");
dataAffairCommit.setId(affairCommit.getAffairId());
- dataAffairCommit.setCommentVal(affairCommit.getComment());
+ dataAffairCommit.setCommentVal(affairCommit.getComment()==null?"":affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
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 333c304..bead2ba 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
@@ -479,19 +479,28 @@ public class TzcRebateApplication4CostServiceImpl implements TzcRebateApplicatio
periodAmount = tarPeriodAmount;
msg = ";目标金额:"+periodAmount;
}
- msg = msg+";占比:"+levels.getConditionRate()+"(含)-"+levels.getConditionRateEnd()+"%";
+
+ BigDecimal targetAmtEnd = null;
+ if(levels.getConditionRateEnd()==null){
+ msg = msg+";占比:"+levels.getConditionRate()+"%(含)以上";
+ }else{
+ msg = msg+";占比:"+levels.getConditionRate()+"(含)-"+levels.getConditionRateEnd()+"%";
+ targetAmtEnd = periodAmount.multiply(levels.getConditionRateEnd())
+ .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
+ }
+
BigDecimal targetAmt = periodAmount.multiply(levels.getConditionRate())
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
- BigDecimal targetAmtEnd = periodAmount.multiply(levels.getConditionRateEnd())
- .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
// 正增长,添加同期发货金额
if (levels.getSamePeriodFlag().equals(1)){
targetAmt = targetAmt.add(sameDispatchAmt);
- targetAmtEnd = targetAmtEnd.add(sameDispatchAmt);
+ if (targetAmtEnd!=null){
+ targetAmtEnd = targetAmtEnd.add(sameDispatchAmt);
+ }
}
// 发货金额大于坎级制定的百分比
boolean ok1 = dispatchAmt.compareTo(targetAmt)>=0; // 包含
- boolean ok2 = dispatchAmt.compareTo(targetAmtEnd)<0; // 不包含
+ boolean ok2 = targetAmtEnd == null || dispatchAmt.compareTo(targetAmtEnd) < 0; // 不包含
log.debug("坎级:"+levels.getLevelNum()+",门槛金额:"+targetAmt+"-"+targetAmtEnd + msg+",发货金额:"+dispatchAmt);
// 当比例一致时,特殊返回
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 8587b36..f7e4221 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
@@ -285,7 +285,7 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
.set(TzcRebate::getRebateAmount,totalAllAmount)
);
-
+
return rebate;
}
@@ -456,8 +456,8 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
rebate.setTemplateData(param.getTemplateData());
rebate.setRebateName(param.getRebateName());
rebate.setRebateStatus(TzcRebateStatus.DRAFT.getStatus());
- rebate.setActivityStartTime(param.getActivityStartTime());
- rebate.setActivityEndTime(param.getActivityEndTime());
+ //rebate.setActivityStartTime(param.getActivityStartTime());
+ //rebate.setActivityEndTime(param.getActivityEndTime());
rebate.setCheckModel(param.getCheckModel());
rebate.setCheckMaxAmount(param.getCheckMaxAmount());
rebate.setCheckAutoDateType(param.getCheckAutoDateType());
@@ -470,8 +470,8 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ
}else if (param.getCheckAutoDateType().equals(3)){
days = param.getCheckAutoDays();
}
- rebate.setCheckStartDate(param.getActivityStartTime().plusDays(days));
- rebate.setCheckEndDate(param.getActivityEndTime().plusDays(days));
+ //rebate.setCheckStartDate(param.getActivityStartTime().plusDays(days));
+ //rebate.setCheckEndDate(param.getActivityEndTime().plusDays(days));
rebate.setSupplierId(param.getSupplierId());
rebate.setSupplierCode(supplier.getCode());
rebate.setSupplierName(supplier.getName());
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
index baca32b..d90938d 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
@@ -223,7 +223,7 @@ public class VtbVerificationApplication {
dataAffairCommit.setTargetCode(TbsSeeYonConst.CostCheckConf.Code());
dataAffairCommit.setTargetId(verification.getId()+"");
dataAffairCommit.setId(affairCommit.getAffairId());
- dataAffairCommit.setCommentVal(affairCommit.getComment());
+ dataAffairCommit.setCommentVal(affairCommit.getComment()==null?"":affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
@@ -249,7 +249,7 @@ public class VtbVerificationApplication {
yard.setVerificationSubCode(verification.getVerificationCode());
yard.setState(affairCommit.getState());
yard.setAffairId(affairCommit.getAffairId());
- yard.setComment(affairCommit.getComment());
+ yard.setComment(affairCommit.getComment()==null?"":affairCommit.getComment());
yard.setCaseRemark(affairCommit.getCaseRemark());
//审批中(next)、完成(finish)、拒绝(refused)
boolean isFinish = "finished".equals(flag);
diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
index b785058..b25657a 100644
--- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
+++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
@@ -233,7 +233,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(getTargetId(commitParam));
dataAffairCommit.setId(commitParam.getAffairId());
- dataAffairCommit.setCommentVal(commitParam.getComment());
+ dataAffairCommit.setCommentVal(commitParam.getComment()==null?"":commitParam.getComment());
dataAffairCommit.setReleaseFlag(commitParam.getReleaseFlag());
dataAffairCommit.setState(commitParam.getState());
dataAffairCommit.setUserId(sysUser.getId());
@@ -290,7 +290,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
yard.setVerificationSubCode(verification.getVerificationCode());
yard.setState(commitParam.getState());
yard.setAffairId(commitParam.getAffairId());
- yard.setComment(commitParam.getComment());
+ yard.setComment(commitParam.getComment()==null?"":commitParam.getComment());
yard.setCaseRemark(commitParam.getCaseRemark());
//审批中(next)、完成(finish)、拒绝(refused)
boolean isFinish = "finished".equals(flag);
diff --git a/cms-modules/pom.xml b/cms-modules/pom.xml
index 852535c..02f2038 100644
--- a/cms-modules/pom.xml
+++ b/cms-modules/pom.xml
@@ -15,6 +15,7 @@
cms-actuator
cms-policy
cms-basic
+ cms-order
cms-modules