|
@@ -215,6 +215,8 @@ class CMSAnalyst:
|
|
|
"B3P":_3P_1X,
|
|
|
}
|
|
|
# result = json.dumps(result, ensure_ascii=False)
|
|
|
+ reslut = self.replace_nan(reslut)
|
|
|
+
|
|
|
return result
|
|
|
|
|
|
|
|
@@ -285,6 +287,7 @@ class CMSAnalyst:
|
|
|
{"Xaxis": fn_Gen*5, "val": "5X"}, {"Xaxis": fn_Gen*6, "val": "6X"}],
|
|
|
"B3P":_3P_1X,
|
|
|
}
|
|
|
+ reslut = self.replace_nan(reslut)
|
|
|
result = json.dumps(result, ensure_ascii=False)
|
|
|
return result
|
|
|
|
|
@@ -340,7 +343,7 @@ class CMSAnalyst:
|
|
|
"rpm_Gen": round(rpm_Gen, 2), # 转速r/min
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ reslut = self.replace_nan(reslut)
|
|
|
result = json.dumps(result, ensure_ascii=False)
|
|
|
|
|
|
return result
|
|
@@ -413,6 +416,7 @@ class CMSAnalyst:
|
|
|
all_stats.append(stats)
|
|
|
|
|
|
# df = pd.DataFrame(all_stats)
|
|
|
+ all_stats = [self.replace_nan(stats) for stats in all_stats]
|
|
|
all_stats = json.dumps(all_stats, ensure_ascii=False)
|
|
|
return all_stats
|
|
|
|
|
@@ -449,11 +453,11 @@ class CMSAnalyst:
|
|
|
# 2、连接233的数据库'energy_show',从表'wind_engine_group'查找风机编号'engine_code'对应的机型编号'mill_type_code'
|
|
|
engine_code = self.wind_code
|
|
|
print(engine_code)
|
|
|
- Engine2 = create_engine('mysql+pymysql://admin:admin123456@192.168.50.233:3306/energy_show')
|
|
|
+ Engine = create_engine('mysql+pymysql://admin:admin123456@192.168.50.233:3306/energy_show')
|
|
|
#Engine2 = create_engine('mysql+pymysql://admin:admin123456@106.120.102.238:16306/energy_show')
|
|
|
# df_sql2 = f"SELECT * FROM {'wind_engine_group'} where engine_code = {'engine_code'} "
|
|
|
df_sql2 = f"SELECT * FROM wind_engine_group WHERE engine_code = '{engine_code}'"
|
|
|
- df2 = pd.read_sql(df_sql2, Engine2)
|
|
|
+ df2 = pd.read_sql(df_sql2, Engine)
|
|
|
mill_type_code = df2['mill_type_code'].iloc[0]
|
|
|
print(mill_type_code)
|
|
|
|
|
@@ -471,14 +475,14 @@ class CMSAnalyst:
|
|
|
# print(_model)
|
|
|
|
|
|
# 3、从相关的表中通过机型编号'mill_type_code'或者齿轮箱编号gearbox_code查找部件'brand'、'model'的参数信息
|
|
|
- Engine3 = create_engine('mysql+pymysql://admin:admin123456@192.168.50.233:3306/energy_show')
|
|
|
+
|
|
|
# Engine3 = create_engine('mysql+pymysql://admin:admin123456@106.120.102.238:16306/energy_show')
|
|
|
#unit_bearings主轴承参数表 关键词"main_bearing"
|
|
|
if 'main_bearing' in str1:
|
|
|
print("main_bearing")
|
|
|
# df_sql3 = f"SELECT * FROM {'unit_bearings'} where mill_type_code = {'mill_type_code'} "
|
|
|
df_sql3 = f"SELECT * FROM unit_bearings WHERE mill_type_code = '{mill_type_code}' "
|
|
|
- df3 = pd.read_sql(df_sql3, Engine3)
|
|
|
+ df3 = pd.read_sql(df_sql3, Engine)
|
|
|
if df3.empty:
|
|
|
print("警告: 没有找到有效的机型信息")
|
|
|
if 'front' in str1:
|
|
@@ -529,7 +533,7 @@ class CMSAnalyst:
|
|
|
print("generator or 'stator'")
|
|
|
# df_sql3 = f"SELECT * FROM {'unit_dynamo'} where mill_type_code = {'mill_type_code'} "
|
|
|
df_sql3 = f"SELECT * FROM unit_dynamo WHERE mill_type_code = '{mill_type_code}' "
|
|
|
- df3 = pd.read_sql(df_sql3, Engine3)
|
|
|
+ df3 = pd.read_sql(df_sql3, Engine)
|
|
|
if 'non' in str1:
|
|
|
brand = 'non_drive_end_bearing' + '_brand'
|
|
|
model = 'non_drive_end_bearing' + '_model'
|
|
@@ -547,10 +551,9 @@ class CMSAnalyst:
|
|
|
print("gearbox")
|
|
|
#根据mill_type_code从unit_gearbox表中获得gearbox_code
|
|
|
df_sql3 = f"SELECT * FROM unit_gearbox WHERE mill_type_code = '{mill_type_code}' "
|
|
|
- df3 = pd.read_sql(df_sql3, Engine3)
|
|
|
+ df3 = pd.read_sql(df_sql3, Engine)
|
|
|
gearbox_code =df3['code'].iloc[0]
|
|
|
- print(gearbox_code)
|
|
|
- Engine33 = create_engine('mysql+pymysql://admin:admin123456@192.168.50.233:3306/energy_show')
|
|
|
+ print(gearbox_code)
|
|
|
#Engine33 = create_engine('mysql+pymysql://admin:admin123456@106.120.102.238:16306/energy_show')
|
|
|
#如果是行星轮/平行轮 则从unit_gearbox_structure 表中取数据
|
|
|
if 'planet'in str1 or 'sun' in str1:
|
|
@@ -571,7 +574,7 @@ class CMSAnalyst:
|
|
|
AND gearbox_structure = '{gearbox_structure}'
|
|
|
AND planetary_gear_grade = '{planetary_gear_grade}'
|
|
|
"""
|
|
|
- df33 = pd.read_sql(df_sql33, Engine33)
|
|
|
+ df33 = pd.read_sql(df_sql33, Engine)
|
|
|
if df33.empty:
|
|
|
print("unit_gearbox_structure没有该测点的参数")
|
|
|
else:
|
|
@@ -606,7 +609,7 @@ class CMSAnalyst:
|
|
|
WHERE gearbox_code = '{gearbox_code}'
|
|
|
AND parallel_wheel_grade = '{parallel_wheel_grade}'
|
|
|
"""
|
|
|
- df33 = pd.read_sql(df_sql33, Engine33)
|
|
|
+ df33 = pd.read_sql(df_sql33, Engine)
|
|
|
if not df33.empty:
|
|
|
if 'high_speed' in str1 or 'low_speed_intermediate' in str1:
|
|
|
rs_brand = 'bearing_rs' + '_brand'
|
|
@@ -660,11 +663,10 @@ class CMSAnalyst:
|
|
|
# # result = json.dumps(result, ensure_ascii=False)
|
|
|
# return result
|
|
|
# 4、从表'unit_dict_brand_model'中通过'_brand'、'_model'查找部件的参数信息
|
|
|
- Engine4 = create_engine('mysql+pymysql://admin:admin123456@192.168.50.233:3306/energy_show')
|
|
|
- # Engine4 = create_engine('mysql+pymysql://admin:admin123456@106.120.102.238:16306/energy_show')
|
|
|
+
|
|
|
df_sql4 = f"SELECT * FROM unit_dict_brand_model where manufacture = %s AND model_number = %s"
|
|
|
params = [(_brand, _model)]
|
|
|
- df4 = pd.read_sql(df_sql4, Engine4, params=params)
|
|
|
+ df4 = pd.read_sql(df_sql4, Engine, params=params)
|
|
|
n_rolls = df4['rolls_number'].iloc[0]
|
|
|
d_rolls = df4['rolls_diameter'].iloc[0]
|
|
|
D_diameter = df4['circle_diameter'].iloc[0]
|
|
@@ -715,6 +717,16 @@ class CMSAnalyst:
|
|
|
"FTF": round(FTF, 2),
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ #检查返回结果是否有nan 若有,则替换成none
|
|
|
+ def replace_nan(self, obj):
|
|
|
+ if isinstance(obj, dict):
|
|
|
+ return {k: self.replace_nan(v) for k, v in obj.items()}
|
|
|
+ elif isinstance(obj, list):
|
|
|
+ return [self.replace_nan(item) for item in obj]
|
|
|
+ elif isinstance(obj, float) and math.isnan(obj):
|
|
|
+ return None
|
|
|
+ return obj
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
# table_name = "SKF001_wave"
|