“mitao”
2026-03-25 309b5eb17c510c781daec96bbfef3b693f3a4d7e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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;
 
}