package com.yunhai.campusnotice.entity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Index; import javax.persistence.Table; import java.time.LocalDateTime; /** * 通知审批记录表 notice_approval(改造方案 2.4)。 *

* 审批轨迹全量落本表(提交行含审批人快照,通过/驳回行记录实际处理人), * 驳回重提产生新一轮提交行,历史轮次永久保留(详情页按时间线分组展示)。 */ @NoArgsConstructor @Data @Entity @Table(name = "notice_approval", indexes = @Index(name = "idx_approval_notice", columnList = "notice_id")) @EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false) public class NoticeApproval extends BaseEntity { /** 审批动作:1 提交审批 / 2 通过 / 3 驳回(见 ApprovalActionEnum) */ public static final int ACTION_SUBMIT = 1; public static final int ACTION_APPROVE = 2; public static final int ACTION_REJECT = 3; /** 通知ID(关联 notice.id) */ @Column(name = "notice_id", nullable = false) private Integer noticeId; /** 审批动作:1 提交审批 / 2 通过 / 3 驳回 */ @Column(name = "action", nullable = false) private Integer action; /** 操作人账号 */ @Column(name = "operator_account", length = 64) private String operatorAccount; /** 操作人姓名 */ @Column(name = "operator_name", length = 64) private String operatorName; /** 审批意见 */ @Column(name = "opinion", length = 1000) private String opinion; /** 仅 action=1 提交行使用:选定审批人快照 JSON [{account,name}] */ @Column(name = "assignees", columnDefinition = "LONGTEXT") private String assignees; /** 操作时间 */ @Column(name = "action_time") private LocalDateTime actionTime; }