更新 app.py

This commit is contained in:
ChenRui 2026-07-07 10:18:54 +08:00
parent 572d8f1491
commit a79b29fb30

218
app.py
View File

@ -690,7 +690,7 @@ async def fault_type_statistics(ship_number: Optional[str] = None):
""" """
print("故障类型统计街路口") print("故障类型统计街路口")
from tools.fault_statistics import statistics_fault_types from tools.fault_statistics import statistics_fault_types
"""
result = await statistics_fault_types( result = await statistics_fault_types(
ship_number_filter=ship_number ship_number_filter=ship_number
) )
@ -700,18 +700,18 @@ async def fault_type_statistics(ship_number: Optional[str] = None):
status_code=500, status_code=500,
detail=result.get("error", "统计失败") detail=result.get("error", "统计失败")
) )
"""
result = { # result = {
"success": True, # "success": True,
"faultTypeData": [ # "faultTypeData": [
{ "value": 35, "name": "作战系统", "itemStyle": { "color": "#00C2FF" } }, # { "value": 35, "name": "作战系统", "itemStyle": { "color": "#00C2FF" } },
{ "value": 25, "name": "电力系统", "itemStyle": { "color": "#FF4500" } }, # { "value": 25, "name": "电力系统", "itemStyle": { "color": "#FF4500" } },
{ "value": 20, "name": "推进系统", "itemStyle": { "color": "#9400D3" } }, # { "value": 20, "name": "推进系统", "itemStyle": { "color": "#9400D3" } },
{ "value": 10, "name": "航空保障系统", "itemStyle": { "color": "#228B22" } }, # { "value": 10, "name": "航空保障系统", "itemStyle": { "color": "#228B22" } },
{ "value": 5, "name": "船舶保障系统", "itemStyle": { "color": "#FF1493" } }, # { "value": 5, "name": "船舶保障系统", "itemStyle": { "color": "#FF1493" } },
{ "value": 5, "name": "其他", "itemStyle": { "color": "#2C2C2C" } } # { "value": 5, "name": "其他", "itemStyle": { "color": "#2C2C2C" } }
] # ]
} # }
return result return result
@ -743,65 +743,64 @@ async def fault_frequency_statistics(
start_date = None start_date = None
end_date = None end_date = None
result = { # result = {
"success": True, # "success": True,
"highFreqFaults": [ # "highFreqFaults": [
{ "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 135 }, # { "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 135 },
{ "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 103 }, # { "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 103 },
{ "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 86 }, # { "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 86 },
{ "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 77 }, # { "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 77 },
{ "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 76 }, # { "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 76 },
{ "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 65 } # { "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 65 }
] # ]
} # }
if time_range == "近七天": # if time_range == "近七天":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"highFreqFaults": [ # "highFreqFaults": [
{ "rank": 1, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 10 }, # { "rank": 1, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 10 },
{ "rank": 2, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 6 }, # { "rank": 2, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 6 },
{ "rank": 3, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 3 }, # { "rank": 3, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 3 },
{ "rank": 4, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 3 }, # { "rank": 4, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 3 },
{ "rank": 5, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 1 } # { "rank": 5, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 1 }
] # ]
} # }
elif time_range == "近一个月": # elif time_range == "近一个月":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"highFreqFaults": [ # "highFreqFaults": [
{ "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 38 }, # { "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 38 },
{ "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 20 }, # { "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 20 },
{ "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 14 }, # { "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 14 },
{ "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 13 }, # { "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 13 },
{ "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 10 }, # { "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 10 },
{ "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 8 } # { "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 8 }
] # ]
} # }
elif time_range == "近一年": # elif time_range == "近一年":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"highFreqFaults": [ # "highFreqFaults": [
{ "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 68 }, # { "rank": 1, "name": "燃气轮机燃油增压泵组泵体旋塞处泄漏", "system": "推进系统", "count": 68 },
{ "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 74 }, # { "rank": 2, "name": "气动蝶阀控制箱无法上电工作", "system": "推进系统", "count": 74 },
{ "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 73 }, # { "rank": 3, "name": "组合报警灯柱不能正常工作", "system": "船舶保障系统", "count": 73 },
{ "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 63 }, # { "rank": 4, "name": "岸电联接箱指示灯不亮", "system": "电力系统", "count": 63 },
{ "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 56 }, # { "rank": 5, "name": "主机冷却水泵密封泄漏", "system": "航空保障系统", "count": 56 },
{ "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 46 } # { "rank": 6, "name": "加电后屏幕和故障指示灯没显示", "system": "作战系统", "count": 46 }
] # ]
} # }
"""
if time_range == "近七天": if time_range == "近七天":
end_date = datetime.now().strftime("%Y-%m-%d") end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d") start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d")
@ -825,7 +824,7 @@ async def fault_frequency_statistics(
status_code=500, status_code=500,
detail=result.get("error", "统计失败") detail=result.get("error", "统计失败")
) )
"""
return result return result
@ -857,55 +856,54 @@ async def spare_parts_statistics(
start_date = None start_date = None
end_date = None end_date = None
result = { # result = {
"success": True, # "success": True,
"sparePartData": { # "sparePartData": {
"categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"], # "categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"],
"system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"], # "system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"],
"counter": [86, 76, 43, 42, 33] # "counter": [86, 76, 43, 42, 33]
} # }
} # }
if time_range == "近七天": # if time_range == "近七天":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"sparePartData": { # "sparePartData": {
"categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端"], # "categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端"],
"system": ["电力系统", "船舶保障系统", "推进系统", "作战系统"], # "system": ["电力系统", "船舶保障系统", "推进系统", "作战系统"],
"counter": [13, 9, 8, 5] # "counter": [13, 9, 8, 5]
} # }
} # }
elif time_range == "近一个月": # elif time_range == "近一个月":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"sparePartData": { # "sparePartData": {
"categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"], # "categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"],
"system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"], # "system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"],
"counter": [32, 26, 20, 14, 10] # "counter": [32, 26, 20, 14, 10]
} # }
} # }
elif time_range == "近一年": # elif time_range == "近一年":
end_date = datetime.now().strftime("%Y-%m-%d") # end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d") # start_date = (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d")
result = { # result = {
"success": True, # "success": True,
"sparePartData": { # "sparePartData": {
"categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"], # "categories": ["螺旋式熔断体", "断路器", "机械密封", "门铰链固定端", "减振器"],
"system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"], # "system": ["电力系统", "船舶保障系统", "推进系统", "作战系统", "推进系统"],
"counter": [64, 63, 23, 20, 19] # "counter": [64, 63, 23, 20, 19]
} # }
} # }
"""
if time_range == "近七天": if time_range == "近七天":
end_date = datetime.now().strftime("%Y-%m-%d") end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d") start_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d")
@ -930,7 +928,7 @@ async def spare_parts_statistics(
status_code=500, status_code=500,
detail=result.get("error", "统计失败") detail=result.get("error", "统计失败")
) )
"""
return result return result