Browse Source

修复bug

Eric412V 3 years ago
parent
commit
43270a25dc
1 changed files with 23 additions and 13 deletions
  1. 23 13
      LIB/MIDDLE/SaftyCenter/DataDiag_Static/SC_BMSUploadError.py

+ 23 - 13
LIB/MIDDLE/SaftyCenter/DataDiag_Static/SC_BMSUploadError.py

@@ -23,6 +23,7 @@ class BMSReportError:
     def __init__(self):
         pass
     def main(sn,bms_info,df_Diag_Ram_in,FactoryType,errorcode_map ):
+        newCode_total=[]
         if len(df_Diag_Ram_in):
             df_Diag_Ram_BMS=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('B')].copy()
             df_Diag_Ram_Cloud=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('C')].copy()
@@ -47,29 +48,38 @@ class BMSReportError:
                                 nCode=int(math.pow(2,power))
                                 newCode.append(nCode)
                                 code=code-nCode
+                                newCode_total=newCode_total.append(nCode)
                         else:
                             newCode=newCode.append(code)
+                            newCode_total=newCode_total.append(code)
                     else:
-                        pass
+                        newCode=[]
                 else:
                     newCode=df_bms.loc[i,'故障代码']
+                    if pd.isnull(newCode):
+                        newCode=[]
+                    else:
+                        newCode_total=newCode_total.append(newCode)
+                        newCode=[newCode]
+                        
             # 数据库配置
 
-            if len(newCode):
-                for j in range(0,len(newCode)):
-                    code = newCode[j] # 终端故障码
-                    platform_code = errorcode_map[(errorcode_map['protocol']==FactoryType)&(errorcode_map['end_errorcode']==str(code))]['platform_errorcode']                   
-                    if len(platform_code) == 0:
-                        pass
-                    else:
-                        newCode[j]=platform_code.values[0]
-                        if not platform_code.values[0] in df_Diag_Ram_BMS['code'].values.tolist():
-                            df_Diag_Ram_BMS.loc[len(df_Diag_Ram_BMS)]=[df_bms.loc[i,'时间戳'],'0000-00-00 00:00:00',sn,platform_code.values[0],df_bms.loc[i,'故障等级'],'']
-                        else:
+                if  len(newCode):
+                    for j in range(0,len(newCode)):
+                        code = newCode[j] # 终端故障码
+                        platform_code = errorcode_map[(errorcode_map['protocol']==FactoryType)&(errorcode_map['end_errorcode']==str(code))]['platform_errorcode']                   
+                        if len(platform_code) == 0:
                             pass
+                        else:
+                            newCode[j]=platform_code.values[0]
+                            if not platform_code.values[0] in df_Diag_Ram_BMS['code'].values.tolist():
+                                df_Diag_Ram_BMS.loc[len(df_Diag_Ram_BMS)]=[df_bms.loc[i,'时间戳'],'0000-00-00 00:00:00',sn,platform_code.values[0],df_bms.loc[i,'故障等级'],'']
+                            else:
+                                pass
         if len(df_Diag_Ram_BMS):
             for k in range(0,len(df_Diag_Ram_BMS)):
-                if not df_Diag_Ram_BMS.loc[k,'code'] in newCode:
+                newCode_total=list(set(newCode_total))
+                if not df_Diag_Ram_BMS.loc[k,'code'] in newCode_total:
                     end_time=datetime.datetime.now()
                     end_time=end_time.strftime('%Y-%m-%d %H:%M:%S')
                     df_Diag_Ram_BMS.loc[k,'end_time']=end_time