87 lines
3.2 KiB
Python
87 lines
3.2 KiB
Python
from utils.api_utils import ApiUtils
|
||
import logging
|
||
|
||
class TaryApi:
|
||
def __init__(self):
|
||
"""初始化托盘API工具类"""
|
||
self.api_utils = ApiUtils()
|
||
|
||
def get_tary_info(self, tary_code):
|
||
"""
|
||
获取托盘信息
|
||
|
||
Args:
|
||
tary_code: 托盘编号
|
||
|
||
Returns:
|
||
dict: 托盘信息
|
||
"""
|
||
try:
|
||
# API 配置中的键名
|
||
api_key = "get_tray_info"
|
||
|
||
# 将托盘号作为参数传递
|
||
response = self.api_utils.get(api_key, params={"tp_note": tary_code})
|
||
|
||
# 记录API响应
|
||
logging.info(f"托盘API响应: {response}")
|
||
|
||
# 请求失败时返回空数据
|
||
if not response.get("status", False):
|
||
return {
|
||
"success": False,
|
||
"message": "获取托盘信息失败",
|
||
"data": None
|
||
}
|
||
|
||
# 成功时格式化数据
|
||
if response.get("data"):
|
||
# 记录data的类型
|
||
logging.info(f"数据类型: {type(response['data'])}, 数据内容: {response['data']}")
|
||
|
||
# 如果data直接是对象,则使用该对象
|
||
if isinstance(response["data"], dict):
|
||
logging.info("处理data为字典的情况")
|
||
tray_info = response["data"]
|
||
# 如果data是数组,并且有元素,则使用第一个元素
|
||
elif isinstance(response["data"], list) and len(response["data"]) > 0:
|
||
logging.info("处理data为数组的情况")
|
||
tray_info = response["data"][0]
|
||
else:
|
||
logging.warning(f"数据格式不支持: {response['data']}")
|
||
return {
|
||
"success": False,
|
||
"message": "托盘数据格式不正确",
|
||
"data": None
|
||
}
|
||
|
||
# 构建返回数据
|
||
formatted_data = {
|
||
"tp_note": tray_info.get("tp_note", ""), # 托盘号
|
||
"product_name": tray_info.get("zx_name", ""), # 产品名称
|
||
"axis_type": tray_info.get("zx", ""), # 轴型
|
||
"tier": str(tray_info.get("cs", "")), # 托盘料
|
||
"weight": str(tray_info.get("zl", "")), # 重量
|
||
"quantity": "" # 数量先空下
|
||
}
|
||
|
||
return {
|
||
"success": True,
|
||
"message": "获取托盘信息成功",
|
||
"data": formatted_data
|
||
}
|
||
|
||
# 数据为空
|
||
return {
|
||
"success": False,
|
||
"message": "未找到托盘信息",
|
||
"data": None
|
||
}
|
||
except Exception as e:
|
||
logging.error(f"获取托盘信息异常: {str(e)}")
|
||
return {
|
||
"success": False,
|
||
"message": f"获取托盘信息异常: {str(e)}",
|
||
"data": None
|
||
}
|