feat:十二分制-奖惩规则

This commit is contained in:
wangff
2025-11-04 17:53:02 +08:00
parent 867a45f154
commit 75a0ad4676
31 changed files with 1644 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
package com.cool.store.entity.tp;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 十二分制-复议申请单
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Table(name = "zxjp_tp_appeal_form")
@Data
public class TpAppealFormDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 申请单号
*/
@Column(name = "apply_no")
private String applyNo;
/**
* 处罚单id
*/
@Column(name = "punish_id")
private Long punishId;
/**
* 门店id
*/
@Column(name = "store_id")
private String storeId;
/**
* 申请人姓名
*/
@Column(name = "applicant_name")
private String applicantName;
/**
* 联系电话
*/
private String phone;
/**
* 复议理由
*/
@Column(name = "appeal_reason")
private String appealReason;
/**
* 详细理由
*/
@Column(name = "detail_reason")
private String detailReason;
/**
* 状态
*/
private Integer status;
/**
* 来源0crm 1小程序
*/
private Integer source;
/**
* 审批人id
*/
@Column(name = "approve_user_id")
private String approveUserId;
/**
* 审批时间
*/
@Column(name = "approve_time")
private Date approveTime;
/**
* 创建人id
*/
@Column(name = "create_user_id")
private String createUserId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
/**
* 证明图片列表
*/
@Column(name = "proof_urls")
private String proofUrls;
}

View File

@@ -0,0 +1,140 @@
package com.cool.store.entity.tp;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 十二分制-申请单
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Table(name = "zxjp_tp_apply_form")
@Data
public class TpApplyFormDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 单据类型0加分单 1警告书 2处罚书
*/
private Integer type;
/**
* 申请单号
*/
@Column(name = "apply_no")
private String applyNo;
/**
* 门店id
*/
@Column(name = "store_id")
private String storeId;
/**
* 项目大类
*/
@Column(name = "project_category")
private String projectCategory;
/**
* 规则id项目类型
*/
@Column(name = "rule_id")
private Long ruleId;
/**
* 是否加满
*/
@Column(name = "is_full")
private Integer isFull;
/**
* 分值
*/
private BigDecimal point;
/**
* 备注
*/
private String remark;
/**
* 罚款金额
*/
private BigDecimal amount;
/**
* 申请复议截止日期
*/
@Column(name = "appeal_end_date")
private Date appealEndDate;
/**
* 状态
*/
private Integer status;
/**
* 缴费状态0未缴费 1无需缴费 2已缴费
*/
@Column(name = "pay_status")
private Integer payStatus;
/**
* 是否为草稿 0否 1是
*/
@Column(name = "is_draft")
private Integer isDraft;
/**
* 申请人id
*/
@Column(name = "apply_user_id")
private String applyUserId;
/**
* 审批人id
*/
@Column(name = "approve_user_id")
private String approveUserId;
/**
* 审批时间
*/
@Column(name = "approve_time")
private Date approveTime;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
/**
* 证明图片列表
*/
@Column(name = "proof_urls")
private String proofUrls;
}

View File

@@ -0,0 +1,89 @@
package com.cool.store.entity.tp;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 十二分制-审批记录
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Table(name = "zxjp_tp_audit_record")
@Data
public class TpAuditRecordDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 表单类型0加分申请 1复议申请
*/
@Column(name = "apply_type")
private Integer applyType;
/**
* 申请单id
*/
@Column(name = "apply_id")
private Long applyId;
/**
* 记录类型1申请提交 2审批操作
*/
@Column(name = "record_type")
private Integer recordType;
/**
* 审批状态0待处理 1通过 2拒绝
*/
@Column(name = "audit_status")
private Integer auditStatus;
/**
* 备注
*/
private String remark;
/**
* 处理人
*/
@Column(name = "handler_user_id")
private String handlerUserId;
/**
* 收到任务时间
*/
@Column(name = "receive_task_time")
private Date receiveTaskTime;
/**
* 完成任务时间
*/
@Column(name = "finish_task_time")
private Date finishTaskTime;
/**
* 是否删除0否1是
*/
private Integer deleted;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,113 @@
package com.cool.store.entity.tp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 十二分制-奖惩规则
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Table(name = "zxjp_tp_rule")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TpRuleDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 规则编码
*/
@Column(name = "rule_code")
private String ruleCode;
/**
* 规则类型0扣分 1加分
*/
private Integer type;
/**
* 问题分类
*/
@Column(name = "problem_classification")
private String problemClassification;
/**
* 项目大类
*/
@Column(name = "project_category")
private String projectCategory;
/**
* 惩处项目名称
*/
@Column(name = "project_name")
private String projectName;
/**
* 警告上限次数
*/
@Column(name = "warning_limit")
private Integer warningLimit;
/**
* 分值
*/
private BigDecimal point;
/**
* 罚款金额
*/
private BigDecimal amount;
/**
* 复议申请时效
*/
@Column(name = "review_deadline")
private Integer reviewDeadline;
/**
* 启用状态0未启用 1启用
*/
private Integer status;
/**
* 项目描述
*/
private String remark;
/**
* 是否加满
*/
@Column(name = "is_full")
private Integer isFull;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除 0否1是
*/
private Integer deleted;
}

View File

