package com.zhitan.handler; import com.zhitan.model.entity.OpcData; import com.zhitan.service.IDataService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.List; /** * OPC UA数据处理器 */ @Slf4j @Component public class OpcDataHandler { private final IDataService dataService; public OpcDataHandler(IDataService dataService) { this.dataService = dataService; } /** * 处理OPC UA数据 * * @param dataList OPC UA数据列表 */ public void handleOpcData(List dataList) { if (dataList == null || dataList.isEmpty()) { return; } for (OpcData data : dataList) { if (data.getValue() != null) { // 构建JSON格式数据 String jsonData = String.format("{\"%s\":%f}", data.getName(), data.getValue()); // 使用现有的数据服务写入时序数据 dataService.writeTimeSeriesData(jsonData); log.debug("处理OPC UA数据: {} = {}", data.getName(), data.getValue()); } else if (data.getErrorMessage() != null) { log.warn("OPC UA数据处理失败: {} - {}", data.getName(), data.getErrorMessage()); } } } }