|
@@ -17,13 +17,14 @@ from DiagDataMerge import DiagDataMerge
|
|
|
|
|
|
#...................................电池包电芯安全诊断函数......................................................................................................................
|
|
|
def diag_cal():
|
|
|
+ task_on=1
|
|
|
global SNnums
|
|
|
global df_Diag_Ram
|
|
|
global start
|
|
|
#..................................设置时间..........................................................
|
|
|
start=time.time()
|
|
|
end_time=datetime.datetime.now()
|
|
|
- start_time=end_time-datetime.timedelta(seconds=900)#15分钟跑一次,一次取15分钟数据
|
|
|
+ start_time=end_time-datetime.timedelta(days=1)#10分钟跑一次,一次取10分钟数据
|
|
|
start_time=start_time.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
end_time=end_time.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
|
|
@@ -77,6 +78,10 @@ def diag_cal():
|
|
|
df_OprtnSta=DBRead.getdata('qrcode','status', tablename=tablename1, sn=sn, timename='', st='', sp='',factory='')#取最后一条运营状态
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
#电池诊断.....................................................................................................................................................................
|
|
|
CellFltInfo=DataFrame(columns=['start_time', 'end_time', 'product_id', 'code', 'level', 'info','advice'])
|
|
|
df_Diag_Ram_sn = df_Diag_Ram.loc[df_Diag_Ram['product_id']==sn]#历史故障
|
|
@@ -92,15 +97,10 @@ def diag_cal():
|
|
|
df_Diag_Batdiag_update_xq=DataFrame(columns=['start_time','end_time','product_id','code','level','info','advice','Batpos'])
|
|
|
df_Diag_Batdiag_update=DataFrame(columns=['start_time','end_time','product_id','code','level','info','advice','Batpos'])
|
|
|
df_Diag_Ram,df_Diag_Ram_add,df_Diag_Ram_Update=DiagDataMerge.DetaMerge(df_Diag_Ram_sn,df_Diag_Batdiag_update_xq,df_Diag_Batdiag_update,df_OprtnSta,df_Diag_Ram_sn_else)
|
|
|
- if len(df_Diag_Ram) or len(df_Diag_Ram_add) or len(df_Diag_Ram_Update):
|
|
|
- print('------------------总计--------------------------')
|
|
|
- print(df_Diag_Ram)
|
|
|
- print('------------------新增--------------------------')
|
|
|
- print(df_Diag_Ram_add)
|
|
|
- print('-------------------更新-------------------------')
|
|
|
- print(df_Diag_Ram_Update)
|
|
|
+ task_on=0
|
|
|
#.................................统计程序...............................
|
|
|
def DaTa_Sta_Week_Task():
|
|
|
+ task_on=1
|
|
|
all_period_fault_info=DataFrame(columns=['factory','week','level1_count','level2_count','level3_count','level4_count','level5_count','solve_rate'])
|
|
|
#............................获取数据................................
|
|
|
toweek='Week'+time.strftime('%W')
|
|
@@ -131,9 +131,10 @@ def DaTa_Sta_Week_Task():
|
|
|
all_period_fault_info.loc[0,'week']=toweek
|
|
|
all_period_fault_info.loc[0,'solve_rate']=FltAlarmInfo.loc[0,'OprationManageRate']
|
|
|
all_period_fault_info.fillna(0,inplace=False)
|
|
|
- all_period_fault_info.to_csv('all_period_fault_info.csv')
|
|
|
+ all_period_fault_info.to_excel('all_period_fault_info.xlsx')
|
|
|
+ task_on=0
|
|
|
def DaTa_Sta_Minutes_Task():
|
|
|
-
|
|
|
+ task_on=1
|
|
|
#............................获取数据................................
|
|
|
host='172.16.121.236'
|
|
|
port=3306
|
|
@@ -181,9 +182,9 @@ def DaTa_Sta_Minutes_Task():
|
|
|
FltAlarmInfo,Celltype=DataSta.SaftyWarningSta(df_fltinfo,start_time,end_time)
|
|
|
SatftyCount=DataSta.SftyWrngClsfy(df_fltinfo)
|
|
|
MaxAccumAh,TotalAccumAh,MaxCycle,MaxRunningHour,TotalRunHour=DataSta.AccumInfo(df_last_accum,df_FirstDataTime,end_time)
|
|
|
- df_Diag_Ram_Pos=DataSta.FltBatPosition(df_last_pos,df_Diag_Ram)
|
|
|
+ all_location_info=DataSta.FltBatPosition(df_last_pos,df_Diag_Ram)
|
|
|
|
|
|
- all_statistic_info=DataFrame(columns=['factory','total_alarm','alarm_total_today','alarm_not_close_today','alarm_close_today','alarm_uregent_total_today','alarm_uregent_close_today','alarm_uregent_not_close_today','alarm_close_total','run_time_total','dischrg_total','odo_total','max_dischrg_one','max_runtime_one','max_cycle_one','max_odo_one','alarm_total','cell_type','cell_type_count','cell_safety_risk_count','data_safety_risk_count','status_safety_risk_count','hv_safety_risk_count','system_safety_risk_count','sample_safety_risk_count','controller_safety_risk_count','design_safety_risk_count'])
|
|
|
+ all_statistic_info=DataFrame(columns=['factory','total_alarm','alarm_total_today','alarm_not_close_today','alarm_close_today','alarm_uregent_total_today','alarm_uregent_close_today','alarm_uregent_not_close_today','alarm_close_total','run_time_total','dischrg_total','odo_total','max_dischrg_one','max_runtime_one','max_cycle_one','max_odo_one','alarm_close_total','alarm_total','cell_type','cell_type_count','cell_safety_risk_count','data_safety_risk_count','status_safety_risk_count','hv_safety_risk_count','system_safety_risk_count','sample_safety_risk_count','controller_safety_risk_count','design_safety_risk_count'])
|
|
|
all_statistic_info.loc[0,'factory']='骑享'
|
|
|
all_statistic_info.loc[0,'total_alarm']=FltAlarmInfo.loc[0,'SftyPlt_Data_Total']
|
|
|
all_statistic_info.loc[0,'alarm_total_today']=FltAlarmInfo.loc[0,'SftyPlt_Data_day']
|
|
@@ -216,19 +217,21 @@ def DaTa_Sta_Minutes_Task():
|
|
|
all_statistic_info.loc[0,'sample_safety_risk_count']=SatftyCount.loc[0,'SamplingSatyCount']
|
|
|
all_statistic_info.loc[0,'controller_safety_risk_count']=SatftyCount.loc[0,'CtrlSaftyCodeCount']
|
|
|
all_statistic_info.loc[0,'design_safety_risk_count']=SatftyCount.loc[0,'DsnSaftyCodeCount']
|
|
|
- all_statistic_info.to_csv('all_statistic_info.csv')
|
|
|
+ all_statistic_info.to_excel('all_statistic_info.xlsx')
|
|
|
|
|
|
end=time.time()
|
|
|
print(end-start)
|
|
|
-
|
|
|
+ task_on=0
|
|
|
|
|
|
|
|
|
|
|
|
#...............................................主函数.......................................................................................................................
|
|
|
if __name__ == "__main__":
|
|
|
global SNnums
|
|
|
+ global task_on
|
|
|
|
|
|
- excelpath=r'D:\Platform\platform_python\data_analyze_platform\USER\sxq\SaftyCenter_CODE_V1_1\sn-20210903.xlsx'
|
|
|
+ task_on=0
|
|
|
+ excelpath=r'D:\ZLWORK\code\data_analyze_platform\USER\eric\SaftyCenter_CODE_V1\sn-20210903.xlsx'
|
|
|
SNdata_6060 = pd.read_excel(excelpath, sheet_name='科易6060')
|
|
|
SNdata_6040 = pd.read_excel(excelpath, sheet_name='科易6040')
|
|
|
SNdata_4840 = pd.read_excel(excelpath, sheet_name='科易4840')
|
|
@@ -265,9 +268,11 @@ if __name__ == "__main__":
|
|
|
|
|
|
#定时任务.......................................................................................................................................................................
|
|
|
scheduler = BlockingScheduler()
|
|
|
- scheduler.add_job(diag_cal, 'interval', seconds=900, id='diag_job')
|
|
|
- scheduler.add_job(DaTa_Sta_Week_Task, 'interval',start_date='2021-11-15 08:00:00', days=7, id='Week_Task')
|
|
|
- scheduler.add_job(DaTa_Sta_Minutes_Task, 'interval', seconds=180, id='Minutes_Task')
|
|
|
+
|
|
|
+ if task_on==0:
|
|
|
+ scheduler.add_job(DaTa_Sta_Week_Task, 'interval', days=7, id='Week_Task')
|
|
|
+ scheduler.add_job(diag_cal, 'interval', seconds=600, id='diag_job')
|
|
|
+ scheduler.add_job(DaTa_Sta_Minutes_Task, 'interval', seconds=180, id='Hour_Task')
|
|
|
|
|
|
try:
|
|
|
scheduler.start()
|