package cn.palmte.work.model; import cn.palmte.work.bean.ApproveStatusEnum; import org.hibernate.annotations.GenericGenerator; import top.jfunc.common.datetime.DatetimeUtils; 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_ESTIMATE = 1; public static final int STATUS_BUDGET = 5; public static final int STATUS_SETTLE = 10; public static final int STATUS_FINAL = 15; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @GenericGenerator(name = "persistenceGenerator", strategy = "increment") private int id; /** * 序号 */ @Transient private int tempId; /** * 项目编号 */ private String projectNo; /** * 项目名称 */ private String name; /** * 项目类型:1工程集成类、2设备集成类、3战略合作类 */ private int type; @Column(name = "type_desc") private String typeDesc; /** * 项目状态:1项目创建(概算),5预算,10结算,15决算 */ private int status; @Column(name = "status_desc") private String statusDesc; /** * 概算、预算、结算、决算:审核状态:0草稿,1待审核,2审核通过,3审核不通过 */ @Column(name = "approve_status_estimate") private int approveStatusEstimate = -1; @Column(name = "approve_status_budget") private int approveStatusBudget = -1; @Column(name = "approve_status_settle") private int approveStatusSettle = -1; @Column(name = "approve_status_final") private int approveStatusFinal = -1; /** * 审核人id */ @Column(name = "approve_id") private int approveId = 0; @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 = "value_risk") private String valueRisk; /** * 其他中的小类名称 */ @Column(name = "other_name") private String otherName; /** * 项目创建时的配置的阀值 */ @Column(name = "project_contribution_profit_rate_threshold") private BigDecimal projectContributionProfitRateThreshold; /** * 项目创建配置的年利率 */ @Column(name = "underwritten_tax_rate") private BigDecimal underwrittenTaxRate; /** * 创建时间 */ @Column(name = "create_time") @Temporal(TemporalType.TIMESTAMP) private Date createTime; /** * 最后更新时间 */ @Column(name = "last_update_time") @Temporal(TemporalType.TIMESTAMP) private Date lastUpdateTime; @Column(name = "plan_start_str") private String planStartStr; @Column(name = "plan_end_str") private String planEndStr; @Transient private String underwrittenModeDesc; @Transient private String certainty; @Transient private BigDecimal grossProfit; @Transient private BigDecimal grossProfitMargin; @Transient private BigDecimal huizhiProductAmount; @Transient private BigDecimal huasanProductAmount; @Transient private String principal; @Transient private Date contractTime; @Transient private Date bidsTime; @Transient private String isSecondStr; @Transient private String signTypeStr; @Transient private String resolvePlanStr; @Transient private String mainContractResolvePlan; @Transient private String CalculationCollection; @Transient private String contractRound; @Transient private String huazhiRound; @Transient private String ziguangRound; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getTempId() { return tempId; } public void setTempId(int tempId) { this.tempId = tempId; } public String getProjectNo() { return projectNo; } public void setProjectNo(String projectNo) { this.projectNo = projectNo; } 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 int getApproveStatus() { if(status == STATUS_ESTIMATE){ return approveStatusEstimate; } if(status == STATUS_BUDGET){ return approveStatusBudget; } if(status == STATUS_SETTLE){ return approveStatusSettle; } if(status == STATUS_FINAL){ return approveStatusFinal; } return -1; } public String getApproveStatusDesc() { int approveStatus = getApproveStatus(); if(-1 == approveStatus){ return "未知"; } return ApproveStatusEnum.parseApproveStatus(approveStatus).getApproveStatusDesc(); } 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 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 String getValueRisk() { return valueRisk; } public void setValueRisk(String valueRisk) { this.valueRisk = valueRisk; } public String getOtherName() { return otherName; } public void setOtherName(String otherName) { this.otherName = otherName; } public BigDecimal getProjectContributionProfitRateThreshold() { return projectContributionProfitRateThreshold; } public void setProjectContributionProfitRateThreshold(BigDecimal projectContributionProfitRateThreshold) { this.projectContributionProfitRateThreshold = projectContributionProfitRateThreshold; } public BigDecimal getUnderwrittenTaxRate() { return underwrittenTaxRate; } public void setUnderwrittenTaxRate(BigDecimal underwrittenTaxRate) { this.underwrittenTaxRate = underwrittenTaxRate; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getLastUpdateTime() { return lastUpdateTime; } public void setLastUpdateTime(Date lastUpdateTime) { this.lastUpdateTime = lastUpdateTime; } public int getApproveStatusEstimate() { return approveStatusEstimate; } public void setApproveStatusEstimate(int approveStatusEstimate) { this.approveStatusEstimate = approveStatusEstimate; } public int getApproveStatusBudget() { return approveStatusBudget; } public void setApproveStatusBudget(int approveStatusBudget) { this.approveStatusBudget = approveStatusBudget; } public int getApproveStatusSettle() { return approveStatusSettle; } public void setApproveStatusSettle(int approveStatusSettle) { this.approveStatusSettle = approveStatusSettle; } public int getApproveStatusFinal() { return approveStatusFinal; } public void setApproveStatusFinal(int approveStatusFinal) { this.approveStatusFinal = approveStatusFinal; } public int getApproveId() { return approveId; } public void setApproveId(int approveId) { this.approveId = approveId; } public String getStartDateYM(){ return DatetimeUtils.toStr(this.startDate,"yyyy-MM"); } public String getEndDateYM(){ return DatetimeUtils.toStr(this.endDate,"yyyy-MM"); } public String getPlanStartStr() { return planStartStr; } public void setPlanStartStr(String planStartStr) { this.planStartStr = planStartStr; } public String getPlanEndStr() { return planEndStr; } public void setPlanEndStr(String planEndStr) { this.planEndStr = planEndStr; } }