fix: capture and persist target object names for delete, outbound, and borrow operations in audit logs

This commit is contained in:
DXC
2026-03-20 15:47:13 +08:00
parent b08bbba718
commit 032479fe38
15 changed files with 54 additions and 21 deletions

View File

@ -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()

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,