From 0100e530e07f11a98f25292a625f6fe0a9f20db6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 十月 2026 10:49:46 +0800
Subject: [PATCH] fix(hrm): 补齐 HRM 后端校验的权限码菜单脚本

---
 sql/mysql/hrm_permission_code_align.sql |  253 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 253 insertions(+), 0 deletions(-)

diff --git a/sql/mysql/hrm_permission_code_align.sql b/sql/mysql/hrm_permission_code_align.sql
new file mode 100644
index 0000000..928929f
--- /dev/null
+++ b/sql/mysql/hrm_permission_code_align.sql
@@ -0,0 +1,253 @@
+-- ============================================================================
+-- HRM 鏉冮檺鐮佸榻愶細琛ラ綈鍚庣 @PreAuthorize 瀹為檯鏍¢獙鐨勬潈闄愮爜鑿滃崟锛屽苟鎺堜簣銆屼汉璧勪笓鍛樸��
+--
+-- 闂锛�2026-08-12 鐢熶骇搴撴妸 system_menu 閲� HRM 鎸夐挳鐨勬潈闄愮爜鏀规垚浜嗗墠绔粏绮掑害鐮�
+--       锛坔rm:attendance-holiday:query銆乭rm:salary-calculation:calculate 绛夛級锛�
+--       浣嗗悗绔� Controller 鏍¢獙鐨勬槸绮楃矑搴︾爜锛坔rm:attendance:query銆乭rm:salary:query 绛夛級锛�
+--       瑙掕壊鏉冮檺鍙粠鑿滃崟琛ㄦ淳鐢� 鈫� 闈炶秴绠¤鑹叉墦寮�鑰冨嫟/钖叕/绀句繚/璋冨矖/绂昏亴/鍔犵彮椤甸潰
+--       涓�寰� 403銆屾病鏈夎鎿嶄綔鏉冮檺銆嶃�傝秴绠¤蛋缁曡繃鏍¢獙锛屾墍浠ヤ竴鐩存病鏆撮湶銆�
+--
+-- 鍋氭硶锛氫笉鍔ㄥ墠绔粏绮掑害鐮侊紝琛ヤ竴濂楀悗绔疄闄呬娇鐢ㄧ殑鏉冮檺鐮佹寜閽彍鍗曪紙type=3锛夛紝
+--       鍐嶆妸杩欎簺鑿滃崟鎺堜簣銆屼汉璧勪笓鍛樸�嶈鑹层�傚箓绛夛紝鍙噸澶嶆墽琛屻��
+--       鍙﹀ HRM 鍚勯〉闈㈢殑銆岄儴闂ㄣ�嶄笅鎷夎皟鐢� /system/dept/list锛堟牎楠� system:dept:query锛夛紝
+--       HR 瑙掕壊榛樿娌℃湁绯荤粺绠$悊鏉冮檺锛屼竴骞舵巿浜堝凡鏈夌殑銆岄儴闂ㄦ煡璇€�嶆寜閽紙鑿滃崟 1017锛夈��
+--
+-- 宸蹭簬 2026-10-30 鍦ㄤ節楦跨敓浜у簱锛�42.63.70.90:9002/ruoyi-vue-pro锛夋墽琛屽苟楠岃瘉銆�
+-- ============================================================================
+
+SET NAMES utf8mb4;
+
+-- ---------------------------------------------------------------------------
+-- 涓�銆佹柊澧炴潈闄愮爜鑿滃崟锛堜笉鍐欐 id锛屾寜 permission 鍒ら噸锛�
+-- ---------------------------------------------------------------------------
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟鏌ヨ', 'hrm:attendance:query', 3, 10, 6011, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟瀵煎嚭', 'hrm:attendance:export', 3, 11, 6011, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:export' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鎵撳崱锛堟帴鍙o級', 'hrm:attendance:clock', 3, 12, 6011, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:clock' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟寮傚父鎻愪氦', 'hrm:attendance:submit', 3, 10, 6012, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:submit' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟鏂板', 'hrm:attendance:create', 3, 10, 6013, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:create' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟淇敼', 'hrm:attendance:update', 3, 11, 6013, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:update' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟鍒犻櫎', 'hrm:attendance:delete', 3, 12, 6013, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:delete' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鑰冨嫟缁熻鐢熸垚锛堟帴鍙o級', 'hrm:attendance:calculate', 3, 10, 6015, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:attendance:calculate' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '璇峰亣瀵煎嚭', 'hrm:leave:export', 3, 10, 6003, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:leave:export' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '璋冨矖鏌ヨ', 'hrm:transfer:query', 3, 10, 6004, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:transfer:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '璋冨矖瀵煎嚭', 'hrm:transfer:export', 3, 11, 6004, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:transfer:export' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绂昏亴鏌ヨ', 'hrm:resignation:query', 3, 10, 6005, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:resignation:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绂昏亴瀵煎嚭', 'hrm:resignation:export', 3, 11, 6005, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:resignation:export' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鍔犵彮鏌ヨ', 'hrm:overtime:query', 3, 10, 1065211, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:overtime:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鍚堝悓瀵煎叆', 'hrm:employee-contract:import', 3, 10, 1063105, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:employee-contract:import' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫鏌ヨ', 'hrm:salary:query', 3, 10, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫鏍哥畻鎵ц', 'hrm:salary:calculate', 3, 11, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:calculate' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫鏍哥畻纭', 'hrm:salary:confirm', 3, 12, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:confirm' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫鍒犻櫎', 'hrm:salary:delete', 3, 13, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:delete' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫瀵煎嚭', 'hrm:salary:export', 3, 14, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:export' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫缁撴瀯鏌ヨ', 'hrm:salary-structure:query', 3, 15, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary-structure:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫缁撴瀯鏂板', 'hrm:salary-structure:create', 3, 16, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary-structure:create' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫缁撴瀯淇敼', 'hrm:salary-structure:update', 3, 17, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary-structure:update' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '钖祫缁撴瀯鍒犻櫎', 'hrm:salary-structure:delete', 3, 18, 6021, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary-structure:delete' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鍙戞斁鐢熸垚', 'hrm:salary:generate', 3, 10, 6022, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:generate' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '鍙戞斁锛堟帴鍙o級', 'hrm:salary:pay', 3, 11, 6022, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:salary:pay' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绀句繚鏌ヨ', 'hrm:social-security:query', 3, 10, 6023, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:social-security:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绀句繚鏂板', 'hrm:social-security:create', 3, 11, 6023, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:social-security:create' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绀句繚淇敼', 'hrm:social-security:update', 3, 12, 6023, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:social-security:update' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '绀句繚鍒犻櫎', 'hrm:social-security:delete', 3, 13, 6023, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:social-security:delete' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '涓◣鏌ヨ', 'hrm:tax-rate:query', 3, 10, 6024, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:tax-rate:query' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '涓◣鏂板', 'hrm:tax-rate:create', 3, 11, 6024, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:tax-rate:create' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '涓◣淇敼', 'hrm:tax-rate:update', 3, 12, 6024, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:tax-rate:update' AND deleted = b'0');
+
+INSERT INTO system_menu (name, permission, type, sort, parent_id, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
+SELECT '涓◣鍒犻櫎', 'hrm:tax-rate:delete', 3, 13, 6024, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission = 'hrm:tax-rate:delete' AND deleted = b'0');
+
+-- ---------------------------------------------------------------------------
+-- 浜屻�佹巿浜堣鑹诧紙鎸夎鑹插悕鍖归厤锛岄伩鍏嶄笉鍚屽簱 role_id 涓嶄竴鑷达級
+-- ---------------------------------------------------------------------------
+INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
+SELECT r.id, m.id, '1', NOW(), '1', NOW(), b'0'
+FROM system_role r
+JOIN system_menu m ON m.permission IN (
+    'hrm:attendance:query',
+    'hrm:attendance:export',
+    'hrm:attendance:clock',
+    'hrm:attendance:submit',
+    'hrm:attendance:create',
+    'hrm:attendance:update',
+    'hrm:attendance:delete',
+    'hrm:attendance:calculate',
+    'hrm:leave:export',
+    'hrm:transfer:query',
+    'hrm:transfer:export',
+    'hrm:resignation:query',
+    'hrm:resignation:export',
+    'hrm:overtime:query',
+    'hrm:employee-contract:import',
+    'hrm:salary:query',
+    'hrm:salary:calculate',
+    'hrm:salary:confirm',
+    'hrm:salary:delete',
+    'hrm:salary:export',
+    'hrm:salary-structure:query',
+    'hrm:salary-structure:create',
+    'hrm:salary-structure:update',
+    'hrm:salary-structure:delete',
+    'hrm:salary:generate',
+    'hrm:salary:pay',
+    'hrm:social-security:query',
+    'hrm:social-security:create',
+    'hrm:social-security:update',
+    'hrm:social-security:delete',
+    'hrm:tax-rate:query',
+    'hrm:tax-rate:create',
+    'hrm:tax-rate:update',
+    'hrm:tax-rate:delete',
+    -- 鍛樺伐绠$悊/鑰冨嫟/鎺掔彮/绀句繚/钖叕绛夐〉闈㈢殑銆岄儴闂ㄣ�嶄笅鎷夎皟鐢� /system/dept/list锛�
+    -- 璇ユ帴鍙f牎楠� system:dept:query锛堣彍鍗� 1017銆岄儴闂ㄦ煡璇€�嶏紝鍓嶇鑿滃崟鏍戜笉灞曠ず鎸夐挳锛屼笉浼氬鍑鸿彍鍗曪級
+    'system:dept:query'
+  )
+WHERE r.name = '浜鸿祫涓撳憳'
+  AND r.deleted = b'0'
+  AND m.deleted = b'0'
+  AND NOT EXISTS (
+    SELECT 1 FROM system_role_menu rm
+    WHERE rm.role_id = r.id AND rm.menu_id = m.id AND rm.deleted = b'0'
+  );
+
+-- ---------------------------------------------------------------------------
+-- 涓夈�佹牎楠岋細搴旇兘鏌ュ嚭 34 鏉�
+-- ---------------------------------------------------------------------------
+-- SELECT m.id, m.name, m.permission, m.parent_id
+-- FROM system_menu m
+-- WHERE m.permission IN (
+--     'hrm:attendance:query',
+--         'hrm:attendance:export',
+--         'hrm:attendance:clock',
+--         'hrm:attendance:submit',
+--         'hrm:attendance:create',
+--         'hrm:attendance:update',
+--         'hrm:attendance:delete',
+--         'hrm:attendance:calculate',
+--         'hrm:leave:export',
+--         'hrm:transfer:query',
+--         'hrm:transfer:export',
+--         'hrm:resignation:query',
+--         'hrm:resignation:export',
+--         'hrm:overtime:query',
+--         'hrm:employee-contract:import',
+--         'hrm:salary:query',
+--         'hrm:salary:calculate',
+--         'hrm:salary:confirm',
+--         'hrm:salary:delete',
+--         'hrm:salary:export',
+--         'hrm:salary-structure:query',
+--         'hrm:salary-structure:create',
+--         'hrm:salary-structure:update',
+--         'hrm:salary-structure:delete',
+--         'hrm:salary:generate',
+--         'hrm:salary:pay',
+--         'hrm:social-security:query',
+--         'hrm:social-security:create',
+--         'hrm:social-security:update',
+--         'hrm:social-security:delete',
+--         'hrm:tax-rate:query',
+--         'hrm:tax-rate:create',
+--         'hrm:tax-rate:update',
+--         'hrm:tax-rate:delete'
+--   ) AND m.deleted = b'0'
+-- ORDER BY m.parent_id, m.id;

--
Gitblit v1.9.3