feat(borrow,outbound): 库管(WAREHOUSE_MGR)代建申请强制审批

- submit/create 新增 force_approval:库管建单无视物料是否需审批,一律走审批
- 路由按当前角色为 WAREHOUSE_MGR 传 true;未选审批人返回明确业务错误
This commit is contained in:
yueli
2026-09-09 16:19:38 +08:00
parent cd600f9fc2
commit 044e6dbd98
4 changed files with 16 additions and 6 deletions

View File

@ -62,7 +62,7 @@ class BorrowApprovalService:
@staticmethod
def submit_approval(applicant_id, items, allowed_approvers, remark=None, approver_id=None,
borrower_name=None):
borrower_name=None, force_approval=False):
"""
提交借库申请(仅存储意向,不扣库存)
@ -111,10 +111,14 @@ class BorrowApprovalService:
except (TypeError, ValueError) as e:
raise ValueError(f"{idx + 1} 条物品的 quantity 格式无效: {str(e)}")
# ★ 需审批判定:明细含“出库/借库需审批物料 → 走审批流程;否则默认自动通过
# ★ 需审批判定:库管代建(force_approval)或明细含需审批物料 → 走审批;否则默认自动通过
from app.services.approval_control import resolve_approval_control
need_approval, flagged_materials = resolve_approval_control(items)
if force_approval:
need_approval = True
if need_approval and not approver_id:
if force_approval:
raise ValueError("库管代建借库申请必须选择审批人后再提交")
_names = "".join(f"{m['name']}{m['spec_model'] or '-'}" for m in flagged_materials)
raise ValueError(f"以下物料需审批出库/借库:{_names}。请选择审批人后再提交")