app.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2024/5/17
  3. # @Author : 魏志亮
  4. import datetime
  5. import pandas as pd
  6. from base.TranseParam import TranseParam
  7. from base.WindFarms import WindFarms
  8. from utils.conf.read_conf import read_yaml_file, read_param_from_config
  9. from utils.db.trans_mysql import get_exec_data, get_trans_conf
  10. from utils.log.trans_log import trans_print, logger, init_log
  11. def init_params() -> list[WindFarms]:
  12. df = get_exec_data()
  13. print(df)
  14. exec_subjects = list()
  15. path = r'D:\transdata\test\虹梯官风电场-山西-大唐\收资数据'
  16. changshang_name = '虹梯官风电场'
  17. # read_type = 'minute'
  18. read_type = 'second'
  19. batch_no = 'hongtiguan_' + str(datetime.datetime.now().strftime('%Y%m%d'))
  20. df = pd.DataFrame(columns=['batch_no', 'transfer_type', 'transfer_file_addr', 'field_code', 'field_name'],
  21. data=[
  22. [batch_no, read_type, path, 'A', changshang_name]])
  23. if df is None:
  24. trans_print("当前任务正在执行")
  25. if df.empty:
  26. trans_print("当前没有需要执行的任务")
  27. else:
  28. for batch_no, transfer_type, transfer_file_addr, field_code, field_name in zip(df['batch_no'],
  29. df['transfer_type'],
  30. df['transfer_file_addr'],
  31. df['field_code'],
  32. df['field_name']):
  33. init_log(batch_no, field_name, transfer_type)
  34. conf_df = get_trans_conf(field_name, transfer_type)
  35. if conf_df is None:
  36. trans_print(f"未找到{field_name}的{transfer_type}配置")
  37. continue
  38. conf = conf_df.iloc[0].to_dict()
  39. resolve_col_prefix = read_param_from_config(conf, 'resolve_col_prefix')
  40. wind_name_exec = read_param_from_config(conf, 'wind_name_exec', None)
  41. wind_full_name = read_param_from_config(conf, 'wind_full_name')
  42. is_vertical_table = read_param_from_config(conf, 'is_vertical_table', False)
  43. merge_columns = read_param_from_config(conf, 'merge_columns', False)
  44. vertical_cols = read_param_from_config(conf, 'vertical_read_cols', '').split(',')
  45. index_cols = read_param_from_config(conf, 'vertical_index_cols', '').split(',')
  46. vertical_key = read_param_from_config(conf, 'vertical_col_key')
  47. vertical_value = read_param_from_config(conf, 'vertical_col_value')
  48. need_valid_cols = not merge_columns
  49. cols_trans_all = dict()
  50. trans_cols = ['wind_turbine_number', 'time_stamp', 'active_power', 'rotor_speed', 'generator_speed',
  51. 'wind_velocity', 'pitch_angle_blade_1', 'pitch_angle_blade_2', 'pitch_angle_blade_3',
  52. 'cabin_position', 'true_wind_direction', 'yaw_error1', 'set_value_of_active_power',
  53. 'gearbox_oil_temperature', 'generatordrive_end_bearing_temperature',
  54. 'generatornon_drive_end_bearing_temperature', 'wind_turbine_status',
  55. 'wind_turbine_status2',
  56. 'cabin_temperature', 'twisted_cable_angle', 'front_back_vibration_of_the_cabin',
  57. 'side_to_side_vibration_of_the_cabin', 'actual_torque', 'given_torque',
  58. 'clockwise_yaw_count',
  59. 'counterclockwise_yaw_count', 'unusable', 'power_curve_available',
  60. 'required_gearbox_speed',
  61. 'inverter_speed_master_control', 'outside_cabin_temperature', 'main_bearing_temperature',
  62. 'gearbox_high_speed_shaft_bearing_temperature',
  63. 'gearboxmedium_speed_shaftbearing_temperature',
  64. 'gearbox_low_speed_shaft_bearing_temperature', 'generator_winding1_temperature',
  65. 'generator_winding2_temperature', 'generator_winding3_temperature',
  66. 'turbulence_intensity', 'param1',
  67. 'param2', 'param3', 'param4', 'param5', 'param6', 'param7', 'param8', 'param9', 'param10']
  68. for col in trans_cols:
  69. cols_trans_all[col] = read_param_from_config(conf, col, '')
  70. trans_subject = WindFarms(field_name, batch_no=batch_no, field_code=field_code,
  71. wind_full_name=wind_full_name)
  72. params = TranseParam(read_type=transfer_type, read_path=transfer_file_addr,
  73. cols_tran=cols_trans_all,
  74. wind_name_exec=wind_name_exec, is_vertical_table=is_vertical_table,
  75. vertical_cols=vertical_cols, vertical_key=vertical_key,
  76. vertical_value=vertical_value, index_cols=index_cols, merge_columns=merge_columns,
  77. resolve_col_prefix=resolve_col_prefix, need_valid_cols=need_valid_cols)
  78. trans_subject.set_trans_param(params)
  79. exec_subjects.append(trans_subject)
  80. return exec_subjects
  81. if __name__ == '__main__':
  82. exec_subjects = init_params()
  83. for exec_subject in exec_subjects:
  84. try:
  85. exec_subject.run()
  86. except Exception as e:
  87. print(e)
  88. logger.exception(e)