package com.kaidi.oa.domain; import java.math.BigDecimal; 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; /** * 技术合同登记(知识产权部,需求功能10「技术合同登记」— 补深 PARTIAL)。 * * 与通用 Contract(经营/成本/采购)不同:技术合同有专用字段——技术金额 techAmount、 * 合同类型 contractType(技术开发/技术转让/技术咨询/技术服务)、买方 buyer / 卖方 seller、 * 登记状态 registerStatus(未登记→登记中→已登记→登记失效)。 * * 关联研发立项 rdProjectId、知识产权产出 ipAssetId,便于技术交易统计分析。 * 自动生成登记材料(创新技术方案 + 承诺书)。 */ @Entity @Table(name = "tech_contract") public class TechContract { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String code; private String projectName; /** 技术开发 / 技术转让 / 技术咨询 / 技术服务。 */ private String contractType; private String buyer; private String seller; private BigDecimal techAmount = BigDecimal.ZERO; private String signDate; /** 登记状态:未登记 / 登记中 / 已登记 / 登记失效。 */ private String registerStatus; /** 技术合同登记号(已登记后回填)。 */ private String registerNo; private Long rdProjectId; private String rdProjectName; private Long ipAssetId; private String ipAssetName; /** 自动生成的创新技术方案(材料)。 */ @Column(columnDefinition = "TEXT") private String techScheme; /** 自动生成的承诺书(材料)。 */ @Column(columnDefinition = "TEXT") private String commitmentLetter; private String owner; private String remark; 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 getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } public String getContractType() { return contractType; } public void setContractType(String contractType) { this.contractType = contractType; } public String getBuyer() { return buyer; } public void setBuyer(String buyer) { this.buyer = buyer; } public String getSeller() { return seller; } public void setSeller(String seller) { this.seller = seller; } public BigDecimal getTechAmount() { return techAmount; } public void setTechAmount(BigDecimal techAmount) { this.techAmount = techAmount; } public String getSignDate() { return signDate; } public void setSignDate(String signDate) { this.signDate = signDate; } public String getRegisterStatus() { return registerStatus; } public void setRegisterStatus(String registerStatus) { this.registerStatus = registerStatus; } public String getRegisterNo() { return registerNo; } public void setRegisterNo(String registerNo) { this.registerNo = registerNo; } 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 getIpAssetName() { return ipAssetName; } public void setIpAssetName(String ipAssetName) { this.ipAssetName = ipAssetName; } public String getTechScheme() { return techScheme; } public void setTechScheme(String techScheme) { this.techScheme = techScheme; } public String getCommitmentLetter() { return commitmentLetter; } public void setCommitmentLetter(String commitmentLetter) { this.commitmentLetter = commitmentLetter; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } 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; } }