|
|
@@ -22,6 +22,12 @@ public class CockpitMonitoringOverviewResponse {
|
|
|
private final Status status;
|
|
|
private final OnlineRate onlineRate;
|
|
|
private final List<TypeDistribution> typeDistribution;
|
|
|
+ /**
|
|
|
+ * 逐设备台账(执行票 62 追加需求):与 {@code counts.equipmentCount} 同源同口径
|
|
|
+ * (筛选后的智能设备全集,逐台一行),供运行概况的「设备台账」清单直接渲染。
|
|
|
+ * 顺序=后端遍历顺序(稳定),前端不重排。
|
|
|
+ */
|
|
|
+ private final List<Device> devices;
|
|
|
private final MapFilter mapFilter;
|
|
|
private final Excluded excluded;
|
|
|
|
|
|
@@ -39,6 +45,7 @@ public class CockpitMonitoringOverviewResponse {
|
|
|
Status status,
|
|
|
OnlineRate onlineRate,
|
|
|
List<TypeDistribution> typeDistribution,
|
|
|
+ List<Device> devices,
|
|
|
MapFilter mapFilter,
|
|
|
Excluded excluded) {
|
|
|
this.requestId = requestId;
|
|
|
@@ -54,6 +61,7 @@ public class CockpitMonitoringOverviewResponse {
|
|
|
this.status = status;
|
|
|
this.onlineRate = onlineRate;
|
|
|
this.typeDistribution = typeDistribution;
|
|
|
+ this.devices = devices;
|
|
|
this.mapFilter = mapFilter;
|
|
|
this.excluded = excluded;
|
|
|
}
|
|
|
@@ -71,6 +79,7 @@ public class CockpitMonitoringOverviewResponse {
|
|
|
public Status getStatus() { return status; }
|
|
|
public OnlineRate getOnlineRate() { return onlineRate; }
|
|
|
public List<TypeDistribution> getTypeDistribution() { return typeDistribution; }
|
|
|
+ public List<Device> getDevices() { return devices; }
|
|
|
public MapFilter getMapFilter() { return mapFilter; }
|
|
|
public Excluded getExcluded() { return excluded; }
|
|
|
|
|
|
@@ -164,6 +173,56 @@ public class CockpitMonitoringOverviewResponse {
|
|
|
public String getReason() { return reason; }
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 逐设备台账行(执行票 62 追加需求)。
|
|
|
+ *
|
|
|
+ * <p>字段只取「运行概况的设备台账」这一屏真正要显示的:设备编码/名称、类型、行业、
|
|
|
+ * 监测状态、所属监测点、采样时间、数据时间(记录创建时间)。**不在这里加设备坐标**
|
|
|
+ * ——那是 `map-snapshot` 的职责;也不加阈值 ——那是 `monitoring/situation` 的异常口径。
|
|
|
+ * 缺值一律 {@code null},不填 0、不填空串冒充。
|
|
|
+ */
|
|
|
+ public static class Device {
|
|
|
+ private final String deviceCode;
|
|
|
+ private final String deviceName;
|
|
|
+ private final DeviceType deviceType;
|
|
|
+ private final String industry;
|
|
|
+ /** 设备监测状态(后端 `MONITORING_STATE` 五态之一);缺失为 {@code null}。 */
|
|
|
+ private final String monitoringState;
|
|
|
+ /** 所属监测点编码(未关联设备为 {@code null})。 */
|
|
|
+ private final String monitoringPointCode;
|
|
|
+ private final String sampledAt;
|
|
|
+ /** 数据时间=记录创建时间({@code equipment_base.create_time})。 */
|
|
|
+ private final String createdAt;
|
|
|
+
|
|
|
+ public Device(
|
|
|
+ String deviceCode,
|
|
|
+ String deviceName,
|
|
|
+ DeviceType deviceType,
|
|
|
+ String industry,
|
|
|
+ String monitoringState,
|
|
|
+ String monitoringPointCode,
|
|
|
+ String sampledAt,
|
|
|
+ String createdAt) {
|
|
|
+ this.deviceCode = deviceCode;
|
|
|
+ this.deviceName = deviceName;
|
|
|
+ this.deviceType = deviceType;
|
|
|
+ this.industry = industry;
|
|
|
+ this.monitoringState = monitoringState;
|
|
|
+ this.monitoringPointCode = monitoringPointCode;
|
|
|
+ this.sampledAt = sampledAt;
|
|
|
+ this.createdAt = createdAt;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getDeviceCode() { return deviceCode; }
|
|
|
+ public String getDeviceName() { return deviceName; }
|
|
|
+ public DeviceType getDeviceType() { return deviceType; }
|
|
|
+ public String getIndustry() { return industry; }
|
|
|
+ public String getMonitoringState() { return monitoringState; }
|
|
|
+ public String getMonitoringPointCode() { return monitoringPointCode; }
|
|
|
+ public String getSampledAt() { return sampledAt; }
|
|
|
+ public String getCreatedAt() { return createdAt; }
|
|
|
+ }
|
|
|
+
|
|
|
public static class TypeDistribution {
|
|
|
private final DeviceType deviceType;
|
|
|
private final String industry;
|