@@ -0,0 +1,140 @@
package com.cool.store.entity.tp;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
/**
* <p>
* 十二分制-积分流水
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Table(name = "zxjp_tp_score_journal")
@Data
public class TpScoreJournalDO {
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 流水号
*/
@Column(name = "journal_no")
private String journalNo;
/**
* 门店id
*/
@Column(name = "store_id")
private String storeId;
/**
* 门店编码
*/
@Column(name = "store_num")
private String storeNum;
/**
* 加盟品牌
*/
@Column(name = "join_brand")
private Integer joinBrand;
/**
* 加盟模式
*/
@Column(name = "join_model")
private Integer joinModel;
/**
* 门店类型
*/
@Column(name = "store_type")
private Integer storeType;
/**
* 门店名称
*/
@Column(name = "store_name")
private String storeName;
/**
* 发生分值
*/
@Column(name = "occur_score")
private BigDecimal occurScore;
/**
* 发生日期
*/
@Column(name = "occur_date")
private Date occurDate;
/**
* 发生前分值
*/
@Column(name = "occur_before_score")
private BigDecimal occurBeforeScore;
/**
* 发生后分值
*/
@Column(name = "occur_after_score")
private BigDecimal occurAfterScore;
/**
* 单据来源0加分申请单 2惩处申请单
*/
@Column(name = "apply_type")
private Integer applyType;
/**
* 来源单号
*/
@Column(name = "apply_no")
private String applyNo;
/**
* 项目大类
*/
@Column(name = "project_category")
private String projectCategory;
/**
* 项目名称
*/
@Column(name = "project_name")
private String projectName;
/**
* 规则id
*/
@Column(name = "rule_id")
private Long ruleId;
/**
* 规则编码
*/
@Column(name = "rule_no")
private String ruleNo;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,62 @@
package com.cool.store.request.tp;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* <p>
* 惩处规则更新Request
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpPenaltyRuleUpdateRequest {
@ApiModelProperty("id")
@NotNull(message = "id不能为空", groups = {UpdateGroup.class})
private Long id;
@ApiModelProperty("问题分类")
@NotBlank(message = "问题分类不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String problemClassification;
@ApiModelProperty("项目大类")
@NotBlank(message = "项目大类不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String projectCategory;
@ApiModelProperty("惩处项目名称")
@NotBlank(message = "惩处项目名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String projectName;
@ApiModelProperty("警告上限次数")
@NotNull(message = "警告上限次数不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer warningLimit;
@ApiModelProperty("扣分值")
@NotNull(message = "扣分值不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private BigDecimal point;
@ApiModelProperty("罚款金额")
@NotNull(message = "罚款金额不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private BigDecimal amount;
@ApiModelProperty("复议申请时效")
@NotNull(message = "复议申请时效不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer reviewDeadline;
@ApiModelProperty("启用状态0未启用 1启用")
@NotNull(message = "启用状态不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer status;
@ApiModelProperty("惩处项目描述")
@NotBlank(message = "惩处项目描述不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String remark;
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.request.tp;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* <p>
* 加分规则更新Request
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpRewardRuleUpdateRequest {
@ApiModelProperty("id")
@NotNull(message = "id不能为空", groups = {UpdateGroup.class})
private Long id;
@ApiModelProperty("项目大类")
@NotBlank(message = "项目大类不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String projectCategory;
@ApiModelProperty("加分项目名称")
@NotBlank(message = "加分项目名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String projectName;
@ApiModelProperty("是否加满0否 1是")
@NotNull(message = "是否加满不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer isFull;
@ApiModelProperty("加分值")
private BigDecimal point;
@ApiModelProperty("启用状态0未启用 1启用")
@NotNull(message = "启用状态不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer status;
@ApiModelProperty("加分项目描述")
@NotBlank(message = "加分项目描述不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.cool.store.request.tp;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 规则查询Request
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpRuleQueryRequest extends PageBasicInfo {
@ApiModelProperty("问题分类")
private String problemClassification;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("启用状态0未启用 1启用")
private Integer status;
}

View File

@@ -0,0 +1,59 @@
package com.cool.store.vo.tp;
import com.cool.store.annotation.DictField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* 惩处规则详情VO
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpPenaltyRuleDetailVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
@ApiModelProperty("问题分类")
private String problemClassification;
@ApiModelProperty("问题分类名称")
@DictField
private String problemClassificationName;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目大类名称")
@DictField
private String projectCategoryName;
@ApiModelProperty("惩处项目名称")
private String projectName;
@ApiModelProperty("警告上限次数")
private Integer warningLimit;
@ApiModelProperty("扣分值")
private BigDecimal point;
@ApiModelProperty("罚款金额")
private BigDecimal amount;
@ApiModelProperty("复议申请时效")
private Integer reviewDeadline;
@ApiModelProperty("启用状态0未启用 1启用")
private Integer status;
@ApiModelProperty("惩处项目描述")
private String remark;
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.vo.tp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* 惩处规则列表VO
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpPenaltyRuleListVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
@ApiModelProperty("问题分类")
private String problemClassification;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("惩处项目名称")
private String projectName;
@ApiModelProperty("警告上限次数")
private Integer warningLimit;
@ApiModelProperty("扣分值")
private BigDecimal point;
@ApiModelProperty("罚款金额")
private BigDecimal amount;
@ApiModelProperty("启用状态0未启用 1启用")
private Integer status;
}

View File

@@ -0,0 +1,46 @@
package com.cool.store.vo.tp;
import com.cool.store.annotation.DictField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* 加分规则详情VO
* </p>
*
* @author wangff
* @since 2025/11/4
*/
@Data
public class TpRewardRuleDetailVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目大类名称")
@DictField
private String projectCategoryName;
@ApiModelProperty("加分项目名称")
private String projectName;
@ApiModelProperty("是否加满0否 1是")
private Integer isFull;
@ApiModelProperty("加分值")
private BigDecimal point;
@ApiModelProperty("启用状态0未启用 1启用")
private Integer status;
@ApiModelProperty("加分项目描述")
private String remark;
}