package com.gkhy.labRiskManage.domain.experiment.entity; import com.fasterxml.jackson.annotation.JsonFormat; import com.gkhy.labRiskManage.domain.account.entity.SysUserRoleBind; import com.gkhy.labRiskManage.domain.basic.entity.BasicExperimentSite; import com.gkhy.labRiskManage.domain.riskReport.entity.RiskAssessPlan; import lombok.Data; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; import java.io.Serializable; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * 实验信息 */ @EntityListeners(AuditingEntityListener.class) @Data @Entity @Table(name = "experiment_info") public class ExperimentInfo implements Serializable { private static final long serialVersionUID = -52940047194699982L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Long id; /** * 实验编号 */ private String experimentCode; /** * 自定义试验编号 */ private String experimentCustomCode; /** * 实验名称 */ private String experimentName; /** * 实验类型:1-化学类;2-生物类;3-辐射类;4-机电类;5-特种设备类;6-其它类 */ private Byte experimentType; /** * 实验负责人id */ private Long liabilityUserId; /** * 实验负责人电话 */ private String liabilityUserPhone; /** * 实验负责人 * (文字描述可能不再修改) */ private String liabilityUser; /** * 安全负责人id */ private Long safeLiabilityUserId; /** * 实验负责人电话 */ private String safeLiabilityUserPhone; /** * 安全负责人(文字描述可能不再修改) */ private String safeLiabilityUser; /** * 部门ID */ private Long depId; /** * 部门(文字描述可能不再修改) */ private String dep; /** * 实验开始时间 */ private LocalDateTime startTime; /** * 实验步骤 */ private String experimentStep; /** * 实验操作方法 */ private String experimentMethod; /** * 工艺流程 */ private String process; /** * 关键过程 */ private String keyProcess; /** * 是否存在过夜、老化实验。1-存在;2-不存在 */ private Byte timeout; /** * 过夜、老化实验保障管理措施 */ private String timeoutManager; /** * 是否在密闭条件下。1-密闭;2-不密闭 */ private Byte closed; /** * 非密闭实验保障管理措施 */ private String unclosedManager; /** * 实验场所防爆措施条件和设施情况 */ private String explosionProof; /** * 实验场所防火措施条件和设施情况 */ private String fireProof; /** * 实验场所防毒措施条件和设施情况 */ private String poisonProof; /** * 安全管理制度 */ private String safeManagerMethod; /** * 是否是安全化信息系统(1是,2否) */ private Byte sisStatus; /** * 安全信息化系统 */ private String safeInformationSystem; /** * 分区隔断情况 */ private Byte partitionCondition; /** * 其他基础信息 */ private String note; /** * 修改时间 */ @JsonFormat @LastModifiedDate private LocalDateTime updateTime; /** * 新建时间 */ @JsonFormat @CreatedDate @Column(name = "create_time",updatable = false) private LocalDateTime createTime; /** * 最后修改人 */ private Long updateByUserId; /** * 新建人 */ private Long createByUserId; /** * 删除状态:0-正常;1-已删除 */ private Byte deleteStatus; /** * 实验评估状态:1-未评估;2-评估中;3-评估完成 */ private Byte stage; /** * 实验申请状态:1-未申请;2-已申请 */ private Byte status; /** * 实验标签:1-新立项;2-已开展 */ private Byte experimentTag; /** * 实验预期时间 */ private LocalDateTime createExperimentTime; /** * 评估申请时间 */ private LocalDateTime assessApplyTime; /** * 整改 */ private Byte rectifyStatus; /** * 措施 */ private String measure; /** * 实验审核结果(0未审核,1审核中,2审核失败,3审核成功) */ private Byte approvalStatus; /** * 填报人 */ private String informant; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false) private List sites; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false) private List devices; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false) private List stuffs; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false) private List persons; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false) private List wastes; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experimentId",referencedColumnName = "id",insertable =false ,updatable = false) private List emergencies; @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH}) @Fetch(FetchMode.SUBSELECT) @JoinColumn(name = "experimentId",referencedColumnName = "id",insertable =false ,updatable = false) private List riskAssessPlans; }