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