fix: add missing imports for openpyxl and patch draft resolution in stock adjustment

This commit is contained in:
DXC
2026-03-18 13:24:16 +08:00
parent 49a66f9be3
commit e08012d9dd
2 changed files with 34 additions and 10 deletions

View File

@ -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: