972 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			972 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import numpy as np
 | ||
| import logging
 | ||
| import requests
 | ||
| import json
 | ||
| import xlrd
 | ||
| import xlwt
 | ||
| from datetime import datetime, timedelta
 | ||
| import time
 | ||
| import pandas as pd
 | ||
| pd.set_option('display.max_columns', None)
 | ||
| 
 | ||
| 
 | ||
| # 配置日志功能
 | ||
| logging.basicConfig(
 | ||
|     filename='沥青定性每日执行.log',  # 日志文件名
 | ||
|     level=logging.INFO,  # 日志级别,INFO 表示记录所有信息
 | ||
|     format='%(asctime)s - %(levelname)s - %(message)s',  # 日志格式
 | ||
|     datefmt='%Y-%m-%d %H:%M:%S'  # 日期格式
 | ||
| )
 | ||
| 
 | ||
| # 变量定义
 | ||
| login_url = "http://10.200.32.39/jingbo-api/api/server/login"
 | ||
| login_push_url = "http://10.200.32.39/jingbo-api/api/server/login"
 | ||
| # query_data_list_item_nos_url
 | ||
| # jingbo-dev/api/warehouse/dwDataItem/queryDataListItemNos
 | ||
| search_url = "http://10.200.32.39/jingbo-api/api/warehouse/dwDataItem/queryByItemNos"
 | ||
| upload_url = "http://10.200.32.39/jingbo-api/api/dw/dataValue/pushDataValueList"
 | ||
| queryDataListItemNos_url = "http://10.200.32.39/jingbo-api//api/warehouse/dwDataItem/queryDataListItemNos"
 | ||
| 
 | ||
| 
 | ||
