package com.ard.work.domain.dto.converter.wayline;
|
|
import com.ard.common.utils.bean.BeanUtils;
|
import com.ard.work.domain.dto.wayline.NormalModel;
|
import com.ard.work.component.netty.protobuf.TelemetryDataPB;
|
|
public class NormalModelConverter {
|
public static TelemetryDataPB.NormalModel convertEntityToProto(NormalModel normalModel) {
|
// 使用构建器来创建 Protobuf 对象
|
TelemetryDataPB.NormalModel.Builder builder = TelemetryDataPB.NormalModel.newBuilder();
|
|
// 复制基本属性
|
builder.setServiceId(normalModel.getServiceId());
|
builder.setCameraId(normalModel.getCameraId());
|
builder.setIsModeling(normalModel.getIsModeling());
|
builder.setMode(normalModel.getMode());
|
builder.setHOverlap(normalModel.getHOverlap());
|
builder.setVOverlap(normalModel.getVOverlap());
|
builder.setMirror(normalModel.getMirror());
|
|
// 处理 repeated fields
|
if (normalModel.getArea() != null) {
|
normalModel.getArea().forEach(pointData -> {
|
builder.addArea(PointDataConverter.convertEntityToProto(pointData));
|
});
|
}
|
|
// 构建并返回 Protobuf 对象
|
return builder.build();
|
}
|
|
// 将 Protobuf 对象转换为实体对象
|
public static NormalModel convertProtoToEntity(TelemetryDataPB.NormalModel proto) {
|
NormalModel normalModel = new NormalModel();
|
|
// 复制基本属性
|
BeanUtils.copyProperties(proto, normalModel);
|
|
// 处理 repeated fields
|
if (proto.getAreaCount() > 0) {
|
proto.getAreaList().forEach(pointDataProto -> {
|
normalModel.getArea().add(PointDataConverter.convertProtoToEntity(pointDataProto));
|
});
|
}
|
|
return normalModel;
|
}
|
}
|