Files
ERP/oa-backend/src/main/java/com/kaidi/oa/domain/AuditArchive.java
T
QiufengandClaude Opus 4.8 5e51dc3f56 SNAPSHOT W7 已部署稳定态 — 凯迪ERP+OA一体化平台 (MET 73.3%)
恢复点(restore point)。别人改崩后可 git reset --hard 回到此提交。

== 此快照内容 ==
- 后端 oa-backend: 734 控制器 / 711 实体 (Spring Boot 3.2.5 + SQLite, 端口8091)
- 前端 modern-ui/app: Vue3+Vite, 约700页 (构建产物已在 oa-backend/src/main/resources/static)
- 数据库 oa-backend/data/oa.db: 含全部演示数据 (强制入库, 6.6MB)
- 交接文档 go.md + go-code-reference/endpoints/entities/database.md
- 多代理建设脚本 .claude/wf-*.js

== 状态 ==
- 对 凯迪科技ERP_20260507.xlsx 合规 MET ~73.3% (PARTIAL 75: 34可建+6种子/bug+35外部硬天花板)
- 安全: 5轮红队+5轮复检, default-deny分级鉴权, 连续零可利用
- W3~W7 累计补完436缺口; W8末轮(40缺口)为半成品(源码树可编译但未集成)
- 运行: cd oa-backend; java -jar build/libs/oa-backend-0.1.0.jar --server.port=8091; admin/123456

== 排除(gitignore, 可再生) ==
node_modules / oa-backend/build / .jdks / *.log / Backup-ERP-* / 弃用的OFBiz核心(只保留modern-ui)
完整文件夹备份见同目录 Backup-ERP-20260615-191517/ (含上述全部, 仅缺 node_modules)

时间戳: 20260615-191517

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 19:19:15 +08:00

102 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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; }
}