| query_data_list_item_nos_data = {
 | ||
|     "funcModule": "数据项",
 | ||
|     "funcOperation": "查询",
 | ||
|     "data": {
 | ||
|         "dateStart": "20200101",
 | ||
|         "dateEnd": "20241231",
 | ||
|         "dataItemNoList": ["Brentzdj", "Brentzgj"]  # 数据项编码,代表 brent最低价和最高价
 | ||
|     }
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| login_data = {
 | ||
|     "data": {
 | ||
|         "account": "api_dev",
 | ||
|         "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
 | ||
|         "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
 | ||
|         "terminal": "API"
 | ||
|     },
 | ||
|     "funcModule": "API",
 | ||
|     "funcOperation": "获取token"
 | ||
| }
 | ||
| 
 | ||
| login_push_data = {
 | ||
|     "data": {
 | ||
|         "account": "api_dev",
 | ||
|         "password": "ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=",
 | ||
|         "tenantHashCode": "8a4577dbd919675758d57999a1e891fe",
 | ||
|         "terminal": "API"
 | ||
|     },
 | ||
|     "funcModule": "API",
 | ||
|     "funcOperation": "获取token"
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| read_file_path_name = "定性模型数据项12-11.xlsx"
 | ||
| one_cols = []
 | ||
| two_cols = []
 | ||
| 
 | ||
| 
 | ||
| def get_head_auth():
 | ||
|     try:
 | ||
|         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"]
 | ||
|             logging.info("成功获取认证 token")
 | ||
|             return token
 | ||
|         else:
 | ||
|             logging.error("获取认证失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             return None
 | ||
|     except Exception as e:
 | ||
|         logging.error("获取认证时发生异常: %s", str(e))
 | ||
|         return None
 | ||
| 
 | ||
| 
 | ||
| def get_head_push_auth():
 | ||
|     try:
 | ||
|         login_res = requests.post(
 | ||
|             url=login_push_url, json=login_push_data, timeout=(3, 5))
 | ||
|         text = json.loads(login_res.text)
 | ||
|         if text["status"]:
 | ||
|             token = text["data"]["accessToken"]
 | ||
|             logging.info("成功获取推送认证 token")
 | ||
|             return token
 | ||
|         else:
 | ||
|             logging.error("获取推送认证失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             return None
 | ||
|     except Exception as e:
 | ||
|         logging.error("获取推送认证时发生异常: %s", str(e))
 | ||
|         return None
 | ||
| 
 | ||
| 
 | ||
| def update_e_value(file_path, column_index, threshold):
 | ||
|     """
 | ||
|     数据修正需求:2025年1月8日
 | ||
|         如果如果今天的成本即期价跟昨天的成本价差正负1000以上,就按照昨天的成本价计算
 | ||
| 
 | ||
|     更新Excel文件中指定列的值,如果新值与前一天的值变化大于阈值,则将新值改为前一天的值。
 | ||
| 
 | ||
|     :param file_path: Excel文件路径
 | ||
|     :param column_index: 需要更新的列索引
 | ||
|     :param threshold: 变化阈值
 | ||
|     """
 | ||
|     try:
 | ||
|         logging.info("开始更新 Excel 文件中指定列的值,文件路径: %s", file_path)
 | ||
|         df = pd.read_excel(file_path)
 | ||
|         df = df.applymap(lambda x: float(
 | ||
|             x) if isinstance(x, (int, float)) else x)
 | ||
|         df = df.fillna(method='ffill')
 | ||
|         df1 = df[-3:-1]
 | ||
|         previous_value = df1.iloc[0, column_index]
 | ||
|         current_value = df1.iloc[1, column_index]
 | ||
|         if abs(current_value - previous_value) > threshold:
 | ||
|             df.iloc[-2, column_index] = previous_value
 | ||
|             logging.info("指定列值变化大于阈值,已将当前值修改为前一天的值")
 | ||
|         df.to_excel(file_path, index=False, engine='openpyxl')
 | ||
|         logging.info("Excel 文件更新完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("更新 Excel 文件时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def getLogToken():
 | ||
|     try:
 | ||
|         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"]
 | ||
|             logging.info("成功获取日志 token")
 | ||
|             return token
 | ||
|         else:
 | ||
|             logging.error("获取日志 token 失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             token = None
 | ||
|         return token
 | ||
|     except Exception as e:
 | ||
|         logging.error("获取日志 token 时发生异常: %s", str(e))
 | ||
|         return None
 | ||
| 
 | ||
| 
 | ||
| def updateExcelDatabak(date='', token=None):
 | ||
|     try:
 | ||
|         logging.info("开始备份更新 Excel 数据,日期: %s", date)
 | ||
|         workbook = xlrd.open_workbook(read_file_path_name)
 | ||
|         sheet = workbook.sheet_by_index(0)
 | ||
|         row_data = sheet.row_values(1)
 | ||
|         one_cols = row_data
 | ||
|         cur_time, cur_time2 = getNow(date)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         workbook = xlrd.open_workbook('定性模型数据项12-11.xlsx')
 | ||
|         sheet_count = len(workbook.sheet_names())
 | ||
|         sheet_names = workbook.sheet_names()
 | ||
|         new_workbook = xlwt.Workbook()
 | ||
|         for i in range(sheet_count):
 | ||
|             sheet = workbook.sheet_by_index(i)
 | ||
|             row_count = sheet.nrows
 | ||
|             col_count = sheet.ncols
 | ||
|             data = []
 | ||
|             for row in range(row_count):
 | ||
|                 row_data = []
 | ||
|                 for col in range(col_count):
 | ||
|                     row_data.append(sheet.cell_value(row, col))
 | ||
|                 data.append(row_data)
 | ||
|             new_sheet = new_workbook.add_sheet(sheet_names[i])
 | ||
|             for row in range(row_count):
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row, col, data[row][col])
 | ||
|             if i == 0:
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row_count, col, append_rows[col])
 | ||
|         new_workbook.save("定性模型数据项12-11.xlsx")
 | ||
|         logging.info("备份更新 Excel 数据完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("备份更新 Excel 数据时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def updateYesterdayExcelData(date='', token=None):
 | ||
|     try:
 | ||
|         logging.info("开始更新昨天的 Excel 数据,日期: %s", date)
 | ||
|         df = pd.read_excel(read_file_path_name, engine='openpyxl')
 | ||
|         one_cols = df.iloc[0, :].tolist()
 | ||
|         if date == '':
 | ||
|             previous_date = (datetime.now() - timedelta(days=1)
 | ||
|                              ).strftime('%Y-%m-%d')
 | ||
|         else:
 | ||
|             previous_date = (datetime.strptime(date, "%Y-%m-%d") -
 | ||
|                              timedelta(days=1)).strftime('%Y-%m-%d')
 | ||
|         cur_time, cur_time2 = getNow(previous_date)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         print('更新数据前')
 | ||
|         print(df.tail(1))
 | ||
|         if previous_date not in df['日期'].values:
 | ||
|             new_row = pd.DataFrame([append_rows], columns=df.columns.tolist())
 | ||
|             df = pd.concat([df, new_row], ignore_index=True)
 | ||
|         else:
 | ||
|             print('日期存在,即将更新')
 | ||
|             print('新数据', append_rows[1:])
 | ||
|             df.loc[df['日期'] == previous_date,
 | ||
|                    df.columns.tolist()[1:]] = append_rows[1:]
 | ||
|         print('更新数据后')
 | ||
|         print(df.tail(1))
 | ||
|         df.to_excel("定性模型数据项12-11.xlsx", index=False, engine='openpyxl')
 | ||
|         logging.info("更新昨天的 Excel 数据完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("更新昨天的 Excel 数据时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def updateExcelData(date='', token=None):
 | ||
|     try:
 | ||
|         logging.info("开始更新 Excel 数据,日期: %s", date)
 | ||
|         df = pd.read_excel(read_file_path_name, engine='openpyxl')
 | ||
|         one_cols = df.iloc[0, :].tolist()
 | ||
|         cur_time, cur_time2 = getNow(date)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         new_row = pd.DataFrame([append_rows], columns=df.columns.tolist())
 | ||
|         df = pd.concat([df, new_row], ignore_index=True)
 | ||
|         df.to_excel("定性模型数据项12-11.xlsx", index=False, engine='openpyxl')
 | ||
|         logging.info("更新 Excel 数据完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("更新 Excel 数据时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def qualitativeModel():
 | ||
|     try:
 | ||
|         logging.info("开始执行定性模型计算")
 | ||
|         df = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         df = df.fillna(df.ffill())
 | ||
|         df1 = df[-3:-1].reset_index()
 | ||
|         if df1.loc[1, '70号沥青开工率'] / 100 > 0.3:
 | ||
|             a = -(df1.loc[1, '70号沥青开工率'] / 100 - 0.2)*5/0.1
 | ||
|         else:
 | ||
|             a = 0
 | ||
|         b = df1.loc[1, '资金因素']
 | ||
|         df1.loc[1, '昨日计划提货偏差'] = df1.loc[1, '京博产量'] - df1.loc[1, '计划产量']
 | ||
|         if df1.loc[1, '昨日计划提货偏差'] > 0:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/2000
 | ||
|         else:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/3000
 | ||
|         d = (df1.loc[1, '京博产量'] - df1.loc[1, '计划产量']) / 500 * 5
 | ||
|         if df1.loc[1, '基质沥青库存']/265007 > 0.8:
 | ||
|             e = (df1.loc[1, '基质沥青库存'] - df1.loc[0, '基质沥青库存'])*10/-5000
 | ||
|         else:
 | ||
|             e = 0
 | ||
|         f = 1
 | ||
|         if abs(df1.loc[1, '即期成本'] - df1.loc[0, '即期成本']) >= 100:
 | ||
|             g = (df1.loc[1, '即期成本'] - df1.loc[0, '即期成本'])*50/100
 | ||
|         else:
 | ||
|             g = 0
 | ||
|         h = df1.loc[1, '订单结构']
 | ||
|         x = round(0.08*a+0*b+0.15*c+0.08*d + 0.03*e + 0.08 *
 | ||
|                   f + 0.4*g+0.18*h+df1.loc[0, '京博指导价'], 2)
 | ||
|         logging.info("定性模型计算完成,预测结果: %s", x)
 | ||
|         return x
 | ||
|     except Exception as e:
 | ||
|         logging.error("定性模型计算时发生异常: %s", str(e))
 | ||
|         return None
 | ||
| 
 | ||
| 
 | ||
| def getNow(date='', offset=0):
 | ||
|     try:
 | ||
|         if date == '':
 | ||
|             now = datetime.now() - timedelta(days=offset)
 | ||
|         else:
 | ||
|             try:
 | ||
|                 date = datetime.strptime(date, "%Y-%m-%d")
 | ||
|             except:
 | ||
|                 date = datetime.strptime(date, "%Y%m%d")
 | ||
|             now = date
 | ||
|         year = now.year
 | ||
|         month = now.month
 | ||
|         day = now.day
 | ||
|         if month < 10:
 | ||
|             month = "0" + str(month)
 | ||
|         if day < 10:
 | ||
|             day = "0" + str(day)
 | ||
|         cur_time = str(year) + str(month) + str(day)
 | ||
|         cur_time2 = str(year) + "-" + str(month) + "-" + str(day)
 | ||
|         return cur_time, cur_time2
 | ||
|     except Exception as e:
 | ||
|         logging.error("获取当前日期时发生异常: %s", str(e))
 | ||
|         return None, None
 | ||
| 
 | ||
| 
 | ||
| def pushData(cur_time, x, token_push):
 | ||
|     try:
 | ||
|         logging.info("开始推送数据,日期: %s,预测值: %s", cur_time, x)
 | ||
|         data1 = {
 | ||
|             "funcModule": "数据表信息列表",
 | ||
|             "funcOperation": "新增",
 | ||
|             "data": [
 | ||
|                 {"dataItemNo": "C01100036|Forecast_Price|DX|ACN",
 | ||
|                  "dataDate": cur_time,
 | ||
|                  "dataStatus": "add",
 | ||
|                  "dataValue": x
 | ||
|                  }
 | ||
|             ]
 | ||
|         }
 | ||
|         headers1 = {"Authorization": token_push}
 | ||
|         res = requests.post(url=upload_url, headers=headers1,
 | ||
|                             json=data1, timeout=(3, 5))
 | ||
|         logging.info("数据推送完成,响应信息: %s", res.text)
 | ||
|     except Exception as e:
 | ||
|         logging.error("数据推送时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def start_2(date='', token=None):
 | ||
|     try:
 | ||
|         logging.info("开始执行 start_2 函数,日期: %s", date)
 | ||
|         workbook = xlrd.open_workbook(read_file_path_name)
 | ||
|         sheet = workbook.sheet_by_index(0)
 | ||
|         num_rows = sheet.nrows
 | ||
|         row_data = sheet.row_values(1)
 | ||
|         one_cols = row_data
 | ||
|         cur_time, cur_time2 = getNow(date)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         workbook = xlrd.open_workbook('定性模型数据项12-11.xlsx')
 | ||
|         sheet_count = len(workbook.sheet_names())
 | ||
|         sheet_names = workbook.sheet_names()
 | ||
|         new_workbook = xlwt.Workbook()
 | ||
|         for i in range(sheet_count):
 | ||
|             sheet = workbook.sheet_by_index(i)
 | ||
|             row_count = sheet.nrows
 | ||
|             col_count = sheet.ncols
 | ||
|             data = []
 | ||
|             for row in range(row_count):
 | ||
|                 row_data = []
 | ||
|                 for col in range(col_count):
 | ||
|                     row_data.append(sheet.cell_value(row, col))
 | ||
|                 data.append(row_data)
 | ||
|             new_sheet = new_workbook.add_sheet(sheet_names[i])
 | ||
|             for row in range(row_count):
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row, col, data[row][col])
 | ||
|             if i == 0:
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row_count, col, append_rows[col])
 | ||
|         new_workbook.save("定性模型数据项12-11.xlsx")
 | ||
|         update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
 | ||
|         df = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         df = df.fillna(df.ffill())
 | ||
|         df1 = df[-2:].reset_index()
 | ||
|         if df1.loc[1, '70号沥青开工率'] > 30:
 | ||
|             a = (df1.loc[1, '70号沥青开工率']-0.2)*5/0.1
 | ||
|         else:
 | ||
|             a = 0
 | ||
|         b = df1.loc[1, '资金因素']
 | ||
|         if df1.loc[1, '昨日计划提货偏差'] > 0:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/2000
 | ||
|         else:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/3000
 | ||
|         d = df1.loc[1, '生产情况']
 | ||
|         if df1.loc[1, '基质沥青库存']/265007 > 0.8:
 | ||
|             e = (df1.loc[1, '基质沥青库存'] - df1.loc[0, '基质沥青库存'])*10/-5000
 | ||
|         else:
 | ||
|             e = 0
 | ||
|         f = 1
 | ||
|         if abs(df1.loc[1, '即期成本'] - df1.loc[0, '即期成本']) >= 100:
 | ||
|             g = (df1.loc[1, '即期成本'] - df1.loc[0, '即期成本'])*50/100
 | ||
|         else:
 | ||
|             g = 0
 | ||
|         h = df1.loc[1, '订单结构']
 | ||
|         x = round(0.08*a+0*b+0.15*c+0.08*d + 0.03*e + 0.08 *
 | ||
|                   f + 0.4*g+0.18*h+df1.loc[0, '京博指导价'], 2)
 | ||
|         login_res1 = requests.post(
 | ||
|             url=login_push_url, json=login_push_data, timeout=(3, 5))
 | ||
|         text1 = json.loads(login_res1.text)
 | ||
|         token_push = text1["data"]["accessToken"]
 | ||
|         data1 = {
 | ||
|             "funcModule": "数据表信息列表",
 | ||
|             "funcOperation": "新增",
 | ||
|             "data": [
 | ||
|                 {"dataItemNo": "C01100036|Forecast_Price|DX|ACN",
 | ||
|                  "dataDate": cur_time,
 | ||
|                  "dataStatus": "add",
 | ||
|                  "dataValue": x
 | ||
|                  }
 | ||
|             ]
 | ||
|         }
 | ||
|         headers1 = {"Authorization": token_push}
 | ||
|         # res = requests.post(url=upload_url, headers=headers1, json=data1, timeout=(3, 5))
 | ||
|         logging.info("start_2 函数执行完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("start_2 函数执行时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def start(now=None):
 | ||
|     try:
 | ||
|         logging.info("开始执行 start 函数")
 | ||
|         workbook = xlrd.open_workbook(read_file_path_name)
 | ||
|         sheet = workbook.sheet_by_index(0)
 | ||
|         num_rows = sheet.nrows
 | ||
|         row_data = sheet.row_values(1)
 | ||
|         one_cols = row_data
 | ||
|         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"]
 | ||
|         else:
 | ||
|             logging.error("获取认证失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             token = None
 | ||
|         if now is None:
 | ||
|             now = datetime.now()
 | ||
|         year = now.year
 | ||
|         month = now.month
 | ||
|         day = now.day
 | ||
|         if month < 10:
 | ||
|             month = "0" + str(month)
 | ||
|         if day < 10:
 | ||
|             day = "0" + str(day)
 | ||
|         cur_time = str(year) + str(month) + str(day)
 | ||
|         cur_time2 = str(year) + "-" + str(month) + "-" + str(day)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         workbook = xlrd.open_workbook('定性模型数据项12-11.xlsx')
 | ||
|         sheet_count = len(workbook.sheet_names())
 | ||
|         sheet_names = workbook.sheet_names()
 | ||
|         new_workbook = xlwt.Workbook()
 | ||
|         for i in range(sheet_count):
 | ||
|             sheet = workbook.sheet_by_index(i)
 | ||
|             row_count = sheet.nrows
 | ||
|             col_count = sheet.ncols
 | ||
|             data = []
 | ||
|             for row in range(row_count):
 | ||
|                 row_data = []
 | ||
|                 for col in range(col_count):
 | ||
|                     row_data.append(sheet.cell_value(row, col))
 | ||
|                 data.append(row_data)
 | ||
|             new_sheet = new_workbook.add_sheet(sheet_names[i])
 | ||
|             for row in range(row_count):
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row, col, data[row][col])
 | ||
|             if i == 0:
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row_count, col, append_rows[col])
 | ||
|         new_workbook.save("定性模型数据项12-11.xlsx")
 | ||
|         update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
 | ||
|         df = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         df = df.fillna(df.ffill())
 | ||
|         df1 = df[-2:].reset_index()
 | ||
|         if df1.loc[1, '70号沥青开工率'] / 100 > 0.3:
 | ||
|             a = (df1.loc[1, '70号沥青开工率'] / 100 - 0.2)*5/0.1
 | ||
|         else:
 | ||
|             a = 0
 | ||
|         b = df1.loc[1, '资金因素']
 | ||
|         if df1.loc[1, '昨日计划提货偏差'] > 0:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/2000
 | ||
|         else:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/3000
 | ||
|         d = df1.loc[1, '生产情况']
 | ||
|         if df1.loc[1, '基质沥青库存']/265007 > 0.8:
 | ||
|             e = (df1.loc[1, '基质沥青库存'] - df1.loc[0, '基质沥青库存'])*10/-5000
 | ||
|         else:
 | ||
|             e = 0
 | ||
|         f = 1
 | ||
|         if abs(df1.loc[1, '即期成本'] - df1.loc[0, '即期成本']) >= 100:
 | ||
|             g = (df1.loc[1, '即期成本'] - df1.loc[0, '即期成本'])*50/100
 | ||
|         else:
 | ||
|             g = 0
 | ||
|         h = df1.loc[1, '订单结构']
 | ||
|         x = round(0.08*a+0*b+0.15*c+0.08*d + 0.03*e + 0.08 *
 | ||
|                   f + 0.4*g+0.18*h+df1.loc[0, '京博指导价'], 2)
 | ||
|         # login_res1 = requests.post(url=login_url, json=login_data, timeout=(3, 30))
 | ||
|         # text1 = json.loads(login_res1.text)
 | ||
|         # token_push = text1["data"]["accessToken"]
 | ||
|         # data1 = {
 | ||
|         #     "funcModule": "数据表信息列表",
 | ||
|         #     "funcOperation": "新增",
 | ||
|         #     "data": [
 | ||
|         #         {"dataItemNo": "C01100036|Forecast_Price|DX|ACN",
 | ||
|         #          "dataDate": cur_time,
 | ||
|         #          "dataStatus": "add",
 | ||
|         #          "dataValue": x
 | ||
|         #          }
 | ||
|         #     ]
 | ||
|         # }
 | ||
|         # headers1 = {"Authorization": token_push}
 | ||
|         # res = requests.post(url=upload_url, headers=headers1, json=data1, timeout=(3, 5))
 | ||
|         logging.info("start 函数执行完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("start 函数执行时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def start_test():
 | ||
|     try:
 | ||
|         logging.info("开始执行 start_test 函数")
 | ||
|         workbook = xlrd.open_workbook(read_file_path_name)
 | ||
|         sheet = workbook.sheet_by_index(0)
 | ||
|         num_rows = sheet.nrows
 | ||
|         row_data = sheet.row_values(1)
 | ||
|         one_cols = row_data
 | ||
|         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"]
 | ||
|         else:
 | ||
|             logging.error("获取认证失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             token = None
 | ||
|         now = datetime.now()
 | ||
|         year = now.year
 | ||
|         month = now.month
 | ||
|         day = now.day
 | ||
|         if month < 10:
 | ||
|             month = "0" + str(month)
 | ||
|         if day < 10:
 | ||
|             day = "0" + str(day)
 | ||
|         cur_time = str(year) + str(month) + str(day)
 | ||
|         cur_time2 = str(year) + "-" + str(month) + "-" + str(day)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         workbook = xlrd.open_workbook('定性模型数据项12-11.xlsx')
 | ||
|         sheet_count = len(workbook.sheet_names())
 | ||
|         sheet_names = workbook.sheet_names()
 | ||
|         new_workbook = xlwt.Workbook()
 | ||
|         for i in range(sheet_count):
 | ||
|             sheet = workbook.sheet_by_index(i)
 | ||
|             row_count = sheet.nrows
 | ||
|             col_count = sheet.ncols
 | ||
|             data = []
 | ||
|             for row in range(row_count):
 | ||
|                 row_data = []
 | ||
|                 for col in range(col_count):
 | ||
|                     row_data.append(sheet.cell_value(row, col))
 | ||
|                 data.append(row_data)
 | ||
|             new_sheet = new_workbook.add_sheet(sheet_names[i])
 | ||
|             for row in range(row_count):
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row, col, data[row][col])
 | ||
|             if i == 0:
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row_count, col, append_rows[col])
 | ||
|         new_workbook.save("定性模型数据项12-11.xlsx")
 | ||
|         update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
 | ||
|         df = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         df = df.fillna(df.ffill())
 | ||
|         df1 = df[-2:].reset_index()
 | ||
|         if df1.loc[1, '70号沥青开工率'] / 100 > 0.3:
 | ||
|             a = (df1.loc[1, '70号沥青开工率'] / 100 - 0.2)*5/0.1
 | ||
|         else:
 | ||
|             a = 0
 | ||
|         b = df1.loc[1, '资金因素']
 | ||
|         if df1.loc[1, '昨日计划提货偏差'] > 0:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/2000
 | ||
|         else:
 | ||
|             c = df1.loc[1, '昨日计划提货偏差']*10/3000
 | ||
|         d = df1.loc[1, '生产情况']
 | ||
|         if df1.loc[1, '基质沥青库存']/265007 > 0.8:
 | ||
|             e = (df1.loc[1, '基质沥青库存'] - df1.loc[0, '基质沥青库存'])*10/-5000
 | ||
|         else:
 | ||
|             e = 0
 | ||
|         f = 1
 | ||
|         if abs(df1.loc[1, '即期成本'] - df1.loc[0, '即期成本']) >= 100:
 | ||
|             g = (df1.loc[1, '即期成本'] - df1.loc[0, '即期成本'])*50/100
 | ||
|         else:
 | ||
|             g = 0
 | ||
|         h = df1.loc[1, '订单结构']
 | ||
|         x = round(0.08*a+0*b+0.15*c+0.08*d + 0.03*e + 0.08 *
 | ||
|                   f + 0.4*g+0.18*h+df1.loc[0, '京博指导价'], 2)
 | ||
|         # login_res1 = requests.post(url=login_url, json=login_data, timeout=(3, 30))
 | ||
|         # text1 = json.loads(login_res1.text)
 | ||
|         # token_push = text1["data"]["accessToken"]
 | ||
|         # data1 = {
 | ||
|         #     "funcModule": "数据表信息列表",
 | ||
|         #     "funcOperation": "新增",
 | ||
|         #     "data": [
 | ||
|         #         {"dataItemNo": "C01100036|Forecast_Price|DX|ACN",
 | ||
|         #          "dataDate": cur_time,
 | ||
|         #          "dataStatus": "add",
 | ||
|         #          "dataValue": x
 | ||
|         #          }
 | ||
|         #     ]
 | ||
|         # }
 | ||
|         # headers1 = {"Authorization": token_push}
 | ||
|         # res = requests.post(url=upload_url, headers=headers1, json=data1, timeout=(3, 5))
 | ||
|         logging.info("start_test 函数执行完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("start_test 函数执行时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def start_1():
 | ||
|     try:
 | ||
|         logging.info("开始执行 start_1 函数")
 | ||
|         workbook = xlrd.open_workbook(read_file_path_name)
 | ||
|         sheet = workbook.sheet_by_index(0)
 | ||
|         num_rows = sheet.nrows
 | ||
|         row_data = sheet.row_values(1)
 | ||
|         one_cols = row_data
 | ||
|         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"]
 | ||
|         else:
 | ||
|             logging.error("获取认证失败,响应信息: %s", login_res.text)
 | ||
|             print("获取认证失败")
 | ||
|             token = None
 | ||
|         now = datetime.now() - timedelta(days=1)
 | ||
|         year = now.year
 | ||
|         month = now.month
 | ||
|         day = now.day
 | ||
|         if month < 10:
 | ||
|             month = "0" + str(month)
 | ||
|         if day < 10:
 | ||
|             day = "0" + str(day)
 | ||
|         cur_time = str(year) + str(month) + str(day)
 | ||
|         cur_time2 = str(year) + "-" + str(month) + "-" + str(day)
 | ||
|         search_data = {
 | ||
|             "data": {
 | ||
|                 "date": cur_time,
 | ||
|                 "dataItemNoList": one_cols[1:]
 | ||
|             },
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询"
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=search_url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             datas = search_value
 | ||
|         else:
 | ||
|             datas = None
 | ||
|         append_rows = [cur_time2]
 | ||
|         dataItemNo_dataValue = {}
 | ||
|         for data_value in datas:
 | ||
|             if "dataValue" not in data_value:
 | ||
|                 print(data_value)
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]] = ""
 | ||
|             else:
 | ||
|                 dataItemNo_dataValue[data_value["dataItemNo"]
 | ||
|                                      ] = data_value["dataValue"]
 | ||
|         for value in one_cols[1:]:
 | ||
|             if value in dataItemNo_dataValue:
 | ||
|                 append_rows.append(dataItemNo_dataValue[value])
 | ||
|             else:
 | ||
|                 append_rows.append("")
 | ||
|         workbook = xlrd.open_workbook('定性模型数据项12-11.xlsx')
 | ||
|         sheet_count = len(workbook.sheet_names())
 | ||
|         sheet_names = workbook.sheet_names()
 | ||
|         new_workbook = xlwt.Workbook()
 | ||
|         for i in range(sheet_count):
 | ||
|             sheet = workbook.sheet_by_index(i)
 | ||
|             row_count = sheet.nrows - 1
 | ||
|             col_count = sheet.ncols
 | ||
|             data = []
 | ||
|             for row in range(row_count):
 | ||
|                 row_data = []
 | ||
|                 for col in range(col_count):
 | ||
|                     row_data.append(sheet.cell_value(row, col))
 | ||
|                 data.append(row_data)
 | ||
|             new_sheet = new_workbook.add_sheet(sheet_names[i])
 | ||
|             for row in range(row_count):
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row, col, data[row][col])
 | ||
|             if i == 0:
 | ||
|                 for col in range(col_count):
 | ||
|                     new_sheet.write(row_count, col, append_rows[col])
 | ||
|         new_workbook.save("定性模型数据项12-11.xlsx")
 | ||
|         logging.info("start_1 函数执行完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("start_1 函数执行时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def get_queryDataListItemNos_value(token, url, dataItemNoList, dateStart, dateEnd):
 | ||
|     try:
 | ||
|         logging.info("开始获取查询数据列表项值,日期范围: %s 至 %s", dateStart, dateEnd)
 | ||
|         search_data = {
 | ||
|             "funcModule": "数据项",
 | ||
|             "funcOperation": "查询",
 | ||
|             "data": {
 | ||
|                 "dateStart": dateStart,
 | ||
|                 "dateEnd": dateEnd,
 | ||
|                 "dataItemNoList": dataItemNoList  # 数据项编码,代表 brent最低价和最高价
 | ||
|             }
 | ||
|         }
 | ||
|         headers = {"Authorization": token}
 | ||
|         search_res = requests.post(
 | ||
|             url=url, headers=headers, json=search_data, timeout=(3, 5))
 | ||
|         search_value = json.loads(search_res.text)["data"]
 | ||
|         if search_value:
 | ||
|             logging.info("成功获取查询数据列表项值")
 | ||
|             return search_value
 | ||
|         else:
 | ||
|             logging.warning("未获取到查询数据列表项值")
 | ||
|             return None
 | ||
|     except Exception as e:
 | ||
|         logging.error("获取查询数据列表项值时发生异常: %s", str(e))
 | ||
|         return None
 | ||
| 
 | ||
| 
 | ||
| def save_queryDataListItemNos_xls(data_df, dataItemNoList):
 | ||
|     try:
 | ||
|         logging.info("开始保存查询数据列表项到 Excel 文件")
 | ||
|         current_year_month = datetime.now().strftime('%Y-%m')
 | ||
|         grouped = data_df.groupby("dataDate")
 | ||
|         df_old = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         df_old0 = df_old[:1]
 | ||
|         result_dict = {df_old0.iloc[0][col]: col for col in df_old0.columns}
 | ||
|         df_old1 = df_old[1:].copy()
 | ||
|         df_old1["日期"] = pd.to_datetime(df_old1["日期"])
 | ||
|         df_old1 = df_old1[~df_old1["日期"].dt.strftime(
 | ||
|             '%Y-%m').eq(current_year_month)]
 | ||
|         df_old1["日期"] = df_old1["日期"].dt.strftime('%Y-%m-%d')
 | ||
|         list_data = []
 | ||
|         for date, group in grouped:
 | ||
|             dict_data = {"日期": date}
 | ||
|             for index, row in group.iterrows():
 | ||
|                 dict_data[result_dict[row['dataItemNo']]] = row['dataValue']
 | ||
|             list_data.append(dict_data)
 | ||
|         df_current_year_month = pd.DataFrame(list_data)
 | ||
|         df_merged = pd.concat(
 | ||
|             [df_old0, df_old1, df_current_year_month], ignore_index=True)
 | ||
|         df_merged.to_excel('定性模型数据项12-11.xlsx', index=False)
 | ||
|         logging.info("保存查询数据列表项到 Excel 文件完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("保存查询数据列表项到 Excel 文件时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| def queryDataListItemNos(date=None, token=None):
 | ||
|     try:
 | ||
|         logging.info("开始查询数据列表项,日期: %s", date)
 | ||
|         df = pd.read_excel('定性模型数据项12-11.xlsx')
 | ||
|         dataItemNoList = df.iloc[0].tolist()[1:]
 | ||
|         if token is None:
 | ||
|             token = getLogToken()
 | ||
|             if token is None:
 | ||
|                 logging.error("获取token失败")
 | ||
|                 print("获取token失败")
 | ||
|                 return
 | ||
|         if date is None:
 | ||
|             date = datetime.now()
 | ||
|         current_date = date
 | ||
|         first_day_of_month = current_date.replace(day=1)
 | ||
|         dateEnd = current_date.strftime('%Y%m%d')
 | ||
|         dateStart = first_day_of_month.strftime('%Y%m%d')
 | ||
|         search_value = get_queryDataListItemNos_value(
 | ||
|             token, queryDataListItemNos_url, dataItemNoList, dateStart, dateEnd)
 | ||
|         data_df = pd.DataFrame(search_value)
 | ||
|         data_df["dataDate"] = pd.to_datetime(data_df["dataDate"])
 | ||
|         data_df["dataDate"] = data_df["dataDate"].dt.strftime('%Y-%m-%d')
 | ||
|         save_queryDataListItemNos_xls(data_df, dataItemNoList)
 | ||
|         logging.info("查询数据列表项完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("查询数据列表项时发生异常: %s", str(e))
 | ||
| 
 | ||
|     data_df = pd.DataFrame(search_value)
 | ||
| 
 | ||
|     data_df["dataDate"] = pd.to_datetime(data_df["dataDate"])
 | ||
|     data_df["dataDate"] = data_df["dataDate"].dt.strftime('%Y-%m-%d')
 | ||
|     save_queryDataListItemNos_xls(data_df, dataItemNoList)
 | ||
| 
 | ||
| 
 | ||
| def main(start_date=None, token=None, token_push=None):
 | ||
|     try:
 | ||
|         logging.info("开始执行主函数")
 | ||
|         if start_date is None:
 | ||
|             start_date = datetime.now()
 | ||
|         if token is None:
 | ||
|             token = get_head_auth()
 | ||
|         if token_push is None:
 | ||
|             token_push = get_head_push_auth()
 | ||
|         date = start_date.strftime('%Y%m%d')
 | ||
|         print(date)
 | ||
|         logging.info("当前日期: %s", date)
 | ||
|         # updateExcelData(date, token)
 | ||
|         queryDataListItemNos(token=token)
 | ||
|         update_e_value('定性模型数据项12-11.xlsx', 8, 1000)
 | ||
|         x = qualitativeModel()
 | ||
|         if x is not None:
 | ||
|             print('**************************************************预测结果:', x)
 | ||
|             logging.info("预测结果: %s", x)
 | ||
|             # cur_time, cur_time2 = getNow(date)
 | ||
|             pushData(cur_time, x, token_push)
 | ||
|         logging.info("主函数执行完成")
 | ||
|     except Exception as e:
 | ||
|         logging.error("主函数执行时发生异常: %s", str(e))
 | ||
| 
 | ||
| 
 | ||
| if __name__ == "__main__":
 | ||
|     print("运行中...")
 | ||
|     logging.info("程序启动")
 | ||
|     main()
 | ||
|     logging.info("程序结束")
 |