feat(borrow,outbound): 库管(WAREHOUSE_MGR)代建申请强制审批
- submit/create 新增 force_approval:库管建单无视物料是否需审批,一律走审批 - 路由按当前角色为 WAREHOUSE_MGR 传 true;未选审批人返回明确业务错误
This commit is contained in:
@ -743,7 +743,7 @@ class OutboundApprovalService:
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def create_request(applicant_id, items, allowed_approvers, remark=None, approver_id=None, outbound_type=None):
|
||||
def create_request(applicant_id, items, allowed_approvers, remark=None, approver_id=None, outbound_type=None, force_approval=False):
|
||||
"""
|
||||
创建出库审批单(申请阶段,直接存储前端传来的物料信息快照,不关联具体库存记录)
|
||||
|
||||
@ -787,10 +787,14 @@ class OutboundApprovalService:
|
||||
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}。请选择审批人后再提交")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user