feat: 为核心业务 API 全面挂载审计日志装饰器

This commit is contained in:
DXC
2026-03-10 17:16:57 +08:00
parent aeea3fc25c
commit ea28ee1c86
7 changed files with 107 additions and 7 deletions

View File

@ -4,7 +4,7 @@ from app.models.base import MaterialBase
from app.models.bom import BomTable
from app.extensions import db
from flask_jwt_extended import jwt_required, get_jwt
from app.utils.decorators import permission_required
from app.utils.decorators import permission_required, audit_log
from app.services.auth_service import AuthService
bom_bp = Blueprint('bom', __name__)
@ -109,6 +109,11 @@ def get_bom_detail(bom_no):
@bom_bp.route('/save', methods=['POST'])
@jwt_required()
@permission_required('bom_manage:operation')
@audit_log(
module='BOM管理',
action='新增',
get_target_name_fn=lambda: request.get_json().get('bom_no') if request.get_json() else None
)
def save_bom():
"""保存或更新 BOM 配方(支持自定义 bom_no 和 多版本)"""
try:
@ -191,6 +196,11 @@ def get_bom_with_stock_by_no(bom_no):
@bom_bp.route('/<path:bom_no>', methods=['DELETE'])
@jwt_required()
@permission_required('bom_manage:operation')
@audit_log(
module='BOM管理',
action='删除',
get_target_id_fn=lambda: request.view_args.get('bom_no')
)
def delete_bom(bom_no):
"""
根据 BOM 编号删除
@ -243,6 +253,11 @@ def get_bom(parent_id):
@bom_bp.route('', methods=['POST'])
@jwt_required()
@permission_required('bom_manage:operation')
@audit_log(
module='BOM管理',
action='新增',
get_target_name_fn=lambda: request.get_json().get('bom_no') if request.get_json() else None
)
def save_bom_legacy():
try:
req_data = request.get_json()