package cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo;
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.Data;
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 管理后台 - 设备远程诊断 Response VO
|
*
|
* <p>基于现有设备采集数据(实时状态 + 最近告警 + 状态历史)生成,
|
* 不依赖额外的外部诊断接口。
|
*/
|
@Schema(description = "管理后台 - 设备远程诊断 Response VO")
|
@Data
|
public class MesDvRepairDiagnosisRespVO {
|
|
@Schema(description = "设备台账编号")
|
private Long machineryId;
|
@Schema(description = "设备编码")
|
private String machineryCode;
|
@Schema(description = "设备名称")
|
private String machineryName;
|
|
@Schema(description = "是否有采集数据")
|
private Boolean hasCollectData;
|
@Schema(description = "最近采集时间")
|
private LocalDateTime lastCollectTime;
|
@Schema(description = "采集数据是否超时(超过 5 分钟无上报)")
|
private Boolean collectTimeout;
|
|
@Schema(description = "最近运行状态(数采原值)")
|
private Integer runStatus;
|
@Schema(description = "最近运行模式(数采原值)")
|
private Integer operateMode;
|
@Schema(description = "最近运行时长")
|
private BigDecimal runTime;
|
@Schema(description = "关键指标快照:指标名 -> 值")
|
private Map<String, BigDecimal> metrics;
|
|
@Schema(description = "近 N 天告警数")
|
private Long recentAlarmCount;
|
@Schema(description = "未清除告警数")
|
private Long activeAlarmCount;
|
@Schema(description = "最近告警明细")
|
private List<AlarmItem> recentAlarms;
|
|
@Schema(description = "诊断结论(供维修工单参考,不替代现场确认)")
|
private String diagnosis;
|
@Schema(description = "风险等级:NORMAL / WARNING / CRITICAL / UNKNOWN")
|
private String riskLevel;
|
@Schema(description = "诊断依据(逐条说明取数口径)")
|
private List<String> evidence;
|
|
@Schema(description = "告警明细项")
|
@Data
|
public static class AlarmItem {
|
@Schema(description = "告警编号")
|
private Long id;
|
@Schema(description = "告警信息")
|
private String message;
|
@Schema(description = "告警时间")
|
private LocalDateTime alarmTime;
|
@Schema(description = "是否已清除")
|
private Boolean cleared;
|
}
|
}
|