package com.mes.device.vo; import lombok.Data; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * 设备组配置视图对象 * * @author mes * @since 2024-10-30 */ public class DeviceGroupConfigVO { /** * 设备组配置信息 */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupInfo { private Long id; private String groupCode; private String groupName; private String groupType; private String description; private String status; private Integer deviceCount; private Boolean isEnabled; private String location; private String supervisor; private Date createdTime; private Date updatedTime; private String extraConfig; private Long projectId; } /** * 设备组配置详情(用于编辑表单) */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupConfigDetail { private Long id; private String groupCode; private String groupName; private String groupType; private String description; private String status; private Boolean isEnabled; private String location; private String supervisor; private String contactInfo; private String emergencyContact; private String maintenanceSchedule; private String extraConfig; private Date createdTime; private Date updatedTime; } /** * 设备组监控信息 */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupMonitoring { private Long groupId; private String groupName; private String status; private Boolean isOnline; private Integer totalDevices; private Integer onlineDevices; private Integer offlineDevices; private Integer faultDevices; private LocalDateTime lastHeartbeat; private Double groupHealthScore; private List deviceStatuses; } /** * 设备状态信息 */ @Data @NoArgsConstructor @AllArgsConstructor public static class DeviceStatusInfo { private Long deviceId; private String deviceName; private String deviceCode; private String status; private Boolean isOnline; private LocalDateTime lastHeartbeat; private String role; } /** * 设备组树节点 */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupTreeNode { private Long id; private String label; private String type; private String icon; private String status; private Boolean disabled; private List children; private Object data; } /** * 设备组任务信息 */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupTaskInfo { private Long taskId; private String taskName; private String taskType; private String status; private Integer priority; private LocalDateTime startTime; private LocalDateTime endTime; private Integer progress; private String assignedDevices; private String executor; private String result; } /** * 设备组批量操作结果 */ @Data @NoArgsConstructor @AllArgsConstructor public static class BatchOperationResult { private Integer totalCount; private Integer successCount; private Integer failureCount; private List successIds; private List failureIds; private List errorMessages; } /** * 设备组性能统计 */ @Data @NoArgsConstructor @AllArgsConstructor public static class GroupPerformanceStats { private Long groupId; private String groupName; private Integer totalDevices; private Integer activeDevices; private Double averageCpuUsage; private Double averageMemoryUsage; private Integer totalTasksCompleted; private Double successRate; private Double availability; private Date statsTime; private List devicePerformances; } /** * 设备性能信息 */ @Data @NoArgsConstructor @AllArgsConstructor public static class DevicePerformance { private Long deviceId; private String deviceName; private Double cpuUsage; private Double memoryUsage; private Integer tasksCompleted; private Double successRate; private String status; } }