Files
ERP/oa-backend/src/main/java/com/kaidi/oa/domain/TechContract.java
T

236 lines
5.2 KiB
Java

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;
}
}