package com.kaidi.oa.domain; import java.time.Instant; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Column; import jakarta.persistence.Table; /** * 部门制度(知识产权部,需求功能8「制度版本与修订记录」)。 * * 一条 IpRegulation 是一份制度的「主档」:保存当前生效版本号 currentVersion 与最新正文, * 历次修订作为 IpRegulationVersion 历史版本留存(只增不改)。 * * 发布前走三级审批:起草 → 部门负责人 → 法务 → 高管 → 已发布;审批通过自动归档并置为生效版本。 * status:起草 / 部门审批 / 法务审批 / 高管审批 / 已发布 / 已废止。 */ @Entity @Table(name = "ip_regulation") public class IpRegulation { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String code; private String title; /** 制度分类:管理办法 / 操作规程 / 工作指引 / 应急预案 / 其他。 */ private String category; /** 当前生效版本号(如 V1.0 / V2.1)。 */ private String currentVersion; /** 当前正文(最新草稿或已发布版)。 */ @Column(columnDefinition = "TEXT") private String content; private String owner; private String status; /** 当前审批节点意见(最近一次)。 */ private String lastApprovalNote; private String publishedDate; private Instant createdAt; private Instant updatedAt; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getCurrentVersion() { return currentVersion; } public void setCurrentVersion(String currentVersion) { this.currentVersion = currentVersion; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getLastApprovalNote() { return lastApprovalNote; } public void setLastApprovalNote(String lastApprovalNote) { this.lastApprovalNote = lastApprovalNote; } public String getPublishedDate() { return publishedDate; } public void setPublishedDate(String publishedDate) { this.publishedDate = publishedDate; } public Instant getCreatedAt() { return createdAt; } public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } public Instant getUpdatedAt() { return updatedAt; } public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; } }