From 35fcb289fc9772d8e36a8ec903ccb714bfd425c1 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期四, 22 十月 2026 18:48:42 +0800
Subject: [PATCH] fix(hrm): 后端接口权限码与菜单对齐,修复非超管账号操作 403

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java           |   12 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java   |    8 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java    |   12 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java   |   12 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java           |   18 ++--
 sql/mysql/hrm_permission_align_init.sql                                                                                      |   69 +++++++++++++++++
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java    |   10 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java  |   14 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java |   12 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java       |   20 ++--
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java    |   10 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java      |   14 +-
 12 files changed, 140 insertions(+), 71 deletions(-)

diff --git a/sql/mysql/hrm_permission_align_init.sql b/sql/mysql/hrm_permission_align_init.sql
new file mode 100644
index 0000000..cb2e8c3
--- /dev/null
+++ b/sql/mysql/hrm_permission_align_init.sql
@@ -0,0 +1,69 @@
+-- =============================================
+-- HRM 鏉冮檺鐮佸榻愬垵濮嬪寲鑴氭湰锛堝彲閲嶅鎵ц锛�
+-- 鑳屾櫙锛氬悗绔� @PreAuthorize 浣跨敤鐨勬潈闄愮爜鍦� system_menu 涓笉瀛樺湪锛�
+--       瀵艰嚧闈炶秴绾х鐞嗗憳璋冪敤鎺ュ彛鏃朵竴寰� 403锛堣彍鍗曞彲瑙佷絾"娌℃湁鎿嶄綔鏉冮檺"锛夈��
+-- 澶勭悊锛氫负杩欎簺鏉冮檺鐮佽ˉ榻� type=3 鐨勬寜閽潈闄愮偣锛堜笉鏄剧ず鍦ㄤ晶鏍忥級锛屽苟鎺堟潈缁欑幇鏈夎鑹层��
+--       鑿滃崟鍙鎬т粛鐢卞悇妯″潡鐖惰彍鍗曠殑 role_menu 鎺у埗锛屼笉浼氬洜姝ゆ墿澶у彲瑙佽寖鍥淬��
+-- =============================================
+SET NAMES utf8mb4;
+
+INSERT INTO `system_menu`
+(`id`,`name`,`permission`,`type`,`sort`,`parent_id`,`path`,`icon`,`component`,`component_name`,
+ `status`,`visible`,`keep_alive`,`always_show`,`creator`,`create_time`,`updater`,`update_time`,`deleted`)
+VALUES
+-- 鑰冨嫟绠$悊锛�6010 涓嬬殑瀛愯彍鍗曪級
+(602800,'鑰冨嫟瑙勫垯鏌ヨ','hrm:attendance-rule:query',3,10,6013,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602801,'鑰冨嫟璁板綍鏌ヨ','hrm:attendance-record:query',3,10,6011,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602802,'鑰冨嫟寮傚父鏌ヨ','hrm:attendance-exception:query',3,10,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602803,'鑰冨嫟寮傚父淇敼','hrm:attendance-exception:update',3,11,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602804,'鑰冨嫟寮傚父鍒犻櫎','hrm:attendance-exception:delete',3,12,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602805,'鑺傚亣鏃ラ厤缃煡璇�','hrm:attendance-holiday:query',3,10,6014,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602806,'鑰冨嫟缁熻鏌ヨ','hrm:attendance-summary:query',3,10,6015,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 浜轰簨瀹℃壒锛�6002 涓嬬殑瀛愯彍鍗曪級
+(602807,'璇峰亣鐢宠瀵煎嚭','hrm:leave:export',3,10,6003,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602808,'璋冨矖鐢宠鏌ヨ','hrm:transfer:query',3,10,6004,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602809,'璋冨矖鐢宠瀵煎嚭','hrm:transfer:export',3,11,6004,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602810,'绂昏亴鐢宠鏌ヨ','hrm:resignation:query',3,10,6005,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602811,'绂昏亴鐢宠瀵煎嚭','hrm:resignation:export',3,11,6005,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602812,'鍔犵彮鐢宠鏌ヨ','hrm:overtime:query',3,10,1065211,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 鍛樺伐鍚堝悓
+(602813,'鍚堝悓瀵煎叆','hrm:employee-contract:import',3,10,1063105,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 钖叕鏍哥畻锛�6021锛�
+(602814,'钖叕鏍哥畻鏌ヨ','hrm:salary-calculation:query',3,10,6021,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602815,'钖叕鏍哥畻鍒犻櫎','hrm:salary-calculation:delete',3,11,6021,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 钖祫鍙戞斁锛�6022锛�
+(602816,'钖祫鍙戞斁鏌ヨ','hrm:salary-payment:query',3,10,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602817,'钖祫鍙戞斁鐢熸垚','hrm:salary-payment:generate',3,11,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602818,'钖祫鍙戞斁鍒犻櫎','hrm:salary-payment:delete',3,12,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 鍛樺伐绀句繚鍏Н閲戞。妗堬紙6023锛�
+(602819,'绀句繚妗f鏌ヨ','hrm:employee-social-security:query',3,10,6023,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 绀句繚鍏Н閲戞柟妗堬紙602445锛�
+(602820,'绀句繚鏂规鏌ヨ','hrm:social-security-scheme:query',3,10,602445,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 绀句繚閰嶇疆锛堟寕鍦ㄨ柂閰鐞� 6020锛�
+(602821,'绀句繚閰嶇疆鏌ヨ','hrm:social-security-config:query',3,30,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602822,'绀句繚閰嶇疆鏂板','hrm:social-security-config:create',3,31,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602823,'绀句繚閰嶇疆淇敼','hrm:social-security-config:update',3,32,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602824,'绀句繚閰嶇疆鍒犻櫎','hrm:social-security-config:delete',3,33,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 涓◣绋庣巼閰嶇疆锛�6024锛�
+(602825,'涓◣绋庣巼鏌ヨ','hrm:tax-rate-config:query',3,10,6024,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+-- 钖叕缁撴瀯锛堣彍鍗曚腑鏆傛棤璇ラ〉闈紝鏉冮檺鐐规寕钖叕绠$悊涓嬶級
+(602826,'钖叕缁撴瀯鏌ヨ','hrm:salary-structure:query',3,40,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602827,'钖叕缁撴瀯鏂板','hrm:salary-structure:create',3,41,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602828,'钖叕缁撴瀯淇敼','hrm:salary-structure:update',3,42,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
+(602829,'钖叕缁撴瀯鍒犻櫎','hrm:salary-structure:delete',3,43,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0')
+ON DUPLICATE KEY UPDATE
+`name` = VALUES(`name`), `permission` = VALUES(`permission`), `type` = VALUES(`type`),
+`parent_id` = VALUES(`parent_id`), `status` = VALUES(`status`), `deleted` = b'0';
+
+-- 鎺堟潈缁欑幇鏈夊叏閮ㄨ鑹诧紙鑿滃崟鍙鎬т粛鐢辩埗鑿滃崟鎺у埗锛屼笉浼氬洜姝ゆ墿澶у彲瑙佽寖鍥达級
+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.id BETWEEN 602800 AND 602829 AND m.deleted = b'0'
+WHERE r.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'
+  );
+
+SELECT 'HRM 鏉冮檺鐮佸榻愬垵濮嬪寲瀹屾垚' AS result;
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java
index 3ca789b..2126cab 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java
@@ -45,14 +45,14 @@
 
     @PostMapping("/create")
     @Operation(summary = "鏂板鑰冨嫟寮傚父鐢宠")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:create')")
     public CommonResult<Long> createAttendanceException(@Valid @RequestBody HrmAttendanceExceptionSaveReqVO createReqVO) {
         return success(attendanceExceptionService.createAttendanceException(createReqVO));
     }
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊鑰冨嫟寮傚父鐢宠")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:update')")
     public CommonResult<Boolean> updateAttendanceException(@Valid @RequestBody HrmAttendanceExceptionSaveReqVO updateReqVO) {
         attendanceExceptionService.updateAttendanceException(updateReqVO);
         return success(true);
@@ -61,7 +61,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎鑰冨嫟寮傚父鐢宠")
     @Parameter(name = "id", description = "鐢宠ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:delete')")
     public CommonResult<Boolean> deleteAttendanceException(@RequestParam("id") Long id) {
         attendanceExceptionService.deleteAttendanceException(id);
         return success(true);
@@ -70,7 +70,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鑰冨嫟寮傚父鐢宠")
     @Parameter(name = "id", description = "鐢宠ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:query')")
     public CommonResult<HrmAttendanceExceptionRespVO> getAttendanceException(@RequestParam("id") Long id) {
         HrmAttendanceExceptionDO attendanceException = attendanceExceptionService.getAttendanceException(id);
         if (attendanceException == null) {
@@ -96,7 +96,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑰冨嫟寮傚父鐢宠鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:query')")
     public CommonResult<PageResult<HrmAttendanceExceptionRespVO>> getAttendanceExceptionPage(@Valid HrmAttendanceExceptionPageReqVO pageReqVO) {
         PageResult<HrmAttendanceExceptionDO> pageResult = attendanceExceptionService.getAttendanceExceptionPage(pageReqVO);
         List<HrmAttendanceExceptionRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmAttendanceExceptionRespVO.class);
@@ -145,7 +145,7 @@
 
     @PostMapping("/submit")
     @Operation(summary = "鎻愪氦鑰冨嫟寮傚父鐢宠")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:submit')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:submit')")
     public CommonResult<Boolean> submitAttendanceException(
             @RequestParam("id") Long id,
             @RequestParam("processDefinitionKey") String processDefinitionKey) {
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java
index 4c99256..0546d23 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java
@@ -38,14 +38,14 @@
 
     @PostMapping("/create")
     @Operation(summary = "鏂板鑺傚亣鏃ラ厤缃�")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:create')")
     public CommonResult<Long> createAttendanceHoliday(@Valid @RequestBody HrmAttendanceHolidaySaveReqVO createReqVO) {
         return success(attendanceHolidayService.createAttendanceHoliday(createReqVO));
     }
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊鑺傚亣鏃ラ厤缃�")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:update')")
     public CommonResult<Boolean> updateAttendanceHoliday(@Valid @RequestBody HrmAttendanceHolidaySaveReqVO updateReqVO) {
         attendanceHolidayService.updateAttendanceHoliday(updateReqVO);
         return success(true);
@@ -54,7 +54,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎鑺傚亣鏃ラ厤缃�")
     @Parameter(name = "id", description = "鑺傚亣鏃D", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:delete')")
     public CommonResult<Boolean> deleteAttendanceHoliday(@RequestParam("id") Long id) {
         attendanceHolidayService.deleteAttendanceHoliday(id);
         return success(true);
@@ -63,7 +63,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鑺傚亣鏃ラ厤缃�")
     @Parameter(name = "id", description = "鑺傚亣鏃D", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:query')")
     public CommonResult<HrmAttendanceHolidayRespVO> getAttendanceHoliday(@RequestParam("id") Long id) {
         HrmAttendanceHolidayDO attendanceHoliday = attendanceHolidayService.getAttendanceHoliday(id);
         return success(BeanUtils.toBean(attendanceHoliday, HrmAttendanceHolidayRespVO.class));
@@ -71,7 +71,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑺傚亣鏃ラ厤缃垎椤�")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:query')")
     public CommonResult<PageResult<HrmAttendanceHolidayRespVO>> getAttendanceHolidayPage(@Valid HrmAttendanceHolidayPageReqVO pageReqVO) {
         PageResult<HrmAttendanceHolidayDO> pageResult = attendanceHolidayService.getAttendanceHolidayPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, HrmAttendanceHolidayRespVO.class));
@@ -79,7 +79,7 @@
 
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭鑺傚亣鏃ラ厤缃� Excel")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-holiday:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportAttendanceHolidayExcel(@Valid HrmAttendanceHolidayPageReqVO pageReqVO,
                                                HttpServletResponse response) throws IOException {
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
index 9f94ad3..22cae5c 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
@@ -56,7 +56,7 @@
 
     @PostMapping("/clock-in")
     @Operation(summary = "涓婄彮鎵撳崱")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:clock')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-record:clock')")
     public CommonResult<HrmAttendanceRecordRespVO> clockIn(@RequestParam("location") String location) {
         Long loginUserId = getLoginUserId();
         HrmEmployeeDO employee = employeeService.getEmployeeByUserId(loginUserId);
@@ -77,7 +77,7 @@
 
     @PostMapping("/clock-out")
     @Operation(summary = "涓嬬彮鎵撳崱")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:clock')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-record:clock')")
     public CommonResult<HrmAttendanceRecordRespVO> clockOut(@RequestParam("location") String location) {
         Long loginUserId = getLoginUserId();
         HrmEmployeeDO employee = employeeService.getEmployeeByUserId(loginUserId);
@@ -102,7 +102,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑰冨嫟璁板綍鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-record:query')")
     public CommonResult<PageResult<HrmAttendanceRecordRespVO>> getAttendanceRecordPage(@Valid HrmAttendanceRecordPageReqVO pageReqVO) {
         PageResult<HrmAttendanceRecordDO> pageResult = attendanceRecordService.getAttendanceRecordPage(pageReqVO);
         // 杞崲涓� VO
@@ -157,7 +157,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鑰冨嫟璁板綍")
     @Parameter(name = "id", description = "璁板綍ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-record:query')")
     public CommonResult<HrmAttendanceRecordRespVO> getAttendanceRecord(@RequestParam("id") Long id) {
         HrmAttendanceRecordDO attendanceRecord = attendanceRecordService.getAttendanceRecord(id);
         if (attendanceRecord == null) {
@@ -281,7 +281,7 @@
 
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭鑰冨嫟璁板綍 Excel")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-record:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportAttendanceRecordExcel(@Valid HrmAttendanceRecordPageReqVO pageReqVO,
                                               HttpServletResponse response) throws IOException {
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java
index 61c3d9d..dbeab37 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java
@@ -44,14 +44,14 @@
 
     @PostMapping("/create")
     @Operation(summary = "鏂板鑰冨嫟瑙勫垯")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:create')")
     public CommonResult<Long> createAttendanceRule(@Valid @RequestBody HrmAttendanceRuleSaveReqVO createReqVO) {
         return success(attendanceRuleService.createAttendanceRule(createReqVO));
     }
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊鑰冨嫟瑙勫垯")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:update')")
     public CommonResult<Boolean> updateAttendanceRule(@Valid @RequestBody HrmAttendanceRuleSaveReqVO updateReqVO) {
         attendanceRuleService.updateAttendanceRule(updateReqVO);
         return success(true);
@@ -60,7 +60,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎鑰冨嫟瑙勫垯")
     @Parameter(name = "id", description = "瑙勫垯ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:delete')")
     public CommonResult<Boolean> deleteAttendanceRule(@RequestParam("id") Long id) {
         attendanceRuleService.deleteAttendanceRule(id);
         return success(true);
@@ -69,7 +69,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鑰冨嫟瑙勫垯")
     @Parameter(name = "id", description = "瑙勫垯ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')")
     public CommonResult<HrmAttendanceRuleRespVO> getAttendanceRule(@RequestParam("id") Long id) {
         HrmAttendanceRuleDO attendanceRule = attendanceRuleService.getAttendanceRule(id);
         if (attendanceRule == null) {
@@ -88,7 +88,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑰冨嫟瑙勫垯鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')")
     public CommonResult<PageResult<HrmAttendanceRuleRespVO>> getAttendanceRulePage(@Valid HrmAttendanceRulePageReqVO pageReqVO) {
         PageResult<HrmAttendanceRuleDO> pageResult = attendanceRuleService.getAttendanceRulePage(pageReqVO);
         List<HrmAttendanceRuleRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmAttendanceRuleRespVO.class);
@@ -111,7 +111,7 @@
 
     @GetMapping("/list")
     @Operation(summary = "鑾峰緱鑰冨嫟瑙勫垯鍒楄〃")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:query')")
     public CommonResult<List<HrmAttendanceRuleRespVO>> getAttendanceRuleList() {
         List<HrmAttendanceRuleDO> list = attendanceRuleService.getAttendanceRuleList();
         return success(BeanUtils.toBean(list, HrmAttendanceRuleRespVO.class));
@@ -119,7 +119,7 @@
 
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭鑰冨嫟瑙勫垯 Excel")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-rule:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportAttendanceRuleExcel(@Valid HrmAttendanceRulePageReqVO pageReqVO,
                                             HttpServletResponse response) throws IOException {
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java
index a684c8a..2f5c8d1 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java
@@ -47,7 +47,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑰冨嫟缁熻姹囨�诲垎椤�")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-summary:query')")
     public CommonResult<PageResult<HrmAttendanceSummaryRespVO>> getAttendanceSummaryPage(@Valid HrmAttendanceSummaryPageReqVO pageReqVO) {
         PageResult<HrmAttendanceSummaryDO> pageResult = attendanceSummaryService.getAttendanceSummaryPage(pageReqVO);
         List<HrmAttendanceSummaryRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmAttendanceSummaryRespVO.class);
@@ -96,7 +96,7 @@
 
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鍛樺伐鏈堝害鑰冨嫟姹囨��")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-summary:query')")
     public CommonResult<HrmAttendanceSummaryRespVO> getMonthlySummary(
             @RequestParam("userId") Long userId,
             @RequestParam("yearMonth") String yearMonth) {
@@ -122,7 +122,7 @@
     @PostMapping("/generate")
     @Operation(summary = "鐢熸垚鏈堝害鑰冨嫟姹囨��")
     @Parameter(name = "yearMonth", description = "骞存湀锛屾牸寮忥細yyyy-MM", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:calculate')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-summary:generate')")
     public CommonResult<Boolean> generateMonthlySummary(@RequestParam("yearMonth") String yearMonth,
                                                           @RequestParam(value = "deptId", required = false) Long deptId,
                                                           @RequestParam(value = "userId", required = false) Long userId) {
@@ -138,7 +138,7 @@
 
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭鑰冨嫟缁熻姹囨�� Excel")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-summary:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportAttendanceSummaryExcel(@Valid HrmAttendanceSummaryPageReqVO pageReqVO,
                                                HttpServletResponse response) throws IOException {
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java
index db54d53..348b8e0 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java
@@ -46,7 +46,7 @@
 
     @PostMapping("/create")
     @Operation(summary = "鍒涘缓鍛樺伐绀句繚鍏Н閲戞。妗�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:create')")
     public CommonResult<Long> createEmployeeSocialSecurity(@Valid @RequestBody HrmEmployeeSocialSecuritySaveReqVO createReqVO) {
         HrmEmployeeSocialSecurityDO socialSecurity = BeanUtils.toBean(createReqVO, HrmEmployeeSocialSecurityDO.class);
         return success(employeeSocialSecurityService.createEmployeeSocialSecurity(socialSecurity));
@@ -54,7 +54,7 @@
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊鍛樺伐绀句繚鍏Н閲戞。妗�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:update')")
     public CommonResult<Boolean> updateEmployeeSocialSecurity(@Valid @RequestBody HrmEmployeeSocialSecuritySaveReqVO updateReqVO) {
         HrmEmployeeSocialSecurityDO socialSecurity = BeanUtils.toBean(updateReqVO, HrmEmployeeSocialSecurityDO.class);
         employeeSocialSecurityService.updateEmployeeSocialSecurity(socialSecurity);
@@ -64,7 +64,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎鍛樺伐绀句繚鍏Н閲戞。妗�")
     @Parameter(name = "id", description = "妗fID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:delete')")
     public CommonResult<Boolean> deleteEmployeeSocialSecurity(@RequestParam("id") Long id) {
         employeeSocialSecurityService.deleteEmployeeSocialSecurity(id);
         return success(true);
@@ -73,7 +73,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰彇鍛樺伐绀句繚鍏Н閲戞。妗�")
     @Parameter(name = "id", description = "妗fID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:query')")
     public CommonResult<HrmEmployeeSocialSecurityRespVO> getEmployeeSocialSecurity(@RequestParam("id") Long id) {
         HrmEmployeeSocialSecurityDO socialSecurity = employeeSocialSecurityService.getEmployeeSocialSecurity(id);
         if (socialSecurity == null) {
@@ -88,7 +88,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰彇鍛樺伐绀句繚鍏Н閲戞。妗堝垎椤�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:query')")
     public CommonResult<PageResult<HrmEmployeeSocialSecurityRespVO>> getEmployeeSocialSecurityPage(
             @Valid HrmEmployeeSocialSecurityPageReqVO pageReqVO) {
         PageResult<HrmEmployeeSocialSecurityDO> pageResult = employeeSocialSecurityService.getEmployeeSocialSecurityPage(pageReqVO);
@@ -157,7 +157,7 @@
     @GetMapping("/list-by-user")
     @Operation(summary = "鑾峰彇鍛樺伐绀句繚鍏Н閲戞。妗堝巻鍙插垪琛�")
     @Parameter(name = "userId", description = "绯荤粺鐢ㄦ埛ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:query')")
     public CommonResult<List<HrmEmployeeSocialSecurityRespVO>> getEmployeeSocialSecurityList(
             @RequestParam("userId") Long userId) {
         List<HrmEmployeeSocialSecurityDO> list = employeeSocialSecurityService.getEmployeeSocialSecurityList(userId);
@@ -174,7 +174,7 @@
     @GetMapping("/get-latest")
     @Operation(summary = "鑾峰彇鍛樺伐鏈�鏂扮敓鏁堢殑绀句繚鍏Н閲戞。妗�")
     @Parameter(name = "userId", description = "绯荤粺鐢ㄦ埛ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:employee-social-security:query')")
     public CommonResult<HrmEmployeeSocialSecurityRespVO> getLatestEmployeeSocialSecurity(
             @RequestParam("userId") Long userId) {
         HrmEmployeeSocialSecurityDO socialSecurity = employeeSocialSecurityService.getLatestEmployeeSocialSecurity(userId);
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
index e380575..d32cdd2 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java
@@ -48,7 +48,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱钖叕鏍哥畻鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:query')")
     public CommonResult<PageResult<HrmSalaryCalculationRespVO>> getSalaryCalculationPage(@Valid HrmSalaryCalculationPageReqVO pageReqVO) {
         PageResult<HrmSalaryCalculationDO> pageResult = salaryCalculationService.getSalaryCalculationPage(pageReqVO);
         // 杞崲涓� VO
@@ -100,7 +100,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱钖叕鏍哥畻")
     @Parameter(name = "id", description = "鏍哥畻ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:query')")
     public CommonResult<HrmSalaryCalculationRespVO> getSalaryCalculation(@RequestParam("id") Long id) {
         HrmSalaryCalculationDO salaryCalculation = salaryCalculationService.getSalaryCalculation(id);
         if (salaryCalculation == null) {
@@ -127,7 +127,7 @@
     @Operation(summary = "鎵ц钖叕鏍哥畻")
     @Parameter(name = "period", description = "鏍哥畻鍛ㄦ湡", required = true, example = "2024-01")
     @Parameter(name = "deptId", description = "閮ㄩ棬ID锛屼负绌哄垯鏍哥畻鎵�鏈夐儴闂�", example = "1")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:calculate')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:calculate')")
     public CommonResult<Boolean> calculateSalary(@RequestParam("period") String period,
                                                   @RequestParam(value = "deptId", required = false) Long deptId) {
         salaryCalculationService.calculateSalary(period, deptId);
@@ -136,7 +136,7 @@
 
     @PostMapping("/confirm")
     @Operation(summary = "鎵归噺纭钖叕鏍哥畻")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:confirm')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:confirm')")
     public CommonResult<Boolean> confirmSalaryCalculation(@RequestBody Map<String, List<Long>> request) {
         List<Long> ids = request.get("ids");
         salaryCalculationService.confirmSalaryCalculation(ids);
@@ -145,7 +145,7 @@
 
     @PostMapping("/revoke")
     @Operation(summary = "鎵归噺鎾ら攢钖叕鏍哥畻纭")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:confirm')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:confirm')")
     public CommonResult<Boolean> revokeSalaryCalculation(@RequestBody Map<String, List<Long>> request) {
         List<Long> ids = request.get("ids");
         salaryCalculationService.revokeSalaryCalculation(ids);
@@ -155,7 +155,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎钖叕鏍哥畻璁板綍")
     @Parameter(name = "id", description = "鏍哥畻ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:delete')")
     public CommonResult<Boolean> deleteSalaryCalculation(@RequestParam("id") Long id) {
         salaryCalculationService.deleteSalaryCalculation(id);
         return success(true);
@@ -163,7 +163,7 @@
 
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭钖叕鏍哥畻 Excel")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:export')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportSalaryCalculationExcel(@Valid HrmSalaryCalculationPageReqVO pageReqVO,
                                                HttpServletResponse response) throws IOException {
@@ -183,7 +183,7 @@
     @Operation(summary = "棰勮閮ㄩ棬涓嬫墍鏈夊憳宸ョ殑钖祫鏍哥畻淇℃伅")
     @Parameter(name = "period", description = "鏍哥畻鍛ㄦ湡", required = true, example = "2024-01")
     @Parameter(name = "deptId", description = "閮ㄩ棬ID锛屼负绌哄垯鏌ヨ鍏ㄩ儴", example = "1")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:query')")
     public CommonResult<List<HrmSalaryCalculationRespVO>> previewSalaryCalculation(
             @RequestParam("period") String period,
             @RequestParam(value = "deptId", required = false) Long deptId) {
@@ -200,7 +200,7 @@
 
     @PostMapping("/save")
     @Operation(summary = "鎵归噺淇濆瓨钖叕鏍哥畻璁板綍")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:calculate')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:calculate')")
     public CommonResult<Boolean> saveSalaryCalculation(@Valid @RequestBody HrmSalaryCalculationSaveReqVO saveReqVO) {
         // 杞崲涓� DO 鍒楄〃
         List<HrmSalaryCalculationDO> calculationList = saveReqVO.getList().stream()
@@ -217,7 +217,7 @@
 
     @PutMapping("/update")
     @Operation(summary = "淇敼钖叕鏍哥畻璁板綍", description = "浠呭緟纭鐘舵�佸彲淇敼锛涘疄鍙戝伐璧勭敱鍚庣鎸夋敹鍏�/鎵i櫎椤归噸绠�")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:calculate')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-calculation:calculate')")
     public CommonResult<Boolean> updateSalaryCalculation(@Valid @RequestBody HrmSalaryCalculationRespVO updateReqVO) {
         HrmSalaryCalculationDO calculation = BeanUtils.toBean(updateReqVO, HrmSalaryCalculationDO.class);
         salaryCalculationService.updateSalaryCalculation(calculation);
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java
index ebb1fdd..594b2fb 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java
@@ -47,7 +47,7 @@
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱钖祫鍙戞斁鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:query')")
     public CommonResult<PageResult<HrmSalaryPaymentRespVO>> getSalaryPaymentPage(@Valid HrmSalaryPaymentPageReqVO pageReqVO) {
         PageResult<HrmSalaryPaymentDO> pageResult = salaryPaymentService.getSalaryPaymentPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, HrmSalaryPaymentRespVO.class));
@@ -56,7 +56,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱钖祫鍙戞斁")
     @Parameter(name = "id", description = "鍙戞斁ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:query')")
     public CommonResult<HrmSalaryPaymentRespVO> getSalaryPayment(@RequestParam("id") Long id) {
         HrmSalaryPaymentDO salaryPayment = salaryPaymentService.getSalaryPayment(id);
         HrmSalaryPaymentRespVO respVO = BeanUtils.toBean(salaryPayment, HrmSalaryPaymentRespVO.class);
@@ -67,7 +67,7 @@
     @PostMapping("/generate")
     @Operation(summary = "鐢熸垚钖祫鍙戞斁鍙拌处")
     @Parameter(name = "period", description = "鏍哥畻鍛ㄦ湡", required = true, example = "2024-01")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:generate')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:generate')")
     public CommonResult<Long> generatePayment(@RequestParam("period") String period) {
         return success(salaryPaymentService.generatePayment(period));
     }
@@ -75,7 +75,7 @@
     @PostMapping("/pay")
     @Operation(summary = "鍙戞斁钖祫锛堟暣涓彴璐︼級")
     @Parameter(name = "id", description = "鍙戞斁鍙拌处ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:pay')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:pay')")
     public CommonResult<Boolean> paySalary(@RequestParam("id") Long id) {
         salaryPaymentService.paySalary(id);
         return success(true);
@@ -83,7 +83,7 @@
 
     @PostMapping("/pay-detail")
     @Operation(summary = "鎵归噺鍙戞斁钖祫鏄庣粏")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:pay')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:pay')")
     public CommonResult<Boolean> paySalaryDetail(@RequestBody Map<String, List<Long>> request) {
         List<Long> detailIds = request.get("detailIds");
         salaryPaymentService.paySalaryDetail(detailIds);
@@ -92,7 +92,7 @@
 
     @PostMapping("/revoke-detail")
     @Operation(summary = "鎵归噺鎾ら攢钖祫鍙戞斁鏄庣粏")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:pay')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:pay')")
     public CommonResult<Boolean> revokeSalaryPaymentDetail(@RequestBody Map<String, List<Long>> request) {
         List<Long> detailIds = request.get("detailIds");
         salaryPaymentService.revokeSalaryPaymentDetail(detailIds);
@@ -102,7 +102,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎钖祫鍙戞斁鍙拌处")
     @Parameter(name = "id", description = "鍙戞斁鍙拌处ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:delete')")
     public CommonResult<Boolean> deleteSalaryPayment(@RequestParam("id") Long id) {
         salaryPaymentService.deleteSalaryPayment(id);
         return success(true);
@@ -110,7 +110,7 @@
 
     @GetMapping("/detail/page")
     @Operation(summary = "鑾峰緱钖祫鍙戞斁鏄庣粏鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:query')")
     public CommonResult<PageResult<HrmSalaryPaymentDetailRespVO>> getSalaryPaymentDetailPage(@Valid HrmSalaryPaymentDetailPageReqVO pageReqVO) {
         PageResult<HrmSalaryPaymentDetailDO> pageResult = salaryPaymentService.getSalaryPaymentDetailPage(pageReqVO);
         List<HrmSalaryPaymentDetailRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmSalaryPaymentDetailRespVO.class);
@@ -124,7 +124,7 @@
     @GetMapping("/detail/list")
     @Operation(summary = "鑾峰緱钖祫鍙戞斁鏄庣粏鍒楄〃")
     @Parameter(name = "paymentId", description = "鍙戞斁鍙拌处ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:salary:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:salary-payment:query')")
     public CommonResult<List<HrmSalaryPaymentDetailRespVO>> getSalaryPaymentDetailList(@RequestParam("paymentId") Long paymentId) {
         List<HrmSalaryPaymentDetailDO> detailList = salaryPaymentService.getSalaryPaymentDetailListByPaymentId(paymentId);
         List<HrmSalaryPaymentDetailRespVO> list = BeanUtils.toBean(detailList, HrmSalaryPaymentDetailRespVO.class);
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java
index a01acf0..5915785 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java
@@ -31,7 +31,7 @@
 
     @PostMapping("/create")
     @Operation(summary = "鍒涘缓绀句繚鍏Н閲戦厤缃�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:create')")
     public CommonResult<Long> createSocialSecurityConfig(@Valid @RequestBody HrmSocialSecurityConfigSaveReqVO createReqVO) {
         HrmSocialSecurityConfigDO config = BeanUtils.toBean(createReqVO, HrmSocialSecurityConfigDO.class);
         return success(socialSecurityConfigService.createSocialSecurityConfig(config));
@@ -39,7 +39,7 @@
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊绀句繚鍏Н閲戦厤缃�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:update')")
     public CommonResult<Boolean> updateSocialSecurityConfig(@Valid @RequestBody HrmSocialSecurityConfigSaveReqVO updateReqVO) {
         HrmSocialSecurityConfigDO config = BeanUtils.toBean(updateReqVO, HrmSocialSecurityConfigDO.class);
         socialSecurityConfigService.updateSocialSecurityConfig(config);
@@ -49,7 +49,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎绀句繚鍏Н閲戦厤缃�")
     @Parameter(name = "id", description = "閰嶇疆ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:delete')")
     public CommonResult<Boolean> deleteSocialSecurityConfig(@RequestParam("id") Long id) {
         socialSecurityConfigService.deleteSocialSecurityConfig(id);
         return success(true);
@@ -58,7 +58,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰彇绀句繚鍏Н閲戦厤缃�")
     @Parameter(name = "id", description = "閰嶇疆ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:query')")
     public CommonResult<HrmSocialSecurityConfigRespVO> getSocialSecurityConfig(@RequestParam("id") Long id) {
         HrmSocialSecurityConfigDO config = socialSecurityConfigService.getSocialSecurityConfig(id);
         return success(BeanUtils.toBean(config, HrmSocialSecurityConfigRespVO.class));
@@ -66,7 +66,7 @@
 
     @GetMapping("/list")
     @Operation(summary = "鑾峰彇绀句繚鍏Н閲戦厤缃垪琛�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:query')")
     public CommonResult<List<HrmSocialSecurityConfigRespVO>> getSocialSecurityConfigList() {
         List<HrmSocialSecurityConfigDO> list = socialSecurityConfigService.getSocialSecurityConfigList();
         return success(BeanUtils.toBean(list, HrmSocialSecurityConfigRespVO.class));
@@ -75,7 +75,7 @@
     @GetMapping("/get-effective")
     @Operation(summary = "鑾峰彇鐢熸晥鐨勭ぞ淇濆叕绉噾閰嶇疆")
     @Parameter(name = "effectiveDate", description = "鐢熸晥鏃ユ湡", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-config:query')")
     public CommonResult<HrmSocialSecurityConfigRespVO> getEffectiveSocialSecurityConfig(
             @RequestParam("effectiveDate") LocalDate effectiveDate) {
         HrmSocialSecurityConfigDO config = socialSecurityConfigService.getEffectiveSocialSecurityConfig(effectiveDate);
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java
index caf71d4..0aad697 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java
@@ -30,7 +30,7 @@
 
     @PostMapping("/create")
     @Operation(summary = "鍒涘缓绀句繚鍏Н閲戞柟妗�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-scheme:create')")
     public CommonResult<Long> createScheme(@Valid @RequestBody HrmSocialSecuritySchemeSaveReqVO createReqVO) {
         HrmSocialSecuritySchemeDO scheme = BeanUtils.toBean(createReqVO, HrmSocialSecuritySchemeDO.class);
         return success(schemeService.createScheme(scheme));
@@ -38,7 +38,7 @@
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊绀句繚鍏Н閲戞柟妗�")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-scheme:update')")
     public CommonResult<Boolean> updateScheme(@Valid @RequestBody HrmSocialSecuritySchemeSaveReqVO updateReqVO) {
         HrmSocialSecuritySchemeDO scheme = BeanUtils.toBean(updateReqVO, HrmSocialSecuritySchemeDO.class);
         schemeService.updateScheme(scheme);
@@ -48,7 +48,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎绀句繚鍏Н閲戞柟妗�")
     @Parameter(name = "id", description = "鏂规ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-scheme:delete')")
     public CommonResult<Boolean> deleteScheme(@RequestParam("id") Long id) {
         schemeService.deleteScheme(id);
         return success(true);
@@ -57,7 +57,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰彇绀句繚鍏Н閲戞柟妗�")
     @Parameter(name = "id", description = "鏂规ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-scheme:query')")
     public CommonResult<HrmSocialSecuritySchemeRespVO> getScheme(@RequestParam("id") Long id) {
         HrmSocialSecuritySchemeDO scheme = schemeService.getScheme(id);
         return success(BeanUtils.toBean(scheme, HrmSocialSecuritySchemeRespVO.class));
@@ -66,7 +66,7 @@
     @GetMapping("/list")
     @Operation(summary = "鑾峰彇绀句繚鍏Н閲戞柟妗堝垪琛�")
     @Parameter(name = "status", description = "鐘舵��")
-    @PreAuthorize("@ss.hasPermission('hrm:social-security:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:social-security-scheme:query')")
     public CommonResult<List<HrmSocialSecuritySchemeRespVO>> getSchemeList(
             @RequestParam(value = "status", required = false) Integer status) {
         List<HrmSocialSecuritySchemeDO> list = schemeService.getSchemeList(status);
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java
index 2df35be..9478817 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java
@@ -31,7 +31,7 @@
 
     @PostMapping("/create-list")
     @Operation(summary = "鎵归噺鍒涘缓涓◣绋庣巼閰嶇疆锛堜竴涓◣鐜囪〃鍖呭惈7涓。浣嶏級")
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:create')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:create')")
     public CommonResult<Boolean> createTaxRateConfigList(@Valid @RequestBody List<HrmTaxRateConfigSaveReqVO> createReqVOList) {
         List<HrmTaxRateConfigDO> configList = BeanUtils.toBean(createReqVOList, HrmTaxRateConfigDO.class);
         taxRateConfigService.createTaxRateConfigList(configList);
@@ -40,7 +40,7 @@
 
     @PutMapping("/update")
     @Operation(summary = "鏇存柊涓◣绋庣巼閰嶇疆")
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:update')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:update')")
     public CommonResult<Boolean> updateTaxRateConfig(@Valid @RequestBody HrmTaxRateConfigSaveReqVO updateReqVO) {
         HrmTaxRateConfigDO config = BeanUtils.toBean(updateReqVO, HrmTaxRateConfigDO.class);
         taxRateConfigService.updateTaxRateConfig(config);
@@ -50,7 +50,7 @@
     @DeleteMapping("/delete")
     @Operation(summary = "鍒犻櫎涓◣绋庣巼閰嶇疆")
     @Parameter(name = "id", description = "閰嶇疆ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:delete')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:delete')")
     public CommonResult<Boolean> deleteTaxRateConfig(@RequestParam("id") Long id) {
         taxRateConfigService.deleteTaxRateConfig(id);
         return success(true);
@@ -59,7 +59,7 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰彇涓◣绋庣巼閰嶇疆")
     @Parameter(name = "id", description = "閰嶇疆ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:query')")
     public CommonResult<HrmTaxRateConfigRespVO> getTaxRateConfig(@RequestParam("id") Long id) {
         HrmTaxRateConfigDO config = taxRateConfigService.getTaxRateConfig(id);
         return success(BeanUtils.toBean(config, HrmTaxRateConfigRespVO.class));
@@ -67,7 +67,7 @@
 
     @GetMapping("/list")
     @Operation(summary = "鑾峰彇涓◣绋庣巼閰嶇疆鍒楄〃")
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:query')")
     public CommonResult<List<HrmTaxRateConfigRespVO>> getTaxRateConfigList() {
         List<HrmTaxRateConfigDO> list = taxRateConfigService.getTaxRateConfigList();
         return success(BeanUtils.toBean(list, HrmTaxRateConfigRespVO.class));
@@ -76,7 +76,7 @@
     @GetMapping("/get-effective")
     @Operation(summary = "鑾峰彇鐢熸晥鐨勪釜绋庣◣鐜囬厤缃垪琛紙鎸夌骇鏁版帓搴忥級")
     @Parameter(name = "effectiveDate", description = "鐢熸晥鏃ユ湡", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:tax-rate:query')")
+    @PreAuthorize("@ss.hasPermission('hrm:tax-rate-config:query')")
     public CommonResult<List<HrmTaxRateConfigRespVO>> getEffectiveTaxRateConfigList(
             @RequestParam("effectiveDate") LocalDate effectiveDate) {
         List<HrmTaxRateConfigDO> list = taxRateConfigService.getEffectiveTaxRateConfigList(effectiveDate);

--
Gitblit v1.9.3