Browse Source

added function for mapping tolerazen values

ogert 4 years ago
parent
commit
78938c5683
1 changed files with 18 additions and 7 deletions
  1. 18 7
      cdplib/db_migration/MigrationCleaning.py

+ 18 - 7
cdplib/db_migration/MigrationCleaning.py

@@ -596,19 +596,22 @@ class MigrationCleaning:
 
         labyrinten_drop_columns = ['innenring.geometrie.durchmesser.min', 'innenring.geometrie.durchmesser.max', 
                                     'wellenschenkel_innenring_difference.geometrie.durchmesser.min', 'wellenschenkel_innenring_difference.geometrie.durchmesser.max']
+        
         labyrinten_columns= ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'labyrinthring.geometrie.durchmesser.min', 'labyrinthring.geometrie.durchmesser.max']
-        reparatur_stufe_labyrinten_columns= ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'labyrinthring.reparatur_stufe.geometrie.durchmesser.min', 'labyrinthring.reparatur_stufe.geometrie.durchmesser.max']
-
+        
+        reparatur_stufe_labyrinten_columns= ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'labyrinthring.reparatur_stufe.durchmesser.min', 'labyrinthring.reparatur_stufe.durchmesser.max']
 
-        reparatur_stufe_columns = ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'wellenschenkel.reparatur_stufe.geometrie.durchmesser.min', 
-                                    'wellenschenkel.reparatur_stufe.geometrie.durchmesser.max', 'innenring.geometrie.reparatur_stufe.durchmesser.min',
-                                    'innenring.reparatur_stufe.geometrie.durchmesser.max', 'wellenschenkel_innenring_difference.reparatur_stufe.geometrie.durchmesser.min', 
-                                    'wellenschenkel_innenring_difference.reparatur_stufe.geometrie.durchmesser.max']
+        reparatur_stufe_columns = ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'wellenschenkel.reparatur_stufe.durchmesser.min', 
+                                    'wellenschenkel.reparatur_stufe.durchmesser.max', 'innenring.reparatur_stufe.durchmesser.min',
+                                    'innenring.reparatur_stufe.durchmesser.max', 'wellenschenkel_innenring_difference.reparatur_stufe.durchmesser.min', 
+                                    'wellenschenkel_innenring_difference.reparatur_stufe.durchmesser.max']
 
         
         toleranzen_reference_columns = ['wellenschenkel_toleranz', 'labyrinthring_toleranz', 'wellen_reparatur_stufe_toleranz', 'labyrinthring_reparatur_stufe_toleranz']
+        
         available_columns = [column for column in data.columns if column in toleranzen_reference_columns]
         for column in available_columns:
+            merge_map = [False] *len(data.index)
             if 'toleranz' in column:
                 temp_toleranzen = deepcopy(toleranzen)
 
@@ -616,13 +619,21 @@ class MigrationCleaning:
                     temp_toleranzen.drop(labyrinten_drop_columns, axis=1, inplace=True)
                     if 'reparatur_stufe' in column:
                         temp_toleranzen.columns = reparatur_stufe_labyrinten_columns
+                        merge_map = data['labyrinthting_reparatur_stufe_zulaessig'] == 'Nein'
+
                     else:
                         temp_toleranzen.columns = labyrinten_columns
                 
                 elif 'reparatur_stufe' in column:
                     temp_toleranzen.columns = reparatur_stufe_columns
-                    
+                    merge_map = data['innenring_reparatur_stufe_zulaessig'] == 'Ja'
+                data_before = len(data.index)
                 data = data.merge(temp_toleranzen, how='left', left_on=column, right_on='toleranzbez_wellen_reference')
+                data.loc[merge_map, temp_toleranzen.columns] = np.nan 
+                if data_before != len(data.index):
+                    print('WEVE LOST DATA!!')
+                    print('before:', data_before, 'now:', len(data.index))
+                    sys.exit()
                 data.drop(['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference'], axis=1, inplace=True)
 
         return data