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; }
|
}
|