fix: add missing imports for openpyxl and patch draft resolution in stock adjustment
This commit is contained in:
@ -14,6 +14,17 @@ from app.models.inbound.stocktake import StocktakeDraft
|
||||
from app.models.transaction import TransBorrow
|
||||
from app.models.base import MaterialBase
|
||||
|
||||
# 尝试导入半成品和成品
|
||||
try:
|
||||
from app.models.inbound.semi import StockSemi
|
||||
except ImportError:
|
||||
StockSemi = None
|
||||
|
||||
try:
|
||||
from app.models.inbound.product import StockProduct
|
||||
except ImportError:
|
||||
StockProduct = None
|
||||
|
||||
|
||||
def _normalize_user_id(user_id):
|
||||
"""规范化 user_id,确保是有效字符串"""
|
||||
@ -356,17 +367,22 @@ def adjust_stock():
|
||||
"""
|
||||
data = request.json
|
||||
draft_id = data.get('draft_id')
|
||||
stock_id = data.get('stock_id') # 备用参数:通过 stock_id 查找草稿
|
||||
operator_name = data.get('operator_name', 'System')
|
||||
remark = data.get('remark', '')
|
||||
|
||||
if not draft_id:
|
||||
return jsonify({"message": "draft_id 不能为空"}), 400
|
||||
if not draft_id and not stock_id:
|
||||
return jsonify({"message": "draft_id 或 stock_id 不能同时为空"}), 400
|
||||
|
||||
try:
|
||||
# 1. 获取草稿记录
|
||||
draft = StocktakeDraft.query.get(draft_id)
|
||||
# 1. 获取草稿记录(优先用 draft_id,否则用 stock_id)
|
||||
draft = StocktakeDraft.query.get(draft_id) if draft_id else None
|
||||
if not draft and stock_id:
|
||||
# 尝试通过 stock_id 查找未处理的草稿
|
||||
draft = StocktakeDraft.query.filter_by(stock_id=stock_id).first()
|
||||
|
||||
if not draft:
|
||||
return jsonify({"message": "草稿记录不存在"}), 404
|
||||
return jsonify({"message": f"平账失败:找不到对应的盘点草稿记录(draft_id={draft_id}, stock_id={stock_id})"}), 404
|
||||
|
||||
# 2. 获取库存记录
|
||||
if not draft.stock_id or not draft.source_table:
|
||||
|
||||
Reference in New Issue
Block a user