2025-07-03 17:50:42 +08:00
|
|
|
import requests
|
|
|
|
import json
|
|
|
|
from tools.API import *
|
2025-07-04 21:31:54 +08:00
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
def get_data(url : str, data_type : str = "data", params : dict = None ) -> dict:
|
2025-07-03 17:50:42 +08:00
|
|
|
headers = {
|
2025-07-04 21:31:54 +08:00
|
|
|
"content_type": "application/x-www-form-urlencoded"
|
2025-07-03 17:50:42 +08:00
|
|
|
}
|
|
|
|
try:
|
2025-07-04 21:31:54 +08:00
|
|
|
response = requests.get(url, headers=headers, params=params)
|
2025-07-03 17:50:42 +08:00
|
|
|
if response.status_code == 200:
|
|
|
|
data = json.loads(response.text)
|
2025-07-04 21:31:54 +08:00
|
|
|
print(f"获取到数据:{data}")
|
2025-07-07 18:05:03 +08:00
|
|
|
return data[data_type]
|
2025-07-03 17:50:42 +08:00
|
|
|
else:
|
2025-07-04 21:31:54 +08:00
|
|
|
print(f"请求数据失败,状态码:{response.status_code}")
|
2025-07-03 17:50:42 +08:00
|
|
|
return None
|
|
|
|
except Exception as e:
|
2025-07-04 21:31:54 +08:00
|
|
|
print(f"请求数据失败,异常:{e}")
|
2025-07-03 17:50:42 +08:00
|
|
|
return None
|
2025-07-04 21:31:54 +08:00
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
def get_project_info(projectId : str) -> dict:
|
2025-07-04 21:31:54 +08:00
|
|
|
projecturl = DTURL + GETPROJECTINFO.format(projectId=projectId)
|
|
|
|
return get_data(projecturl, "data")
|
2025-07-03 17:50:42 +08:00
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
def get_jizu_info(turbineId : str) -> dict:
|
2025-07-03 17:50:42 +08:00
|
|
|
jizuurl = DTURL + GETJIZUINFO.format(turbineId=turbineId)
|
2025-07-04 21:31:54 +08:00
|
|
|
return get_data(jizuurl, "data")
|
2025-07-03 17:50:42 +08:00
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
def get_jizu_shigong_info(turbineId : str) -> dict:
|
2025-07-03 17:50:42 +08:00
|
|
|
jizuurl = DTURL + GETSHIGONGINFO
|
|
|
|
params = {
|
2025-07-04 21:31:54 +08:00
|
|
|
"rows": {
|
|
|
|
"turbineId": turbineId
|
2025-07-03 17:50:42 +08:00
|
|
|
}
|
|
|
|
}
|
2025-07-04 21:31:54 +08:00
|
|
|
result = get_data(jizuurl, "rows", params)
|
|
|
|
return result[0] if result else None
|
2025-07-03 17:50:42 +08:00
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
def get_weather(weatherid : str) -> dict:
|
2025-07-03 17:50:42 +08:00
|
|
|
weatherurl = DTURL + GETWEATHERINFO.format(weatherCode=weatherid)
|
2025-07-07 18:05:03 +08:00
|
|
|
return get_data(weatherurl, "data")
|
|
|
|
|
|
|
|
def get_part_list(turbineId : str) -> dict:
|
|
|
|
parturl = DTURL + GETPARTLIST
|
|
|
|
params = {
|
|
|
|
"turbineId" : turbineId
|
|
|
|
}
|
|
|
|
result = get_data(parturl, params = params)
|
|
|
|
print(f"获取到部件{result}")
|
2025-07-08 18:17:02 +08:00
|
|
|
return result, [item["partId"] for item in result]
|
2025-07-07 18:05:03 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-08 18:17:02 +08:00
|
|
|
def get_part_picture(turbineId : str) -> tuple[list[dict], list[dict]]:
|
2025-07-07 18:05:03 +08:00
|
|
|
"""获取对应机组所有图片
|
|
|
|
|
|
|
|
Args:
|
|
|
|
turbineId (str): 机组ID
|
|
|
|
Return:
|
2025-07-08 18:17:02 +08:00
|
|
|
list: 包含所有对应机组的部件信息的列表
|
|
|
|
|
2025-07-07 18:05:03 +08:00
|
|
|
list: 包含所有图片信息的列表(按部件分list)
|
|
|
|
[
|
2025-07-08 10:41:14 +08:00
|
|
|
{
|
|
|
|
"imageId": "图片id",
|
|
|
|
"imageName": "图片名",
|
|
|
|
"imagePath": "图片路径",
|
|
|
|
"partId": "部件id",
|
|
|
|
"partName": "部件名",
|
|
|
|
"imageResolution": "字符串",
|
|
|
|
"focalDistance": "字符串/None",
|
|
|
|
"shootingTime": "字符串/None",
|
|
|
|
"cameraManufacturer": "字符串/None",
|
|
|
|
"cameraModel": "字符串/None",
|
|
|
|
"weather": "字符串/None",
|
|
|
|
"weatherLabel": "字符串/None",
|
|
|
|
"humidness": "数值/None",
|
|
|
|
"temperature": "字符串/None",
|
|
|
|
"windLevel": "数值/None",
|
|
|
|
"shootingMethod": "字符串/None",
|
|
|
|
"shootingMethodLabel": "字符串/None",
|
|
|
|
"shootingDistance": "数值/None",
|
|
|
|
"collectorName": "字符串/None",
|
|
|
|
"imageType": "None",
|
|
|
|
"imageTypeLabel": "None",
|
|
|
|
"audioList": "None",
|
|
|
|
"gps": "字符串/None"
|
|
|
|
},
|
|
|
|
...
|
2025-07-07 18:05:03 +08:00
|
|
|
]
|
|
|
|
"""
|
|
|
|
picturerul = DTURL + GETPICTURELIST
|
2025-07-08 18:17:02 +08:00
|
|
|
part_data, part_list = get_part_list(turbineId)
|
2025-07-07 18:05:03 +08:00
|
|
|
result = []
|
|
|
|
for part_id in part_list:
|
|
|
|
params = {
|
|
|
|
"partId" : part_id,
|
|
|
|
}
|
2025-07-08 10:41:14 +08:00
|
|
|
for images in get_data(picturerul, params = params):
|
|
|
|
result.append(images)
|
|
|
|
print(f"图片数据获取成功:{result}")
|
2025-07-08 18:17:02 +08:00
|
|
|
return part_data, result
|
2025-07-08 10:41:14 +08:00
|
|
|
|
2025-07-09 17:19:59 +08:00
|
|
|
def get_yepian_xiangqing(yepian_id : str) -> dict:
|
|
|
|
url = GETYEPIANINFO.format(partId=yepian_id)
|
|
|
|
return get_data(DTURL + url, "data")
|
|
|
|
|
2025-07-08 10:41:14 +08:00
|
|
|
def find_defect_record(defect_pictures : list[dict]):
|
|
|
|
"""查找缺陷图片的缺陷记录
|
|
|
|
|
|
|
|
Args:
|
|
|
|
defect_pictures (list[dict]): 缺陷图列表
|
|
|
|
"""
|
2025-07-07 18:05:03 +08:00
|
|
|
|