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<OpcData> 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());
|
}
|
}
|
}
|
}
|