package com.kaidi.oa.domain; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import java.time.Instant; /** * 审计档案库(内控部·审计监察部·第9模块)。 * * 统一审计档案归档实体:底稿/报告/证据/整改记录按年度/项目类型分类归档。 * 每条 AuditArchive 代表一个归档记录(可归档多类文件)。 * * - archiveNo 档案编号,自动生成 AC-yyyy-序号; * - projectId 关联审计项目(可选,专项归档可无项目); * - projectName 冗余项目名; * - year 档案归属年度; * - archiveType 档案类型:底稿 / 报告 / 证据 / 整改记录 / 法规制度 / 知识总结; * - auditType 审计类型(来自关联项目); * - auditee 被审计单位; * - title 档案标题; * - description 档案描述/摘要; * - fileRef 文件路径/ID; * - fileHash 防篡改哈希值; * - tags 标签(逗号分隔,便于检索); * - keywords 关键词(供简易全文检索); * - status 状态:归档中 / 已归档 / 已销毁; * - archiver 归档人; * - archivedAt 归档时间; * - retentionYear 保存年限(年,-1=永久); * - createdAt 创建时间。 */ @Entity @Table(name = "audit_archive") public class AuditArchive { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String archiveNo; private Long projectId; private String projectName; private String year; private String archiveType; private String auditType; private String auditee; private String title; private String description; private String fileRef; private String fileHash; private String tags; private String keywords; private String status; private String archiver; private Instant archivedAt; private int retentionYear; private Instant createdAt; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getArchiveNo() { return archiveNo; } public void setArchiveNo(String archiveNo) { this.archiveNo = archiveNo; } public Long getProjectId() { return projectId; } public void setProjectId(Long projectId) { this.projectId = projectId; } public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public String getArchiveType() { return archiveType; } public void setArchiveType(String archiveType) { this.archiveType = archiveType; } public String getAuditType() { return auditType; } public void setAuditType(String auditType) { this.auditType = auditType; } public String getAuditee() { return auditee; } public void setAuditee(String auditee) { this.auditee = auditee; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getFileRef() { return fileRef; } public void setFileRef(String fileRef) { this.fileRef = fileRef; } public String getFileHash() { return fileHash; } public void setFileHash(String fileHash) { this.fileHash = fileHash; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; } public String getKeywords() { return keywords; } public void setKeywords(String keywords) { this.keywords = keywords; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getArchiver() { return archiver; } public void setArchiver(String archiver) { this.archiver = archiver; } public Instant getArchivedAt() { return archivedAt; } public void setArchivedAt(Instant archivedAt) { this.archivedAt = archivedAt; } public int getRetentionYear() { return retentionYear; } public void setRetentionYear(int retentionYear) { this.retentionYear = retentionYear; } public Instant getCreatedAt() { return createdAt; } public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } }