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 | 44 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 37 insertions(+), 7 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 f362ce9..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
@@ -5,12 +5,14 @@
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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;
import cn.iocoder.yudao.module.hrm.service.approval.HrmLeaveApplicationService;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -22,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;
@@ -36,8 +40,6 @@
@Resource
private HrmLeaveApplicationService leaveApplicationService;
- @Resource
- private AdminUserApi adminUserApi;
@PostMapping("/create")
@Operation(summary = "鍒涘缓璇峰亣鐢宠")
@@ -85,9 +87,8 @@
@PreAuthorize("@ss.hasPermission('hrm:leave:submit')")
public CommonResult<Boolean> submitLeaveApplication(@RequestParam("id") Long id,
@RequestParam("processDefinitionKey") String processDefinitionKey) {
- // 鑾峰彇褰撳墠鐢ㄦ埛ID
- AdminUserRespDTO user = adminUserApi.getUser(1L); // TODO: 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
- leaveApplicationService.submitLeaveApplication(id, processDefinitionKey, user.getId());
+ Long userId = SecurityFrameworkUtils.getLoginUserId();
+ leaveApplicationService.submitLeaveApplication(id, processDefinitionKey, userId);
return success(true);
}
@@ -98,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