fix:十二分制-奖惩规则

This commit is contained in:
wangff
2025-11-07 15:12:25 +08:00
parent 85a411bc9a
commit a3d0f9572c
41 changed files with 1534 additions and 38 deletions

View File

@@ -70,7 +70,7 @@ public class TpAppealFormDO {
private Integer status;
/**
* 来源0crm 1小程序
* 来源0非小程序 1小程序
*/
private Integer source;
@@ -85,6 +85,12 @@ public class TpAppealFormDO {
*/
@Column(name = "approve_time")
private Date approveTime;
/**
* 是否为草稿 0否 1是
*/
@Column(name = "is_draft")
private Integer isDraft;
/**
* 创建人id

View File

@@ -1,8 +1,12 @@
package com.cool.store.entity.tp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import javax.persistence.*;
@@ -16,6 +20,9 @@ import javax.persistence.*;
*/
@Table(name = "zxjp_tp_apply_form")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TpApplyFormDO {
/**
* id
@@ -41,6 +48,24 @@ public class TpApplyFormDO {
@Column(name = "store_id")
private String storeId;
/**
* 规则id项目类型
*/
@Column(name = "rule_id")
private Long ruleId;
/**
* 规则编码
*/
@Column(name = "rule_no")
private String ruleNo;
/**
* 问题分类
*/
@Column(name = "problem_classification")
private String problemClassification;
/**
* 项目大类
*/
@@ -48,10 +73,10 @@ public class TpApplyFormDO {
private String projectCategory;
/**
* 规则id项目类型
* 项目名称
*/
@Column(name = "rule_id")
private Long ruleId;
@Column(name = "project_name")
private String projectName;
/**
* 是否加满
@@ -62,7 +87,7 @@ public class TpApplyFormDO {
/**
* 分值
*/
private BigDecimal point;
private BigDecimal score;
/**
* 备注
@@ -70,7 +95,7 @@ public class TpApplyFormDO {
private String remark;
/**
* 罚款金额
* 金额
*/
private BigDecimal amount;
@@ -78,12 +103,12 @@ public class TpApplyFormDO {
* 申请复议截止日期
*/
@Column(name = "appeal_end_date")
private Date appealEndDate;
private LocalDate appealEndDate;
/**
* 状态
*/
private Integer status;
private String status;
/**
* 缴费状态0未缴费 1无需缴费 2已缴费
@@ -97,12 +122,24 @@ public class TpApplyFormDO {
@Column(name = "is_draft")
private Integer isDraft;
/**
* 来源0非小程序 1小程序
*/
@Column(name = "source")
private Integer source;
/**
* 申请人id
*/
@Column(name = "apply_user_id")
private String applyUserId;
/**
* 申请人名称
*/
@Column(name = "apply_user_name")
private String applyUserName;
/**
* 审批人id
*/

View File

@@ -1,6 +1,9 @@
package com.cool.store.entity.tp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@@ -15,6 +18,9 @@ import javax.persistence.*;
*/
@Table(name = "zxjp_tp_audit_record")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TpAuditRecordDO {
/**
* id
@@ -24,7 +30,7 @@ public class TpAuditRecordDO {
private Long id;
/**
* 单类型0加分申请 1复议申请
* 单类型0加分单 1警告书 2处罚书
*/
@Column(name = "apply_type")
private Integer applyType;
@@ -58,6 +64,12 @@ public class TpAuditRecordDO {
@Column(name = "handler_user_id")
private String handlerUserId;
/**
* 处理人名称
*/
@Column(name = "handler_user_name")
private String handlerUserName;
/**
* 收到任务时间
*/

View File

@@ -30,8 +30,8 @@ public class TpRuleDO {
/**
* 规则编码
*/
@Column(name = "rule_code")
private String ruleCode;
@Column(name = "rule_no")
private String ruleNo;
/**
* 规则类型0扣分 1加分
@@ -65,7 +65,7 @@ public class TpRuleDO {
/**
* 分值
*/
private BigDecimal point;
private BigDecimal score;
/**
* 罚款金额

View File

@@ -1,6 +1,10 @@
package com.cool.store.entity.tp;
import com.cool.store.entity.StoreDO;
import com.cool.store.utils.TpHelper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@@ -16,6 +20,8 @@ import javax.persistence.*;
*/
@Table(name = "zxjp_tp_score_journal")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TpScoreJournalDO {
/**
* id
@@ -70,7 +76,7 @@ public class TpScoreJournalDO {
* 发生分值
*/
@Column(name = "occur_score")
private BigDecimal occurScore;
private String occurScore;
/**
* 发生日期
@@ -91,7 +97,7 @@ public class TpScoreJournalDO {
private BigDecimal occurAfterScore;
/**
* 单据来源0加分申请单 2惩处申请单
* 单据类型0加分单 1警告书 2处罚书
*/
@Column(name = "apply_type")
private Integer applyType;
@@ -137,4 +143,24 @@ public class TpScoreJournalDO {
*/
@Column(name = "update_time")
private Date updateTime;
public TpScoreJournalDO(StoreDO storeDO, TpApplyFormDO formDO, String occurScore, BigDecimal occurBeforeScore, BigDecimal occurAfterScore) {
this.journalNo = TpHelper.generateScoreJournalNo();
this.storeId = storeDO.getStoreId();
this.storeNum = storeDO.getStoreNum();
this.joinBrand = storeDO.getJoinBrand();
this.joinModel = storeDO.getJoinModel();
this.storeType = storeDO.getStoreType();
this.storeName = storeDO.getStoreName();
this.occurScore = occurScore;
this.occurDate = new Date();
this.occurBeforeScore = occurBeforeScore;
this.occurAfterScore = occurAfterScore;
this.applyType = formDO.getType();
this.applyNo = formDO.getApplyNo();
this.projectCategory = formDO.getProjectCategory();
this.projectName = formDO.getProjectName();
this.ruleId = formDO.getRuleId();
this.ruleNo = formDO.getRuleNo();
}
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.request.tp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 申请单审批Request
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpApplyAuditRequest {
@ApiModelProperty("申请单id")
@NotNull(message = "申请单id不能为空")
private Long applyId;
@ApiModelProperty(value = "单据类型0加分单 1警告书 2处罚书", hidden = true)
private Integer applyType;
@ApiModelProperty("审批状态 1通过 2拒绝")
@NotNull(message = "审批状态不能为空")
private Integer auditStatus;
@ApiModelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.request.tp;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* 申请单查询Request
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpApplyQueryRequest extends PageBasicInfo {
@ApiModelProperty("申请单号")
private String applyNo;
@ApiModelProperty("门店名称或编码")
private String storeNameOrNum;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("规则id")
private String ruleId;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty(value = "单据类型0加分单 1警告书 2处罚书")
private Integer type;
@ApiModelProperty("缴款状态0未缴费 1无需缴费 2已缴费")
private Integer payStatus;
@ApiModelProperty("分值")
private BigDecimal score;
@ApiModelProperty(value = "是惩处单", hidden = true)
private Boolean isPenalty;
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.request.tp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* <p>
* 奖惩申请Request
* </p>
*
* @author wangff
* @since 2025/11/5
*/
@Data
public class TpApplyRequest {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("门店id")
@NotNull(message = "门店id不能为空")
private String storeId;
@ApiModelProperty("规则id")
@NotNull(message = "规则id不能为空")
private Long ruleId;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("是否为草稿 0否 1是")
@NotNull(message = "是否为草稿不能为空")
private Integer isDraft;
@ApiModelProperty(value = "来源0非小程序 1小程序", hidden = true)
private Integer source;
@ApiModelProperty(value = "申请人id", hidden = true)
private String applyUserId;
@ApiModelProperty(value = "申请人名称", hidden = true)
private String applyUserName;
@ApiModelProperty("证明图片列表,逗号隔开")
@NotBlank(message = "证明图片列表不能为空")
private String proofUrls;
}

View File

@@ -42,7 +42,7 @@ public class TpPenaltyRuleUpdateRequest {
@ApiModelProperty("扣分值")
@NotNull(message = "扣分值不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private BigDecimal point;
private BigDecimal score;
@ApiModelProperty("罚款金额")
@NotNull(message = "罚款金额不能为空", groups = {InsertGroup.class, UpdateGroup.class})

View File

@@ -37,7 +37,7 @@ public class TpRewardRuleUpdateRequest {
private Integer isFull;
@ApiModelProperty("加分值")
private BigDecimal point;
private BigDecimal score;
@ApiModelProperty("启用状态0未启用 1启用")
@NotNull(message = "启用状态不能为空", groups = {InsertGroup.class, UpdateGroup.class})

View File

@@ -0,0 +1,83 @@
package com.cool.store.vo.tp;
import com.cool.store.annotation.DictField;
import com.cool.store.enums.tp.TpFormStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 申请表单列表基础VO
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpApplyListBaseVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("申请单号")
private String applyNo;
@ApiModelProperty("规则id项目类型")
private Long ruleId;
@ApiModelProperty("规则编码")
private String ruleNo;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目大类名称")
@DictField
private String projectCategoryName;
@ApiModelProperty("分值")
private BigDecimal score;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店编码")
private String storeNum;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("审批人")
private String approveUserId;
@ApiModelProperty("审批人名称")
private String approveUserName;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("状态名称")
private String statusName;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("申请人名称")
private String applyUserName;
@ApiModelProperty("申请时间")
private Date createTime;
@ApiModelProperty("审核时间")
private Date approveTime;
public String getStatusName() {
return TpFormStatusEnum.getMsgByStatus(this.status);
}
}

View File

@@ -0,0 +1,79 @@
package com.cool.store.vo.tp;
import com.cool.store.annotation.DictField;
import com.cool.store.enums.tp.TpFormTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* <p>
* 惩处申请详情VO
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpPenaltyApplyDetailVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("申请单号")
private String applyNo;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店编码")
private String storeNum;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("单据类型")
private Integer type;
@ApiModelProperty("单据类型名称")
private String typeName;
@ApiModelProperty("规则id项目类型")
private Long ruleId;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目大类名称")
@DictField
private String projectCategoryName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("分值")
private BigDecimal score;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("申请复议截止日期")
private LocalDate appealEndDate;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("是否为草稿 0否 1是")
private Integer isDraft;
@ApiModelProperty("证明图片列表")
private String proofUrls;
@ApiModelProperty("状态")
private String status;
public String getTypeName() {
return TpFormTypeEnum.getMsgByType(this.type);
}
}

View File

@@ -0,0 +1,47 @@
package com.cool.store.vo.tp;
import com.cool.store.enums.tp.TpFormTypeEnum;
import com.cool.store.enums.tp.TpPayStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* <p>
* 惩处申请单列表VO
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpPenaltyApplyListVO extends TpApplyListBaseVO {
@ApiModelProperty("单据类型")
private Integer type;
@ApiModelProperty("单据类型名称")
private String typeName;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("申请复议截止日期")
private LocalDate appealEndDate;
@ApiModelProperty("缴费状态")
private Integer payStatus;
@ApiModelProperty("缴费状态名称")
private String payStatusName;
public String getTypeName() {
return TpFormTypeEnum.getMsgByType(this.type);
}
public String getPayStatusName() {
return TpPayStatusEnum.getMsgByStatus(this.payStatus);
}
}

View File

@@ -20,7 +20,7 @@ public class TpPenaltyRuleDetailVO {
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
private String ruleNo;
@ApiModelProperty("问题分类")
private String problemClassification;
@@ -43,7 +43,7 @@ public class TpPenaltyRuleDetailVO {
private Integer warningLimit;
@ApiModelProperty("扣分值")
private BigDecimal point;
private BigDecimal score;
@ApiModelProperty("罚款金额")
private BigDecimal amount;

View File

@@ -20,7 +20,7 @@ public class TpPenaltyRuleListVO {
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
private String ruleNo;
@ApiModelProperty("问题分类")
private String problemClassification;
@@ -43,7 +43,7 @@ public class TpPenaltyRuleListVO {
private Integer warningLimit;
@ApiModelProperty("扣分值")
private BigDecimal point;
private BigDecimal score;
@ApiModelProperty("罚款金额")
private BigDecimal amount;

View File

@@ -0,0 +1,64 @@
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/6
*/
@Data
public class TpRewardApplyDetailVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("申请单号")
private String applyNo;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店编码")
private String storeNum;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("规则id项目类型")
private Long ruleId;
@ApiModelProperty("项目大类")
private String projectCategory;
@ApiModelProperty("项目大类名称")
@DictField
private String projectCategoryName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("是否加满")
private Integer isFull;
@ApiModelProperty("分值")
private BigDecimal score;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("是否为草稿 0否 1是")
private Integer isDraft;
@ApiModelProperty("证明图片列表")
private String proofUrls;
@ApiModelProperty("状态")
private String status;
}

View File

@@ -0,0 +1,16 @@
package com.cool.store.vo.tp;
import lombok.Data;
/**
* <p>
* 加分申请单列表VO
* </p>
*
* @author wangff
* @since 2025/11/6
*/
@Data
public class TpRewardApplyListVO extends TpApplyListBaseVO {
}

View File

@@ -20,7 +20,7 @@ public class TpRewardRuleDetailVO {
private Long id;
@ApiModelProperty("规则编码")
private String ruleCode;
private String ruleNo;
@ApiModelProperty("项目大类")
private String projectCategory;
@@ -36,7 +36,7 @@ public class TpRewardRuleDetailVO {
private Integer isFull;
@ApiModelProperty("加分值")
private BigDecimal point;
private BigDecimal score;
@ApiModelProperty("启用状态0未启用 1启用")
private Integer status;