xiaoyi
4 天以前 8782476e9cb4480be5da588888d08022b7942d0c
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
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;
    }
}