yeg
6 天以前 a04222c873e5e55f48c8d33b5c0bc46fa524ac8d
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
156
157
158
159
160
161
162
163
164
165
package com.battery.business.domain;
 
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import com.ruoyi.common.core.domain.BaseEntity;
 
/**
 * 测试配置对象 t_test,含测试状态与接收状态两个并列的业务状态。
 *
 * <p>测试状态描述测试流程,接收状态描述系统对该测试的数据归属;两者都不得反向改写设备事实。</p>
 */
public class TTest extends BaseEntity
{
    private static final long serialVersionUID = 1L;
 
    /** 测试主键。 */
    private Long testId;
    /** 测试名称,由操作员填写,用于在同一电池组内区分测试。 */
    @NotBlank(message = "测试名称不能为空")
    @Size(max = 100, message = "测试名称长度不能超过100个字符")
    private String testName;
    /** 创建人用户 ID,创建时取当前登录用户,后续修改不可变更。 */
    private Long creatorId;
    /** 创建人显示名称,仅供列表展示,不作为身份判断依据。 */
    private String creatorName;
    /** 当前操作人用户 ID,仅由服务入参带入用于校验,不序列化也不落库。 */
    @JSONField(serialize = false)
    private transient Long operatorId;
    /** 测试负责人用户 ID,负责关闭测试预警异常和停止测试。 */
    @NotNull(message = "测试负责人不能为空")
    private Long principalId;
    /** 测试负责人显示名称,仅供列表展示,不作为身份判断依据。 */
    private String principalName;
    /** 测试类型主键,引用已启用的测试类型。 */
    @NotNull(message = "测试类型不能为空")
    private Long testTypeId;
    /** 测试类型显示名称,仅供列表展示。 */
    private String testTypeName;
    /** 测试目的,由操作员填写。 */
    @NotBlank(message = "测试目的不能为空")
    private String testPurpose;
    /**
     * 测试状态:WAITING 待测试、RUNNING 检测中、PAUSED 暂停、COMPLETED 检测完成。
     * 历史数据还可能出现 RUNNING_ABNORMAL(检测中(异常))、COMPLETION_PENDING(完成确认中)、
     * TERMINATED(已终止),只作兼容展示,新流程不再写入。
     */
    private String testStatus;
    /**
     * 接收状态:NOT_STARTED 未开始接收、RECEIVING 接收中、PAUSED 暂停接收、ENDED 已结束接收。
     * 它表示系统对本次测试的数据归属状态,与设备状态并列,不改变设备事实。
     */
    private String receptionStatus;
    /** 监测超时分钟数,创建测试时缺省 30;控制台按该值展示,不参与设备控制。 */
    private Integer monitorTimeoutMinutes;
    /** 首次开始接收动作建立的服务器时间;暂停后继续接收不再改写。 */
    @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    private Date startedAtUtc;
    /** 最近一次开始或继续接收动作建立的服务器时间边界。 */
    @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    private Date receptionBoundaryAtUtc;
    /** 停止测试(检测完成)动作的服务器时间;暂停不写入。 */
    @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    private Date endedAtUtc;
    /** 是否从已运行设备的后续观测边界接入。 */
    private Boolean runtimeAttach;
    /** 逻辑删除标识:0存在,1删除;测试整体删除按 ADR-0047 不写审计、修订或墓碑。 */
    private String delFlag;
    /** 查询条件:按绑定电池号过滤;不落库。 */
    private String batteryNo;
    /** 查询条件:创建时间起始值。 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginCreateTime;
    /** 查询条件:创建时间结束值。 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endCreateTime;
    /** 查询结果:绑定电池号数量,由列表查询汇总得出,不落库。 */
    private Integer batteryCount;
    /** 测试绑定的电池号及其通道配置;开始接收后配置整体只读。 */
    @Valid
    @NotEmpty(message = "测试至少绑定一个电池号")
    private List<TTestBattery> batteries;
    /** 测试阈值规则,接收中按当前成功观测判定超限,不参与设备侧保护。 */
    @Valid
    @NotEmpty(message = "阈值配置不能为空")
    private List<TTestWarningThreshold> thresholds;
    /** 逻辑工步映射的落库 JSON 原文。 */
    private String logicStepMappingsJson;
    /** 逻辑工步映射对象,由 JSON 解析或查询组装,不单独落库。 */
    private List<TTestLogicStepMapping> logicStepMappings;
    /** 工步图表中的测试补充详情,仅保存当前最新版。 */
    private String consoleDetailJson;
    /** 测试补充详情对象,由上述 JSON 解析或查询组装,不单独落库。 */
    private TTestConsoleDetail consoleDetail;
 
