diff --git a/inventory-backend/app/api/v1/inbound/stock.py b/inventory-backend/app/api/v1/inbound/stock.py index 458d79d..41ecf28 100644 --- a/inventory-backend/app/api/v1/inbound/stock.py +++ b/inventory-backend/app/api/v1/inbound/stock.py @@ -16,9 +16,9 @@ from app.models.base import MaterialBase # 尝试导入用户模型 try: - from app.models.sys.user import User + from app.models.system import SysUser except ImportError: - User = None + SysUser = None # 尝试导入半成品和成品 try: @@ -590,21 +590,29 @@ def export_stocktake(): } def get_user_name(user_id): - """获取用户真实姓名或昵称""" - if not User or not user_id: + """获取用户真实姓名 + SysUser.username 存储格式为 "真实姓名/登录账号" (例如: 张三/zhangsan01) + """ + if not SysUser or not user_id: return str(user_id) if user_id else '-' try: user = None # 尝试通过ID或用户名查找 if str(user_id).isdigit(): - user = User.query.get(int(user_id)) + user = SysUser.query.get(int(user_id)) if not user: - user = User.query.filter_by(username=str(user_id)).first() + user = SysUser.query.filter(SysUser.username.like(f"%/{user_id}")).first() if not user: - user = User.query.filter_by(username=str(user_id).upper()).first() + user = SysUser.query.filter_by(username=str(user_id)).first() + if not user: - user = User.query.filter_by(username=str(user_id).lower()).first() - return getattr(user, 'real_name', None) or getattr(user, 'nickname', None) or str(user_id) + return str(user_id) + + # 解析 username 格式: "张三/zhangsan01" -> 取前面的真实姓名 + raw_username = getattr(user, 'username', None) or str(user_id) + if '/' in raw_username: + return raw_username.split('/')[0] + return raw_username except: return str(user_id)