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/approval/HrmLeaveApplicationController.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java
index 179547e..94a3eb2 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java
@@ -6,6 +6,9 @@
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportExcelVO;
+import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportReqVO;
+import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationImportRespVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationPageReqVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationRespVO;
 import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmLeaveApplicationSaveReqVO;
@@ -21,6 +24,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -94,6 +99,35 @@
         return success(leaveApplicationService.getApproveProcessDefinitionList());
     }
 
+    @GetMapping("/get-import-template")
+    @Operation(summary = "涓嬭浇璇峰亣鐢宠瀵煎叆妯℃澘")
+    @PreAuthorize("@ss.hasPermission('hrm:leave:import')")
+    public void getImportTemplate(HttpServletResponse response) throws IOException {
+        List<HrmLeaveApplicationImportExcelVO> list = List.of(
+                HrmLeaveApplicationImportExcelVO.builder()
+                        .phone("13800138000")
+                        .leaveType("骞村亣")
+                        .startTime(LocalDateTime.of(2026, 10, 8, 9, 0, 0))
+                        .endTime(LocalDateTime.of(2026, 10, 8, 18, 0, 0))
+                        .duration(new BigDecimal("1"))
+                        .reason("瀹朵腑鏈変簨")
+                        .remark("绀轰緥琛岋紝瀵煎叆鍓嶈鍒犻櫎")
+                        .build()
+        );
+        ExcelUtils.write(response, "璇峰亣鐢宠瀵煎叆妯℃澘.xls", "璇峰亣鐢宠鍒楄〃",
+                HrmLeaveApplicationImportExcelVO.class, list);
+    }
+
+    @PostMapping("/import")
+    @Operation(summary = "鎵归噺瀵煎叆璇峰亣鐢宠")
+    @PreAuthorize("@ss.hasPermission('hrm:leave:import')")
+    public CommonResult<HrmLeaveApplicationImportRespVO> importLeaveApplication(
+            @Valid HrmLeaveApplicationImportReqVO importReqVO) throws IOException {
+        List<HrmLeaveApplicationImportExcelVO> list = ExcelUtils.read(
+                importReqVO.getFile(), HrmLeaveApplicationImportExcelVO.class);
+        return success(leaveApplicationService.importLeaveApplicationList(list));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "瀵煎嚭璇峰亣鐢宠 Excel")
     @PreAuthorize("@ss.hasPermission('hrm:leave:export')")

--
Gitblit v1.9.3