Closed mguentner closed 5 years ago
This is how I currently dump it:
meterids = Group::Localpool.all.collect{|g| [g.slug, g.meters.collect{|meter| ["#{meter.legacy_buzznid}_#{meter.registers.sort_by{ |x| x.meta.name }.collect{|register| register.meta.name }.join('#')}", meter.product_serialnumber] }.to_h]}.to_h
Needed to adjust output due to hash collisions:
meterids = Group::Localpool.all.collect{|g| [g.slug, g.meters.collect{|meter| ["#{meter.legacy_buzznid}_#{meter.registers.sort_by{ |x| x.meta.name }.collect{|register| "#{register.meta.name}_#{register.readings.order(:date).first.raw_value}" }.join('#')}", meter.product_serialnumber] }.to_h]}.to_h
New magic:
meterids = Group::Localpool.all.collect{|g| [g.slug, g.meters.collect{|meter| ["#{meter.legacy_buzznid}_#{meter.registers.sort_by{ |x| x.meta.name }.collect{|register| "#{register.readings.order(:date).first.raw_value}_#{register.readings.order(:date).first.date}" }.join('#')}", meter.product_serialnumber] }.to_h]}.to_h
I think we are done.
We need to save this data in the platform. How to do it?
hash(meter/reading) => meter_serial