聚烯烃基础数据表更改
This commit is contained in:
parent
98836d7a4d
commit
497cd9f4ce
Binary file not shown.
@ -950,14 +950,14 @@ def main(start_date=None, token=None, token_push=None):
|
|||||||
date = start_date.strftime('%Y%m%d')
|
date = start_date.strftime('%Y%m%d')
|
||||||
print(date)
|
print(date)
|
||||||
logging.info("当前日期: %s", date)
|
logging.info("当前日期: %s", date)
|
||||||
updateExcelData(date, token)
|
# updateExcelData(date, token)
|
||||||
queryDataListItemNos(token=token)
|
queryDataListItemNos(token=token)
|
||||||
update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
|
update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
|
||||||
x = qualitativeModel()
|
x = qualitativeModel()
|
||||||
if x is not None:
|
if x is not None:
|
||||||
print('**************************************************预测结果:', x)
|
print('**************************************************预测结果:', x)
|
||||||
logging.info("预测结果: %s", x)
|
logging.info("预测结果: %s", x)
|
||||||
cur_time, cur_time2 = getNow(date)
|
# cur_time, cur_time2 = getNow(date)
|
||||||
pushData(cur_time, x, token_push)
|
pushData(cur_time, x, token_push)
|
||||||
logging.info("主函数执行完成")
|
logging.info("主函数执行完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
346
config_jingbo.py
346
config_jingbo.py
@ -93,163 +93,24 @@ data = {
|
|||||||
ClassifyId = 1214
|
ClassifyId = 1214
|
||||||
|
|
||||||
|
|
||||||
# 变量定义--线上环境
|
# # 变量定义--线上环境
|
||||||
server_host = '10.200.32.39'
|
# server_host = '10.200.32.39'
|
||||||
login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
# login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
||||||
upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
# upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
# upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
||||||
query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
# 上传数据项值
|
|
||||||
push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
|
||||||
# 上传停更数据到市场信息平台
|
|
||||||
push_waring_data_value_list_url = f"http://{server_host}/jingbo-api/api/basicBuiness/crudeOilWarning/crudeSaveOrupdate"
|
|
||||||
# 获取预警数据中取消订阅指标ID
|
|
||||||
get_waring_data_value_list_url = f"http://{server_host}/jingbo-api/api/basicBuiness/crudeOilWarning/dataList"
|
|
||||||
|
|
||||||
|
|
||||||
login_data = {
|
|
||||||
"data": {
|
|
||||||
"account": "api_dev",
|
|
||||||
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
|
||||||
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
|
||||||
"terminal": "API"
|
|
||||||
},
|
|
||||||
"funcModule": "API",
|
|
||||||
"funcOperation": "获取token"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
upload_data = {
|
|
||||||
"funcModule": '研究报告信息',
|
|
||||||
"funcOperation": '上传原油价格预测报告',
|
|
||||||
"data": {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
|
||||||
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
|
||||||
"fileName": '', # 文件名称
|
|
||||||
"fileBase64": '', # 文件内容base64
|
|
||||||
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
|
||||||
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
|
||||||
"reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
|
||||||
"reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
|
||||||
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
warning_data = {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"funcModule": '原油特征停更预警',
|
|
||||||
"funcOperation": '原油特征停更预警',
|
|
||||||
"data": {
|
|
||||||
'WARNING_TYPE_NAME': '特征数据停更预警',
|
|
||||||
'WARNING_CONTENT': '',
|
|
||||||
'WARNING_DATE': ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
query_data_list_item_nos_data = {
|
|
||||||
"funcModule": "数据项",
|
|
||||||
"funcOperation": "查询",
|
|
||||||
"data": {
|
|
||||||
"dateStart": "20200101",
|
|
||||||
"dateEnd": "20241231",
|
|
||||||
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
push_data_value_list_data = {
|
|
||||||
"funcModule": "数据表信息列表",
|
|
||||||
"funcOperation": "新增",
|
|
||||||
"data": [
|
|
||||||
{"dataItemNo": "91230600716676129",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.11
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
push_waring_data_value_list_data = {
|
|
||||||
"data": {
|
|
||||||
"crudeOilWarningDtoList": [
|
|
||||||
{
|
|
||||||
"lastUpdateDate": "20240501",
|
|
||||||
"updateSuspensionCycle": 1,
|
|
||||||
"dataSource": "8",
|
|
||||||
"frequency": "1",
|
|
||||||
"indicatorName": "美元指数",
|
|
||||||
"indicatorId": "myzs001",
|
|
||||||
"warningDate": "2024-05-13"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataSource": "8"
|
|
||||||
},
|
|
||||||
"funcModule": "商品数据同步",
|
|
||||||
"funcOperation": "同步"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
get_waring_data_value_list_data = {
|
|
||||||
"data": "8", "funcModule": "商品数据同步", "funcOperation": "同步"}
|
|
||||||
|
|
||||||
|
|
||||||
# 八大维度数据项编码
|
|
||||||
bdwd_items = {
|
|
||||||
'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
|
||||||
'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
|
||||||
'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
|
||||||
'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
|
||||||
'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
|
||||||
'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
|
||||||
'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
|
||||||
'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# 生产环境数据库
|
|
||||||
host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
|
||||||
port = 3306
|
|
||||||
dbusername = 'jingbo'
|
|
||||||
password = 'shihua@123'
|
|
||||||
dbname = 'jingbo'
|
|
||||||
table_name = 'v_tbl_crude_oil_warning'
|
|
||||||
|
|
||||||
|
|
||||||
# # # 变量定义--测试环境
|
|
||||||
# server_host = '192.168.100.53' # 内网
|
|
||||||
# # server_host = '183.242.74.28' # 外网
|
|
||||||
# login_pushreport_url = f"http://{server_host}:8080/jingbo-dev/api/server/login"
|
|
||||||
# # 上传报告
|
|
||||||
# upload_url = f"http://{server_host}:8080/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
|
||||||
# # 停更预警
|
|
||||||
# upload_warning_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
|
||||||
# # 查询数据项编码
|
|
||||||
# query_data_list_item_nos_url = f"http://{server_host}:8080/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
|
||||||
# # 上传数据项值
|
# # 上传数据项值
|
||||||
# push_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
# push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
||||||
# # 上传停更数据到市场信息平台
|
# # 上传停更数据到市场信息平台
|
||||||
# push_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/crudeSaveOrupdate"
|
# push_waring_data_value_list_url = f"http://{server_host}/jingbo-api/api/basicBuiness/crudeOilWarning/crudeSaveOrupdate"
|
||||||
# # 获取预警数据中取消订阅指标ID
|
# # 获取预警数据中取消订阅指标ID
|
||||||
# get_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/dataList"
|
# get_waring_data_value_list_url = f"http://{server_host}/jingbo-api/api/basicBuiness/crudeOilWarning/dataList"
|
||||||
|
|
||||||
|
|
||||||
# login_data = {
|
# login_data = {
|
||||||
# "data": {
|
# "data": {
|
||||||
# "account": "api_test",
|
# "account": "api_dev",
|
||||||
# # "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
||||||
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
|
||||||
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
# "terminal": "API"
|
# "terminal": "API"
|
||||||
# },
|
# },
|
||||||
@ -257,25 +118,24 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# "funcOperation": "获取token"
|
# "funcOperation": "获取token"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# upload_data = {
|
# upload_data = {
|
||||||
# "groupNo": '', # 用户组id
|
|
||||||
# "funcModule": '研究报告信息',
|
# "funcModule": '研究报告信息',
|
||||||
# "funcOperation": '上传原油价格预测报告',
|
# "funcOperation": '上传原油价格预测报告',
|
||||||
# "data": {
|
# "data": {
|
||||||
# "ownerAccount": 'arui', # 报告所属用户账号
|
# "groupNo": '', # 用户组id
|
||||||
|
# "ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
||||||
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
# "fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
# "fileName": '', # 文件名称
|
||||||
# "fileBase64": '', # 文件内容base64
|
# "fileBase64": '', # 文件内容base64
|
||||||
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
# "reportEmployeeCode": "E40116", # 报告人
|
# "reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
||||||
# "reportDeptCode": "D0044", # 报告部门
|
# "reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
||||||
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# # 已弃用
|
|
||||||
# warning_data = {
|
# warning_data = {
|
||||||
# "groupNo": '', # 用户组id
|
# "groupNo": '', # 用户组id
|
||||||
# "funcModule": '原油特征停更预警',
|
# "funcModule": '原油特征停更预警',
|
||||||
@ -297,6 +157,7 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# push_data_value_list_data = {
|
# push_data_value_list_data = {
|
||||||
# "funcModule": "数据表信息列表",
|
# "funcModule": "数据表信息列表",
|
||||||
# "funcOperation": "新增",
|
# "funcOperation": "新增",
|
||||||
@ -319,6 +180,7 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# ]
|
# ]
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# push_waring_data_value_list_data = {
|
# push_waring_data_value_list_data = {
|
||||||
# "data": {
|
# "data": {
|
||||||
# "crudeOilWarningDtoList": [
|
# "crudeOilWarningDtoList": [
|
||||||
@ -342,27 +204,165 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# get_waring_data_value_list_data = {
|
# get_waring_data_value_list_data = {
|
||||||
# "data": "8", "funcModule": "商品数据同步", "funcOperation": "同步"}
|
# "data": "8", "funcModule": "商品数据同步", "funcOperation": "同步"}
|
||||||
|
|
||||||
|
|
||||||
# # 八大维度数据项编码
|
# # 八大维度数据项编码
|
||||||
# bdwd_items = {
|
# bdwd_items = {
|
||||||
# 'ciri': 'yyycbdwdcr',
|
# 'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
||||||
# 'benzhou': 'yyycbdwdbz',
|
# 'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
||||||
# 'cizhou': 'yyycbdwdcz',
|
# 'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
||||||
# 'gezhou': 'yyycbdwdgz',
|
# 'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
||||||
# 'ciyue': 'yyycbdwdcy',
|
# 'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
||||||
# 'cieryue': 'yyycbdwdcey',
|
# 'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
||||||
# 'cisanyue': 'yyycbdwdcsy',
|
# 'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
||||||
# 'cisiyue': 'yyycbdwdcsiy',
|
# 'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# # 北京环境数据库
|
# # 生产环境数据库
|
||||||
# host = '192.168.101.27'
|
# host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
||||||
# port = 3306
|
# port = 3306
|
||||||
# dbusername = 'root'
|
# dbusername = 'jingbo'
|
||||||
# password = '123456'
|
# password = 'shihua@123'
|
||||||
# dbname = 'jingbo_test'
|
# dbname = 'jingbo'
|
||||||
# table_name = 'v_tbl_crude_oil_warning'
|
# table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
|
|
||||||
|
# # 变量定义--测试环境
|
||||||
|
server_host = '192.168.100.53' # 内网
|
||||||
|
# server_host = '183.242.74.28' # 外网
|
||||||
|
login_pushreport_url = f"http://{server_host}:8080/jingbo-dev/api/server/login"
|
||||||
|
# 上传报告
|
||||||
|
upload_url = f"http://{server_host}:8080/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
|
# 停更预警
|
||||||
|
upload_warning_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
||||||
|
# 查询数据项编码
|
||||||
|
query_data_list_item_nos_url = f"http://{server_host}:8080/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
|
# 上传数据项值
|
||||||
|
push_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
||||||
|
# 上传停更数据到市场信息平台
|
||||||
|
push_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/crudeSaveOrupdate"
|
||||||
|
# 获取预警数据中取消订阅指标ID
|
||||||
|
get_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/dataList"
|
||||||
|
|
||||||
|
|
||||||
|
login_data = {
|
||||||
|
"data": {
|
||||||
|
"account": "api_test",
|
||||||
|
# "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
||||||
|
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
||||||
|
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
|
"terminal": "API"
|
||||||
|
},
|
||||||
|
"funcModule": "API",
|
||||||
|
"funcOperation": "获取token"
|
||||||
|
}
|
||||||
|
|
||||||
|
upload_data = {
|
||||||
|
"groupNo": '', # 用户组id
|
||||||
|
"funcModule": '研究报告信息',
|
||||||
|
"funcOperation": '上传原油价格预测报告',
|
||||||
|
"data": {
|
||||||
|
"ownerAccount": 'arui', # 报告所属用户账号
|
||||||
|
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
|
"fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
||||||
|
"fileBase64": '', # 文件内容base64
|
||||||
|
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
|
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
|
"reportEmployeeCode": "E40116", # 报告人
|
||||||
|
"reportDeptCode": "D0044", # 报告部门
|
||||||
|
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 已弃用
|
||||||
|
warning_data = {
|
||||||
|
"groupNo": '', # 用户组id
|
||||||
|
"funcModule": '原油特征停更预警',
|
||||||
|
"funcOperation": '原油特征停更预警',
|
||||||
|
"data": {
|
||||||
|
'WARNING_TYPE_NAME': '特征数据停更预警',
|
||||||
|
'WARNING_CONTENT': '',
|
||||||
|
'WARNING_DATE': ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
query_data_list_item_nos_data = {
|
||||||
|
"funcModule": "数据项",
|
||||||
|
"funcOperation": "查询",
|
||||||
|
"data": {
|
||||||
|
"dateStart": "20200101",
|
||||||
|
"dateEnd": "20241231",
|
||||||
|
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
push_data_value_list_data = {
|
||||||
|
"funcModule": "数据表信息列表",
|
||||||
|
"funcOperation": "新增",
|
||||||
|
"data": [
|
||||||
|
{"dataItemNo": "91230600716676129",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.11
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
push_waring_data_value_list_data = {
|
||||||
|
"data": {
|
||||||
|
"crudeOilWarningDtoList": [
|
||||||
|
{
|
||||||
|
"lastUpdateDate": "20240501",
|
||||||
|
"updateSuspensionCycle": 1,
|
||||||
|
"dataSource": "8",
|
||||||
|
"frequency": "1",
|
||||||
|
"indicatorName": "美元指数",
|
||||||
|
"indicatorId": "myzs001",
|
||||||
|
"warningDate": "2024-05-13"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataSource": "8"
|
||||||
|
},
|
||||||
|
"funcModule": "商品数据同步",
|
||||||
|
"funcOperation": "同步"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
get_waring_data_value_list_data = {
|
||||||
|
"data": "8", "funcModule": "商品数据同步", "funcOperation": "同步"}
|
||||||
|
|
||||||
|
# 八大维度数据项编码
|
||||||
|
bdwd_items = {
|
||||||
|
'ciri': 'yyycbdwdcr',
|
||||||
|
'benzhou': 'yyycbdwdbz',
|
||||||
|
'cizhou': 'yyycbdwdcz',
|
||||||
|
'gezhou': 'yyycbdwdgz',
|
||||||
|
'ciyue': 'yyycbdwdcy',
|
||||||
|
'cieryue': 'yyycbdwdcey',
|
||||||
|
'cisanyue': 'yyycbdwdcsy',
|
||||||
|
'cisiyue': 'yyycbdwdcsiy',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 北京环境数据库
|
||||||
|
host = '192.168.101.27'
|
||||||
|
port = 3306
|
||||||
|
dbusername = 'root'
|
||||||
|
password = '123456'
|
||||||
|
dbname = 'jingbo_test'
|
||||||
|
table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
'feature_factor_frequency': 'D',
|
'feature_factor_frequency': 'D',
|
||||||
'strategy_id': 1,
|
'strategy_id': 1,
|
||||||
@ -380,14 +380,14 @@ DEFAULT_CONFIG = {
|
|||||||
# 开关
|
# 开关
|
||||||
is_train = True # 是否训练
|
is_train = True # 是否训练
|
||||||
is_debug = False # 是否调试
|
is_debug = False # 是否调试
|
||||||
is_eta = True # 是否使用eta接口
|
is_eta = False # 是否使用eta接口
|
||||||
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||||
is_timefurture = True # 是否使用时间特征
|
is_timefurture = True # 是否使用时间特征
|
||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = False # 预测结果上传到eta
|
||||||
is_update_report = True # 是否上传报告
|
is_update_report = False # 是否上传报告
|
||||||
is_update_warning_data = True # 是否上传预警数据
|
is_update_warning_data = True # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
|
@ -172,131 +172,19 @@ data = {
|
|||||||
ClassifyId = 1214
|
ClassifyId = 1214
|
||||||
|
|
||||||
|
|
||||||
# 变量定义--线上环境
|
# # 变量定义--线上环境
|
||||||
server_host = '10.200.32.39'
|
# server_host = '10.200.32.39'
|
||||||
login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
# login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
||||||
upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
# upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
# upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
||||||
query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
# 上传数据项值
|
|
||||||
push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
|
||||||
|
|
||||||
login_data = {
|
|
||||||
"data": {
|
|
||||||
"account": "api_dev",
|
|
||||||
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
|
||||||
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
|
||||||
"terminal": "API"
|
|
||||||
},
|
|
||||||
"funcModule": "API",
|
|
||||||
"funcOperation": "获取token"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
upload_data = {
|
|
||||||
"funcModule": '研究报告信息',
|
|
||||||
"funcOperation": '上传原油价格预测报告',
|
|
||||||
"data": {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
|
||||||
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
|
||||||
"fileName": '', # 文件名称
|
|
||||||
"fileBase64": '', # 文件内容base64
|
|
||||||
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
|
||||||
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
|
||||||
"reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
|
||||||
"reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
|
||||||
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
warning_data = {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"funcModule": '原油特征停更预警',
|
|
||||||
"funcOperation": '原油特征停更预警',
|
|
||||||
"data": {
|
|
||||||
'WARNING_TYPE_NAME': '特征数据停更预警',
|
|
||||||
'WARNING_CONTENT': '',
|
|
||||||
'WARNING_DATE': ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
query_data_list_item_nos_data = {
|
|
||||||
"funcModule": "数据项",
|
|
||||||
"funcOperation": "查询",
|
|
||||||
"data": {
|
|
||||||
"dateStart": "20200101",
|
|
||||||
"dateEnd": "20241231",
|
|
||||||
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
push_data_value_list_data = {
|
|
||||||
"funcModule": "数据表信息列表",
|
|
||||||
"funcOperation": "新增",
|
|
||||||
"data": [
|
|
||||||
{"dataItemNo": "91230600716676129",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.11
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
# 八大维度数据项编码
|
|
||||||
bdwd_items = {
|
|
||||||
'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
|
||||||
'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
|
||||||
'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
|
||||||
'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
|
||||||
'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
|
||||||
'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
|
||||||
'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
|
||||||
'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
|
||||||
}
|
|
||||||
|
|
||||||
# 报告中八大维度数据项重命名
|
|
||||||
columnsrename = {
|
|
||||||
'原油大数据预测|FORECAST|PRICE|T': '次日', '原油大数据预测|FORECAST|PRICE|W': '本周',
|
|
||||||
'原油大数据预测|FORECAST|PRICE|W_1': '次周', '原油大数据预测|FORECAST|PRICE|W_2': '隔周',
|
|
||||||
'原油大数据预测|FORECAST|PRICE|M_1': '次月', '原油大数据预测|FORECAST|PRICE|M_2': '次二月',
|
|
||||||
'原油大数据预测|FORECAST|PRICE|M_3': '次三月', '原油大数据预测|FORECAST|PRICE|M_4': '次四月'
|
|
||||||
}
|
|
||||||
|
|
||||||
# 生产环境数据库
|
|
||||||
host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
|
||||||
port = 3306
|
|
||||||
dbusername = 'jingbo'
|
|
||||||
password = 'shihua@123'
|
|
||||||
dbname = 'jingbo'
|
|
||||||
table_name = 'v_tbl_crude_oil_warning'
|
|
||||||
|
|
||||||
|
|
||||||
# # 变量定义--测试环境
|
|
||||||
# server_host = '192.168.100.53:8080' # 内网
|
|
||||||
# # server_host = '183.242.74.28' # 外网
|
|
||||||
# login_pushreport_url = f"http://{server_host}/jingbo-dev/api/server/login"
|
|
||||||
# upload_url = f"http://{server_host}/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
|
||||||
# upload_warning_url = f"http://{server_host}/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
|
||||||
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
|
||||||
# # 上传数据项值
|
# # 上传数据项值
|
||||||
# push_data_value_list_url = f"http://{server_host}/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
# push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
||||||
|
|
||||||
# login_data = {
|
# login_data = {
|
||||||
# "data": {
|
# "data": {
|
||||||
# "account": "api_test",
|
# "account": "api_dev",
|
||||||
# # "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
||||||
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
|
||||||
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
# "terminal": "API"
|
# "terminal": "API"
|
||||||
# },
|
# },
|
||||||
@ -304,24 +192,24 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# "funcOperation": "获取token"
|
# "funcOperation": "获取token"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# upload_data = {
|
# upload_data = {
|
||||||
# "groupNo": '', # 用户组id
|
|
||||||
# "funcModule": '研究报告信息',
|
# "funcModule": '研究报告信息',
|
||||||
# "funcOperation": '上传原油价格预测报告',
|
# "funcOperation": '上传原油价格预测报告',
|
||||||
# "data": {
|
# "data": {
|
||||||
# "ownerAccount": 'arui', # 报告所属用户账号
|
# "groupNo": '', # 用户组id
|
||||||
|
# "ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
||||||
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
# "fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
# "fileName": '', # 文件名称
|
||||||
# "fileBase64": '', # 文件内容base64
|
# "fileBase64": '', # 文件内容base64
|
||||||
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
# "reportEmployeeCode": "E40116", # 报告人
|
# "reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
||||||
# "reportDeptCode": "D0044", # 报告部门
|
# "reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
||||||
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# warning_data = {
|
# warning_data = {
|
||||||
# "groupNo": '', # 用户组id
|
# "groupNo": '', # 用户组id
|
||||||
# "funcModule": '原油特征停更预警',
|
# "funcModule": '原油特征停更预警',
|
||||||
@ -343,6 +231,7 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# push_data_value_list_data = {
|
# push_data_value_list_data = {
|
||||||
# "funcModule": "数据表信息列表",
|
# "funcModule": "数据表信息列表",
|
||||||
# "funcOperation": "新增",
|
# "funcOperation": "新增",
|
||||||
@ -366,27 +255,138 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# }
|
# }
|
||||||
# # 八大维度数据项编码
|
# # 八大维度数据项编码
|
||||||
# bdwd_items = {
|
# bdwd_items = {
|
||||||
# 'ciri': 'yyycbdwdcr',
|
# 'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
||||||
# 'benzhou': 'yyycbdwdbz',
|
# 'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
||||||
# 'cizhou': 'yyycbdwdcz',
|
# 'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
||||||
# 'gezhou': 'yyycbdwdgz',
|
# 'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
||||||
# 'ciyue': 'yyycbdwdcy',
|
# 'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
||||||
# 'cieryue': 'yyycbdwdcey',
|
# 'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
||||||
# 'cisanyue': 'yyycbdwdcsy',
|
# 'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
||||||
# 'cisiyue': 'yyycbdwdcsiy',
|
# 'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# # 报告中八大维度数据项重命名
|
# # 报告中八大维度数据项重命名
|
||||||
# columnsrename = {'yyycbdwdbz': '本周', 'yyycbdwdcey': '次二月', 'yyycbdwdcr': '次日', 'yyycbdwdcsiy': '次四月',
|
# columnsrename = {
|
||||||
# 'yyycbdwdcsy': '次三月', 'yyycbdwdcy': '次月', 'yyycbdwdcz': '次周', 'yyycbdwdgz': '隔周', }
|
# '原油大数据预测|FORECAST|PRICE|T': '次日', '原油大数据预测|FORECAST|PRICE|W': '本周',
|
||||||
# # 北京环境数据库
|
# '原油大数据预测|FORECAST|PRICE|W_1': '次周', '原油大数据预测|FORECAST|PRICE|W_2': '隔周',
|
||||||
# host = '192.168.101.27'
|
# '原油大数据预测|FORECAST|PRICE|M_1': '次月', '原油大数据预测|FORECAST|PRICE|M_2': '次二月',
|
||||||
|
# '原油大数据预测|FORECAST|PRICE|M_3': '次三月', '原油大数据预测|FORECAST|PRICE|M_4': '次四月'
|
||||||
|
# }
|
||||||
|
|
||||||
|
# # 生产环境数据库
|
||||||
|
# host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
||||||
# port = 3306
|
# port = 3306
|
||||||
# dbusername = 'root'
|
# dbusername = 'jingbo'
|
||||||
# password = '123456'
|
# password = 'shihua@123'
|
||||||
# dbname = 'jingbo_test'
|
# dbname = 'jingbo'
|
||||||
# table_name = 'v_tbl_crude_oil_warning'
|
# table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
|
|
||||||
|
# 变量定义--测试环境
|
||||||
|
server_host = '192.168.100.53:8080' # 内网
|
||||||
|
# server_host = '183.242.74.28' # 外网
|
||||||
|
login_pushreport_url = f"http://{server_host}/jingbo-dev/api/server/login"
|
||||||
|
upload_url = f"http://{server_host}/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
|
upload_warning_url = f"http://{server_host}/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
||||||
|
query_data_list_item_nos_url = f"http://{server_host}/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
|
# 上传数据项值
|
||||||
|
push_data_value_list_url = f"http://{server_host}/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
||||||
|
|
||||||
|
login_data = {
|
||||||
|
"data": {
|
||||||
|
"account": "api_test",
|
||||||
|
# "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
||||||
|
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
||||||
|
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
|
"terminal": "API"
|
||||||
|
},
|
||||||
|
"funcModule": "API",
|
||||||
|
"funcOperation": "获取token"
|
||||||
|
}
|
||||||
|
|
||||||
|
upload_data = {
|
||||||
|
"groupNo": '', # 用户组id
|
||||||
|
"funcModule": '研究报告信息',
|
||||||
|
"funcOperation": '上传原油价格预测报告',
|
||||||
|
"data": {
|
||||||
|
"ownerAccount": 'arui', # 报告所属用户账号
|
||||||
|
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
|
"fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
||||||
|
"fileBase64": '', # 文件内容base64
|
||||||
|
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
|
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
|
"reportEmployeeCode": "E40116", # 报告人
|
||||||
|
"reportDeptCode": "D0044", # 报告部门
|
||||||
|
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
warning_data = {
|
||||||
|
"groupNo": '', # 用户组id
|
||||||
|
"funcModule": '原油特征停更预警',
|
||||||
|
"funcOperation": '原油特征停更预警',
|
||||||
|
"data": {
|
||||||
|
'WARNING_TYPE_NAME': '特征数据停更预警',
|
||||||
|
'WARNING_CONTENT': '',
|
||||||
|
'WARNING_DATE': ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
query_data_list_item_nos_data = {
|
||||||
|
"funcModule": "数据项",
|
||||||
|
"funcOperation": "查询",
|
||||||
|
"data": {
|
||||||
|
"dateStart": "20200101",
|
||||||
|
"dateEnd": "20241231",
|
||||||
|
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
push_data_value_list_data = {
|
||||||
|
"funcModule": "数据表信息列表",
|
||||||
|
"funcOperation": "新增",
|
||||||
|
"data": [
|
||||||
|
{"dataItemNo": "91230600716676129",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.11
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
# 八大维度数据项编码
|
||||||
|
bdwd_items = {
|
||||||
|
'ciri': 'yyycbdwdcr',
|
||||||
|
'benzhou': 'yyycbdwdbz',
|
||||||
|
'cizhou': 'yyycbdwdcz',
|
||||||
|
'gezhou': 'yyycbdwdgz',
|
||||||
|
'ciyue': 'yyycbdwdcy',
|
||||||
|
'cieryue': 'yyycbdwdcey',
|
||||||
|
'cisanyue': 'yyycbdwdcsy',
|
||||||
|
'cisiyue': 'yyycbdwdcsiy',
|
||||||
|
}
|
||||||
|
|
||||||
|
# 报告中八大维度数据项重命名
|
||||||
|
columnsrename = {'yyycbdwdbz': '本周', 'yyycbdwdcey': '次二月', 'yyycbdwdcr': '次日', 'yyycbdwdcsiy': '次四月',
|
||||||
|
'yyycbdwdcsy': '次三月', 'yyycbdwdcy': '次月', 'yyycbdwdcz': '次周', 'yyycbdwdgz': '隔周', }
|
||||||
|
# 北京环境数据库
|
||||||
|
host = '192.168.101.27'
|
||||||
|
port = 3306
|
||||||
|
dbusername = 'root'
|
||||||
|
password = '123456'
|
||||||
|
dbname = 'jingbo_test'
|
||||||
|
table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
'feature_factor_frequency': 'D',
|
'feature_factor_frequency': 'D',
|
||||||
'strategy_id': 1,
|
'strategy_id': 1,
|
||||||
@ -404,14 +404,14 @@ DEFAULT_CONFIG = {
|
|||||||
# 开关
|
# 开关
|
||||||
is_train = True # 是否训练
|
is_train = True # 是否训练
|
||||||
is_debug = False # 是否调试
|
is_debug = False # 是否调试
|
||||||
is_eta = True # 是否使用eta接口
|
is_eta = False # 是否使用eta接口
|
||||||
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||||
is_timefurture = True # 是否使用时间特征
|
is_timefurture = True # 是否使用时间特征
|
||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = True # 预测结果上传到eta
|
||||||
is_update_report = True # 是否上传报告
|
is_update_report = False # 是否上传报告
|
||||||
is_update_warning_data = False # 是否上传预警数据
|
is_update_warning_data = False # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
|
@ -119,125 +119,19 @@ data = {
|
|||||||
ClassifyId = 1214
|
ClassifyId = 1214
|
||||||
|
|
||||||
|
|
||||||
# 变量定义--线上环境
|
# # 变量定义--线上环境
|
||||||
server_host = '10.200.32.39'
|
# server_host = '10.200.32.39'
|
||||||
login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
# login_pushreport_url = "http://10.200.32.39/jingbo-api/api/server/login"
|
||||||
upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
# upload_url = "http://10.200.32.39/jingbo-api/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
# upload_warning_url = "http://10.200.32.39/jingbo-api/api/basicBuiness/crudeOilWarning/save"
|
||||||
query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
# 上传数据项值
|
|
||||||
push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
|
||||||
|
|
||||||
login_data = {
|
|
||||||
"data": {
|
|
||||||
"account": "api_dev",
|
|
||||||
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
|
||||||
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
|
||||||
"terminal": "API"
|
|
||||||
},
|
|
||||||
"funcModule": "API",
|
|
||||||
"funcOperation": "获取token"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
upload_data = {
|
|
||||||
"funcModule": '研究报告信息',
|
|
||||||
"funcOperation": '上传原油价格预测报告',
|
|
||||||
"data": {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
|
||||||
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
|
||||||
"fileName": '', # 文件名称
|
|
||||||
"fileBase64": '', # 文件内容base64
|
|
||||||
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
|
||||||
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
|
||||||
"reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
|
||||||
"reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
|
||||||
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
warning_data = {
|
|
||||||
"groupNo": '', # 用户组id
|
|
||||||
"funcModule": '原油特征停更预警',
|
|
||||||
"funcOperation": '原油特征停更预警',
|
|
||||||
"data": {
|
|
||||||
'WARNING_TYPE_NAME': '特征数据停更预警',
|
|
||||||
'WARNING_CONTENT': '',
|
|
||||||
'WARNING_DATE': ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
query_data_list_item_nos_data = {
|
|
||||||
"funcModule": "数据项",
|
|
||||||
"funcOperation": "查询",
|
|
||||||
"data": {
|
|
||||||
"dateStart": "20200101",
|
|
||||||
"dateEnd": "20241231",
|
|
||||||
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
push_data_value_list_data = {
|
|
||||||
"funcModule": "数据表信息列表",
|
|
||||||
"funcOperation": "新增",
|
|
||||||
"data": [
|
|
||||||
{"dataItemNo": "91230600716676129",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.11
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
},
|
|
||||||
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
|
||||||
"dataDate": "20230113",
|
|
||||||
"dataStatus": "add",
|
|
||||||
"dataValue": 100.55
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
# 八大维度数据项编码
|
|
||||||
bdwd_items = {
|
|
||||||
'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
|
||||||
'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
|
||||||
'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
|
||||||
'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
|
||||||
'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
|
||||||
'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
|
||||||
'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
|
||||||
'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# 生产环境数据库
|
|
||||||
host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
|
||||||
port = 3306
|
|
||||||
dbusername = 'jingbo'
|
|
||||||
password = 'shihua@123'
|
|
||||||
dbname = 'jingbo'
|
|
||||||
table_name = 'v_tbl_crude_oil_warning'
|
|
||||||
|
|
||||||
|
|
||||||
# # # 变量定义--测试环境
|
|
||||||
# server_host = '192.168.100.53:8080' # 内网
|
|
||||||
# # server_host = '183.242.74.28' # 外网
|
|
||||||
|
|
||||||
# login_pushreport_url = f"http://{server_host}/jingbo-dev/api/server/login"
|
|
||||||
# upload_url = f"http://{server_host}/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
|
||||||
# upload_warning_url = f"http://{server_host}/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
|
||||||
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
|
||||||
# # 上传数据项值
|
# # 上传数据项值
|
||||||
# push_data_value_list_url = f"http://{server_host}/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
# push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
||||||
|
|
||||||
# login_data = {
|
# login_data = {
|
||||||
# "data": {
|
# "data": {
|
||||||
# "account": "api_test",
|
# "account": "api_dev",
|
||||||
# # "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
||||||
# "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
|
||||||
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
# "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
# "terminal": "API"
|
# "terminal": "API"
|
||||||
# },
|
# },
|
||||||
@ -245,24 +139,26 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# "funcOperation": "获取token"
|
# "funcOperation": "获取token"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# upload_data = {
|
# upload_data = {
|
||||||
# "funcModule": '研究报告信息',
|
# "funcModule": '研究报告信息',
|
||||||
# "funcOperation": '上传原油价格预测报告',
|
# "funcOperation": '上传原油价格预测报告',
|
||||||
# "data": {
|
# "data": {
|
||||||
# "ownerAccount": 'arui', # 报告所属用户账号
|
# "groupNo": '', # 用户组id
|
||||||
|
# "ownerAccount": '27663', # 报告所属用户账号 27663 - 刘小朋
|
||||||
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
# "reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
# "fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
# "fileName": '', # 文件名称
|
||||||
# "fileBase64": '', # 文件内容base64
|
# "fileBase64": '', # 文件内容base64
|
||||||
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
# "categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
# "smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
# "reportEmployeeCode": "E40116", # 报告人
|
# "reportEmployeeCode": "E40482", # 报告人 E40482 - 管理员 0000027663 - 刘小朋
|
||||||
# "reportDeptCode": "D0044", # 报告部门
|
# "reportDeptCode": "002000621000", # 报告部门 - 002000621000 SH期货研究部
|
||||||
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
# "productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# warning_data = {
|
# warning_data = {
|
||||||
|
# "groupNo": '', # 用户组id
|
||||||
# "funcModule": '原油特征停更预警',
|
# "funcModule": '原油特征停更预警',
|
||||||
# "funcOperation": '原油特征停更预警',
|
# "funcOperation": '原油特征停更预警',
|
||||||
# "data": {
|
# "data": {
|
||||||
@ -282,6 +178,7 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# push_data_value_list_data = {
|
# push_data_value_list_data = {
|
||||||
# "funcModule": "数据表信息列表",
|
# "funcModule": "数据表信息列表",
|
||||||
# "funcOperation": "新增",
|
# "funcOperation": "新增",
|
||||||
@ -305,26 +202,129 @@ table_name = 'v_tbl_crude_oil_warning'
|
|||||||
# }
|
# }
|
||||||
# # 八大维度数据项编码
|
# # 八大维度数据项编码
|
||||||
# bdwd_items = {
|
# bdwd_items = {
|
||||||
# 'ciri': 'yyycbdwdcr',
|
# 'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
||||||
# 'benzhou': 'yyycbdwdbz',
|
# 'benzhou': '原油大数据预测|FORECAST|PRICE|W',
|
||||||
# 'cizhou': 'yyycbdwdcz',
|
# 'cizhou': '原油大数据预测|FORECAST|PRICE|W_1',
|
||||||
# 'gezhou': 'yyycbdwdgz',
|
# 'gezhou': '原油大数据预测|FORECAST|PRICE|W_2',
|
||||||
# 'ciyue': 'yyycbdwdcy',
|
# 'ciyue': '原油大数据预测|FORECAST|PRICE|M_1',
|
||||||
# 'cieryue': 'yyycbdwdcey',
|
# 'cieryue': '原油大数据预测|FORECAST|PRICE|M_2',
|
||||||
# 'cisanyue': 'yyycbdwdcsy',
|
# 'cisanyue': '原油大数据预测|FORECAST|PRICE|M_3',
|
||||||
# 'cisiyue': 'yyycbdwdcsiy',
|
# 'cisiyue': '原油大数据预测|FORECAST|PRICE|M_4',
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
|
||||||
# # 北京环境数据库
|
# # 生产环境数据库
|
||||||
# host = '192.168.101.27'
|
# host = 'rm-2zehj3r1n60ttz9x5.mysql.rds.aliyuncs.com'
|
||||||
# port = 3306
|
# port = 3306
|
||||||
# dbusername = 'root'
|
# dbusername = 'jingbo'
|
||||||
# password = '123456'
|
# password = 'shihua@123'
|
||||||
# dbname = 'jingbo_test'
|
# dbname = 'jingbo'
|
||||||
# table_name = 'v_tbl_crude_oil_warning'
|
# table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
|
|
||||||
|
# # 变量定义--测试环境
|
||||||
|
server_host = '192.168.100.53:8080' # 内网
|
||||||
|
# server_host = '183.242.74.28' # 外网
|
||||||
|
|
||||||
|
login_pushreport_url = f"http://{server_host}/jingbo-dev/api/server/login"
|
||||||
|
upload_url = f"http://{server_host}/jingbo-dev/api/analysis/reportInfo/researchUploadReportSave"
|
||||||
|
upload_warning_url = f"http://{server_host}/jingbo-dev/api/basicBuiness/crudeOilWarning/save"
|
||||||
|
query_data_list_item_nos_url = f"http://{server_host}/jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
|
# 上传数据项值
|
||||||
|
push_data_value_list_url = f"http://{server_host}/jingbo-dev/api/dw/dataValue/pushDataValueList"
|
||||||
|
|
||||||
|
login_data = {
|
||||||
|
"data": {
|
||||||
|
"account": "api_test",
|
||||||
|
# "password": "MmVmNzNlOWI0MmY0ZDdjZGUwNzE3ZjFiMDJiZDZjZWU=", # Shihua@123456
|
||||||
|
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=", # 123456
|
||||||
|
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
|
"terminal": "API"
|
||||||
|
},
|
||||||
|
"funcModule": "API",
|
||||||
|
"funcOperation": "获取token"
|
||||||
|
}
|
||||||
|
|
||||||
|
upload_data = {
|
||||||
|
"funcModule": '研究报告信息',
|
||||||
|
"funcOperation": '上传原油价格预测报告',
|
||||||
|
"data": {
|
||||||
|
"ownerAccount": 'arui', # 报告所属用户账号
|
||||||
|
"reportType": 'OIL_PRICE_FORECAST', # 报告类型,固定为OIL_PRICE_FORECAST
|
||||||
|
"fileName": '2000-40-5-50--100-原油指标数据.xlsx-Brent活跃合约--2024-09-06-15-01-29-预测报告.pdf', # 文件名称
|
||||||
|
"fileBase64": '', # 文件内容base64
|
||||||
|
"categoryNo": 'yyjgycbg', # 研究报告分类编码
|
||||||
|
"smartBusinessClassCode": 'YCJGYCBG', # 分析报告分类编码
|
||||||
|
"reportEmployeeCode": "E40116", # 报告人
|
||||||
|
"reportDeptCode": "D0044", # 报告部门
|
||||||
|
"productGroupCode": "RAW_MATERIAL" # 商品分类
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
warning_data = {
|
||||||
|
"funcModule": '原油特征停更预警',
|
||||||
|
"funcOperation": '原油特征停更预警',
|
||||||
|
"data": {
|
||||||
|
'WARNING_TYPE_NAME': '特征数据停更预警',
|
||||||
|
'WARNING_CONTENT': '',
|
||||||
|
'WARNING_DATE': ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
query_data_list_item_nos_data = {
|
||||||
|
"funcModule": "数据项",
|
||||||
|
"funcOperation": "查询",
|
||||||
|
"data": {
|
||||||
|
"dateStart": "20200101",
|
||||||
|
"dateEnd": "20241231",
|
||||||
|
"dataItemNoList": ["Brentzdj", "Brentzgj"] # 数据项编码,代表 brent最低价和最高价
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
push_data_value_list_data = {
|
||||||
|
"funcModule": "数据表信息列表",
|
||||||
|
"funcOperation": "新增",
|
||||||
|
"data": [
|
||||||
|
{"dataItemNo": "91230600716676129",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.11
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
},
|
||||||
|
{"dataItemNo": "91230600716676129P|ETHYL_BEN|CAPACITY",
|
||||||
|
"dataDate": "20230113",
|
||||||
|
"dataStatus": "add",
|
||||||
|
"dataValue": 100.55
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
# 八大维度数据项编码
|
||||||
|
bdwd_items = {
|
||||||
|
'ciri': 'yyycbdwdcr',
|
||||||
|
'benzhou': 'yyycbdwdbz',
|
||||||
|
'cizhou': 'yyycbdwdcz',
|
||||||
|
'gezhou': 'yyycbdwdgz',
|
||||||
|
'ciyue': 'yyycbdwdcy',
|
||||||
|
'cieryue': 'yyycbdwdcey',
|
||||||
|
'cisanyue': 'yyycbdwdcsy',
|
||||||
|
'cisiyue': 'yyycbdwdcsiy',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 北京环境数据库
|
||||||
|
host = '192.168.101.27'
|
||||||
|
port = 3306
|
||||||
|
dbusername = 'root'
|
||||||
|
password = '123456'
|
||||||
|
dbname = 'jingbo_test'
|
||||||
|
table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
'feature_factor_frequency': 'D',
|
'feature_factor_frequency': 'D',
|
||||||
'strategy_id': 1,
|
'strategy_id': 1,
|
||||||
@ -342,14 +342,14 @@ DEFAULT_CONFIG = {
|
|||||||
# 开关
|
# 开关
|
||||||
is_train = True # 是否训练
|
is_train = True # 是否训练
|
||||||
is_debug = False # 是否调试
|
is_debug = False # 是否调试
|
||||||
is_eta = True # 是否使用eta接口
|
is_eta = False # 是否使用eta接口
|
||||||
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||||
is_timefurture = True # 是否使用时间特征
|
is_timefurture = True # 是否使用时间特征
|
||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = True # 预测结果上传到eta
|
||||||
is_update_report = True # 是否上传报告
|
is_update_report = False # 是否上传报告
|
||||||
is_update_warning_data = False # 是否上传预警数据
|
is_update_warning_data = False # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
|
@ -432,8 +432,8 @@ is_timefurture = True # 是否使用时间特征
|
|||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = False # 预测结果上传到eta
|
||||||
is_update_report = False # 是否上传报告
|
is_update_report = True # 是否上传报告
|
||||||
is_update_warning_data = True # 是否上传预警数据
|
is_update_warning_data = True # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from decimal import Decimal
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import logging.handlers
|
import logging.handlers
|
||||||
@ -416,18 +417,32 @@ password = '123456'
|
|||||||
dbname = 'jingbo_test'
|
dbname = 'jingbo_test'
|
||||||
table_name = 'v_tbl_crude_oil_warning'
|
table_name = 'v_tbl_crude_oil_warning'
|
||||||
|
|
||||||
|
DEFAULT_CONFIG = {
|
||||||
|
'feature_factor_frequency': 'D',
|
||||||
|
'strategy_id': 2,
|
||||||
|
'model_evaluation_id': 1,
|
||||||
|
'tenant_code': '',
|
||||||
|
'version_num': Decimal(1),
|
||||||
|
'delete_flag': '0',
|
||||||
|
'create_user': 'admin',
|
||||||
|
'create_date': datetime.datetime.now(),
|
||||||
|
'update_user': 'admin',
|
||||||
|
'update_date': datetime.datetime.now(),
|
||||||
|
'oil_code': 'PP',
|
||||||
|
'oil_name': 'PP期货',
|
||||||
|
}
|
||||||
|
|
||||||
# 开关
|
# 开关
|
||||||
is_train = True # 是否训练
|
is_train = True # 是否训练
|
||||||
is_debug = False # 是否调试
|
is_debug = False # 是否调试
|
||||||
is_eta = True # 是否使用eta接口
|
is_eta = False # 是否使用eta接口
|
||||||
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
is_market = False # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||||
is_timefurture = True # 是否使用时间特征
|
is_timefurture = True # 是否使用时间特征
|
||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = True # 预测结果上传到eta
|
||||||
is_update_report = True # 是否上传报告
|
is_update_report = False # 是否上传报告
|
||||||
is_update_warning_data = False # 是否上传预警数据
|
is_update_warning_data = False # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
@ -452,16 +467,20 @@ add_kdj = False # 是否添加kdj指标
|
|||||||
if add_kdj and is_edbnamelist:
|
if add_kdj and is_edbnamelist:
|
||||||
edbnamelist = edbnamelist+['K', 'D', 'J']
|
edbnamelist = edbnamelist+['K', 'D', 'J']
|
||||||
|
|
||||||
|
|
||||||
# 模型参数
|
# 模型参数
|
||||||
y = 'AVG-金能大唐久泰青州'
|
# y = 'AVG-金能大唐久泰青州'
|
||||||
avg_cols = [
|
# avg_cols = [
|
||||||
'PP:拉丝:1102K:出厂价:青州:国家能源宁煤(日)',
|
# 'PP:拉丝:1102K:出厂价:青州:国家能源宁煤(日)',
|
||||||
'PP:拉丝:L5E89:出厂价:华北(第二区域):内蒙古久泰新材料(日)',
|
# 'PP:拉丝:L5E89:出厂价:华北(第二区域):内蒙古久泰新材料(日)',
|
||||||
'PP:拉丝:L5E89:出厂价:河北、鲁北:大唐内蒙多伦(日)',
|
# 'PP:拉丝:L5E89:出厂价:河北、鲁北:大唐内蒙多伦(日)',
|
||||||
'PP:拉丝:HP550J:市场价:青岛:金能化学(日)'
|
# 'PP:拉丝:HP550J:市场价:青岛:金能化学(日)'
|
||||||
]
|
# ]
|
||||||
offsite = 80
|
# offsite = 80
|
||||||
offsite_col = ['PP:拉丝:HP550J:市场价:青岛:金能化学(日)']
|
# offsite_col = ['PP:拉丝:HP550J:市场价:青岛:金能化学(日)']
|
||||||
|
|
||||||
|
y = 'MAIN_CONFT_SETTLE_PRICE'
|
||||||
|
|
||||||
horizon = 4 # 预测的步长
|
horizon = 4 # 预测的步长
|
||||||
input_size = 16 # 输入序列长度
|
input_size = 16 # 输入序列长度
|
||||||
train_steps = 50 if is_debug else 1000 # 训练步数,用来限定epoch次数
|
train_steps = 50 if is_debug else 1000 # 训练步数,用来限定epoch次数
|
||||||
|
@ -450,15 +450,15 @@ DEFAULT_CONFIG = {
|
|||||||
# 开关
|
# 开关
|
||||||
is_train = True # 是否训练
|
is_train = True # 是否训练
|
||||||
is_debug = False # 是否调试
|
is_debug = False # 是否调试
|
||||||
is_eta = False # 是否使用eta接口
|
is_eta = True # 是否使用eta接口
|
||||||
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||||
is_timefurture = True # 是否使用时间特征
|
is_timefurture = True # 是否使用时间特征
|
||||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||||
is_edbcode = False # 特征使用edbcoding列表中的
|
is_edbcode = False # 特征使用edbcoding列表中的
|
||||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||||
is_update_eta = True # 预测结果上传到eta
|
is_update_eta = False # 预测结果上传到eta
|
||||||
is_update_report = False # 是否上传报告
|
is_update_report = True # 是否上传报告
|
||||||
is_update_warning_data = True # 是否上传预警数据
|
is_update_warning_data = False # 是否上传预警数据
|
||||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||||
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
is_del_corr = 0.6 # 是否删除相关性高的特征,取值为 0-1 ,0 为不删除,0.6 表示删除相关性小于0.6的特征
|
||||||
is_del_tow_month = True # 是否删除两个月不更新的特征
|
is_del_tow_month = True # 是否删除两个月不更新的特征
|
||||||
@ -475,7 +475,7 @@ print("数据库连接成功", host, dbname, dbusername)
|
|||||||
# 数据截取日期
|
# 数据截取日期
|
||||||
start_year = 2015 # 数据开始年份
|
start_year = 2015 # 数据开始年份
|
||||||
end_time = '' # 数据截取日期
|
end_time = '' # 数据截取日期
|
||||||
freq = 'WW' # 时间频率,"D": 天 "W": 周"M": 月"Q": 季度"A": 年 "H": 小时 "T": 分钟 "S": 秒 "B": 工作日 "WW" 自定义周
|
freq = 'W' # 时间频率,"D": 天 "W": 周"M": 月"Q": 季度"A": 年 "H": 小时 "T": 分钟 "S": 秒 "B": 工作日 "WW" 自定义周
|
||||||
delweekenday = True if freq == 'B' else False # 是否删除周末数据
|
delweekenday = True if freq == 'B' else False # 是否删除周末数据
|
||||||
is_corr = False # 特征是否参与滞后领先提升相关系数
|
is_corr = False # 特征是否参与滞后领先提升相关系数
|
||||||
add_kdj = False # 是否添加kdj指标
|
add_kdj = False # 是否添加kdj指标
|
||||||
|
@ -516,7 +516,8 @@ def featureAnalysis(df, dataset, y):
|
|||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
# 选择特征和标签列
|
# 选择特征和标签列
|
||||||
X = df.drop(['ds', 'y'], axis=1) # 特征集,排除时间戳和标签列
|
X = df.drop(['ds', 'y'], axis=1) # 特征集,排除时间戳和标签列
|
||||||
yy = df['y'] # 标签集
|
yy = df['y'] # 标签集
|
||||||
|
|
||||||
|
|
||||||
# 标签集自相关函数分析
|
# 标签集自相关函数分析
|
||||||
from statsmodels.graphics.tsaplots import plot_acf
|
from statsmodels.graphics.tsaplots import plot_acf
|
||||||
@ -2439,6 +2440,15 @@ def get_high_low_data(df):
|
|||||||
df = pd.merge(df, df1, how='left', on='date')
|
df = pd.merge(df, df1, how='left', on='date')
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
def get_shujuxiang_data(df):
|
||||||
|
# 读取excel 从第五行开始
|
||||||
|
df1 = pd.read_excel(os.path.join(config.dataset, '数据项下载.xls'), header=5, names=[
|
||||||
|
'numid', 'date', 'MAIN_CONFT_SETTLE_PRICE'])
|
||||||
|
df1['MAIN_CONFT_SETTLE_PRICE'] = df1['MAIN_CONFT_SETTLE_PRICE'].str.replace(',', '').astype(float)
|
||||||
|
# 合并数据
|
||||||
|
df = pd.merge(df, df1, how='left', on='date')
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
def get_waring_data():
|
def get_waring_data():
|
||||||
'''获取取消订阅的指标数据'''
|
'''获取取消订阅的指标数据'''
|
||||||
|
@ -191,7 +191,7 @@ def sql_inset_predict(global_config):
|
|||||||
]
|
]
|
||||||
|
|
||||||
insert_query = f"""
|
insert_query = f"""
|
||||||
INSERT INTO v_tbl_predict_prediction_results (
|
INSERT INTO v_tbl_predict_pp_prediction_results (
|
||||||
feature_factor_frequency, strategy_id, oil_code, oil_name, data_date,
|
feature_factor_frequency, strategy_id, oil_code, oil_name, data_date,
|
||||||
market_price, day_price, week_price, second_week_price, next_week_price,
|
market_price, day_price, week_price, second_week_price, next_week_price,
|
||||||
next_month_price, next_february_price, next_march_price, next_april_price,
|
next_month_price, next_february_price, next_march_price, next_april_price,
|
||||||
@ -300,18 +300,17 @@ def predict_main():
|
|||||||
|
|
||||||
if is_market:
|
if is_market:
|
||||||
logger.info('从市场信息平台获取数据...')
|
logger.info('从市场信息平台获取数据...')
|
||||||
try:
|
# try:
|
||||||
# 如果是测试环境,最高价最低价取excel文档
|
# 如果是测试环境,最高价最低价取excel文档
|
||||||
if server_host == '192.168.100.53':
|
if server_host == '192.168.100.53':
|
||||||
logger.info('从excel文档获取市场信息平台指标')
|
logger.info('从excel文档获取市场信息平台指标')
|
||||||
df_zhibiaoshuju = get_high_low_data(df_zhibiaoshuju)
|
df_zhibiaoshuju = get_shujuxiang_data(df_zhibiaoshuju)
|
||||||
else:
|
else:
|
||||||
logger.info('从市场信息平台获取数据')
|
logger.info('从市场信息平台获取数据')
|
||||||
df_zhibiaoshuju = get_market_data(
|
df_zhibiaoshuju = get_market_data(
|
||||||
end_time, df_zhibiaoshuju)
|
end_time, df_zhibiaoshuju)
|
||||||
|
# except:
|
||||||
except:
|
# logger.info('市场信息平台数据项-eta数据项 拼接失败')
|
||||||
logger.info('市场信息平台数据项-eta数据项 拼接失败')
|
|
||||||
|
|
||||||
# 保存到xlsx文件的sheet表
|
# 保存到xlsx文件的sheet表
|
||||||
with pd.ExcelWriter(os.path.join(dataset, data_set)) as file:
|
with pd.ExcelWriter(os.path.join(dataset, data_set)) as file:
|
||||||
@ -503,21 +502,20 @@ def predict_main():
|
|||||||
|
|
||||||
logger.info('模型训练完成')
|
logger.info('模型训练完成')
|
||||||
|
|
||||||
logger.info('训练数据绘图ing')
|
# logger.info('训练数据绘图ing')
|
||||||
model_results3 = model_losss_juxiting(
|
# model_results3 = model_losss_juxiting(
|
||||||
sqlitedb, end_time=global_config['end_time'], is_fivemodels=global_config['is_fivemodels'])
|
# sqlitedb, end_time=global_config['end_time'], is_fivemodels=global_config['is_fivemodels'])
|
||||||
logger.info('训练数据绘图end')
|
# logger.info('训练数据绘图end')
|
||||||
|
|
||||||
# # 模型报告
|
# # # 模型报告
|
||||||
logger.info('制作报告ing')
|
# logger.info('制作报告ing')
|
||||||
title = f'{settings}--{end_time}-预测报告' # 报告标题
|
# title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||||
reportname = f'聚烯烃PP大模型日度预测--{end_time}.pdf' # 报告文件名
|
# reportname = f'聚烯烃PP大模型日度预测--{end_time}.pdf' # 报告文件名
|
||||||
reportname = reportname.replace(':', '-') # 替换冒号
|
# reportname = reportname.replace(':', '-') # 替换冒号
|
||||||
pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
# pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
||||||
reportname=reportname, sqlitedb=sqlitedb),
|
# reportname=reportname, sqlitedb=sqlitedb),
|
||||||
|
|
||||||
logger.info('制作报告end')
|
# logger.info('制作报告end')
|
||||||
logger.info('模型训练完成')
|
|
||||||
|
|
||||||
push_market_value()
|
push_market_value()
|
||||||
sql_inset_predict(global_config)
|
sql_inset_predict(global_config)
|
||||||
@ -547,15 +545,17 @@ def predict_main():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# global end_time
|
# global end_time
|
||||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||||
# for i_time in pd.date_range('2025-4-14', '2025-4-15', freq='B'):
|
for i_time in pd.date_range('2025-6-2', '2025-7-23', freq='B'):
|
||||||
# try:
|
try:
|
||||||
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||||
# predict_main()
|
global_config['db_mysql'].connect()
|
||||||
# except Exception as e:
|
predict_main()
|
||||||
# logger.info(f'预测失败:{e}')
|
except Exception as e:
|
||||||
# continue
|
logger.info(f'预测失败:{e}')
|
||||||
|
continue
|
||||||
|
|
||||||
|
# predict_main()
|
||||||
|
|
||||||
predict_main()
|
|
||||||
|
|
||||||
# push_market_value()
|
# push_market_value()
|
||||||
# sql_inset_predict(global_config)
|
# sql_inset_predict(global_config)
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
from lib.dataread import *
|
from lib.dataread import *
|
||||||
from config_juxiting_yuedu import *
|
from config_juxiting_yuedu import *
|
||||||
from lib.tools import SendMail, exception_logger
|
from lib.tools import SendMail, convert_df_to_pydantic, exception_logger, get_modelsname
|
||||||
from models.nerulforcastmodels import ex_Model, model_losss_juxiting, tansuanli_export_pdf, pp_export_pdf
|
from models.nerulforcastmodels import ex_Model, model_losss_juxiting, pp_export_pdf
|
||||||
import datetime
|
import datetime
|
||||||
import torch
|
import torch
|
||||||
torch.set_float32_matmul_precision("high")
|
torch.set_float32_matmul_precision("high")
|
||||||
@ -13,9 +13,9 @@ global_config.update({
|
|||||||
'logger': logger,
|
'logger': logger,
|
||||||
'dataset': dataset,
|
'dataset': dataset,
|
||||||
'y': y,
|
'y': y,
|
||||||
'offsite_col': offsite_col,
|
# 'offsite_col': offsite_col,
|
||||||
'avg_cols': avg_cols,
|
# 'avg_cols': avg_cols,
|
||||||
'offsite': offsite,
|
# 'offsite': offsite,
|
||||||
'edbcodenamedict': edbcodenamedict,
|
'edbcodenamedict': edbcodenamedict,
|
||||||
'is_debug': is_debug,
|
'is_debug': is_debug,
|
||||||
'is_train': is_train,
|
'is_train': is_train,
|
||||||
@ -23,6 +23,7 @@ global_config.update({
|
|||||||
'is_update_report': is_update_report,
|
'is_update_report': is_update_report,
|
||||||
'settings': settings,
|
'settings': settings,
|
||||||
'bdwdname': bdwdname,
|
'bdwdname': bdwdname,
|
||||||
|
'columnsrename': columnsrename,
|
||||||
|
|
||||||
|
|
||||||
# 模型参数
|
# 模型参数
|
||||||
@ -84,7 +85,8 @@ global_config.update({
|
|||||||
# 数据库配置
|
# 数据库配置
|
||||||
'sqlitedb': sqlitedb,
|
'sqlitedb': sqlitedb,
|
||||||
'is_bdwd': is_bdwd,
|
'is_bdwd': is_bdwd,
|
||||||
'columnsrename':columnsrename,
|
'db_mysql': db_mysql,
|
||||||
|
'DEFAULT_CONFIG': DEFAULT_CONFIG,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -160,6 +162,97 @@ def push_market_value():
|
|||||||
logger.error(f"推送数据失败: {e}")
|
logger.error(f"推送数据失败: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
def sql_inset_predict(global_config):
|
||||||
|
df = pd.read_csv(os.path.join(config.dataset, 'predict.csv'))
|
||||||
|
df['created_dt'] = pd.to_datetime(df['created_dt'])
|
||||||
|
df['ds'] = pd.to_datetime(df['ds'])
|
||||||
|
# 获取次月预测结果
|
||||||
|
next_month_price_df = df[df['ds'] == df['ds'].min()]
|
||||||
|
# 获取次二月预测结果
|
||||||
|
next_february_price_df = df.iloc[[1]]
|
||||||
|
# 获取次三月预测结果
|
||||||
|
next_march_price_df = df.iloc[[2]]
|
||||||
|
# 获取次四月预测结果
|
||||||
|
next_april_price_df = df[df['ds'] == df['ds'].max()]
|
||||||
|
|
||||||
|
wd = ['next_month_price', 'next_february_price',
|
||||||
|
'next_march_price', 'next_april_price']
|
||||||
|
model_name_list, model_id_name_dict = get_modelsname(df, global_config)
|
||||||
|
|
||||||
|
PRICE_COLUMNS = [
|
||||||
|
'day_price', 'week_price', 'second_week_price', 'next_week_price',
|
||||||
|
'next_month_price', 'next_february_price', 'next_march_price', 'next_april_price'
|
||||||
|
]
|
||||||
|
|
||||||
|
params_list = []
|
||||||
|
for df, price_type in zip([next_month_price_df, next_february_price_df, next_march_price_df, next_april_price_df], wd):
|
||||||
|
|
||||||
|
update_columns = [
|
||||||
|
"feature_factor_frequency = VALUES(feature_factor_frequency)",
|
||||||
|
"oil_code = VALUES(oil_code)",
|
||||||
|
"oil_name = VALUES(oil_name)",
|
||||||
|
"data_date = VALUES(data_date)",
|
||||||
|
"market_price = VALUES(market_price)",
|
||||||
|
f"{price_type} = VALUES({price_type})",
|
||||||
|
"model_evaluation_id = VALUES(model_evaluation_id)",
|
||||||
|
"tenant_code = VALUES(tenant_code)",
|
||||||
|
"version_num = VALUES(version_num)",
|
||||||
|
"delete_flag = VALUES(delete_flag)",
|
||||||
|
"update_user = VALUES(update_user)",
|
||||||
|
"update_date = VALUES(update_date)"
|
||||||
|
]
|
||||||
|
|
||||||
|
insert_query = f"""
|
||||||
|
INSERT INTO v_tbl_predict_pp_prediction_results (
|
||||||
|
feature_factor_frequency, strategy_id, oil_code, oil_name, data_date,
|
||||||
|
market_price, day_price, week_price, second_week_price, next_week_price,
|
||||||
|
next_month_price, next_february_price, next_march_price, next_april_price,
|
||||||
|
model_evaluation_id, model_id, tenant_code, version_num, delete_flag,
|
||||||
|
create_user, create_date, update_user, update_date
|
||||||
|
) VALUES (
|
||||||
|
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
|
||||||
|
)
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
{', '.join(update_columns)}
|
||||||
|
"""
|
||||||
|
|
||||||
|
next_day_df = df[['ds', 'created_dt'] + model_name_list]
|
||||||
|
|
||||||
|
pydantic_results = convert_df_to_pydantic(
|
||||||
|
next_day_df, model_id_name_dict, global_config)
|
||||||
|
if pydantic_results:
|
||||||
|
|
||||||
|
for result in pydantic_results:
|
||||||
|
price_values = [None] * len(PRICE_COLUMNS)
|
||||||
|
price_index = PRICE_COLUMNS.index(price_type)
|
||||||
|
price_values[price_index] = next_day_df[model_id_name_dict[result.model_id]].values[0]
|
||||||
|
|
||||||
|
params = (
|
||||||
|
result.feature_factor_frequency,
|
||||||
|
result.strategy_id,
|
||||||
|
result.oil_code,
|
||||||
|
result.oil_name,
|
||||||
|
next_day_df['created_dt'].values[0],
|
||||||
|
result.market_price,
|
||||||
|
*price_values,
|
||||||
|
result.model_evaluation_id,
|
||||||
|
result.model_id,
|
||||||
|
result.tenant_code,
|
||||||
|
1,
|
||||||
|
'0',
|
||||||
|
result.create_user,
|
||||||
|
result.create_date,
|
||||||
|
result.update_user,
|
||||||
|
result.update_date
|
||||||
|
)
|
||||||
|
params_list.append(params)
|
||||||
|
affected_rows = config.db_mysql.execute_batch_insert(
|
||||||
|
insert_query, params_list)
|
||||||
|
config.logger.info(f"成功插入或更新 {affected_rows} 条记录")
|
||||||
|
config.db_mysql.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def predict_main():
|
def predict_main():
|
||||||
"""
|
"""
|
||||||
主预测函数,用于从 ETA 获取数据、处理数据、训练模型并进行预测。
|
主预测函数,用于从 ETA 获取数据、处理数据、训练模型并进行预测。
|
||||||
@ -392,15 +485,16 @@ def predict_main():
|
|||||||
|
|
||||||
# push_market_value()
|
# push_market_value()
|
||||||
# # 模型报告
|
# # 模型报告
|
||||||
logger.info('制作报告ing')
|
# logger.info('制作报告ing')
|
||||||
title = f'{settings}--{end_time}-预测报告' # 报告标题
|
# title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||||
reportname = f'聚烯烃PP大模型月度预测--{end_time}.pdf' # 报告文件名
|
# reportname = f'聚烯烃PP大模型月度预测--{end_time}.pdf' # 报告文件名
|
||||||
reportname = reportname.replace(':', '-') # 替换冒号
|
# reportname = reportname.replace(':', '-') # 替换冒号
|
||||||
pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
# pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
||||||
reportname=reportname, sqlitedb=sqlitedb),
|
# reportname=reportname, sqlitedb=sqlitedb),
|
||||||
|
|
||||||
logger.info('制作报告end')
|
# logger.info('制作报告end')
|
||||||
logger.info('模型训练完成')
|
# logger.info('模型训练完成')
|
||||||
|
sql_inset_predict(global_config)
|
||||||
|
|
||||||
# # LSTM 单变量模型
|
# # LSTM 单变量模型
|
||||||
# ex_Lstm(df,input_seq_len=input_size,output_seq_len=horizon,is_debug=is_debug,dataset=dataset)
|
# ex_Lstm(df,input_seq_len=input_size,output_seq_len=horizon,is_debug=is_debug,dataset=dataset)
|
||||||
|
@ -158,12 +158,12 @@ def sql_inset_predict(global_config):
|
|||||||
df = pd.read_csv(os.path.join(config.dataset, 'predict.csv'))
|
df = pd.read_csv(os.path.join(config.dataset, 'predict.csv'))
|
||||||
df['created_dt'] = pd.to_datetime(df['created_dt'])
|
df['created_dt'] = pd.to_datetime(df['created_dt'])
|
||||||
df['ds'] = pd.to_datetime(df['ds'])
|
df['ds'] = pd.to_datetime(df['ds'])
|
||||||
# 获取次日预测结果
|
# 获取次周预测结果
|
||||||
next_day_df = df[df['ds'] == df['ds'].min()]
|
second_week_price_df = df[df['ds'] == df['ds'].min()]
|
||||||
# 获取本周预测结果
|
# 获取隔周周预测结果
|
||||||
this_week_df = df[df['ds'] == df['ds'].max()]
|
next_week_price_df = df[df['ds'] == df['ds'].max()]
|
||||||
|
|
||||||
wd = ['day_price', 'week_price']
|
wd = ['second_week_price', 'next_week_price']
|
||||||
model_name_list, model_id_name_dict = get_modelsname(df, global_config)
|
model_name_list, model_id_name_dict = get_modelsname(df, global_config)
|
||||||
|
|
||||||
PRICE_COLUMNS = [
|
PRICE_COLUMNS = [
|
||||||
@ -172,7 +172,7 @@ def sql_inset_predict(global_config):
|
|||||||
]
|
]
|
||||||
|
|
||||||
params_list = []
|
params_list = []
|
||||||
for df, price_type in zip([next_day_df, this_week_df], wd):
|
for df, price_type in zip([second_week_price_df, next_week_price_df], wd):
|
||||||
|
|
||||||
update_columns = [
|
update_columns = [
|
||||||
"feature_factor_frequency = VALUES(feature_factor_frequency)",
|
"feature_factor_frequency = VALUES(feature_factor_frequency)",
|
||||||
@ -190,7 +190,7 @@ def sql_inset_predict(global_config):
|
|||||||
]
|
]
|
||||||
|
|
||||||
insert_query = f"""
|
insert_query = f"""
|
||||||
INSERT INTO v_tbl_predict_prediction_results (
|
INSERT INTO v_tbl_predict_pp_prediction_results (
|
||||||
feature_factor_frequency, strategy_id, oil_code, oil_name, data_date,
|
feature_factor_frequency, strategy_id, oil_code, oil_name, data_date,
|
||||||
market_price, day_price, week_price, second_week_price, next_week_price,
|
market_price, day_price, week_price, second_week_price, next_week_price,
|
||||||
next_month_price, next_february_price, next_march_price, next_april_price,
|
next_month_price, next_february_price, next_march_price, next_april_price,
|
||||||
@ -238,7 +238,6 @@ def sql_inset_predict(global_config):
|
|||||||
config.logger.info(f"成功插入或更新 {affected_rows} 条记录")
|
config.logger.info(f"成功插入或更新 {affected_rows} 条记录")
|
||||||
config.db_mysql.close()
|
config.db_mysql.close()
|
||||||
|
|
||||||
|
|
||||||
def predict_main():
|
def predict_main():
|
||||||
"""
|
"""
|
||||||
主预测函数,用于从 ETA 获取数据、处理数据、训练模型并进行预测。
|
主预测函数,用于从 ETA 获取数据、处理数据、训练模型并进行预测。
|
||||||
@ -303,7 +302,7 @@ def predict_main():
|
|||||||
# 如果是测试环境,最高价最低价取excel文档
|
# 如果是测试环境,最高价最低价取excel文档
|
||||||
if server_host == '192.168.100.53':
|
if server_host == '192.168.100.53':
|
||||||
logger.info('从excel文档获取市场信息平台指标')
|
logger.info('从excel文档获取市场信息平台指标')
|
||||||
df_zhibiaoshuju = get_high_low_data(df_zhibiaoshuju)
|
df_zhibiaoshuju = get_shujuxiang_data(df_zhibiaoshuju)
|
||||||
else:
|
else:
|
||||||
logger.info('从市场信息平台获取数据')
|
logger.info('从市场信息平台获取数据')
|
||||||
df_zhibiaoshuju = get_market_data(
|
df_zhibiaoshuju = get_market_data(
|
||||||
@ -318,7 +317,7 @@ def predict_main():
|
|||||||
df_zhibiaoliebiao.to_excel(file, sheet_name='指标列表', index=False)
|
df_zhibiaoliebiao.to_excel(file, sheet_name='指标列表', index=False)
|
||||||
|
|
||||||
# 数据处理
|
# 数据处理
|
||||||
df = datachuli_juxiting(df_zhibiaoshuju, df_zhibiaoliebiao, y=global_config['y'], dataset=dataset, add_kdj=add_kdj, is_timefurture=is_timefurture,
|
df = zhoududatachuli(df_zhibiaoshuju, df_zhibiaoliebiao, y=global_config['y'], dataset=dataset, add_kdj=add_kdj, is_timefurture=is_timefurture,
|
||||||
end_time=end_time)
|
end_time=end_time)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@ -465,21 +464,20 @@ def predict_main():
|
|||||||
|
|
||||||
logger.info('模型训练完成')
|
logger.info('模型训练完成')
|
||||||
|
|
||||||
logger.info('训练数据绘图ing')
|
# logger.info('训练数据绘图ing')
|
||||||
model_results3 = model_losss_juxiting(
|
# model_results3 = model_losss_juxiting(
|
||||||
sqlitedb, end_time=global_config['end_time'], is_fivemodels=global_config['is_fivemodels'])
|
# sqlitedb, end_time=global_config['end_time'], is_fivemodels=global_config['is_fivemodels'])
|
||||||
logger.info('训练数据绘图end')
|
# logger.info('训练数据绘图end')
|
||||||
|
|
||||||
# # 模型报告
|
# # # 模型报告
|
||||||
logger.info('制作报告ing')
|
# logger.info('制作报告ing')
|
||||||
title = f'{settings}--{end_time}-预测报告' # 报告标题
|
# title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||||
reportname = f'聚烯烃PP大模型周度预测--{end_time}.pdf' # 报告文件名
|
# reportname = f'聚烯烃PP大模型周度预测--{end_time}.pdf' # 报告文件名
|
||||||
reportname = reportname.replace(':', '-') # 替换冒号
|
# reportname = reportname.replace(':', '-') # 替换冒号
|
||||||
pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
# pp_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
||||||
reportname=reportname, sqlitedb=sqlitedb),
|
# reportname=reportname, sqlitedb=sqlitedb),
|
||||||
|
|
||||||
logger.info('制作报告end')
|
# logger.info('制作报告end')
|
||||||
logger.info('模型训练完成')
|
|
||||||
|
|
||||||
push_market_value()
|
push_market_value()
|
||||||
sql_inset_predict(global_config)
|
sql_inset_predict(global_config)
|
||||||
@ -509,15 +507,16 @@ def predict_main():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# global end_time
|
# global end_time
|
||||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||||
# for i_time in pd.date_range('2025-4-14', '2025-4-15', freq='B'):
|
for i_time in pd.date_range('2025-7-18', '2025-7-23', freq='B'):
|
||||||
# try:
|
try:
|
||||||
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||||
# predict_main()
|
global_config['db_mysql'].connect()
|
||||||
# except Exception as e:
|
predict_main()
|
||||||
# logger.info(f'预测失败:{e}')
|
except Exception as e:
|
||||||
# continue
|
logger.info(f'预测失败:{e}')
|
||||||
|
continue
|
||||||
|
|
||||||
# predict_main()
|
# predict_main()
|
||||||
|
|
||||||
# push_market_value()
|
# push_market_value()
|
||||||
sql_inset_predict(global_config)
|
# sql_inset_predict(global_config)
|
||||||
|
@ -580,8 +580,8 @@ def predict_main():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# global end_time
|
# global end_time
|
||||||
# # 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||||
# for i_time in pd.date_range('2025-6-19', '2025-6-28', freq='B'):
|
# for i_time in pd.date_range('2024-9-12', '2024-10-7', freq='B'):
|
||||||
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||||
# global_config['db_mysql'].connect()
|
# global_config['db_mysql'].connect()
|
||||||
# predict_main()
|
# predict_main()
|
||||||
|
@ -590,7 +590,7 @@ def predict_main():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# global end_time
|
# global end_time
|
||||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||||
for i_time in pd.date_range('2025-6-4', '2025-6-30', freq='B'):
|
for i_time in pd.date_range('2025-3-17', '2025-3-31', freq='B'):
|
||||||
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||||
global_config['db_mysql'].connect()
|
global_config['db_mysql'].connect()
|
||||||
predict_main()
|
predict_main()
|
||||||
|
@ -492,7 +492,7 @@ def predict_main():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# global end_time
|
# global end_time
|
||||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||||
for i_time in pd.date_range('2025-6-23', '2025-6-30', freq='B'):
|
for i_time in pd.date_range('2025-3-5', '2025-3-18', freq='B'):
|
||||||
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||||
global_config['db_mysql'].connect()
|
global_config['db_mysql'].connect()
|
||||||
predict_main()
|
predict_main()
|
||||||
|
@ -165,8 +165,8 @@ def ex_Model(df, horizon, input_size, train_steps, val_check_steps, early_stop_p
|
|||||||
|
|
||||||
# VanillaTransformer(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ), //报错了
|
# VanillaTransformer(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ), //报错了
|
||||||
# Autoformer(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ), //报错了
|
# Autoformer(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ), //报错了
|
||||||
# NBEATS(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ),
|
NBEATS(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard', ),
|
||||||
# NBEATSx (h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard',activation='ReLU', ), //报错
|
# NBEATSx(h=horizon, input_size=input_size, max_steps=train_steps, val_check_steps=val_check_steps, scaler_type='standard',activation='ReLU', ), //报错
|
||||||
# HINT(h=horizon),
|
# HINT(h=horizon),
|
||||||
|
|
||||||
]
|
]
|
||||||
@ -439,12 +439,12 @@ def ex_Model_Juxiting(df, horizon, input_size, train_steps, val_check_steps, ear
|
|||||||
config.dataset, '*.joblib')), key=os.path.getctime)
|
config.dataset, '*.joblib')), key=os.path.getctime)
|
||||||
config.logger.info('读取模型:' + filename)
|
config.logger.info('读取模型:' + filename)
|
||||||
nf = load(filename)
|
nf = load(filename)
|
||||||
# 测试集预测
|
# # 测试集预测
|
||||||
nf_test_preds = nf.cross_validation(
|
# nf_test_preds = nf.cross_validation(
|
||||||
df=df_test, val_size=val_size, test_size=test_size, n_windows=None)
|
# df=df_test, val_size=val_size, test_size=test_size, n_windows=None)
|
||||||
# 测试集预测结果保存
|
# # 测试集预测结果保存
|
||||||
nf_test_preds.to_csv(os.path.join(
|
# nf_test_preds.to_csv(os.path.join(
|
||||||
config.dataset, "cross_validation.csv"), index=False)
|
# config.dataset, "cross_validation.csv"), index=False)
|
||||||
|
|
||||||
df_test['ds'] = pd.to_datetime(df_test['ds'], errors='coerce')
|
df_test['ds'] = pd.to_datetime(df_test['ds'], errors='coerce')
|
||||||
|
|
||||||
@ -2344,38 +2344,42 @@ def brent_export_pdf(num_indicators=475, num_models=21, num_dayindicator=202, in
|
|||||||
# 去掉created_dt 列
|
# 去掉created_dt 列
|
||||||
df4 = df4.drop(columns=['created_dt'])
|
df4 = df4.drop(columns=['created_dt'])
|
||||||
# 计算模型偏差率
|
# 计算模型偏差率
|
||||||
# 计算各列对于y列的差值百分比
|
try:
|
||||||
df3 = pd.DataFrame() # 存储偏差率
|
# 计算各列对于y列的差值百分比
|
||||||
|
df3 = pd.DataFrame() # 存储偏差率
|
||||||
|
|
||||||
# 删除有null的行
|
# 删除有null的行
|
||||||
df4 = df4.dropna()
|
df4 = df4.dropna()
|
||||||
df3['ds'] = df4['ds']
|
df3['ds'] = df4['ds']
|
||||||
for col in fivemodels_list:
|
for col in fivemodels_list:
|
||||||
df3[col] = round(abs(df4[col] - df4['y']) / df4['y'] * 100, 2)
|
df3[col] = round(abs(df4[col] - df4['y']) / df4['y'] * 100, 2)
|
||||||
# 找出决定系数前五的偏差率
|
# 找出决定系数前五的偏差率
|
||||||
df3 = df3[['ds']+fivemodels_list.tolist()][-inputsize:]
|
df3 = df3[['ds']+fivemodels_list.tolist()][-inputsize:]
|
||||||
# 找出上一预测区间的时间
|
# 找出上一预测区间的时间
|
||||||
stime = df3['ds'].iloc[0]
|
stime = df3['ds'].iloc[0]
|
||||||
etime = df3['ds'].iloc[-1]
|
etime = df3['ds'].iloc[-1]
|
||||||
# 添加偏差率表格
|
# 添加偏差率表格
|
||||||
fivemodels = '、'.join(eval_df['模型(Model)'].values[:5]) # 字符串形式,后面写入字符串使用
|
fivemodels = '、'.join(eval_df['模型(Model)'].values[:5]) # 字符串形式,后面写入字符串使用
|
||||||
content.append(Graphs.draw_text(
|
content.append(Graphs.draw_text(
|
||||||
f'预测使用了{num_models}个模型进行训练,使用评估结果MAE前五的模型分别是 {fivemodels} ,模型上一预测区间 {stime} -- {etime}的偏差率(%)分别是:'))
|
f'预测使用了{num_models}个模型进行训练,使用评估结果MAE前五的模型分别是 {fivemodels} ,模型上一预测区间 {stime} -- {etime}的偏差率(%)分别是:'))
|
||||||
# # 添加偏差率表格
|
# # 添加偏差率表格
|
||||||
df3 = df3.T
|
df3 = df3.T
|
||||||
df3 = df3.reset_index()
|
df3 = df3.reset_index()
|
||||||
data = df3.values.tolist()
|
data = df3.values.tolist()
|
||||||
col_width = 500/len(df3.columns)
|
col_width = 500/len(df3.columns)
|
||||||
content.append(Graphs.draw_table(col_width, *data))
|
content.append(Graphs.draw_table(col_width, *data))
|
||||||
|
|
||||||
content.append(Graphs.draw_little_title('上一周预测准确率:'))
|
content.append(Graphs.draw_little_title('上一周预测准确率:'))
|
||||||
df4 = sqlitedb.select_data('accuracy_rote', order_by='结束日期 desc', limit=1)
|
df4 = sqlitedb.select_data('accuracy_rote', order_by='结束日期 desc', limit=1)
|
||||||
df4 = df4.T
|
df4 = df4.T
|
||||||
df4 = df4.reset_index()
|
df4 = df4.reset_index()
|
||||||
df4 = df4.T
|
df4 = df4.T
|
||||||
data = df4.values.tolist()
|
data = df4.values.tolist()
|
||||||
col_width = 500/len(df4.columns)
|
col_width = 500/len(df4.columns)
|
||||||
content.append(Graphs.draw_table(col_width, *data))
|
content.append(Graphs.draw_table(col_width, *data))
|
||||||
|
except:
|
||||||
|
content.append(Graphs.draw_text('暂无'))
|
||||||
|
config.logger.info('偏差率计算错误,跳过')
|
||||||
|
|
||||||
content.append(Graphs.draw_little_title('三、预测过程解析:'))
|
content.append(Graphs.draw_little_title('三、预测过程解析:'))
|
||||||
# 特征、模型、参数配置
|
# 特征、模型、参数配置
|
||||||
|
140
test/demo.py
Normal file
140
test/demo.py
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
import requests
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
def get_cptcha():
|
||||||
|
url = 'https://marketinfo.jbshihua.com/jingbo-api/captcha'
|
||||||
|
res = requests.get(url)
|
||||||
|
res = json.loads(res.text)
|
||||||
|
res = res["data"]["img"]
|
||||||
|
imgurl = 'data:image/jpeg;base64,/' + res
|
||||||
|
res = requests.get(imgurl)
|
||||||
|
with open('cptcha.png', 'wb') as f:
|
||||||
|
f.write(res.content)
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> dict:
|
||||||
|
login_url = "http://marketinfo.jbshihua.com/jingbo-api/api/server/login"
|
||||||
|
|
||||||
|
login_data = {
|
||||||
|
"data": {
|
||||||
|
"account": "api_dev",
|
||||||
|
"password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
|
||||||
|
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
|
"terminal": "API"
|
||||||
|
},
|
||||||
|
"funcModule": "API",
|
||||||
|
"funcOperation": "获取token"
|
||||||
|
}
|
||||||
|
|
||||||
|
query_data_list_item_nos_url = f"http://marketinfo.jbshihua.com/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||||
|
|
||||||
|
query_data_list_item_nos_data = {
|
||||||
|
"funcModule": "数据项",
|
||||||
|
"funcOperation": "查询",
|
||||||
|
"data": {
|
||||||
|
"dateStart": "20200101",
|
||||||
|
"dateEnd": "20241231",
|
||||||
|
"dataItemNoList": ["Brentjsj"] # 数据项编码,代表 brent结算价
|
||||||
|
}
|
||||||
|
}
|
||||||
|
login_res = requests.post(
|
||||||
|
url=login_url, json=login_data, timeout=(3, 5))
|
||||||
|
text = json.loads(login_res.text)
|
||||||
|
if text["status"]:
|
||||||
|
token = text["data"]["accessToken"]
|
||||||
|
print('获取到的token', token)
|
||||||
|
headers = {"Authorization": token}
|
||||||
|
print('获取数据中...')
|
||||||
|
items_res = requests.post(url=query_data_list_item_nos_url, headers=headers,
|
||||||
|
json=query_data_list_item_nos_data, timeout=(3, 35))
|
||||||
|
json_data = json.loads(items_res.text)
|
||||||
|
print(json_data)
|
||||||
|
return text
|
||||||
|
|
||||||
|
return {
|
||||||
|
"result": token,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class AuthHandler:
|
||||||
|
def __init__(self):
|
||||||
|
# 初始化登录表单数据
|
||||||
|
self.loginForm = {
|
||||||
|
'captchaToken': '',
|
||||||
|
'src': ''
|
||||||
|
}
|
||||||
|
self.loading = False
|
||||||
|
|
||||||
|
def loadCaptcha(self):
|
||||||
|
"""加载验证码图片"""
|
||||||
|
try:
|
||||||
|
self.loading = True
|
||||||
|
|
||||||
|
# 发送 POST 请求获取验证码
|
||||||
|
response = requests.post(
|
||||||
|
url="https://marketinfo.jbshihua.com/jingbo-api/captcha",
|
||||||
|
json={}, # 发送空 JSON 数据体
|
||||||
|
timeout=10 # 设置超时时间为 10 秒
|
||||||
|
)
|
||||||
|
|
||||||
|
# 检查响应状态码
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
# 处理响应数据
|
||||||
|
data = response.json()
|
||||||
|
if data:
|
||||||
|
self.loginForm['captchaToken'] = data.get('token', '')
|
||||||
|
self.loginForm['src'] = "data:image/jpeg;base64," + \
|
||||||
|
data.get('img', '')
|
||||||
|
|
||||||
|
# 保存图片
|
||||||
|
with open('cptcha.png', 'wb') as f:
|
||||||
|
f.write(res.content)
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(f"请求出错: {e}")
|
||||||
|
finally:
|
||||||
|
self.loading = False
|
||||||
|
|
||||||
|
|
||||||
|
def main2() -> dict:
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
login_url = "http://marketinfo.jbshihua.com/jingbo-api/api/server/login"
|
||||||
|
|
||||||
|
login_data = {
|
||||||
|
"data": {
|
||||||
|
"account": "admin",
|
||||||
|
"password": "OWZlYjcyNDAwZDRkYjEwZjE1ZjA0MTIwNDAwOGI5NjI=",
|
||||||
|
"tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
|
||||||
|
"terminal": "PC"
|
||||||
|
},
|
||||||
|
"funcModule": "登录页面",
|
||||||
|
"funcOperation": "登录"
|
||||||
|
}
|
||||||
|
login_res = requests.post(
|
||||||
|
url=login_url, json=login_data, timeout=(3, 5))
|
||||||
|
text = json.loads(login_res.text)
|
||||||
|
print(text)
|
||||||
|
if text["status"]:
|
||||||
|
token = text["data"]["accessToken"]
|
||||||
|
|
||||||
|
return {
|
||||||
|
"accessToken": token,
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
"accessToken": "",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 使用示例
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# auth = AuthHandler()
|
||||||
|
# auth.loadCaptcha()
|
||||||
|
|
||||||
|
# # 打印获取到的验证码信息
|
||||||
|
# print(f"验证码 Token: {auth.loginForm['captchaToken']}")
|
||||||
|
# print(f"验证码图片: {auth.loginForm['src']}...") # 只显示前50个字符
|
||||||
|
# main2()
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user