refactor: centralize telemetry metadata formatting

This commit is contained in:
lingniu
2026-07-01 10:05:36 +08:00
parent da17acb09a
commit 418aefc189
5 changed files with 51 additions and 18 deletions

View File

@@ -4,6 +4,7 @@ import com.lingniu.ingest.api.ProtocolId;
import com.lingniu.ingest.api.event.AlarmPayload;
import com.lingniu.ingest.api.event.LocationPayload;
import com.lingniu.ingest.api.event.RealtimePayload;
import com.lingniu.ingest.api.event.TelemetryMetadataValues;
import com.lingniu.ingest.api.event.VehicleEvent;
import com.lingniu.ingest.api.spi.EventMapper;
import com.lingniu.ingest.protocol.gb32960.model.CommandBody;
@@ -16,7 +17,6 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -166,7 +166,7 @@ public final class Gb32960EventMapper implements EventMapper<Gb32960Message> {
v != null && v.speedKmh != null ? v.speedKmh : 0.0,
0.0, 0, p.statusFlag);
Map<String, String> locationMeta = v != null && v.totalMileageKm != null
? withMeta(meta, "total_mileage_km", formatDouble(v.totalMileageKm))
? withMeta(meta, "total_mileage_km", TelemetryMetadataValues.doubleValue(v.totalMileageKm))
: meta;
out.add(new VehicleEvent.Location(
UUID.randomUUID().toString(),
@@ -341,10 +341,4 @@ public final class Gb32960EventMapper implements EventMapper<Gb32960Message> {
return Map.copyOf(copy);
}
private static String formatDouble(double value) {
String formatted = String.format(Locale.ROOT, "%.6f", value);
return formatted.indexOf('.') < 0
? formatted
: formatted.replaceAll("0+$", "").replaceAll("\\.$", "");
}
}