1.4 KiB
1.4 KiB
CVU final merge safeguard
Problem
After cross-representation CVU reconciliation the supplied mixed execution still contained 12 effective vehicle-usage intervals instead of 11. The remaining pair represented the same usage period:
- file-session CVU:
2026-03-31T00:00:00Zto2026-04-02T12:27:15Z, registration present, VIN missing; - database CVU:
2026-04-01T00:00:00Zto2026-04-02T12:27:15Z, same registration, VIN present.
The final DriverVehicleUsageMergeModule required exact vehicleKey equality, so null and the database VIN prevented coalescing even though registration and overlap proved compatible identity.
Fix
DriverVehicleUsageMergeModule now:
- accepts complementary vehicle identity when registration or VIN matches and the other field is missing;
- merges overlapping as well as immediately adjacent effective intervals;
- rejects explicit registration/VIN conflicts;
- rejects materially conflicting odometers at identical boundaries;
- selects the richer interval as identity primary;
- preserves the earliest start, latest end, correct boundary odometers, and complete source provenance;
- reports
coalescedIntervalCountmetadata.
This is a generic final-interval safeguard and does not depend on tachograph representation enums.
Expected supplied-data result
- vehicle usage intervals:
12 -> 11 - VU card-absent intervals: remains
10 - support geo events: remains
141