USE jiaheng_erp; SET NAMES utf8mb4; START TRANSACTION; -- 菜单权限 INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status) SELECT 'MENU_DASHBOARD', '经营驾驶舱菜单', 'DASHBOARD', 'VIEW', 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD'); INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status) SELECT 'MENU_SALES_PLANNING', '订单与计划中心菜单', 'SALES_PLANNING', 'VIEW', 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING'); INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status) SELECT 'MENU_PROCESS_CENTER', '流程与工序中心菜单', 'PROCESS_CENTER', 'VIEW', 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER'); INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status) SELECT 'MENU_DATA_MODEL', '模块联动与数据设计菜单', 'DATA_MODEL', 'VIEW', 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_DATA_MODEL'); -- 员工 INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT 'EMP-ADMIN-001', '系统管理员', (SELECT id FROM sys_department WHERE dept_code = 'ADMIN'), '13800000001', 'M', CURRENT_DATE(), 'ERP管理员', 'DAY', NULL, 0, 0, 'ACTIVE', '系统初始化账号' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM hr_employee WHERE employee_code = 'EMP-ADMIN-001'); INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT 'EMP-SALES-001', '销售专员', (SELECT id FROM sys_department WHERE dept_code = 'SALES'), '13800000002', 'F', CURRENT_DATE(), '销售跟单', 'DAY', NULL, 0, 0, 'ACTIVE', '样例销售账号' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM hr_employee WHERE employee_code = 'EMP-SALES-001'); INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT 'EMP-PLAN-001', '计划员', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), '13800000003', 'M', CURRENT_DATE(), '生产计划', 'DAY', NULL, 0, 0, 'ACTIVE', '样例计划账号' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM hr_employee WHERE employee_code = 'EMP-PLAN-001'); INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT 'EMP-WH-001', '仓库主管', (SELECT id FROM sys_department WHERE dept_code = 'WAREHOUSE'), '13800000004', 'M', CURRENT_DATE(), '仓储主管', 'DAY', NULL, 0, 0, 'ACTIVE', '样例仓储账号' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM hr_employee WHERE employee_code = 'EMP-WH-001'); INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT 'EMP-SUP-001', '车间主管', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), '13800000005', 'M', CURRENT_DATE(), '车间主管', 'DAY', NULL, 0, 1, 'ACTIVE', '样例车间主管账号' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM hr_employee WHERE employee_code = 'EMP-SUP-001'); -- 用户 INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT 'admin', 'pbkdf2_sha256$600000$wQvlXNnVpATAKxQ4TW41JQ==$KcuwnxttYYu1RyThhviUb4BaCztSkwZ_Z-oUkz3lwzs=', (SELECT id FROM hr_employee WHERE employee_code = 'EMP-ADMIN-001'), (SELECT id FROM sys_department WHERE dept_code = 'ADMIN'), '系统管理员', 'admin@jiaheng.local', 1, NULL, 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'admin'); INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT 'sales', 'pbkdf2_sha256$600000$dK6ZnRGU7UWZGguuiTZ63g==$R3H8ds5shAvmwK9AblmKgufZvlJTIPWzK_6CvO_a73M=', (SELECT id FROM hr_employee WHERE employee_code = 'EMP-SALES-001'), (SELECT id FROM sys_department WHERE dept_code = 'SALES'), '销售专员', 'sales@jiaheng.local', 0, NULL, 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'sales'); INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT 'planner', 'pbkdf2_sha256$600000$yJtJeB76-AWLXUKd8ex20A==$PyZUtFuPjGlb0nYLBx9IHunjhtnV-HjE5pauLD-ogHk=', (SELECT id FROM hr_employee WHERE employee_code = 'EMP-PLAN-001'), (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), '计划员', 'planner@jiaheng.local', 0, NULL, 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'planner'); INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT 'warehouse', 'pbkdf2_sha256$600000$FmDxVJ07KoHNLocfUMilGw==$ZKuYJnKc_aUZ1el128w9Ukn3ofC_OQQrr-86iV412XY=', (SELECT id FROM hr_employee WHERE employee_code = 'EMP-WH-001'), (SELECT id FROM sys_department WHERE dept_code = 'WAREHOUSE'), '仓库主管', 'warehouse@jiaheng.local', 0, NULL, 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'warehouse'); INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT 'supervisor', 'pbkdf2_sha256$600000$GsM4Kgs232UoRx-QoHmZ_w==$E33NOSOdhtd_-LqqxL9QAYjPmOhDqUkyxXNj5CRe1aY=', (SELECT id FROM hr_employee WHERE employee_code = 'EMP-SUP-001'), (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), '车间主管', 'supervisor@jiaheng.local', 0, NULL, 'ACTIVE' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'supervisor'); -- 用户角色 INSERT INTO sys_user_role (user_id, role_id) SELECT (SELECT id FROM sys_user WHERE username = 'admin'), (SELECT id FROM sys_role WHERE role_code = 'ADMIN') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_user_role WHERE user_id = (SELECT id FROM sys_user WHERE username = 'admin') AND role_id = (SELECT id FROM sys_role WHERE role_code = 'ADMIN') ); INSERT INTO sys_user_role (user_id, role_id) SELECT (SELECT id FROM sys_user WHERE username = 'sales'), (SELECT id FROM sys_role WHERE role_code = 'SALES') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_user_role WHERE user_id = (SELECT id FROM sys_user WHERE username = 'sales') AND role_id = (SELECT id FROM sys_role WHERE role_code = 'SALES') ); INSERT INTO sys_user_role (user_id, role_id) SELECT (SELECT id FROM sys_user WHERE username = 'planner'), (SELECT id FROM sys_role WHERE role_code = 'PLANNER') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_user_role WHERE user_id = (SELECT id FROM sys_user WHERE username = 'planner') AND role_id = (SELECT id FROM sys_role WHERE role_code = 'PLANNER') ); INSERT INTO sys_user_role (user_id, role_id) SELECT (SELECT id FROM sys_user WHERE username = 'warehouse'), (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_user_role WHERE user_id = (SELECT id FROM sys_user WHERE username = 'warehouse') AND role_id = (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE') ); INSERT INTO sys_user_role (user_id, role_id) SELECT (SELECT id FROM sys_user WHERE username = 'supervisor'), (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_user_role WHERE user_id = (SELECT id FROM sys_user WHERE username = 'supervisor') AND role_id = (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR') ); -- 角色菜单权限 INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'ADMIN'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'ADMIN') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'ADMIN'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'ADMIN') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'ADMIN'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'ADMIN') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'ADMIN'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DATA_MODEL') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'ADMIN') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DATA_MODEL') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'SALES'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'SALES') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'SALES'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'SALES') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'PLANNER'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'PLANNER') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'PLANNER'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'PLANNER') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_SALES_PLANNING') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'PLANNER'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'PLANNER') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'WAREHOUSE') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_DASHBOARD') ); INSERT INTO sys_role_permission (role_id, permission_id) SELECT (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR'), (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_role_permission WHERE role_id = (SELECT id FROM sys_role WHERE role_code = 'SUPERVISOR') AND permission_id = (SELECT id FROM sys_permission WHERE permission_code = 'MENU_PROCESS_CENTER') ); -- 细分菜单权限 INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status) SELECT p.permission_code, p.permission_name, p.module_code, p.action_code, 'ACTIVE' FROM ( SELECT 'MENU_SUPPLIER_MANAGEMENT' AS permission_code, '供应商管理菜单' AS permission_name, 'SUPPLIER_MANAGEMENT' AS module_code, 'VIEW' AS action_code UNION ALL SELECT 'MENU_PURCHASE_ORDER', '采购订单菜单', 'PURCHASE_ORDER', 'VIEW' UNION ALL SELECT 'MENU_PURCHASE_RECEIPT', '到货入库菜单', 'PURCHASE_RECEIPT', 'VIEW' UNION ALL SELECT 'MENU_INVENTORY_LEDGER', '原材料库存台账与批次菜单', 'INVENTORY_LEDGER', 'VIEW' UNION ALL SELECT 'MENU_WORK_ORDER', '生产工单菜单', 'WORK_ORDER', 'VIEW' UNION ALL SELECT 'MENU_OPERATION_REPORT', '工序报工菜单', 'OPERATION_REPORT', 'VIEW' UNION ALL SELECT 'MENU_SCRAP_REWORK', '报废返工处理菜单', 'SCRAP_REWORK', 'VIEW' UNION ALL SELECT 'MENU_COMPLETION_RECEIPT', '成品入库菜单', 'COMPLETION_RECEIPT', 'VIEW' UNION ALL SELECT 'MENU_DELIVERY_MANAGEMENT', '发货管理菜单', 'DELIVERY_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_EQUIPMENT_MANAGEMENT', '设备台账与保养菜单', 'EQUIPMENT_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_QUALITY_INSPECTION', '质量检验菜单', 'QUALITY_INSPECTION', 'VIEW' UNION ALL SELECT 'MENU_FINANCE_REPORT', '财务成本与报表菜单', 'FINANCE_REPORT', 'VIEW' UNION ALL SELECT 'MENU_RETURN_MANAGEMENT', '退货处理菜单', 'RETURN_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_MATERIAL_MANAGEMENT', '原材料管理菜单', 'MATERIAL_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_BOM_MANAGEMENT', 'BOM管理菜单', 'BOM_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_ROUTE_MANAGEMENT', '工艺路线管理菜单', 'ROUTE_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_EMPLOYEE_MANAGEMENT', '员工管理菜单', 'EMPLOYEE_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_PRODUCT_MANAGEMENT', '产品管理菜单', 'PRODUCT_MANAGEMENT', 'VIEW' UNION ALL SELECT 'MENU_SYSTEM_PERMISSION', '系统权限管理菜单', 'SYSTEM_PERMISSION', 'VIEW' UNION ALL SELECT 'MENU_SYSTEM_EXTENSION', '系统拓展菜单', 'SYSTEM_EXTENSION', 'VIEW' ) AS p LEFT JOIN sys_permission existing ON existing.permission_code = p.permission_code WHERE existing.id IS NULL; -- 补充角色测试账号对应员工 INSERT INTO hr_employee ( employee_code, employee_name, dept_id, mobile, gender, hire_date, job_title, shift_code, manager_employee_id, is_operator, is_workshop_staff, status, remark ) SELECT e.employee_code, e.employee_name, d.id, e.mobile, e.gender, CURRENT_DATE(), e.job_title, e.shift_code, NULL, e.is_operator, e.is_workshop_staff, 'ACTIVE', e.remark FROM ( SELECT 'EMP-PUR-001' AS employee_code, '采购专员' AS employee_name, 'PURCHASE' AS dept_code, '13800000006' AS mobile, 'F' AS gender, '采购跟单' AS job_title, 'DAY' AS shift_code, 0 AS is_operator, 0 AS is_workshop_staff, '样例采购账号' AS remark UNION ALL SELECT 'EMP-FIN-001', '财务专员', 'FINANCE', '13800000007', 'F', '成本会计', 'DAY', 0, 0, '样例财务账号' UNION ALL SELECT 'EMP-EQP-001', '设备管理员', 'EQUIPMENT', '13800000008', 'M', '设备工程师', 'DAY', 0, 0, '样例设备管理员账号' UNION ALL SELECT 'EMP-OP-001', '冲压操作工', 'PRODUCTION', '13800000009', 'M', '冲压操作工', 'A', 1, 1, '样例加工员工账号' ) AS e JOIN sys_department d ON d.dept_code = e.dept_code LEFT JOIN hr_employee existing ON existing.employee_code = e.employee_code WHERE existing.id IS NULL; -- 补充系统账号 INSERT INTO sys_user ( username, password_hash, employee_id, dept_id, nickname, email, is_super_admin, last_login_at, status ) SELECT u.username, u.password_hash, e.id, d.id, u.nickname, u.email, 0, NULL, 'ACTIVE' FROM ( SELECT 'purchaser' AS username, 'pbkdf2_sha256$600000$ddxZt8DlrH-U27hQprqEzg==$QKgRLC3hdLmUI9nZ6AaP0mlVoH5vtu6diHeq9uS2fTg=' AS password_hash, 'EMP-PUR-001' AS employee_code, 'PURCHASE' AS dept_code, '采购专员' AS nickname, 'purchaser@jiaheng.local' AS email UNION ALL SELECT 'finance', 'pbkdf2_sha256$600000$K8pAnzCmAYKS74hZQ7M-uQ==$M1eT-INdsarnu297oEJNU_muEMxY8GMIGuYq3aiK_8A=', 'EMP-FIN-001', 'FINANCE', '财务专员', 'finance@jiaheng.local' UNION ALL SELECT 'equipadmin', 'pbkdf2_sha256$600000$FpH9NnUxpcxyc10mHnTzsg==$EHCnopdhmaIPzCIixzE431wEZVj7uk8IUaoA-0vAl1Y=', 'EMP-EQP-001', 'EQUIPMENT', '设备管理员', 'equipadmin@jiaheng.local' UNION ALL SELECT 'operator', 'pbkdf2_sha256$600000$zvfrPJQL-fSdmSbuJNns7w==$7U1npAmi-5KLSW3BPFWDwqXb0Vx-ag5q6rlVJVxTDkU=', 'EMP-OP-001', 'PRODUCTION', '加工员工', 'operator@jiaheng.local' ) AS u JOIN hr_employee e ON e.employee_code = u.employee_code JOIN sys_department d ON d.dept_code = u.dept_code LEFT JOIN sys_user existing ON existing.username = u.username WHERE existing.id IS NULL; -- 补充用户角色 INSERT INTO sys_user_role (user_id, role_id) SELECT u.id, r.id FROM ( SELECT 'purchaser' AS username, 'PURCHASER' AS role_code UNION ALL SELECT 'finance', 'FINANCE' UNION ALL SELECT 'equipadmin', 'EQUIP_ADMIN' UNION ALL SELECT 'operator', 'OPERATOR' ) AS m JOIN sys_user u ON u.username = m.username JOIN sys_role r ON r.role_code = m.role_code LEFT JOIN sys_user_role existing ON existing.user_id = u.id AND existing.role_id = r.id WHERE existing.id IS NULL; -- 细分角色菜单权限 INSERT INTO sys_role_permission (role_id, permission_id) SELECT r.id, p.id FROM ( SELECT 'ADMIN' AS role_code, 'MENU_SUPPLIER_MANAGEMENT' AS permission_code UNION ALL SELECT 'ADMIN', 'MENU_PURCHASE_ORDER' UNION ALL SELECT 'ADMIN', 'MENU_PURCHASE_RECEIPT' UNION ALL SELECT 'ADMIN', 'MENU_INVENTORY_LEDGER' UNION ALL SELECT 'ADMIN', 'MENU_WORK_ORDER' UNION ALL SELECT 'ADMIN', 'MENU_OPERATION_REPORT' UNION ALL SELECT 'ADMIN', 'MENU_SCRAP_REWORK' UNION ALL SELECT 'ADMIN', 'MENU_COMPLETION_RECEIPT' UNION ALL SELECT 'ADMIN', 'MENU_DELIVERY_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_EQUIPMENT_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_QUALITY_INSPECTION' UNION ALL SELECT 'ADMIN', 'MENU_FINANCE_REPORT' UNION ALL SELECT 'ADMIN', 'MENU_RETURN_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_MATERIAL_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_BOM_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_ROUTE_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_EMPLOYEE_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_PRODUCT_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_SYSTEM_PERMISSION' UNION ALL SELECT 'ADMIN', 'MENU_SYSTEM_EXTENSION' UNION ALL SELECT 'SALES', 'MENU_DELIVERY_MANAGEMENT' UNION ALL SELECT 'SALES', 'MENU_RETURN_MANAGEMENT' UNION ALL SELECT 'PURCHASER', 'MENU_DASHBOARD' UNION ALL SELECT 'PURCHASER', 'MENU_SUPPLIER_MANAGEMENT' UNION ALL SELECT 'PURCHASER', 'MENU_PURCHASE_ORDER' UNION ALL SELECT 'PURCHASER', 'MENU_INVENTORY_LEDGER' UNION ALL SELECT 'PURCHASER', 'MENU_MATERIAL_MANAGEMENT' UNION ALL SELECT 'WAREHOUSE', 'MENU_PURCHASE_RECEIPT' UNION ALL SELECT 'WAREHOUSE', 'MENU_INVENTORY_LEDGER' UNION ALL SELECT 'WAREHOUSE', 'MENU_COMPLETION_RECEIPT' UNION ALL SELECT 'WAREHOUSE', 'MENU_DELIVERY_MANAGEMENT' UNION ALL SELECT 'WAREHOUSE', 'MENU_RETURN_MANAGEMENT' UNION ALL SELECT 'WAREHOUSE', 'MENU_QUALITY_INSPECTION' UNION ALL SELECT 'PLANNER', 'MENU_WORK_ORDER' UNION ALL SELECT 'PLANNER', 'MENU_INVENTORY_LEDGER' UNION ALL SELECT 'PLANNER', 'MENU_MATERIAL_MANAGEMENT' UNION ALL SELECT 'PLANNER', 'MENU_BOM_MANAGEMENT' UNION ALL SELECT 'PLANNER', 'MENU_ROUTE_MANAGEMENT' UNION ALL SELECT 'PLANNER', 'MENU_PRODUCT_MANAGEMENT' UNION ALL SELECT 'SUPERVISOR', 'MENU_WORK_ORDER' UNION ALL SELECT 'SUPERVISOR', 'MENU_OPERATION_REPORT' UNION ALL SELECT 'SUPERVISOR', 'MENU_SCRAP_REWORK' UNION ALL SELECT 'SUPERVISOR', 'MENU_COMPLETION_RECEIPT' UNION ALL SELECT 'SUPERVISOR', 'MENU_QUALITY_INSPECTION' UNION ALL SELECT 'SUPERVISOR', 'MENU_BOM_MANAGEMENT' UNION ALL SELECT 'SUPERVISOR', 'MENU_ROUTE_MANAGEMENT' UNION ALL SELECT 'SUPERVISOR', 'MENU_PRODUCT_MANAGEMENT' UNION ALL SELECT 'OPERATOR', 'MENU_OPERATION_REPORT' UNION ALL SELECT 'FINANCE', 'MENU_DASHBOARD' UNION ALL SELECT 'FINANCE', 'MENU_INVENTORY_LEDGER' UNION ALL SELECT 'FINANCE', 'MENU_FINANCE_REPORT' UNION ALL SELECT 'FINANCE', 'MENU_DELIVERY_MANAGEMENT' UNION ALL SELECT 'FINANCE', 'MENU_RETURN_MANAGEMENT' UNION ALL SELECT 'EQUIP_ADMIN', 'MENU_DASHBOARD' UNION ALL SELECT 'EQUIP_ADMIN', 'MENU_EQUIPMENT_MANAGEMENT' UNION ALL SELECT 'ADMIN', 'MENU_DASHBOARD' UNION ALL SELECT 'ADMIN', 'MENU_SALES_PLANNING' UNION ALL SELECT 'ADMIN', 'MENU_PROCESS_CENTER' UNION ALL SELECT 'ADMIN', 'MENU_DATA_MODEL' UNION ALL SELECT 'SALES', 'MENU_DASHBOARD' UNION ALL SELECT 'SALES', 'MENU_SALES_PLANNING' UNION ALL SELECT 'PLANNER', 'MENU_DASHBOARD' UNION ALL SELECT 'PLANNER', 'MENU_SALES_PLANNING' UNION ALL SELECT 'PLANNER', 'MENU_PROCESS_CENTER' UNION ALL SELECT 'SUPERVISOR', 'MENU_DASHBOARD' UNION ALL SELECT 'SUPERVISOR', 'MENU_PROCESS_CENTER' ) AS rp JOIN sys_role r ON r.role_code = rp.role_code JOIN sys_permission p ON p.permission_code = rp.permission_code LEFT JOIN sys_role_permission existing ON existing.role_id = r.id AND existing.permission_id = p.id WHERE existing.id IS NULL; -- 当前仓储角色不再展示流程与工序中心总菜单,改为按仓储页面细分展示 DELETE rp FROM sys_role_permission rp JOIN sys_role r ON r.id = rp.role_id JOIN sys_permission p ON p.id = rp.permission_id WHERE r.role_code = 'WAREHOUSE' AND p.permission_code = 'MENU_PROCESS_CENTER'; COMMIT;