From ef3cbc1c6882786e8218b08be3e52ea44587f03b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 09:45:42 +0800
Subject: [PATCH] feat(hrm): 请假批量导入、加班代申请人、批量排班与节假日区间联动

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

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 4c992568..820c0db 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
@@ -6,7 +6,10 @@
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayGroupRespVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayPageReqVO;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeCreateReqVO;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRangeUpdateReqVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidayRespVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceHolidaySaveReqVO;
 import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceHolidayDO;
@@ -17,11 +20,13 @@
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.time.LocalDate;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -43,11 +48,28 @@
         return success(attendanceHolidayService.createAttendanceHoliday(createReqVO));
     }
 
+    @PostMapping("/create-range")
+    @Operation(summary = "鎸夋棩鏈熻寖鍥存柊澧炶妭鍋囨棩閰嶇疆锛堝惈涓棿姣忎竴澶╋級")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance:create')")
+    public CommonResult<Integer> createAttendanceHolidayRange(
+            @Valid @RequestBody HrmAttendanceHolidayRangeCreateReqVO createReqVO) {
+        return success(attendanceHolidayService.createAttendanceHolidayRange(createReqVO));
+    }
+
     @PutMapping("/update")
     @Operation(summary = "鏇存柊鑺傚亣鏃ラ厤缃�")
     @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
     public CommonResult<Boolean> updateAttendanceHoliday(@Valid @RequestBody HrmAttendanceHolidaySaveReqVO updateReqVO) {
         attendanceHolidayService.updateAttendanceHoliday(updateReqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update-range")
+    @Operation(summary = "鎸夋棩鏈熷尯闂存洿鏂拌妭鍋囨棩閰嶇疆锛堝垹闄ゅ師鍖洪棿璁板綍鍚庢寜鏂拌捣姝㈡棩鏈熼噸鍐欙級")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance:update')")
+    public CommonResult<Boolean> updateAttendanceHolidayRange(
+            @Valid @RequestBody HrmAttendanceHolidayRangeUpdateReqVO updateReqVO) {
+        attendanceHolidayService.updateAttendanceHolidayRange(updateReqVO);
         return success(true);
     }
 
@@ -57,6 +79,15 @@
     @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
     public CommonResult<Boolean> deleteAttendanceHoliday(@RequestParam("id") Long id) {
         attendanceHolidayService.deleteAttendanceHoliday(id);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete-range")
+    @Operation(summary = "鎸夋棩鏈熷尯闂村垹闄よ妭鍋囨棩閰嶇疆锛堝垹闄ゅ尯闂村唴鍏ㄩ儴鏃ユ湡锛�")
+    @Parameter(name = "ids", description = "鍖洪棿鍐呰妭鍋囨棩ID鍒楄〃", required = true)
+    @PreAuthorize("@ss.hasPermission('hrm:attendance:delete')")
+    public CommonResult<Boolean> deleteAttendanceHolidayRange(@RequestParam("ids") List<Long> ids) {
+        attendanceHolidayService.deleteAttendanceHolidayRange(ids);
         return success(true);
     }
 
@@ -77,6 +108,26 @@
         return success(BeanUtils.toBean(pageResult, HrmAttendanceHolidayRespVO.class));
     }
 
+    @GetMapping("/page-grouped")
+    @Operation(summary = "鑾峰緱鑺傚亣鏃ラ厤缃垎椤碉紙鎸夎繛缁棩鏈熷尯闂村悎骞跺睍绀猴級")
+    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    public CommonResult<PageResult<HrmAttendanceHolidayGroupRespVO>> getAttendanceHolidayGroupPage(
+            @Valid HrmAttendanceHolidayPageReqVO pageReqVO) {
+        return success(attendanceHolidayService.getAttendanceHolidayGroupPage(pageReqVO));
+    }
+
+    @GetMapping("/list")
+    @Operation(summary = "鑾峰緱鎸囧畾鏃ユ湡鑼冨洿鐨勮妭鍋囨棩鍒楄〃锛堥�愭棩锛屾帓鐝棩鍘嗕娇鐢級")
+    @Parameter(name = "startDate", description = "寮�濮嬫棩鏈�", required = true)
+    @Parameter(name = "endDate", description = "缁撴潫鏃ユ湡", required = true)
+    @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+    public CommonResult<List<HrmAttendanceHolidayRespVO>> getAttendanceHolidayList(
+            @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
+            @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
+        List<HrmAttendanceHolidayDO> list = attendanceHolidayService.getAttendanceHolidayListByDateRange(startDate, endDate);
+        return success(BeanUtils.toBean(list, HrmAttendanceHolidayRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭鑺傚亣鏃ラ厤缃� Excel")
     @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")

--
Gitblit v1.9.3