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<String> 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<UserFile> images;
|
|
/**
|
* 问题备注
|
*/
|
private String remark;
|
|
|
/**
|
* 责任人
|
*/
|
private String responsiblePerson;
|
|
}
|