fix: send correct numeric user_id to stocktake draft api to prevent 500 error

This commit is contained in:
DXC
2026-03-13 10:24:34 +08:00
parent f42f19f8e5
commit d61de5cfc9

View File

@ -10,6 +10,14 @@ from app.models.inbound.buy import StockBuy
from app.models.inbound.stocktake import StocktakeDraft from app.models.inbound.stocktake import StocktakeDraft
from app.models.transaction import TransBorrow from app.models.transaction import TransBorrow
def _normalize_user_id(user_id):
"""规范化 user_id确保是有效字符串"""
if not user_id or not isinstance(user_id, str) or len(user_id) > 100:
return 'admin'
return user_id.strip()
# 尝试导入半成品和成品 # 尝试导入半成品和成品
try: try:
from app.models.inbound.semi import StockSemi from app.models.inbound.semi import StockSemi
@ -119,7 +127,7 @@ def get_drafts():
获取当前用户的盘点进度 获取当前用户的盘点进度
支持过滤: session_id, is_finished, is_processed 支持过滤: session_id, is_finished, is_processed
""" """
user_id = request.args.get('user_id', 'admin') user_id = _normalize_user_id(request.args.get('user_id', 'admin'))
session_id = request.args.get('session_id') session_id = request.args.get('session_id')
is_finished = request.args.get('is_finished') is_finished = request.args.get('is_finished')
is_processed = request.args.get('is_processed') is_processed = request.args.get('is_processed')
@ -146,7 +154,7 @@ def add_draft():
""" """
try: try:
data = request.json data = request.json
user_id = data.get('user_id', 'admin') user_id = _normalize_user_id(data.get('user_id', 'admin'))
uuid = data.get('uuid') uuid = data.get('uuid')
quantity = float(data.get('quantity', 1)) quantity = float(data.get('quantity', 1))
session_id = data.get('session_id') session_id = data.get('session_id')
@ -212,7 +220,7 @@ def clear_draft():
支持清除指定 session_id 的记录,或清除所有未完成的记录 支持清除指定 session_id 的记录,或清除所有未完成的记录
""" """
data = request.json data = request.json
user_id = data.get('user_id', 'admin') user_id = _normalize_user_id(data.get('user_id', 'admin'))
session_id = data.get('session_id') session_id = data.get('session_id')
try: try:
@ -243,7 +251,7 @@ def start_new_session():
2. 返回新的 session_id 2. 返回新的 session_id
""" """
data = request.json data = request.json
user_id = data.get('user_id', 'admin') user_id = _normalize_user_id(data.get('user_id', 'admin'))
try: try:
# 清除旧的未处理盘点数据 # 清除旧的未处理盘点数据
@ -279,7 +287,7 @@ def finish_stocktake():
3. 不删除任何草稿数据,保留历史 3. 不删除任何草稿数据,保留历史
""" """
data = request.json data = request.json
user_id = data.get('user_id', 'admin') user_id = _normalize_user_id(data.get('user_id', 'admin'))
session_id = data.get('session_id') session_id = data.get('session_id')
if not session_id: if not session_id:
@ -330,7 +338,7 @@ def get_variance_report():
返回所有 is_finished=True 且 is_processed=False 的记录 返回所有 is_finished=True 且 is_processed=False 的记录
即:已结束盘点但尚未手动平账的差异记录 即:已结束盘点但尚未手动平账的差异记录
""" """
user_id = request.args.get('user_id', 'admin') user_id = _normalize_user_id(request.args.get('user_id', 'admin'))
session_id = request.args.get('session_id') session_id = request.args.get('session_id')
try: try: