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; /** * 科技成果登记(需求功能7)。成果登记表在线填写,系统自动生成登记编号,关联研发立项 / 知识产权 / * 论文-标准-软著等佐证材料。带评价状态机:草稿 → 已登记 → 评价中 → 证书下发 / 未通过。 * * achType:专利 / 软著 / 论文 / 标准 / 新产品 / 工法 / 科技奖励。 * evalLevel:国际领先 / 国内领先 / 国内先进 / 一般(成果评价等级)。 * rdProjectId / ipAssetId(可空):成果的来源项目与对应知识产权,构成"研发→成果→IP"佐证链。 */ @Entity @Table(name = "tech_achievement") public class TechAchievement { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 系统自动生成的登记编号(如 CG-2026-0003)。 */ private String regNo; private String name; private String achType; /** 完成单位/部门。 */ private String department; /** 主要完成人,逗号分隔。 */ private String owners; /** 关联研发立项。 */ private Long rdProjectId; private String rdProjectName; /** 关联知识产权资产(可空)。 */ private Long ipAssetId; /** 佐证材料清单(论文/标准/软著/检测报告…)。 */ @Column(columnDefinition = "TEXT") private String evidence; /** 成果评价等级。 */ private String evalLevel; /** 登记日期。 */ private String regDate; /** 证书编号(证书下发后回填)。 */ private String certNo; /** 评价状态机:草稿 / 已登记 / 评价中 / 证书下发 / 未通过。 */ private String status; private Instant createdAt; private Instant updatedAt; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getRegNo() { return regNo; } public void setRegNo(String regNo) { this.regNo = regNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAchType() { return achType; } public void setAchType(String achType) { this.achType = achType; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public String getOwners() { return owners; } public void setOwners(String owners) { this.owners = owners; } public Long getRdProjectId() { return rdProjectId; } public void setRdProjectId(Long rdProjectId) { this.rdProjectId = rdProjectId; } public String getRdProjectName() { return rdProjectName; } public void setRdProjectName(String rdProjectName) { this.rdProjectName = rdProjectName; } public Long getIpAssetId() { return ipAssetId; } public void setIpAssetId(Long ipAssetId) { this.ipAssetId = ipAssetId; } public String getEvidence() { return evidence; } public void setEvidence(String evidence) { this.evidence = evidence; } public String getEvalLevel() { return evalLevel; } public void setEvalLevel(String evalLevel) { this.evalLevel = evalLevel; } public String getRegDate() { return regDate; } public void setRegDate(String regDate) { this.regDate = regDate; } public String getCertNo() { return certNo; } public void setCertNo(String certNo) { this.certNo = certNo; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } 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; } }