chore: remove legacy inventory stocktake menu and permission configs
This commit is contained in:
@ -157,6 +157,8 @@ def create_app():
|
|||||||
try:
|
try:
|
||||||
from app.services.permission_service import PermissionService
|
from app.services.permission_service import PermissionService
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
|
# 先清理旧版菜单,再初始化新版
|
||||||
|
PermissionService.cleanup_legacy_stocktake_menus()
|
||||||
PermissionService.init_audit_menu()
|
PermissionService.init_audit_menu()
|
||||||
PermissionService.init_stocktake_menus()
|
PermissionService.init_stocktake_menus()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@ -358,3 +358,33 @@ class PermissionService:
|
|||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
print(f"❌ 初始化盘点管理菜单失败: {str(e)}")
|
print(f"❌ 初始化盘点管理菜单失败: {str(e)}")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def cleanup_legacy_stocktake_menus():
|
||||||
|
"""
|
||||||
|
清理残留的旧版库存盘点菜单
|
||||||
|
如果数据库中存在挂在入库管理下的旧版库存盘点菜单,清理掉
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# 查找可能存在的旧版库存盘点菜单(入库管理下的 stocktake)
|
||||||
|
# 旧版可能在入库管理 (path like '%inventory%stocktake') 或者 code 包含 stocktake 但不是新的
|
||||||
|
legacy_menus = SysMenu.query.filter(
|
||||||
|
SysMenu.code.in_(['stocktake', 'inventory_stocktake_old'])
|
||||||
|
).all()
|
||||||
|
|
||||||
|
for menu in legacy_menus:
|
||||||
|
# 删除关联的权限
|
||||||
|
SysRolePermission.query.filter_by(target_code=menu.code).delete()
|
||||||
|
# 删除关联的元素
|
||||||
|
SysElement.query.filter_by(menu_code=menu.code).delete()
|
||||||
|
# 删除菜单
|
||||||
|
db.session.delete(menu)
|
||||||
|
print(f"🗑️ 已清理旧版库存盘点菜单: {menu.code} ({menu.name})")
|
||||||
|
|
||||||
|
db.session.commit()
|
||||||
|
return True
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
db.session.rollback()
|
||||||
|
print(f"⚠️ 清理旧版菜单失败: {str(e)}")
|
||||||
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user