yxh
7 天以前 68ff33beff11310e830b0615b5a81f83fad0f683
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package cn.lihu.jh.module.ecg.dal.dataobject.jobrecord;
 
import lombok.*;
import java.util.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
 
/**
 * 工作记录 DO
 *
 * @author 芋道源码
 */
@TableName("job_record")
@KeySequence("job_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JobRecordDO extends BaseDO {
 
    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 检查类型
     */
    private Integer checkType;
    /**
     * 作业类型
     */
    private Integer jobType;
    /**
     * 医生编号
     */
    private Long docId;
    /**
     * 医生名称
     */
    private String docName;
    /**
     * 设备编号
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String devId;
    /**
     * 患者编号
     */
    private String patId;
    /**
     * 患者名称
     */
    private String patName;
    /**
     * 作业时间
     */
    private LocalDateTime jobTime;
    /**
     * 作业概要
     */
    private String summary;
    /**
     * 备注
     */
    private String remark;
 
    /**
     * 对应租赁编号
     */
    private Long rentId;
 
    @TableField(exist = false)
    private Integer paid;
 
    // ==================== 需求1:患者信息 18 项 ====================
    // job_record 只存了 patId / patName,其余患者信息在 appointment 表。
    // 回填链路:job_record.rentId → dev_rent.applyNo → appointment
    // 由 JobRecordServiceImpl#fillPatientInfo 按 rentId 批量回填(避免 N+1)。
    //
    // 【重要】必须标 @TableField(exist = false):本 DO 会用于 insert/updateById,
    // 若不加注解,MyBatis-Plus 会把这些不存在的列拼进 SQL → Unknown column 报错。
 
    @TableField(exist = false)
    private String applyNo;
 
    @TableField(exist = false)
    private String episodeId;
 
    @TableField(exist = false)
    private Byte patGender;
 
    @TableField(exist = false)
    private LocalDate patBirthday;
 
    @TableField(exist = false)
    private Date registerDate;
 
    @TableField(exist = false)
    private String doctor;
 
    @TableField(exist = false)
    private Date doctorTime;
 
    @TableField(exist = false)
    private Integer patSrc;
 
    @TableField(exist = false)
    private String patMobile;
 
    @TableField(exist = false)
    private String patPhone;
 
    @TableField(exist = false)
    private String patWardDesc;
 
    @TableField(exist = false)
    private String patBedNo;
 
    @TableField(exist = false)
    private String medicalCard;
 
    @TableField(exist = false)
    private String outpatientNo;
 
    @TableField(exist = false)
    private String patIdentityId;
 
    /**
     * 医嘱号(HIS 报文 observationRequest.id.item[root=2.16.156.10011.1.28].extension)。
     * 与「申请单号 applyNo」不同:前者是医嘱标识,后者是申请单标识。该节点在规范中非必须项,库中可为空。
     */
    private String doctorAdviceNo;
 
    /** 多耐药:0无 1多耐 2多重耐药 */
    @TableField(exist = false)
    private String tolerance;
 
    /**
     * 【撤销标识|非库字段】该条完成记录对应的患者**当日队列状态是否已不是"已就诊(40)"**,
     * 即"检查完成被撤销过、还没重新完成"。
     *
     * <p>计算方式:`JobRecordServiceImpl#getJobRecordPage` 里按 (patId, checkType) 关联当日
     * `queue.status`;状态 ≠ 40 → true。撤销后自动变 true,患者再次完成(回 40)自动变 false,
     * 不需要写库、也不会漏清标记。
     *
     * <p>必须标 {@code @TableField(exist = false)}:本 DO 会用于 insert/updateById。
     */
    @TableField(exist = false)
    private Boolean undone;
}