123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #coding=utf-8
- # 计算里程
- from math import radians, cos, sin, asin, sqrt
- import pandas as pd
- import numpy as np
- from datetime import datetime
- from datetime import timedelta
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- from GpsRank import *
- from ProcessDfBms import *
- from ProcessDfGps import *
- from LIB.MIDDLE.odo.CalDist import *
- from LIB.BACKEND import DBManager, Log
- import pdb
- from urllib import parse
- import traceback
- import os
- if __name__ == "__main__":
- # 数据库配置
- host = 'rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'
- port = 3306
- user = 'qx_cas'
- password = parse.quote_plus('Qx@123456')
- database = 'qx_cas'
- db_engine = create_engine(
- "mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8".format(
- user, password, host, port, database
- ))
- print("mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8".format(
- user, password, host, port, database
- ))
- DbSession = sessionmaker(bind=db_engine)
-
- # 日志配置
- log = Log.Mylog(log_name='signal_monitor', log_level = 'info')
- log.set_file_hl(file_name='log/info.log', log_level='info', size=1024* 1024 * 100)
- log.set_file_hl(file_name='log/error.log', log_level='error', size=1024* 1024 * 100)
- logger = log.get_logger()
- logger.info("pid is + {}".format(os.getpid()))
-
- asset_table_path='asset_table.xlsx'
- asset_sheet_num=1
- usecols_list=[4,5]
- asset_table=pd.read_excel(asset_table_path,sheet_name=asset_sheet_num,skiprows=1,usecols=usecols_list)
- SN_list=asset_table['SN号'].values.tolist()
- asset_table=asset_table.rename(columns={'SN号':'SN','状态':'state'})
- asset_table.set_index(["SN"],inplace=True)
- col_name=asset_table.columns.tolist()
- col_name.extend(['range','accum_soc','day_start_soc','day_end_soc','day_start_time','day_end_time'])
- asset_table=asset_table.reindex(columns=col_name)
- start_hour='00:00:00'#每日查询最早时间
- end_hour='23:59:00'#每日查询最晚时间
- date_index=pd.date_range('2021-07-01','2021-07-31')
- for date in date_index:
- '''遍历日期'''
- str_date=str(date)[:10]
- input_starttime=str_date+' '+start_hour
- input_endtime=str_date+' '+end_hour
- test_day=str_date[5:10]#月-日,用于建立sheet
- drive_info_aday=pd.DataFrame()
- SN_list_short=SN_list#先选择了0:50,50:end
- for SN in SN_list_short:
- '''遍历SN号'''
- SN=SN.strip('\t')
- SN=SN.strip('\n')
- try:
- logger.info("{}---{} START!".format(SN, str(str_date)))
- range=GetDistInfo(SN,input_starttime,input_endtime)
- range_df=pd.DataFrame([range])
- drive_info_aday=pd.concat([drive_info_aday,range_df],axis=0)
- logger.info("{}---{} DONE!".format(SN, str(str_date)))
- except Exception as e:
- logger.error(traceback.format_exc)
- logger.error(u"{} :{},{} 任务运行错误".format(SN,input_starttime,input_endtime), exc_info=True)
- drive_info_aday['time'] = str_date
- drive_info_aday.columns = ['sn', 'odo', 'accum_soc', 'start_soc', 'end_soc', 'start_time','end_time', 'min_soc', 'time']
- drive_info_aday.to_sql("odo_result",con=db_engine, if_exists="append",index=False)
-
|