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;
|
/**
|
* 暂存保存:1-保存;2-暂存
|
*/
|
private Byte stagingTag;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
@Fetch(FetchMode.SUBSELECT)
|
private List<ExperimentAndType> types;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentAndSite> sites;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentAndDevice> devices;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentAndStuff> stuffs;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentAndPerson> persons;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experiment_id",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentHazardousWaste> wastes;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experimentId",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<ExperimentAndEmergency> emergencies;
|
|
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
|
@Fetch(FetchMode.SUBSELECT)
|
@JoinColumn(name = "experimentId",referencedColumnName = "id",insertable =false ,updatable = false)
|
private List<RiskAssessPlan> riskAssessPlans;
|
|
}
|