package cn.palmte.work.model; import cn.palmte.work.bean.ApproveStatusEnum; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; import java.math.BigDecimal; import java.util.Date; /** * 项目实体 * @author xiongshiyan at 2021/10/29 , contact me with email yanshixiong@126.com or phone 15208384257 */ @Entity @Table(name = "project") public class Project { public static final int STATUS_CREATED = 1; public static final int STATUS_ESTIMATE = 5; public static final int STATUS_BUDGET = 10; public static final int STATUS_SETTLE = 15; public static final int STATUS_FINAL = 20; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @GenericGenerator(name = "persistenceGenerator", strategy = "increment") private int id; /** * 项目名称 */ private String name; /** * 项目类型:1工程集成类、2设备集成类、3战略合作类 */ private int type; @Column(name = "type_desc") private String typeDesc; /** * 项目状态:1项目创建,5概算完成,10预算完成,15结算中,20决算完成 */ private int status; @Column(name = "status_desc") private String statusDesc; /** * 概算、预算、结算、决算:审核状态:0草稿,1待审核,2审核通过,3审核不通过 */ @Column(name = "approve_status_estimate") private Integer approveStatusEstimate; @Column(name = "approve_status_budget") private Integer approveStatusBudget; @Column(name = "approve_status_settle") private Integer approveStatusSettle; @Column(name = "approve_status_final") private Integer approveStatusFinal; /** * 审核人id */ @Column(name = "approve_id") private Integer approveId; @Column(name = "approve_name") private String approveName; /** * 项目创建者id */ @Column(name = "creator_id") private int creatorId; @Column(name = "creator_name") private String creatorName; /** * 项目部门id */ @Column(name = "dept_id") private int deptId; @Column(name = "dept_name") private String deptName; /** * 项目开始时间,精确到月 */ @Column(name = "start_date") @Temporal(TemporalType.TIMESTAMP) private Date startDate; /** * 项目结束时间,精确到月 */ @Column(name = "end_date") @Temporal(TemporalType.TIMESTAMP) private Date endDate; /** * 垫资模式:1A类-不垫资(战略合作),2B类-不垫资(背靠背),3C类-垫资(账期覆盖),4D类-垫资(账期不覆盖) */ @Column(name = "underwritten_mode") private int underwrittenMode; /** * 客户名称 */ @Column(name = "customer") private String customer; /** * 终端客户名称 */ @Column(name = "terminal_customer") private String terminalCustomer; /** * 垫资利息(元为单位) */ @Column(name = "advance_interest_amount") private BigDecimal advanceInterestAmount; /** * 垫资峰值 */ @Column(name = "advance_peak_amount") private BigDecimal advancePeakAmount; /** * 合同金额 */ @Column(name = "contract_amount") private BigDecimal contractAmount; /** * 行业场景应用 */ @Column(name = "industry_scenario") private String industryScenario; /** *华智产品金额 */ @Column(name = "huazhi_product_amount") private BigDecimal huazhiProductAmount; /** *紫光其他产品金额 */ @Column(name = "ziguang_other_amount") private BigDecimal ziguangOtherAmount; /** * 主合同收款条款 */ @Column(name = "main_contract_collection_terms") private String mainContractCollectionTerms; /** * 创建时间 */ @Column(name = "create_time") @Temporal(TemporalType.TIMESTAMP) private Date createTime; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getTypeDesc() { return typeDesc; } public void setTypeDesc(String typeDesc) { this.typeDesc = typeDesc; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getStatusDesc() { return statusDesc; } public void setStatusDesc(String statusDesc) { this.statusDesc = statusDesc; } public Integer getApproveStatusEstimate() { return approveStatusEstimate; } public void setApproveStatusEstimate(Integer approveStatusEstimate) { this.approveStatusEstimate = approveStatusEstimate; } public Integer getApproveStatusBudget() { return approveStatusBudget; } public void setApproveStatusBudget(Integer approveStatusBudget) { this.approveStatusBudget = approveStatusBudget; } public Integer getApproveStatusSettle() { return approveStatusSettle; } public void setApproveStatusSettle(Integer approveStatusSettle) { this.approveStatusSettle = approveStatusSettle; } public Integer getApproveStatusFinal() { return approveStatusFinal; } public void setApproveStatusFinal(Integer approveStatusFinal) { this.approveStatusFinal = approveStatusFinal; } public Integer getApproveStatus() { if(status == STATUS_CREATED || status == STATUS_ESTIMATE){ return approveStatusEstimate; } if(status == STATUS_BUDGET){ return approveStatusBudget; } if(status == STATUS_SETTLE){ return approveStatusSettle; } if(status == STATUS_FINAL){ return approveStatusFinal; } return null; } public String getApproveStatusDesc() { Integer approveStatus = getApproveStatus(); if(null == approveStatus){ return "未知"; } return ApproveStatusEnum.parseApproveStatus(approveStatus).getApproveStatusDesc(); } public Integer getApproveId() { return approveId; } public void setApproveId(Integer approveId) { this.approveId = approveId; } public String getApproveName() { return approveName; } public void setApproveName(String approveName) { this.approveName = approveName; } public int getCreatorId() { return creatorId; } public void setCreatorId(int creatorId) { this.creatorId = creatorId; } public String getCreatorName() { return creatorName; } public void setCreatorName(String creatorName) { this.creatorName = creatorName; } public int getDeptId() { return deptId; } public void setDeptId(int deptId) { this.deptId = deptId; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } public int getUnderwrittenMode() { return underwrittenMode; } public void setUnderwrittenMode(int underwrittenMode) { this.underwrittenMode = underwrittenMode; } public String getCustomer() { return customer; } public void setCustomer(String customer) { this.customer = customer; } public String getTerminalCustomer() { return terminalCustomer; } public void setTerminalCustomer(String terminalCustomer) { this.terminalCustomer = terminalCustomer; } public BigDecimal getAdvanceInterestAmount() { return advanceInterestAmount; } public void setAdvanceInterestAmount(BigDecimal advanceInterestAmount) { this.advanceInterestAmount = advanceInterestAmount; } public BigDecimal getAdvancePeakAmount() { return advancePeakAmount; } public void setAdvancePeakAmount(BigDecimal advancePeakAmount) { this.advancePeakAmount = advancePeakAmount; } public BigDecimal getContractAmount() { return contractAmount; } public void setContractAmount(BigDecimal contractAmount) { this.contractAmount = contractAmount; } public String getIndustryScenario() { return industryScenario; } public void setIndustryScenario(String industryScenario) { this.industryScenario = industryScenario; } public BigDecimal getHuazhiProductAmount() { return huazhiProductAmount; } public void setHuazhiProductAmount(BigDecimal huazhiProductAmount) { this.huazhiProductAmount = huazhiProductAmount; } public BigDecimal getZiguangOtherAmount() { return ziguangOtherAmount; } public void setZiguangOtherAmount(BigDecimal ziguangOtherAmount) { this.ziguangOtherAmount = ziguangOtherAmount; } public String getMainContractCollectionTerms() { return mainContractCollectionTerms; } public void setMainContractCollectionTerms(String mainContractCollectionTerms) { this.mainContractCollectionTerms = mainContractCollectionTerms; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } }