| | |
| | | TestDataObservationAdapter adapter) |
| | | { this(tests, candidates, adapter, null); } |
| | | |
| | | /** 返回测试当前设备事实;接收中展示测量和实时提醒,历史异常处理状态不参与判定。 */ |
| | | @Override public LiveState current(Long testId) |
| | | { |
| | | TTest test = tests.selectTestById(testId); |
| | |
| | | private Map<String, Object> snapshot(ChannelCandidate channel) |
| | | { |
| | | Map<String, Object> value = new LinkedHashMap<>(); |
| | | // 通道工作状态是独立设备事实:读库来源下不可观测,界面把它当正常取值展示而不是异常。 |
| | | value.put("workStatus", channel.workStatus() == null ? null : channel.workStatus().name()); |
| | | // 最近数据时间取来源里最近一次采样行的设备时间,与展示轮询节奏无关。 |
| | | value.put("lastDataAt", channel.lastDataAt() == null ? null : channel.lastDataAt().toEpochMilli()); |
| | | if (channel.latestSnapshot() == null) return value; |
| | | value.put("source", "检测柜"); |
| | | value.put("observedAt", channel.latestSnapshot().receivedAt().toEpochMilli()); |
| | |
| | | return new LiveSource("COLLECTOR", battery.getCollectorId(), battery.getBatteryNo(), |
| | | online ? "ONLINE" : "OFFLINE", Map.of()); |
| | | } |
| | | var collector = adapter.latestCollector(collectorCode); |
| | | var collector = adapter.latestCollector( |
| | | battery.getBinding() == null ? null : battery.getBinding().getAdapterCode(), collectorCode); |
| | | if (collector != null) |
| | | { |
| | | Map<String, Object> value = new LinkedHashMap<>(); |