package com.estate.expert.admin.domain.exam.record; import com.estate.expert.admin.domain.business.device.Device; import com.estate.expert.admin.domain.common.EntityBase; import com.estate.expert.admin.domain.exam.task.check.CheckTask; import com.estate.expert.admin.domain.misc.UserFile; import com.estate.expert.admin.domain.standard.problem.Problem; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Type; import javax.persistence.*; import java.util.List; /** * 项目问题表 * * 在项目执行中可添加 * 项目完成或者进入复查流程中,不可添加记录,但能够增加复查记录 * 复查记录如果是已整改,则不可再修改 */ @Getter @Setter @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "record_type", discriminatorType = DiscriminatorType.STRING) public class Record extends EntityBase { /** * 记录对应的检查任务 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "check_task_id") private CheckTask checkTask; // @ManyToOne(fetch = FetchType.LAZY) // @JoinColumn(name = "client_id") // private Client client; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "problem_id") private Problem problem; /** * 检查内容 * 这个字段是冗余字段,根据problem所对应的层级,自动填充 * 用于显示(关联查询太复杂了) */ private String hierarchyName; /** * 检查的问题所处的层级名称,用于显示 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") private List hierarchyNames; /** * 相关设备 * 当针对设备提出问题时,需要关联设备 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "device_id") private Device device; /** * 问题图片 */ @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "record_image", joinColumns = @JoinColumn(name = "record_id"), inverseJoinColumns = @JoinColumn(name = "user_file_id")) private List images; /** * 问题备注 */ private String remark; /** * 责任人 */ private String responsiblePerson; }