ExecParam.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from service.import_data_service import get_mapping_field
  2. from trans.common.PathParam import PathParam
  3. class ExecParam(object):
  4. def __init__(self, data, tmp_root, read_dir):
  5. self.process_executor_id = data['id']
  6. self.process_executor = data['name']
  7. self.read_path = data['readPath']
  8. # 0:竖向 1:横向
  9. self.join_type = data['joinType']
  10. self.path_param = PathParam(tmp_root, f'{self.process_executor_id}_{self.process_executor}', read_dir)
  11. self.mapping_list = list()
  12. results = get_mapping_field(self.process_executor_id)
  13. if results:
  14. for result in results:
  15. self.mapping_list.append(MappingFiled(result))
  16. else:
  17. raise Exception(f"根据 映射执行器ID:{self.process_executor_id} 没有找到映射字段")
  18. self.index_cols = list()
  19. self.split_cols = list()
  20. self.has_header = True
  21. self.mapping_cols = dict()
  22. self.use_cols = list()
  23. self.read_cols(self.mapping_list)
  24. def read_cols(self, mapping_list):
  25. for mapping_filed in mapping_list:
  26. data_name = mapping_filed.data_name
  27. if str(data_name).startswith('无列名'):
  28. self.has_header = False
  29. name = int(str(data_name).replace('无列名', ''))
  30. self.use_cols.append(name)
  31. self.mapping_cols[name] = mapping_filed.standardized_name
  32. else:
  33. data_name_arrays = [str(i).replace('缺失列名', 'Unnamed: ') for i in str(data_name).split(',') if i]
  34. self.use_cols.extend(data_name_arrays)
  35. for data_name_str in data_name_arrays:
  36. self.mapping_cols[data_name_str] = mapping_filed.standardized_name
  37. if mapping_filed.is_index:
  38. self.index_cols.append(mapping_filed.standardized_name)
  39. if mapping_filed.is_cut_col:
  40. self.split_cols.append(mapping_filed.standardized_name)
  41. class MappingFiled(object):
  42. def __init__(self, data):
  43. self.standardized_name = data['standardized_name']
  44. self.data_name = data['data_name']
  45. self.is_cut_col = data['is_cut_col']
  46. self.is_index = data['is_index']