From 481d8165f26fc7e37f0e87f6444ac0340bb563a3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期二, 03 十一月 2026 18:53:22 +0800
Subject: [PATCH] fix: 移植长辉已验证的四类接口 500/体验问题(不含物料颜色字段)

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 deletions(-)

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 33c9f4a..fae53a2 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
@@ -4,6 +4,7 @@
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceExceptionAuditReqVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceExceptionPageReqVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceExceptionRespVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceExceptionSaveReqVO;
@@ -13,6 +14,7 @@
 import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeService;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
+import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -39,6 +41,8 @@
     private HrmEmployeeService employeeService;
     @Resource
     private DeptApi deptApi;
+    @Resource
+    private StorageAttachmentApi storageAttachmentApi;
 
     @PostMapping("/create")
     @Operation(summary = "鏂板鑰冨嫟寮傚父鐢宠")
@@ -67,7 +71,6 @@
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱鑰冨嫟寮傚父鐢宠")
     @Parameter(name = "id", description = "鐢宠ID", required = true)
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
     public CommonResult<HrmAttendanceExceptionRespVO> getAttendanceException(@RequestParam("id") Long id) {
         HrmAttendanceExceptionDO attendanceException = attendanceExceptionService.getAttendanceException(id);
         if (attendanceException == null) {
@@ -87,12 +90,12 @@
                 respVO.setDeptName(dept.getName());
             }
         }
+        respVO.setAttachmentList(storageAttachmentApi.listAttachments("hrm_attendance_exception", id));
         return success(respVO);
     }
 
     @GetMapping("/page")
     @Operation(summary = "鑾峰緱鑰冨嫟寮傚父鐢宠鍒嗛〉")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
     public CommonResult<PageResult<HrmAttendanceExceptionRespVO>> getAttendanceExceptionPage(@Valid HrmAttendanceExceptionPageReqVO pageReqVO) {
         PageResult<HrmAttendanceExceptionDO> pageResult = attendanceExceptionService.getAttendanceExceptionPage(pageReqVO);
         List<HrmAttendanceExceptionRespVO> list = BeanUtils.toBean(pageResult.getList(), HrmAttendanceExceptionRespVO.class);
@@ -139,16 +142,27 @@
         }
     }
 
-    @PostMapping("/submit")
-    @Operation(summary = "鎻愪氦鑰冨嫟寮傚父鐢宠")
-    @PreAuthorize("@ss.hasPermission('hrm:attendance:submit')")
-    public CommonResult<Boolean> submitAttendanceException(
-            @RequestParam("id") Long id,
-            @RequestParam("processDefinitionKey") String processDefinitionKey) {
-        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛ID
-        Long userId = cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId();
-        attendanceExceptionService.submitAttendanceException(id, processDefinitionKey, userId);
+    @PutMapping("/submit")
+    @Operation(summary = "鎻愪氦瀹℃壒锛堣崏绋�/瀹℃牳涓嶉�氳繃鈫掑鎵逛腑锛夛紝瀹℃壒浜虹敱瀹℃壒閰嶇疆缁熶竴鎸囧畾")
+    @Parameter(name = "id", description = "鐢宠ID", required = true)
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:submit')")
+    public CommonResult<Boolean> submitAttendanceException(@RequestParam("id") Long id) {
+        attendanceExceptionService.submitAttendanceException(id);
         return success(true);
     }
 
-}
\ No newline at end of file
+    @PutMapping("/audit")
+    @Operation(summary = "瀹℃牳锛堝鎵逛腑鈫掑鏍搁�氳繃/瀹℃牳涓嶉�氳繃锛夛紝浠呭鎵逛汉鏈汉鍙搷浣�")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance-exception:audit')")
+    public CommonResult<Boolean> auditAttendanceException(@Valid @RequestBody HrmAttendanceExceptionAuditReqVO auditReqVO) {
+        attendanceExceptionService.auditAttendanceException(auditReqVO.getId(), auditReqVO.getPass(), auditReqVO.getReviewRemark());
+        return success(true);
+    }
+
+    @GetMapping("/approver-ids")
+    @Operation(summary = "鑾峰緱瀹℃壒浜虹紪鍙烽泦鍚堬紝渚涘墠绔垽鏂槸鍚﹀睍绀哄鏍告寜閽�")
+    public CommonResult<Set<Long>> getApproverUserIds() {
+        return success(attendanceExceptionService.getAttendanceExceptionApproverUserIds());
+    }
+
+}

--
Gitblit v1.9.3