    /** 测试业务时间输出毫秒,平台实体仍保留原有时间格式。 */
    @Override @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    public Date getCreateTime() { return super.getCreateTime(); }
    @Override @JsonFormat(shape = JsonFormat.Shape.NUMBER)
    public Date getUpdateTime() { return super.getUpdateTime(); }
 
    public Long getTestId() { return testId; }
    public void setTestId(Long value) { testId = value; }
    public String getTestName() { return testName; }
    public void setTestName(String value) { testName = value; }
    public Long getCreatorId() { return creatorId; }
    public void setCreatorId(Long value) { creatorId = value; }
    public String getCreatorName() { return creatorName; }
    public void setCreatorName(String value) { creatorName = value; }
    public Long getOperatorId() { return operatorId; }
    public void setOperatorId(Long value) { operatorId = value; }
    public Long getPrincipalId() { return principalId; }
    public void setPrincipalId(Long value) { principalId = value; }
    public String getPrincipalName() { return principalName; }
    public void setPrincipalName(String value) { principalName = value; }
    public Long getTestTypeId() { return testTypeId; }
    public void setTestTypeId(Long value) { testTypeId = value; }
    public String getTestTypeName() { return testTypeName; }
    public void setTestTypeName(String value) { testTypeName = value; }
    public String getTestPurpose() { return testPurpose; }
    public void setTestPurpose(String value) { testPurpose = value; }
    public String getTestStatus() { return testStatus; }
    public void setTestStatus(String value) { testStatus = value; }
    public String getReceptionStatus() { return receptionStatus; }
    public void setReceptionStatus(String value) { receptionStatus = value; }
    public Integer getMonitorTimeoutMinutes() { return monitorTimeoutMinutes; }
    public void setMonitorTimeoutMinutes(Integer value) { monitorTimeoutMinutes = value; }
    public Date getStartedAtUtc() { return startedAtUtc; }
    public void setStartedAtUtc(Date value) { startedAtUtc = value; }
    public Date getReceptionBoundaryAtUtc() { return receptionBoundaryAtUtc; }
    public void setReceptionBoundaryAtUtc(Date value) { receptionBoundaryAtUtc = value; }
    public Date getEndedAtUtc() { return endedAtUtc; }
    public void setEndedAtUtc(Date value) { endedAtUtc = value; }
    public Boolean getRuntimeAttach() { return runtimeAttach; }
    public void setRuntimeAttach(Boolean value) { runtimeAttach = value; }
    public String getDelFlag() { return delFlag; }
    public void setDelFlag(String value) { delFlag = value; }
    public String getBatteryNo() { return batteryNo; }
    public void setBatteryNo(String value) { batteryNo = value; }
    public Date getBeginCreateTime() { return beginCreateTime; }
    public void setBeginCreateTime(Date value) { beginCreateTime = value; }
    public Date getEndCreateTime() { return endCreateTime; }
    public void setEndCreateTime(Date value) { endCreateTime = value; }
    public Integer getBatteryCount() { return batteryCount; }
    public void setBatteryCount(Integer value) { batteryCount = value; }
    public List<TTestBattery> getBatteries() { return batteries; }
    public void setBatteries(List<TTestBattery> value) { batteries = value; }
    public List<TTestWarningThreshold> getThresholds() { return thresholds; }
    public void setThresholds(List<TTestWarningThreshold> value) { thresholds = value; }
    public String getLogicStepMappingsJson() { return logicStepMappingsJson; }
    public void setLogicStepMappingsJson(String value) { logicStepMappingsJson = value; }
    public List<TTestLogicStepMapping> getLogicStepMappings() { return logicStepMappings; }
    public void setLogicStepMappings(List<TTestLogicStepMapping> value) { logicStepMappings = value; }
    public String getConsoleDetailJson() { return consoleDetailJson; }
    public void setConsoleDetailJson(String value) { consoleDetailJson = value; }
    public TTestConsoleDetail getConsoleDetail() { return consoleDetail; }
    public void setConsoleDetail(TTestConsoleDetail value) { consoleDetail = value; }
}