PriceForecast/juxiting_push_png_report.py
2025-08-18 15:43:21 +08:00

125 lines
3.9 KiB
Python

# 读取配置
from lib.dataread import *
from config_juxiting_yuedu import *
import datetime
from models.nerulforcastmodels import pp_bdwd_png
global_config.update({
# 核心参数
'logger': logger,
'dataset': dataset,
'y': y,
# 'offsite_col': offsite_col,
# 'avg_cols': avg_cols,
# 'offsite': offsite,
'edbcodenamedict': edbcodenamedict,
'is_debug': is_debug,
'is_train': is_train,
'is_fivemodels': is_fivemodels,
'is_update_report': is_update_report,
'settings': settings,
'bdwdname': bdwdname,
'columnsrename': columnsrename,
'price_columns': price_columns,
# 模型参数
'data_set': data_set,
'input_size': input_size,
'horizon': horizon,
'train_steps': train_steps,
'val_check_steps': val_check_steps,
'val_size': val_size,
'test_size': test_size,
'modelsindex': modelsindex,
'rote': rote,
'bdwd_items': bdwd_items,
# 特征工程开关
'is_del_corr': is_del_corr,
'is_del_tow_month': is_del_tow_month,
'is_eta': is_eta,
'is_update_eta': is_update_eta,
'is_fivemodels': is_fivemodels,
'is_update_predict_value': is_update_predict_value,
'early_stop_patience_steps': early_stop_patience_steps,
# 时间参数
'start_year': start_year,
'end_time': end_time or datetime.datetime.now().strftime("%Y-%m-%d"),
'freq': freq, # 保持列表结构
# 接口配置
'login_pushreport_url': login_pushreport_url,
'login_data': login_data,
'upload_url': upload_url,
'upload_data': upload_data,
'upload_warning_url': upload_warning_url,
'warning_data': warning_data,
# 查询接口
'query_data_list_item_nos_url': query_data_list_item_nos_url,
'query_data_list_item_nos_data': query_data_list_item_nos_data,
# 上传数据项
'push_data_value_list_url': push_data_value_list_url,
'push_data_value_list_data': push_data_value_list_data,
'push_png_report_url': push_png_report_url,
'push_png_report_data': push_png_report_data,
# eta 配置
'APPID': APPID,
'SECRET': SECRET,
'etadata': data,
'edbcodelist': edbcodelist,
'ClassifyId': ClassifyId,
'edbcodedataurl': edbcodedataurl,
'classifyidlisturl': classifyidlisturl,
'edbdatapushurl': edbdatapushurl,
'edbdeleteurl': edbdeleteurl,
'edbbusinessurl': edbbusinessurl,
'ClassifyId': ClassifyId,
'classifylisturl': classifylisturl,
# 数据库配置
'sqlitedb': sqlitedb,
'is_bdwd': is_bdwd,
'db_mysql': db_mysql,
'DEFAULT_CONFIG': DEFAULT_CONFIG,
})
def push_png_report():
current_end_time = global_config['end_time']
previous_trading_day = (pd.Timestamp(current_end_time) -
pd.tseries.offsets.BusinessDay(1)).strftime('%Y-%m-%d')
png_report_files = ['pp_zhouducorrelation.png', 'pp_yueducorrelation.png']
for png_report_file in png_report_files:
logger.info(f'发送图片{png_report_file}到钉钉工作组')
try:
with open(os.path.join(global_config['dataset'], png_report_file), 'rb') as f:
base64_data = base64.b64encode(f.read()).decode('utf-8')
config.upload_data["data"]["fileBase64"] = base64_data
data = global_config['push_png_report_data']
data['data']['fileBase64'] = base64_data
data['data']['billNo'] = str(time.time())
pngreportdata = push_png_report_to_market(data)
logger.info(f'{png_report_file}推送图片报告到钉钉成功{pngreportdata}')
except Exception as e:
logger.error(f'{png_report_file}推送图片报告到钉钉失败:{e}')
if __name__ == '__main__':
# 图片报告
try:
logger.info('图片报告ing')
pp_bdwd_png(global_config=global_config)
logger.info('图片报告end')
except Exception as e:
logger.info(f'图片报告失败:{e}')
time.sleep(5)
push_png_report()