package com.estate.expert.admin.domain.project; import com.estate.expert.admin.domain.business.client.Client; import com.estate.expert.admin.domain.common.EntityBase; import com.estate.expert.admin.domain.misc.UserFile; import com.estate.expert.admin.domain.project.detail.AddressInfo; import com.estate.expert.admin.domain.project.detail.CompanyInfo; import com.estate.expert.admin.domain.project.enums.ProjectType; import com.estate.expert.admin.domain.project.enums.ProjectUsageType; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Type; import javax.persistence.*; import java.time.LocalDateTime; import java.util.List; /** * 项目 **/ @Getter @Setter @Entity public class Project extends EntityBase { @Column(nullable = false) ProjectType type; @Column(nullable = false) ProjectUsageType usageType;// 用途类型 String departmentPath; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "client_id") Client client; String constructionLicense; // 施工许可证号 String itemCode; // 项目编号 /** * 施工许可证文件 */ @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "construction_license_file", joinColumns = @JoinColumn(name = "project_id"), inverseJoinColumns = @JoinColumn(name = "user_file_id")) private List constructionLicenseFiles; /** * 所属分公司 */ String branchCompany; /** * 施工单位信息 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") CompanyInfo constructionCompanyInfo; /** * 监理公司信息 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") CompanyInfo supervisorCompanyInfo; /** * 建设公司信息 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") CompanyInfo developmentCompanyInfo; /** * 地址 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") AddressInfo addressInfo; /** * 工程造价(项目规模,单位元) */ Integer projectCost; @ApiModelProperty("项目规模") String scale; @ApiModelProperty("权限信息") String permission; @ApiModelProperty("状态 1在建 2完成") Integer status; @ApiModelProperty("完成时间") LocalDateTime successTime; }