diff --git a/inventory-backend/app/api/v1/transactions.py b/inventory-backend/app/api/v1/transactions.py
index 01857aa..2c2207e 100644
--- a/inventory-backend/app/api/v1/transactions.py
+++ b/inventory-backend/app/api/v1/transactions.py
@@ -307,7 +307,7 @@ def approve_borrow_request(request_id):
@permission_required('op_borrow_approval')
def close_borrow_request(request_id):
"""
- 手动完结已通过的借库审批单(status 1-已通过 → 3-已完成)
+ 手动完结已通过的借库审批单(status 1-已通过 → 4-已完结)
参照出库审批的完结逻辑,供库管/主管在未走扫码借出时强制完结
"""
try:
diff --git a/inventory-backend/app/services/borrow_service.py b/inventory-backend/app/services/borrow_service.py
index 8e43840..f580c9a 100644
--- a/inventory-backend/app/services/borrow_service.py
+++ b/inventory-backend/app/services/borrow_service.py
@@ -464,18 +464,21 @@ class BorrowApprovalService:
@staticmethod
def mark_completed(request_id):
- """标记审批单为已完成(借库执行完成后调用)"""
+ """
+ 手动完结已通过的借库审批单(status 1-已通过 → 4-已完结,对齐出库审批的完结语义)。
+ 注意:真正“扫码借出执行完成”走 trans_service.execute_dispatch,置 status=3(已完成)。
+ """
approval = BorrowApproval.query.get(request_id)
if not approval:
return False, "审批单不存在", None
if approval.status != 1:
- return False, f"只有已通过的审批单才能标记为完成 (当前状态: {approval.status})", None
+ return False, f"只有已通过的审批单才能标记为完结 (当前状态: {approval.status})", None
try:
- approval.status = 3 # 已完成
+ approval.status = 4 # 已完结
db.session.commit()
- return True, "审批单已完成", approval
+ return True, "审批单已完结", approval
except Exception as e:
db.session.rollback()
return False, f"操作失败: {str(e)}", None
\ No newline at end of file
diff --git a/inventory-web/src/views/borrow/approval/index.vue b/inventory-web/src/views/borrow/approval/index.vue
index 338eaa2..f4e96ec 100644
--- a/inventory-web/src/views/borrow/approval/index.vue
+++ b/inventory-web/src/views/borrow/approval/index.vue
@@ -10,6 +10,7 @@
已通过
已驳回
已完成
+ 已完结
刷新
@@ -108,7 +109,7 @@
-
+
{{ getApproverName(row.actual_approver_id) }}
-
@@ -254,14 +255,14 @@ const userNameCache = ref>({})
// --- 工具函数 ---
const statusText = (status: number) => {
const map: Record = {
- 0: '待审批', 1: '已通过', 2: '已驳回', 3: '已完成'
+ 0: '待审批', 1: '已通过', 2: '已驳回', 3: '已完成', 4: '已完结'
}
return map[status] ?? '-'
}
const statusTagType = (status: number) => {
const map: Record = {
- 0: 'warning', 1: 'success', 2: 'danger', 3: 'info'
+ 0: 'warning', 1: 'success', 2: 'danger', 3: 'info', 4: 'info'
}
return map[status] ?? 'info'
}