diff --git a/inventory-backend/app/api/v1/auth.py b/inventory-backend/app/api/v1/auth.py index 46560ec..4b76de7 100644 --- a/inventory-backend/app/api/v1/auth.py +++ b/inventory-backend/app/api/v1/auth.py @@ -227,8 +227,8 @@ def delete_user(user_id): claims = get_jwt() operator_role = claims.get('role') - AuthService.delete_user(user_id, operator_role) - return jsonify({'msg': '删除成功'}), 200 + username = AuthService.delete_user(user_id, operator_role) + return jsonify({'msg': '删除成功', 'username': username}), 200 except Exception as e: current_app.logger.error(f"Delete User Failed: {str(e)}") return jsonify({'msg': str(e)}), 400 diff --git a/inventory-backend/app/api/v1/bom.py b/inventory-backend/app/api/v1/bom.py index cd7db58..59b5ad6 100644 --- a/inventory-backend/app/api/v1/bom.py +++ b/inventory-backend/app/api/v1/bom.py @@ -222,7 +222,8 @@ def delete_bom(bom_no): db.session.commit() return jsonify({ 'code': 200, - 'msg': '删除成功' + 'msg': '删除成功', + 'bom_no': bom_no }) except Exception as e: current_app.logger.error(f'删除BOM失败: {str(e)}') diff --git a/inventory-backend/app/api/v1/inbound/base.py b/inventory-backend/app/api/v1/inbound/base.py index fc51928..754e7d7 100644 --- a/inventory-backend/app/api/v1/inbound/base.py +++ b/inventory-backend/app/api/v1/inbound/base.py @@ -330,8 +330,8 @@ def update(id): ) def delete(id): try: - MaterialBaseService.delete_material(id) - return jsonify({"code": 200, "msg": "删除成功"}) + material_name = MaterialBaseService.delete_material(id) + return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 diff --git a/inventory-backend/app/api/v1/inbound/buy.py b/inventory-backend/app/api/v1/inbound/buy.py index a5ae7c8..9c636c2 100644 --- a/inventory-backend/app/api/v1/inbound/buy.py +++ b/inventory-backend/app/api/v1/inbound/buy.py @@ -307,8 +307,8 @@ def update_buy(id): ) def delete_buy(id): try: - BuyInboundService.delete_inbound(id) - return jsonify({"code": 200, "msg": "删除成功"}) + material_name = BuyInboundService.delete_inbound(id) + return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name}) except Exception as e: return jsonify({"code": 500, "msg": str(e)}), 500 diff --git a/inventory-backend/app/api/v1/inbound/product.py b/inventory-backend/app/api/v1/inbound/product.py index 5398262..d16b0d0 100644 --- a/inventory-backend/app/api/v1/inbound/product.py +++ b/inventory-backend/app/api/v1/inbound/product.py @@ -183,8 +183,8 @@ def update(id): ) def delete(id): try: - ProductInboundService.delete_inbound(id) - return jsonify({"code": 200, "msg": "删除成功"}) + material_name = ProductInboundService.delete_inbound(id) + return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 diff --git a/inventory-backend/app/api/v1/inbound/semi.py b/inventory-backend/app/api/v1/inbound/semi.py index a0d15d9..0ac374d 100644 --- a/inventory-backend/app/api/v1/inbound/semi.py +++ b/inventory-backend/app/api/v1/inbound/semi.py @@ -178,8 +178,8 @@ def update_semi(id): ) def delete_semi(id): try: - SemiInboundService.delete_inbound(id) - return jsonify({"code": 200, "msg": "删除成功"}) + material_name = SemiInboundService.delete_inbound(id) + return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 diff --git a/inventory-backend/app/api/v1/inbound/service.py b/inventory-backend/app/api/v1/inbound/service.py index 19bd861..e5945c2 100644 --- a/inventory-backend/app/api/v1/inbound/service.py +++ b/inventory-backend/app/api/v1/inbound/service.py @@ -266,10 +266,11 @@ def update_service(service_id): def delete_service(service_id): """删除服务权益""" try: - ServiceService.delete_service(service_id) + service_name = ServiceService.delete_service(service_id) return jsonify({ 'code': 200, - 'msg': '删除成功' + 'msg': '删除成功', + 'service_name': service_name }) except ValueError as e: return jsonify({'code': 404, 'msg': str(e)}), 404 diff --git a/inventory-backend/app/api/v1/warehouse.py b/inventory-backend/app/api/v1/warehouse.py index 9d1fdd5..4c5139c 100644 --- a/inventory-backend/app/api/v1/warehouse.py +++ b/inventory-backend/app/api/v1/warehouse.py @@ -186,11 +186,11 @@ def delete_location(location_id): delete_recursive(location) db.session.commit() - + return jsonify({ 'code': 200, 'msg': '删除成功', - 'data': None + 'location_code': location.location_code }) except Exception as e: db.session.rollback() diff --git a/inventory-backend/app/services/auth_service.py b/inventory-backend/app/services/auth_service.py index 9480a56..ebb13e6 100644 --- a/inventory-backend/app/services/auth_service.py +++ b/inventory-backend/app/services/auth_service.py @@ -317,9 +317,11 @@ class AuthService: if not user: raise Exception("用户不存在") + # 提前获取用户名用于审计日志 + username = user.username db.session.delete(user) db.session.commit() - return True + return username @staticmethod def get_user_permissions(role_code): diff --git a/inventory-backend/app/services/inbound/base_service.py b/inventory-backend/app/services/inbound/base_service.py index 2551fc4..4cb8d01 100644 --- a/inventory-backend/app/services/inbound/base_service.py +++ b/inventory-backend/app/services/inbound/base_service.py @@ -568,6 +568,9 @@ class MaterialBaseService: if not material: raise ValueError("数据不存在") + # 提前获取物料名称用于审计日志 + material_name = material.name + buy_usage_count = StockBuy.query.filter_by(base_id=m_id).count() semi_usage_count = StockSemi.query.filter_by(base_id=m_id).count() prod_usage_count = StockProduct.query.filter_by(base_id=m_id).count() @@ -585,7 +588,7 @@ class MaterialBaseService: db.session.delete(material) db.session.commit() - return True + return material_name except Exception as e: db.session.rollback() diff --git a/inventory-backend/app/services/inbound/buy_service.py b/inventory-backend/app/services/inbound/buy_service.py index a9bb39a..ad43f13 100644 --- a/inventory-backend/app/services/inbound/buy_service.py +++ b/inventory-backend/app/services/inbound/buy_service.py @@ -280,9 +280,11 @@ class BuyInboundService: try: stock = StockBuy.query.get(stock_id) if not stock: raise ValueError("记录不存在") + # 提前获取物料名称用于审计日志 + material_name = stock.material_name db.session.delete(stock) db.session.commit() - return True + return material_name except Exception as e: db.session.rollback() raise e diff --git a/inventory-backend/app/services/inbound/product_service.py b/inventory-backend/app/services/inbound/product_service.py index 5f4c447..a2d77a5 100644 --- a/inventory-backend/app/services/inbound/product_service.py +++ b/inventory-backend/app/services/inbound/product_service.py @@ -252,9 +252,12 @@ class ProductInboundService: try: stock = StockProduct.query.get(stock_id) if stock: + # 提前获取物料名称用于审计日志 + material_name = stock.material_name db.session.delete(stock) db.session.commit() - return True + return material_name + return None except Exception as e: db.session.rollback() raise e diff --git a/inventory-backend/app/services/inbound/semi_service.py b/inventory-backend/app/services/inbound/semi_service.py index f7802ad..feb6dc6 100644 --- a/inventory-backend/app/services/inbound/semi_service.py +++ b/inventory-backend/app/services/inbound/semi_service.py @@ -341,9 +341,11 @@ class SemiInboundService: stock = StockSemi.query.get(stock_id) if not stock: raise ValueError("记录不存在") + # 提前获取物料名称用于审计日志 + material_name = stock.material_name db.session.delete(stock) db.session.commit() - return True + return material_name except Exception as e: db.session.rollback() raise e diff --git a/inventory-backend/app/services/inbound/service_service.py b/inventory-backend/app/services/inbound/service_service.py index bfa4be2..34dd82c 100644 --- a/inventory-backend/app/services/inbound/service_service.py +++ b/inventory-backend/app/services/inbound/service_service.py @@ -144,10 +144,12 @@ class ServiceService: def delete_service(cls, service_id): """软删除""" service = cls.get_service(service_id) + # 提前获取服务名称用于审计日志 + service_name = service.service_name service.is_deleted = True service.updated_at = datetime.now() db.session.commit() - return True + return service_name @classmethod def get_service_list(cls, page=1, per_page=20, keyword=None, diff --git a/inventory-backend/app/utils/decorators.py b/inventory-backend/app/utils/decorators.py index 367b99d..4aa5a64 100644 --- a/inventory-backend/app/utils/decorators.py +++ b/inventory-backend/app/utils/decorators.py @@ -257,6 +257,23 @@ def audit_log(module: str, action: str = None, get_target_id_fn=None, get_target target_name = get_target_name_fn() except Exception: pass + # 如果仍未获取到目标名称,尝试从响应 JSON 中常见字段获取 + if not target_name and hasattr(response, 'json'): + resp_data = response.get_json() + if resp_data and isinstance(resp_data, dict): + # 优先从顶层获取 + for field in ['order_no', 'outbound_no', 'borrow_no', 'adjustment_no', 'material_name']: + if field in resp_data: + target_name = resp_data[field] + break + # 再尝试从 data 字段获取(部分 API 返回格式) + if not target_name and 'data' in resp_data: + data = resp_data['data'] + if isinstance(data, dict): + for field in ['order_no', 'outbound_no', 'borrow_no', 'adjustment_no', 'material_name']: + if field in data: + target_name = data[field] + break # 获取 details details = None